一. vsftpd服务器相关软件的安装
1. 查看是否安装vsftp服务器和客户端
[root@hadoop ~]# rpm -qa|grep ftpvsftpd-2.2.2-24.el6.x86_64ftp-0.17-54.el6.x86_64
如果找到已安装的vsftp应用(本机之前已安装过),先进行卸载,如下:
[root@hadoop ~]# yum -y remove ftp vsftpdLoaded plugins: fastestmirrorSetting up Remove ProcessResolving Dependencies--> Running transaction check---> Package ftp.x86_64 0:0.17-54.el6 will be erased---> Package vsftpd.x86_64 0:2.2.2-24.el6 will be erased--> Finished Dependency ResolutionDependencies Resolved...Removed: ftp.x86_64 0:0.17-54.el6 vsftpd.x86_64 0:2.2.2-24.el6
2. 安装vsftpd服务器和客户端
[root@hadoop ~]# yum install ftp vsftpd -yLoaded plugins: fastestmirrorSetting up Install ProcessDetermining fastest mirrorsepel/metalink | 6.7 kB 00:00 * base: mirrors.cn99.com * epel: mirrors.ustc.edu.cn * extras: mirrors.cn99.com * remi-safe: mirrors.tuna.tsinghua.edu.cn * rpmfusion-free-updates: mirrors.ustc.edu.cn * rpmfusion-nonfree-updates: mirrors.ustc.edu.cn * updates: mirrors.cn99.com...Installed: ftp.x86_64 0:0.17-54.el6 vsftpd.x86_64 0:2.2.2-24.el6 Complete!
二. 配置vsftpd服务器
1. 创建vsftpd的登录用户和主目录
[root@hadoop ~]# useradd -d /home/hadoopftp -s /sbin/nologin hadoopftp
其中hadoopftp是ftp的登录用户名,可以根据需要实际替换即可
2. 修改相应的密码
[root@hadoop ~]# passwd hadoopftp
3. 创建vsftpd虚拟用户
[root@hadoop vsftpd]# vim /etc/vsftpd/vsftpuser.txt
输入文本格式如下:
用户1 用户1密码 用户2 用户2密码 ......
然后生成认证db:
[root@hadoop ~]# db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpuser.db
4. 添加vsftpd的虚拟用户的PAM认证
[root@hadoop ~]# vim /etc/pam.d/vsftpd
修改内容为替换 pam文件中的account和auth:
#%PAM-1.0session optional pam_keyinit.so force revoke#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed#auth required pam_shells.so#auth include password-auth#account include password-auth#64位系统auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuseraccount required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuser#32位系统#auth required pam_userdb.so db=/etc/vsftpd/vsftpuser#account required pam_userdb.so db=/etc/vsftpd/vsftpusersession required pam_loginuid.sosession include password-auth
5. 修改vsftpd的配置文件vsftpd.conf
[root@hadoop ~]# vim /etc/vsftpd/vsftpd.conf
修改点如下:
# 是否运行匿名登录(NO)anonymous_enable=NO# 监听端口(默认21)listen_port=8021# 限制ftp用户只能在其主目录下(root dir)下活动,不允许他们跳出主目录之外浏览服务器上的其他目录chroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_listpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESlocal_root=/home/hadoop/ftp/public/ftprootanon_root=/home/hadoop/ftp/public/ftprootvirtual_use_local_privs=YESguest_enable=YESguest_username=anyoftpallow_writeable_chroot=YESpasv_enable=YES# 被动模式端口区间, 这个10021端口,可以修改为你喜欢的connect_from_port_10021=YESpasv_min_port=40000pasv_max_port=41000pasv_address=172.16.1.2
添加以下防火规则,个人用的是iptables,也可以参考 firewall 设置
[root@hadoop ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10021 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:41000 -j ACCEPT
创建文件chroot_list,声明 限制在主目录下的用户名单:
[root@hadoop ~]# vim /etc/vsftpd/chroot_list
内容如下:
hadoopftp
至于是限制名单还是排除名单,这取决于chroot_local_user的值 ,可以参考进行理解。
6. 新建FTP访问根目录,并设置访问权限
[root@hadoop ~]# mkdir /home/hadoop/ftp/public/ftproot[root@hadoop ~]# chown -R hadoopftp /home/hadoop/ftp/public/ftproot[root@hadoop ~]# chmod -R 755 /home/hadoop/ftp/public/ftproot
7. 开启vsftpd服务
[root@hadoop ~]# systemctl start vsftpd.service# 查看vsftpd服务的状态systemctl status vsftpd.service
8. 设置开机启动
[root@hadoop ~]# systemctl enable vsftpd.service
三. vsftpd服务验证
打开浏览器,输入ftp访问地址,弹出一下界面:
输入设置的ftp用户名和密码,进行访问,验证通过,跳到ftp文件目录界面:
到此,vsftpd在Centos 7系统的安装与简单配置基本完成,本人在虚拟机环境下测试通过,不当之处,欢迎指正!!!