什么都分享
以及,记录自己的故事
正在载入当前位置天气信息……

CentOS7.0架设FTP服务器完整教程

一、配置防火墙

首先关闭自带的firewall服务,我们用更好用的iptables来进行配置。

停止firewall服务 systemctl stop firewalld.service

禁止firewall服务开机自启动 systemctl disable firewalld.service

然后开始安装iptables防火墙。

安装iptables yum install iptables-services

编辑防火墙配置文件 vi /etc/sysconfig/iptables

在 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 下面新增两条规则:

-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 保存退出。

重启iptables防火墙服务 systemctl restart iptables.service

允许iptables防火墙服务开机自启动 systemctl enable iptables.service

至此,我们在iptables中允许了21端口和10060到10090端口的访问,21端口是ftp的服务端口,10060~10090端口是ftp的被动传输模式所使用的端口。

二、关闭SELinux

打开SElinux配置文件 vi /etc/selinux/config

SELINUX=enforcing 改为 #SELINUX=enforcing

SELINUXTYPE=targeted 改为 #SELINUXTYPE=targeted

增加一行 SELINUX=disabled

编辑完成后 :wq 保存退出。

强制刷新配置文件 setenforce 0

三、安装配置vsftp服务

安装vsftpd组件 yum install -y vsftpd

安装虚拟用户配置依赖组件 yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI

启动vsftpd服务 systemctl start vsftpd.service

设置vsftpd服务开机自启动 systemctl enable vsftpd.service

备份一下默认的vsftp配置文件 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak

打开vsftp的配置文件进行修改 vi /etc/vsftpd/vsftpd.conf

找到以下对应的字段,并修改为以下的参数:

anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=YES
chown_uploads=NO
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to FTP service.

然后在vsftpd.conf的最后空白处新增以下字段参数:

use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=300
data_connection_timeout=1
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1

完成以上配置后 :wq 保存退出。

建立虚拟用户列表 touch /etc/vsftpd/virtusers

编辑虚拟用户列表 vi /etc/vsftpd/virtusers 然后第一行账号第二行密码,按顺序填入。

IT
123456
user
888888
Admin
222222

编辑完成后 :wq 保存退出。

生成虚拟用户列表数据文件 db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

更改虚拟用户列表数据文件权限为可读取 chmod 600 /etc/vsftpd/virtusers.db

备份一下PAM验证的配置文件 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd-bak

编辑PAM验证的配置文件 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

同样,编辑完成后 :wq 保存退出。注意:如果是32位的系统,上面参数中的lib64需要改为lib,否则无效。

建立vsftp宿主用户,用户名为vsftpd,主目录为ftp所用的根目录,用户设定为不能用来登陆系统 useradd vsftpd -d /home/wwwroot -s /bin/false

更改vsftpd的用户根目录为拥有者 chown vsftpd:vsftpd /home/wwwroot -R

创建虚拟用户配置目录 mkdir /etc/vsftpd/vconf

进入虚拟用户配置目录 cd /etc/vsftpd/vconf

创建三个虚拟用户配置文件 touch IT user Admin ,这里的三个用户就是在之前虚拟用户列表中的三个用户名称。

编辑虚拟用户配置文件,以用户IT为例 vi IT

新增以下字段参数:

local_root=/home/wwwroot/web1/http/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

重启vsftpd服务 systemctl restart vsftpd.service 即可。

打赏
本文遵守创作共享 BY-NC-ND 4.0协议,转载前请先联系作者。绯末博客 » CentOS7.0架设FTP服务器完整教程
分享到: 更多 (0)

评论 抢沙发

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏