龚哥哥 爱生活、做自己!
CentOS搭建FTP服务器
发表于 2016-9-16 | 服务器

1、查看是否已经安装vsftpd

rpm -qa | grep vsftpd

2、安装vsftpd

yum -y install vsftpd

2.1、将vsftpd加入开机启动

chkconfig vsftpd on

3、vsftpd配置  vim /etc/vsftpd/vsftpd.conf

# 设定不允许匿名访问
anonymous_enable=NO

# 设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
local_enable=YES

# 使用户不能离开主目录
chroot_list_enable=YES
ascii_upload_enable=YES

# 设定支持ASCII模式的上传和下载功能
ascii_download_enable=YES

# 启用“倾听”指令时,vsftpd在独立模式和运行,监听IPv4的套接字。这个指令不能一起使用, listen_ipv6指令
listen=YES

# PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加
pam_service_name=vsftpd

# 设定启用虚拟用户功能
guest_enable=YES

# 指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
guest_username=ftp

# 设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名进行认证
user_config_dir=/etc/vsftpd/vuser_conf
chroot_list_file=/etc/vsftpd/vuser_passwd.txt

# 授权用户权限(新版本需要设置此参数)
#allow_writeable_chroot=YES

# 开启PASV模式
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40080
pasv_promiscuous=YES

# 阻止特定的本地用户登录ftp
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list

4、创建用户和密码文本  vim /etc/vsftpd/vuser_passwd.txt,注意奇行是用户名,偶行是密码

devil
123456

4.1、生成虚拟用户认证的db文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

4.2、安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包(已安装则跳过)

yum install db4 db4-utils

5、编辑认证文件  vim /etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句

auth       required     pam_userdb.so db=/etc/vsftpd/vuser_passwd
account    required     pam_userdb.so db=/etc/vsftpd/vuser_passwd

6、创建虚拟用户配置文件目录

mkdir /etc/vsftpd/vuser_conf

6.1、创建虚拟用户配置文件  vim /etc/vsftpd/vuser_conf/devil

local_root=/data/ftp/devil #虚拟用户根目录,根据实际情况修改
write_enable=YES
anon_umask=022 #掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

7、设置Selinux(如果你的selinux是开启的话)

setsebool -P ftp_home_dir=1   #设置ftp可以使用home目录
sersebool -P allow_ftpd_full_access=1   #设置ftp用户可以有所有权限

8、设置FTP根目录权限

mkdir -p /data/ftp/devil
chmod 755 /data/ftp
chmod -R 777 /data/ftp/devil

9、配置防火墙  vim /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 22 -j ACCEPT
-A INPUT -p tcp --dport 40000:40080 -j ACCEPT

10、查看selinux安全模式(如果显示 Enforcing ,则需要改成 Disabled 模式)

getenforce

10.1、selinux模式为Disabled则跳过,vim /etc/selinux/config

SELINUX=disabled
默认是enforcing  把他修改为 disabled

11、启动vsftpd服务

service vsftpd start

12、重启防火墙(如果防火墙不想配置,则关闭防火墙即可,线上建议开启防火墙)

service iptables restart

13、测试 在客户端使用

ip 当前服务器的ip(ifconfig查看当前ip)
用户 devli
密码 123456

发表评论:

TOP