sudo yum install vsftpd
2.安装完成后,修改vsftpd ftp登录用户配置文件
如果你希望可以使用root用户登录ftp的话,需要做以下修改
/etc/vsftpd/ftpusers
该文件中定义的用户,是不允许通过ftp登录的。 而默认情况下,这里的用户列表有root用户,因此为了让root用户可以ftp方式登录,此处需要注释掉root。
该文件先于下面的文件检查ftp用户。
/etc/vsftpd/user_list
该文件的使用方法与/etc/vsftpd/vsftpd.conf中的配置项userlist_deny配套使用。正如,user_list文件中的注释描述一样,如下:
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
3.配置ftp服务监听端口,默认是21,这里修改为2121(当然也可以使用默认的21)
/etc/vsftpd/vsftpd.conf
添加一行:
listen_port=2121
其他常用配置:
初始登录主目录:local_root=/home
firewall-cmd --zone=public --add-port=2121/tcp --permanent
firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --reload
firewall-cmd --list-all
[root@localhost vsftpd]# firewall-cmd --list-all
public (default, active)
interfaces: eno16777736
sources:
services: dhcpv6-client http https ssh
ports: 8080/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@localhost vsftpd]# firewall-cmd --zone=public --add-port=2121/tcp --permanent
success
[root@localhost vsftpd]# firewall-cmd --zone=public --add-service=ftp --permanent
success
[root@localhost vsftpd]# firewall-cmd --reload
success
[root@localhost vsftpd]# firewall-cmd --list-all
public (default, active)
interfaces: eno16777736
sources:
services: dhcpv6-client ftp http https ssh
ports: 2121/tcp 8080/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@localhost vsftpd]#
[root@localhost vsftpd]# /bin/systemctl restart vsftpd
[root@localhost vsftpd]# /bin/systemctl status vsftpd
vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled)
Active: active (running)since 日 2016-01-10 12:52:13 CST; 3s ago
Process: 10040 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 10042 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─10042 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
1月 10 12:52:13 localhost.localdomain systemd[1]: Stopping Vsftpd ftp daemon...
1月 10 12:52:13 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
1月 10 12:52:13 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
命令行登录方式:
C:\Users\DevinWu>ftp
ftp> open 192.168.11.112 2121
连接到 192.168.11.112。
220 (vsFTPd 3.0.2)
用户(192.168.11.112:(none)): root
331 Please specify the password.
密码:
230 Login successful.
ftp>
到这里,一个简单的ftp用户登录可以了。但是仍然不能进行文件的上传和目录切换。这个需要再进行配置。
sestatus
sestatus -b | grep ftp
getsebool -a | grep ftp
setsebool
永久性生效:setsebool -P ftpd_full_access on
临时生效,重启后恢复off:setsebool ftpd_full_access on
[root@localhost vsftpd]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
[root@localhost vsftpd]# sestatus -b|grep ftp
ftp_home_dir off
ftpd_anon_write off
ftpd_connect_all_unreserved off
ftpd_connect_db off
ftpd_full_access off
ftpd_use_cifs off
ftpd_use_fusefs off
ftpd_use_nfs off
ftpd_use_passive_mode off
httpd_can_connect_ftp off
httpd_enable_ftp_server off
sftpd_anon_write off
sftpd_enable_homedirs off
sftpd_full_access off
sftpd_write_ssh_home off
tftp_anon_write off
tftp_home_dir off
[root@localhost vsftpd]# setsebool -P ftpd_full_access on
[root@localhost vsftpd]# getsebool -a|grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> on
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
到这里,简单的vsftpd ftp服务器的功能已经基本可用了。你可以正常的上传和下载文件了。
如果还有其他配置要求,可以具体在修改vsftpd.conf文件。