生产环境:
操作系统: CentOS release 6.9 (Final)
软件: vsftpd-2.2.2-24.el6.x86_64
实战任务: 给定账号, 让开发商上传站群代码到服务器的指定目录, 可以读写;
操作过程如下:
一, 配置防火墙, 开启 FTP 服务器需要的端口
- [root@sky9890 /]# vi /etc/sysconfig/iptables #添加端口号
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT
- :wq! #保存退出
二, 关闭 SELINUX
- [root@sky9890 /]#vi /etc/selinux/config
- #SELINUX=enforcing #注释掉
- #SELINUXTYPE=targeted #注释掉
- SELINUX=disabled #增加
- :wq! #保存退出
- [root@sky9890 /]#setenforce 0 #使配置立即生效
三, 安装 vsftpd
- [root@sky9890 /]#yum install -y vsftpd #安装 vsftpd
- [root@sky9890 /]#yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI #安装 vsftpd 虚拟用户配置依赖包
- [root@sky9890 /]# service vsftpd restart #启动
- [root@sky9890 /]# chkconfig vsftpd on #设置 vsftpd 开机启动
四, 配置 vsftp 服务器
- [root@sky9890 /]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak #备份默认配置文件
- sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
- sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
- sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
- sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'
- sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
- sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
- sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
- sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf'
- echo -e "use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300
- \ndata_connection_timeout=1\nguest_enable=YES\nguest_username=vsftpd
- \nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES
- \npasv_min_port=10060\npasv_max_port=10090
- \naccept_timeout=5\nconnect_timeout=1">> /etc/vsftpd/vsftpd.conf
五, 生成虚拟用户数据文件
- [root@sky9890 ~]# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
- [rootsky9890 ~]# chmod 600 /etc/vsftpd/virtusers.db #设定 PAM 验证文件, 并指定对虚拟用户数据库文件进行读取
六, 在 / etc/pam.d/vsftpd 的文件头部加入以下信息 (注意: 如果在后面加入无效)
- [rootsky9890 ~]# vi /etc/pam.d/vsftpd
- auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
- account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
七, 新建系统用户 vsftpd, 用户目录为 / home/wwwroot, 用户登录终端设为 / bin/false(即使之不能登录系统)
- [root@sky9890 ~]# useradd vsftpd -d /home/wwwroot -s /bin/false
- [root@sky9890 ~]# chown vsftpd:vsftpd /home/wwwroot -R
八, 建立登录用户
- [root@sky9890 /]#useradd gx
- [root@sky9890 /]#passwd gx
- [root@sky9890 /]#vim /etc/passwd
- gx:x:503:506::/home/gx:/sbin/nologin #禁止远程登录
- [root@sky9890 ~]# mkdir -p /home/wwwroot/ #远程上传数据存放的目录
九, 最后重启 vsftpd 服务器
[root@sky9890 ~]# service vsftpd restart
十, 建议使用的 FTP 工具: WinSCP,filezilla
来源: http://www.bubuko.com/infodetail-2605318.html