CentOs 上安装 vsftpd
11-1.查看是否安装vsftp—————————————————-[成功]
rpm -qa | grep vsftpd //如果出现vsftpd-2.0.5-21.el5,说明已经安装 vsftp,否则没装
11-2.安装vsftpd———————————————————–[成功]
sudo yum -y install vsftpd*
sudo yum -y install pam*
sudo yum -y install db4*
11-3.判断vsftpd是否安装成功———————————————–[成功]
sudo service vsftpd restart
11-4. 配置vsftpd.conf —————————————————-[成功]
sudo vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //设定不允许匿名访问
local_enable=YES //设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES //使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd //PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
11-5. 设置开机启动项 —————————————————-[成功]
sudo chkconfig vsftpd on
11-6.新建"/home/wwwroot/default/testftp"目录作为用户主目录 ————–[成功]
sudo mkdir /home/wwwroot/default/testftp
chmod -R 755 /home
chmod -R 777 /home/wwwroot/default/testftp
11-7.查看目录ver******ftp是否新建成功————————————[成功]
sudo ls /home/wwwroot/default/
11-8.创建Ftp用户及用户组————————————————-[成功]
groupadd ftpgroup
useradd ftpuser -g ftpgroup -d /home/wwwroot/default/testftp //会提示testftp已存在
passwd ftpuser
输入密码2遍————————————————————–[成功]
/home/wwwroot/default/testftp是ftp 用户访问的文件夹
11-9.使用gedit修改配置文件/etc/vsftpd.conf——————————-[成功]
sudo vi /etc/vsftpd.conf
向文中添加如下内容
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
local_enable=YES
11-10. gedit新建/etc/allowed_users文件———————————–[成功]
sudo vi /etc/allowed_users
testuser
root
11-11.使用gedit查看/etc/ftpusers文件中的内容—————————-[成功]
sudo vi /etc/ftpusers
看有没有uftp这个用户名,如果没有,就直接退出。
如果有就删除uftp,因为这个文件中记录的是不能访问FTP服务器的用户清单。
11-12 添加ftp防火墙规则:———————————————–[成功]
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT //允许SSH连接———[成功]
sudo iptables -A INPUT -p tcp –dport 8201 -j ACCEPT //putty连接端口——-[成功]
sudo iptables -A INPUT -p tcp –dport 80 -j ACCEPT //Web服务器———–[成功]
sudo iptables -A INPUT -p tcp –dport 1723 -j ACCEPT //VPN PPTPD 配置——[成功]
sudo iptables -A INPUT -p tcp –dport 47 -j ACCEPT //VPN PPTPD 配置——[成功]
sudo iptables -A INPUT -p gre -j ACCEPT //VPN PPTPD 配置——[成功]
sudo iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE //VPN PPTPD 配置——[成功]
sudo iptables -A INPUT -p UDP –dport 53 -j ACCEPT //VPN PPTPD 配置——[成功]
sudo iptables -I INPUT 1 -i lo -j ACCEPT //VPN PPTPD 配置——[成功]
sudo iptables -A INPUT -p tcp –dport 21 -j ACCEPT //FTP服务的21端口——[成功]
sudo iptables -A INPUT -p tcp –dport 20 -j ACCEPT //FTP服务的20端口——[成功]
sudo iptables -I INPUT 1 -i lo -j ACCEPT //保持彼此之间的通信–[成功]
sudo iptables -P INPUT DROP //INPUT链的默认规则更改为“Drop”即丢弃
sudo service iptables save
sudo service iptables restart
11-13 重启vsftp———————————————————–[成功]
sudo service vsftpd restart
11-14 ftp连接时出现 500 OOPS:cannot change directory 问题—————–[成功]
原因服务器开启了selinux,这限制了FTP的登录
方法一 [成功]
setsebool -P ftp_home_dir on
service vsftpd restart
方法二 [失败-不影响]
setsebool ftpd_disable_trans 1 //selinux 开放对ftp的访问
setsebool -P ftpd_disable_trans 1 //不需要每次开机重复这个代码
service vsftpd restart
方法二 [不推荐,因为禁区用整个SELINUX对系统不安全]
vi /etc/selinux/config
改为
SELINUX=disabled
11-15 上一步骤出现Could not change active booleans: Invalid boolean
原因:与那个"ftp_home_dir"有关
处理方法
setsebool allow_ftpd_full_access 1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
setsebool ftp_home_dir 1
setsebool httpd_enable_ftp_server 1
setsebool tftp_anon_write 1
service vsftpd restart
11-16 出现could not read chroot () list file :/etc/vsftpd/chroot_list问题
是因为服务器禁用了匿名登录,所以ftp连接时匿名不能打勾
11-17 成功