CentOS 安装vsftp服务端

来源:互联网 发布:连邦软件 cad 编辑:程序博客网 时间:2024/05/16 19:57

1 - 安装vsftp

yum install vsftpd


2 - 修改配置文件

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NOuserlist_enable=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_listuserlist_file=/etc/vsftpd/user_listuserlist_deny=NOpasv_enable=yespasv_min_port=50000pasv_max_port=60000

3 - 关闭SELinux

vi /etc/selinux/config

SELINUX=disabled

让配置生效

source /etc/selinux/config


4 - 更改防火墙配置,开放21端口

vi /etc/sysconfig/iptables

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

vi /etc/sysconfig/iptables-config

IPTABLES_MODULES="nf_conntrack_ftp nf_conntrack_netbios_ns nf_conntrack_tftp"

重启防火墙
service iptables restart

5 - 关闭DNS解析,加快ftp登陆速度

vi /etc/resolv.conf

reverse_lookup_enable=NO

让配置生效

soucre /etc/resolv.conf


6 - 新建ftp用户, 并制定根目录给用户

添加用户

useradd -d /opt/backups -g ftp -s /sbin/nologin ftpuser

设置密码
passwd ftpuser

新建ftp根目录,并赋予权限

mkdir /opt/backupschown ftpuser:ftp /opt/backupschmod -R 777 /opt/backups


用户目录创建好了之后如果要修改,用下面的命令改变指定用户的目录,前提是改目录也要改成该用户权限

usermod -d /home/share/ ftpuser

重启vsftpd服务生效
service vsftpd start


7 - 设置开机启动

chkconfig vsftpd on

检查是否设置成功

chkconfig --list vsftpd
查看2,3,4,5是否为on


8 - 启动vsfp

service vsftpd start

9 - 从远程服务器连接测试

[root@vm-vc02-SR910 mysql_dump]# ftp 10.XXX.XX.XXConnected to 10.XXX.XX.XX (10.XXX.XX.XX).220 (vsFTPd 2.2.2)Name (10.XXX.XX.XX:root): ftpuser331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> pwd257 "/opt/backups"tp> lcd /rootLocal directory now /rootftp> put 1.txtlocal: 1.txt remote: 1.txt227 Entering Passive Mode (10,XXX,XX,XX,216,226).150 Ok to send data.226 Transfer complete.tp> ls227 Entering Passive Mode (10,XXX,XX,XX,226,227).150 Here comes the directory listing.-rw-r--r--    1 509      50              0 Sep 23 11:04 1.txttp> 

正常登陆ftp,成功上传文件并查看,可以切换ftp下面指定路径,完成。



遇到的问题:

1 - 远程服务器用户连接报错530 Permission denied 

排除了防火墙等其他问题以后,修改vsftp配置文件,设置 userlist_enable=NO后问题解决


2 - 用户可以从远程服务器登录ftp,可以查看ftp各种路径文件,但是不能上传,上传提示553 Could not create file.

查看了各种文件夹权限,都设置没问题,最后发现是SELinux问题,

查看SELinux设置:

[root@beaconvm02 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_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_use_cifs --> off
tftp_use_nfs --> off

问题在于,要把allow_ftpd_full_access设置为on,修改设置
[root@beaconvm02 vsftpd]# setsebool allow_ftpd_full_access on

再查看一遍
[root@beaconvm02 vsftpd]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> on
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_use_cifs --> off
tftp_use_nfs --> off
[root@beaconvm02 vsftpd]#

再重新上传文件,成功。




0 0