设为首页 收藏本站
查看: 1406|回复: 0

[经验分享] vsftp配置详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-25 11:11:15 | 显示全部楼层 |阅读模式
vsftp配置详解

FTP:文件传输协议(File Transfer Protocol)

    是用于在网络上进行文件传输的一套标准协议。它属于网络传输协议的应用层。

FTP服务一般运行在20和21两个端口

    20用于在客户端和服务器之间传输数据流(主动模式时使用)
     21用于传输控制流,并且是命令通向ftp服务器的进口。

FTP两种使用模式:

    主动PORT模式:PORT模式 由FTP服务器端发起,FTP服务器使用20端口连接客户端的某一个大于1023的随机端口。

    被动PASV模式:PASV模式 由FTP客户端发起的,使用一个大于1024的端口连接服务器上大于1023的随机端口。

数据传输模式:

    ASCII:文本格式

    BINARY:二进制格式

vsftp:very secure FTP

主配置文件:/etc/vsftpd/vsftpd.conf

anonymous_enable=YES    允许匿名用户登录
local_enable=YES    允许本地用户登录
write_enable=YES    允许用户上传
local_umask=022     本地用户上传后的权限mask
anon_upload_enable=NO   匿名用户上传控制

#anon_mkdir_write_enable=YES    匿名用户创建目录

dirmessage_enable=YES   显示目录注释
xferlog_enable=YES      开启日志
connect_from_port_20=YES    主动连接使用的数据通道

#chown_uploads=YES      
#chown_username=whoever

xferlog_std_format=YES  与wu-ftp相同的日志文件格式

#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails

#chroot_local_user=NO   若开启,则本地用户默认使用chroot()
#chroot_list_enable=NO  如果开启,需提供文件指定生效用户,如果chroot_local_user设置为Yes,则这个列表为不生效用户,默认列表文件是/etc/vsftpd.chroot_list,可通过chroot_list_file参数制定文件
#chroot_list_file=/etc/vsftpd/chroot_list

ls_recurse_enable=NO     是否允许用户使用'ls -R'命令,递归显示目录
listen=YES  以stand alone的方式启动(值为NO时,super daemon方式启动)

#listen_ipv6=YES

pam_service_name=vsftpd     vsftpd服务中PAM验证模块的名称
userlist_enable=YES     使用user_list文件控制用户登录(配合userlist_deny)
#userlist_deny=YES
tcp_wrappers=YES    采用tcp_wrappers进行控制访问

匿名用户相关配置:

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

系统用户相关:

local_enable=YES
write_enable=YES

辅助认证配置文件/etc/vsftpd/ftpusers
pam认证的配置文件:/etc/pam.d/vsftpd

chroot_local_users=YES
禁锢所有的本地用户于自己的家目录中;需移除用户对家目录写权限;

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
禁锢指定的文件中的用户于自己的家目录中;需移除用户对家目录写权限;

数据传输日志:

xferlog_std_format=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog

控制可登录vsftpd服务的用户列表:

userlist_enable=YES
userlist_deny={YES|NO}
如果userlist_deny=NO, 只允许user_list文件中的用户
如果userlist_deny=YES (默认), 不允许user_list文件中的用户, 输入密码前就会报错

vsftpd配置实例:
Centos 7

    禁锢系统用户于家目录;

    基于mysql进行用户认证;

    不同的虚拟用户拥有不同的权限设定;

安装vsftp、mysql及pam-mysql模块,用于pam连接mysql存储密码:

]# yum isntall vsftpd mariadb-server mariadb-devel pam-devel
]# wget http://prdownloads.sourceforge.n ... mysql-0.7RC1.tar.gz

]# tar xvf pam_mysql-0.7RC1.tar.gz
]# cd pam_mysql-0.7RC1
]# ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
]# make
]# make install

准备mairadb数据库:

]# mysql_install_db  --user=mysql   初始化数据库
]# systemctl start mariadb  启动mariadb
]# mysql_secure_installation    安全设置
]# mysql -p     输入密码登陆数据库
> create database vsftpd;   创建vsftpd数据库

插入虚拟用户信息:
> insert into vsftpd.users (name,password) values ('rick',PASSWORD('222222')),('morty',PASSWORD('222222'));

授权:
> grant all on vsftpd.* to 'vuser'@'localhost' identified by '333333';
> grant all on vsftpd.* to 'vuser'@'127.0.0.1' identified by '333333';
> flush privileges;

配置vsftpd通过pam_mysql进行认证

]# vi /etc/vsftpd/vsftpd.conf
#listen_ipv6=YES    注释该行
pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=vuser

模块认证配置文件:

]# vi /etc/pam.d/vsftpd.mysql   添加两行
auth required /usr/lib64/security/pam_mysql.so user=vuser passwd=333333 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vuser passwd=333333 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

创建映射的系统用户账号:

]# mkdir vpub
]# useradd -d /vpub vuser
]# mkdir /vpub/{pub,upload}
]# chmod u-w /vpub
]# setfacl -m u:vuser:rwx /vpub/upload

设置各虚拟用户的权限

]# vi /etc/vsftpd/vsftpd.conf   添加一行指定虚拟用户权限目录
user_config_dir=/etc/vsftpd/users_conf

]# mkdir users_conf
]# vi rick  虚拟用户的权限都用匿名指令指定
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

]# vi morty 该用户无上传权限
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

测试成功:

lftp rick@10.1.235.7:/upload> put issue
59 bytes transferred

lftp morty@10.1.235.7:/upload> put centos-release
put: Access failed: 550 Permission denied. (centos-release)




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-291053-1-1.html 上篇帖子: centos 6.7下vsftp实战 下篇帖子: vsftpd超详细配置教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表