CentOS下安装FTP服务器及配置

通常情况下,向服务器上传代码、文件,vsftp用的还是比较多的。下面是本人安装配置的过程。
安装步骤

1.通过yum来安装vsftpd

[root@localhost ~]# yum -y install vsftpd

2.设置为开机启动

[root@localhost ~]# chkconfig vsftpd on

3修改配置文件

[root@localhost ~]#mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf 

把下面几行注释去掉,或者加上,让其配置生效:

local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
pam_service_name=vsftpd
userlist_enable=YES

4.配置保存后重启vsftpd服务:

[root@localhost ~]# service vsftpd restart

 

使root用户可登陆FTP

(默认root等不可直接登陆,530Permission denied解决方法)

1.首先检查系统是否开启了vsftp服务,如果没有开启,先开启该服务。

2.查看配置

vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。
vsftpd.ftpusers:位于/etc/vsftpd目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。

[root@localhost ~]# vi /etc/vsftpd/ftpusers
vsftpd.user_list:位于/etc/vsftpd目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

[root@localhost ~]# vi /etc/vsftpd/user_list
vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

3.配置修改完成后,执行service vsftpd restart重启vsftpd服务。

添加用户及额外配置

1.设置vsftp的帐号。

    [root@localhost ~]# useradd -d /home/htdocs -s /sbin/nologin 用户名 

2.为添加的账号设置密码

[root@localhost ~]# passwd 用户名
根据提示操作

这样的话,基本的vsftpd服务配置好了。但是这样配置完成后客户端并不能连接上,主要应该是默认防火墙设置下,CentOS的防火墙是不开放ftp服务的,需要添加模块和开放21端口才能提供ftp访问。
1.添加ip_conntrack_ftp 模块

[root@localhost ~]# vi /etc/sysconfig/iptables-config

添加下面一行

IPTABLES_MODULES="ip_conntrack_ftp"

2.打开21端口

[root@localhost ~]# vi /etc/sysconfig/iptables

添加

   #-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

3.重启iptables使新的规则生效

[root@localhost ~]# service iptables restart

到此,应该是可以了,若软件测试连接过程中,在用户验证的时候出现了错误503,应该是selinux设置的问题:可以用下面的命令检查

[root@localhost ~]#getsebool -a |grep ftp

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off

这是selinux的问题,我们只要打开ftp_home_dir的值开启为on:,allow_ftpd_full_access也一同开启即可。

[root@localhost ~]#setsebool -P ftp_home_dir 1
[root@localhost ~]#setsebool -P allow_ftpd_full_access 1

到此,应该解决问题了。可以试试FTP功能是否正常了。