搭建FTP服务

2017-12-29  本文已影响0人  老默2018

我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

使用vsftpd搭建FTP服务,并使用虚拟用户登录

1、安装vsftpd

使用yum工具安装vsftpd包,如下所示:
yum -y install vsftpd db4-utils
db4-utils包用来生成密码库文件

2、建立账号

vsftpd默认可以支持使用系统账号体系登录,但那样不太安全,所以建议使用虚拟账号登录。
建立虚拟登录账号
useradd virftp -s /sbin/nologin
建立与虚拟账号相关的文件
vim /etc/vsftpd/vsftpd_login //内容如下

zpy   //用户名  
1qaz@WSX?  //密码  

chmod 600 /etc/vsftpd/vsftpd_login //修改文件权限,提升安全级别
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //生成vsftpd密文密码
mkdir /etc/vsftpd/vsftpd_user_conf //建立与虚拟账号相关的目录以及配置文件

3、创建与用户对应的配置文件

cd /etc/vsftpd/vsftpd_user_conf
vim zpy //每个用户都有一个自己的配置文件,文件名与用户名一致,具体内容如下:

local_root=/data/ftp  //zpy用户的家目录  
anonymous_enable=NO   //禁用匿名登陆  
write_enable=YES      //可写  
local_umask=022       //指定umask  
anon_upload_enable=NO //禁用匿名上传   
anon_mkdir_write_enable=NO  //禁用匿名账号可写  
idle_session_timeout=600  
data_connection_timeout=120  
max_clients=10  
max_per_ip=5  
local_max_rate=50000  

mkdir /data/ftp //创建zpy家目录
touch /data/ftp/test1.txt //创建文件用来测试
chown -R virftp.virftp /data/ftp
vim /etc/pam.d/vsftpd //在开头添加如下两行

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

4、修改vsftpd的主配文件/etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/vsftpd.conf //修改如下内容(新添加的内容后面一定不能有空格,前车之鉴):
anonymous_enable=NO
再添加如下内容:

chroot_local_user=YES  //将所有用户限制在主目录  
guest_enable=YES  //开启虚拟用户    
guest_username=virftp  //虚拟用户所映射的本地用户  
virtual_use_local_privs=YES  //使虚拟用户拥有和本地用户一样的权限  
user_config_dir=/etc/vsftpd/vsftpd_user_conf  //定义用户配置文件的目录  
allow_writeable_chroot=YES  

5、启动vsftpd并测试

systemctl start vsftpd
systemctl enable vsftpd
用其他主机下载lftp测试
yum -y install lftp
lftp zpy@10.1.13.14
Password:
lftp zpy@10.1.13.14:~>ls
-rw-r--r-- 1 1003 1003 0 Dec 25 05:08 test1.txt

上一篇下一篇

猜你喜欢

热点阅读