vlambda博客
学习文章列表

【技术指南】CentOS安装FTP及配置用户

【技术指南】CentOS安装FTP及配置用户


vsftpd作为FTP服务器,在Linux系统中是非常常用的,下面我们介绍如何在centos系统上安装vsftp。


【技术指南】CentOS安装FTP及配置用户
【技术指南】CentOS安装FTP及配置用户

 什么是vsftpd


vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。
 

【技术指南】CentOS安装FTP及配置用户
【技术指南】CentOS安装FTP及配置用户

安装vsftpd


1. 以管理员(root)身份执行以下命令
 
   
   
 
[root@localhost etc]# yum install vsftpd

2. 设置开机启动vsftpd ftp服务
 
   
   
 
[root@localhost vsftpd]# chkconfig vsftpd on

3. 启动vsftpd服务
[root@localhost vsftpd]# service vsftpd start
 停止vsftpd服务。
 
   
   
 
[root@localhost vsftpd]# service vsftpd stop
 重启vsftpd服务。
 
   
   
 
[root@localhost vsftpd]# service vsftpd restart


【技术指南】CentOS安装FTP及配置用户
【技术指南】CentOS安装FTP及配置用户

配置防火墙


1. 打开/etc/sysconfig/iptables文件
 
   
   
 
[root@localhost vsftpd]# vi /etc/sysconfig/iptables

2. 在REJECT行之前添加如下代码
 
   
   
 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
如果没有RH-Firewall-1-INPUT链,则直接使用INPUT,如下:
 
   
   
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

3. 保存并关闭文件,重启防火墙服务
 
   
   
 
[root@localhost vsftpd]# service iptables restart


【技术指南】CentOS安装FTP及配置用户
【技术指南】CentOS安装FTP及配置用户

配置vsftpd服务器


添加ftp用户,这里增加添加一个用户名为sgl的ftp用户,设置根目录为/ftpuser/sgl,禁止此用户SSh登录,并限制访问其它目录。

1. 打开/etc/vsftpd/vsftpd.conf配置文件,修改控制ftp用户访问其它目录的规则(详细说明参考 步骤五 ),添加或修改配置参数chroot_list_enable和chroot_list_file
chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list

2. 添加ftp用户sgl,根目录为/ftpuser/sgl,并禁止登录SSh权限

[root@localhost vsftpd]# useradd -d /ftpuser/sgl -g ftp -s /sbin/nologin sgl

3. 设置ftp用户sgl的登录密码
 
   
   
 
[root@localhost vsftpd]# passwd sgl

4. 添加或编辑文件chroot_list,添加ftp用户名,每个用户名一行
 
   
   
 
[root@localhost vsftpd]# vi /etc/vsftpd/chroot_list
如:这里是在wwj用户下面追加了刚添加sgl用户
wwj
sgl

5. 重启vsftpd服务
 
   
   
 
[root@localhost vsftpd]# service vsftpd restart
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users



【技术指南】CentOS安装FTP及配置用户
【技术指南】CentOS安装FTP及配置用户

配置规则


在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。
chroot_list_enable=YES/NONO
设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
chroot_list_file=/etc/vsftpd.chroot_list
用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。
chroot_local_user=YES/NONO
用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
通过搭配能实现以下几种效果:
①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。


【技术指南】CentOS安装FTP及配置用户
【技术指南】CentOS安装FTP及配置用户

vsftpd的防火墙配置


1. 以主动方式访问ftp

1.1 打开防火墙端口配置文件iptables
 
   
   
 
[root@localhost vsftpd]# vim /etc/sysconfig/iptables
1.2 在REJECT的前面添加21端口
 
   
   
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
1.3 重启防火墙服务
[root@localhost vsftpd]# service iptables restart

2. 以被动方式访问ftp

2.1 打开ftp的配置文件
 
   
   
 
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
2.2 在配置文件末尾添加以下内容
 
   
   
 
pasv_enable=YESpasv_min_port=40000pasv_max_port=40080pasv_promiscuous=YES
2.3 重启vsftpd服务
 
   
   
 
[root@localhost vsftpd]# service vsftpd restart
2.4 打开防火墙端口配置文件iptables
 
   
   
 
[root@localhost vsftpd]# vim /etc/sysconfig/iptables
2.5 在REJECT的前面添加以下配置
 
   
   
 
-A INPUT -p tcp -m multiport --dports 40000:40080 -j ACCEPT
2.6 重启防火墙服务
 
   
   
 
[root@localhost vsftpd]# service iptables restart


【技术指南】CentOS安装FTP及配置用户
【技术指南】CentOS安装FTP及配置用户

可能的错误


1. 连接时无法切换目录
报以下错误:响应: 500 OOPS: cannot change directory:/home/sgl错误: 严重错误: 无法连接到服务器错误原因:由于selinux里设置了关闭ftp,运行命令查看SE:getsebool -a
|grep ftp,解决如下:[root@localhost vsftpd]# getsebool -a|grep ftpallow_ftpd_anon_write --> offallow_ftpd_full_access --> offallow_ftpd_use_cifs --> offallow_ftpd_use_nfs --> offftp_home_dir --> offftpd_connect_db --> offftpd_use_fusefs --> offftpd_use_passive_mode --> offhttpd_enable_ftp_server --> offtftp_anon_write --> offtftp_use_cifs --> offtftp_use_nfs --> off
解决方法:将ftp_home_dir设置为on,执行以下命令,然后即可ftp登录:[root@localhost vsftpd]# setsebool ftp_home_dir 1或者[root@localhost vsftpd]# setsebool -P ftp_home_dir 1
-P参数表示永久生效,关机重启后无需再设置

2. 上传创建文件时
报以下错误:响应: 553 Could not create file.错误: 严重文件传输错误
问题原因:也是selinux设置的问题解决方法:运行命令[root@localhost vsftpd]# setsebool allow_ftpd_full_access 1
或者[root@localhost vsftpd]# setsebool -P allow_ftpd_full_access 1
如果按上面设置还是无法搞定,终极解决方法:关闭SELinux方法1:永久关闭,需要重启服务器修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。方法2:临时关闭使用命令setenforce 0[root@localhost vsftpd]# setenforce 0
setenforce 1 设置SELinux 成为enforcing模式setenforce 0 设置SELinux 成为permissive模式

内容来源于网络,侵删


【技术指南】CentOS安装FTP及配置用户


鉴于篇幅有限,更多详细课程大纲/知识体系/实体书籍/网工必备工具包等请扫码加群获取!

领取福利


种下一棵树
最好的时间是10年前
其次是现在
学习也一样