Linux CentOS 6.5 下配置vsftpd 搭建FTP服务器

近期给公司配置一台服务器需要用到FTP服务,在此分享一下本人的学习经历

操作系统环境:Linux CentOS-6.5-i386

1、检查是否已安装vsftpd:rpm -qa | grep vsftpd
如果没有安装则没有提示信息,如图:
这里写图片描述

2、安装vsftpd,运行命令:yum install vsftpd -y,等待安装完成。
这里写图片描述

这里写图片描述

3、vsftpd安装完成后,默认端口是21,要在防火墙上开启端口21,这样才可以对外连接。
运行命令:vim /etc/sysconfig/iptables
添加一行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

这里写图片描述

4、保存并退出。重启防火墙:service iptables restart

5、开启vsftpd服务:service vsftpd start
检测vsftpd运行状态:netstat -tunpl | grep vsftpd
这里写图片描述

6、添加一个用户名,不允许登陆系统,只用作ftp,其目录为 /home/webapp:
useradd ftpuser -s /sbin/nologin -d /home/webapp
这里写图片描述

修改ftpuser用户的密码:passwd ftpuser
这里写图片描述

将ftpuser用户添加到配置文件user_list中:echo ftpuser >> /etc/vsftpd/user_list
也可以通过编辑配置文件user_list,在文件末尾新增添加的用户。
这里写图片描述

重启vsftpd服务

7、进入到vsftpd目录下修改vsftpd的配置文件,修改前先做好备份,如图:
这里写图片描述

8、修改vsftpd.conf文件:vim vsftpd.conf
1)、禁止匿名登录,将 anonymous_enable=YES 修改为 anonymous_enable=NO

2)、找到以下三项,

#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list

并修改为:

chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

否则会在连接FTP服务器时报错:
这里写图片描述

进入到/etc/vsftpd路径下:cd /etc/vsftpd
新建/etc/vsftpd/chroot_list文件:touch chroot_list
将ftpuser用户添加到chroot_list文件中:echo ftpuser >> chroot_list
这里写图片描述

3)、文件末尾新增:

# 仅允许userlist中的用户访问FTP服务器
userlist_deny=NO

# 将服务配置为被动模式
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999

保存并退出。

9、修改防火墙配置,添加一条防火墙规则:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30000:30999 -j ACCEPT

这里写图片描述

保存并退出,重启防火墙和vsftpd服务。

10、用FalshFXP连接FTP服务器,报错:
这里写图片描述

查看SELinux 的状态
这里写图片描述

解决方法:
1)、执行:setsebool ftpd_disable_trans 1,解除SELinux保护,否则无法读取FTP目录,输入命令后提示:Could not change active booleans: Invalid boolean,表示解除成功,否则代表失败(为了减少vsftpd服务使用中一些不必要的麻烦,可以关闭SELinux服务)。
2)、执行:setsebool -P ftp_home_dir=1,说明:-P表示永久设置,不用每次开机后都重新设置。
这条命令会执行一分钟左右,成功了不会提示任何信息。

至此,vsftpd服务配置完成。

这里写图片描述

可以连接服务器上传下载文件了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章