如何在CentOS 6.3中配置FTP服务器–vsftpd

时间:2019-08-20 17:58:12  来源:igfitidea点击:

vsftpd是“非常安全的FTP守护程序”的意思。(Very Secure FTP Daemon)

vsftp是一个用于类Unix系统(包括Linux)的FTP服务器。
支持IPv6和SSL。FTP协议默认端口:20和21

vsftpd是Ubuntu、CentOS、Fedora、NimbleX、Slackware和rhellinux发行版中的默认FTP服务器。

服务器信息:

[root@localhost vsftpd]# cat /etc/issue
CentOS release 6.3 (Final)
Kernel r on an m

[root@localhost vsftpd]# uname -ar
Linux localhost.localdomain 2.6.32-279.el6.i686 #1 SMP Fri Jun 22 10:59:55 UTC 2012 i686 i686 i386 GNU/Linux
[root@localhost vsftpd]# rpm -qa|grep vsftpd
vsftpd-2.2.2-11.el6.i686
[root@localhost vsftpd]# getenforce
Enforcing
[root@localhost vsftpd]#

安装vsftp服务器步骤:

安装vsftpd包

yum install -y vsftpd

备份vsftpd.conf文件

cd /etc/vsftpd
cp -p vsftpd.conf vsftpd.conf.orig

编辑vsftpd.conf文件

内容参考如下:

[root@localhost vsftpd]# egrep -v "^#|^$" vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@localhost vsftpd]#

在启用了selinux的系统中,执行下面命令,运行访问ftp目录

[root@localhost vsftpd]# getsebool -a|grep ftp
allow_ftpd_anon_write  off
allow_ftpd_full_access  off
allow_ftpd_use_cifs  off
allow_ftpd_use_nfs off
ftp_home_dir  off
ftpd_connect_db  off
ftpd_use_passive_mode  off
httpd_enable_ftp_server  off
tftp_anon_write  off
[root@localhost vsftpd]# setsebool -P ftp_home_dir on
[root@localhost vsftpd]# 
[root@localhost vsftpd]# getsebool -a|grep ftp
allow_ftpd_anon_write  off
allow_ftpd_full_access  off
allow_ftpd_use_cifs  off
allow_ftpd_use_nfs  off
ftp_home_dir  on
ftpd_connect_db  off
ftpd_use_passive_mode  off
httpd_enable_ftp_server  off
tftp_anon_write  off
[root@localhost vsftpd]#

配置防火墙

开放ftp服务器使用的21号和20号端口。

编辑后重新启动iptable。

[root@localhost sysconfig]#cd /etc/sysconfig
[root@localhost sysconfig]#cp -p iptables iptables.orig

[root@localhost sysconfig]# cat iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j REJECT
COMMIT


[root@localhost sysconfig]# /etc/init.d/iptables restart

启动vsftp服务器

[root@localhost ~]# /etc/init.d/vsftpd start

在服务器中创建用户并设置其密码。

useradd test
passwd test

现在尝试从ftp客户端登录。

在linux中,可以使用命令

ftp server_ip

vsftpd 配置文件

ftpusers文件 中是不允许通过ftp登录的用户列表。

对于user_list文件,如果userlist_deny=NO,则只允许列表中的用户登录。
如果userlist_deny=YES(默认),则不允许列表中的用户登录。