FTP服务器搭建
Vsftpd ftp安装部署
注:以下搭建方法在CentOS release 6.2 (Final)上实践搭建成功
1. 安装 vsftpd
1.1.下载vsftpd
运行命令yum install -y vsftpd安装 vsftpd。 或者
rpm -Uvh vsftpd-2.2.2-6.el6_0.1.x86_64.rpm(vsftpd-2.2.2-6.el6_0.1.x86_64.rpm无法导入,如果有需要可以私聊我)
1.2.查看文件
进入/etc/vsftpd目录,并查看该目录下的文件
- /etc/vsftpd/vsftpd.conf 是 vsftpd 的核心配置文件。
- /etc/vsftpd/user_list 是白名单文件,此文件里的用户允许访问 FTP 服务器。
- /etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
1.3.设置FTP服务开机自启动
运行以下命令设置FTP服务开机自启动:
Centos6.5: chkconfig vsftpd on
Centos7.5: systemctl enable vsftpd.service
1.4.启动 FTP 服务
运行以下命令启动 FTP 服务:
Centos6.5:/etc/init.d/vsftpd start 或者 service vsftpd start
Centos7.5:systemctl start vsftpd.service
1.5.运行以下命令查看 FTP 服务监听的端口。
netstat -antup | grep ftp
2 配置 vsftpd
vsftpd 安装后默认开启了匿名访问 FTP 服务器的功能。使用匿名访问,您无需输入用户名密码即可登录 FTP 服务器,但没有权限修改或上传文件。
2.1配置本地用户登录
本地用户登录是指用户使用 Linux 操作系统的账号和密码登录 FTP 服务器。
vsftpd 安装后默认只支持匿名访问 FTP 服务器,如果您试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 服务拒绝。您可以参考以下步骤配置 vsftpd 服务,以使用Linux账号和密码访问FTP服务器。
1.运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftp_pcap。
useradd ftp_pcap
2.运行以下命令修改ftp_pcap 用户的密码。
passwd ftp_pcap
3.创建一个供FTP服务使用的文件目录。
mkdir /var/ftp/ftp_pcap
4.更改/var/ftp/ftp_pcap目录的拥有者为ftp_pcap。
chown -R ftp_pcap:ftp_pcap /var/ftp/ftp_pcap
chmod -R 777 /var/ftp/ftp_pcap
vim /etc/vsftpd/user_list 增加ftp_pcap用户保存并退出
5.输入命令vim /etc/vsftpd/vsftpd.conf打开vsftpd.conf配置文件并按键i进入编辑模式。
6.修改vsftpd.conf配置文件。
FTP服务器可以配置为主动模式或被动模式。
主动模式下,客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口(本次ftp方案使用被动方案)。
被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置FTP为被动模式的示例参数如下:
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#设置本地用户登录后所在目录
local_root=/var/ftp/ftp_pcap
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定例外用户列表,这些用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式
pasv_enable=YES
#FTP服务器公网IP
pasv_address=10.44.88.24
#设置被动模式下,建立数据传输可使用port范围的最小值
pasv_min_port=39980
#设置被动模式下,建立数据传输可使用port范围的最大值
pasv_max_port=39990
#配置其他参数
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
tcp_wrappers=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=NO
anon_other_write_enable=YES
anon_world_readable_only=NO
pasv_promiscuous=YES
local_max_rate=8000000
max_clients=1000
max_per_ip=1000000
port_enable=YES
port_promiscuous=YES
write_enable=YES
注意:建议您把端口范围设在比较高的一段范围内,比如30000-39000,有助于提高访问FTP服务器的安全性
(1)按Esc键退出编辑模式,然后按键:wq保存并退出文件。
(2)运行touch /etc/vsftpd/chroot_list命令创建chroot_list文件,并写入不受只可以访问其主目录限制的例外用户名单。
注意:如果没有例外用户也必须要有 chroot_list文件,内容可为空。
(3)按键Esc退出编辑模式,然后按键:wq保存并退出文件。
(4)运行以下命令重启vsftpd服务。/etc/init.d/vsftpd restart
到此完成被动模式所有配置。
3设置安全组
1.搭建好 FTP 站点后,您需要在实例安全组的入方向添加放行下列 FTP 端口的规则。
FTP 为被动模式时:端口21,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。
vim /etc/sysconfig/iptables
把这两行加到22端口上面
-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 39980:39990 -j ACCEPT
service iptables restart
2.改完配置文件,不要忘记重启vsftpd服务
systemctl restart vsftpd 或者 /etc/init.d/vsftpd restart
以上完成了FTP服务器的搭建。