【Linux】教你一步一步在CentOS Linux release 7.1上安装vsftpd FTP服务器


1.运行yum安装vsftpd


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


4.禁用防火墙,使得支持ftp服务,另外支持2121端口开放


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]#


5.启动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.


6.使用非本机登录ftp


命令行登录方式:

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用户登录可以了。但是仍然不能进行文件的上传和目录切换。这个需要再进行配置。


7.其他必需的selinux特殊配置


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文件。



你可能感兴趣的:(服务器)