阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

vsftp部署和优化

250次阅读
没有评论

共计 5900 个字符,预计需要花费 15 分钟才能阅读完成。

除了 pureftp 之外,常见的还有系统自带的 ftp 工具:vsftp。本节介绍 vsftp 的安装使用。

服务端 IP:192.168.147.139 客户端 IP:192.168.147.140
服务端 192.168.147.139:

安装 vsftpd:
[root@cp3 ~]# yum install -y vsftpd

安装完成后就可以使用默认配置启动服务:
[root@cp3 ~]# /etc/init.d/vsftpd start

为 vsftpd 启动 vsftpd:[确定]

查看进程:
[root@cp3 ~]# ps aux |grep vsftpd
root      1229  0.0  0.0  7180  660 ?        Ss  21:40  0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      1232  0.0  0.0  5980  748 pts/0    S+  21:43  0:00 grep vsftpd

查看端口:
[root@cp3 ~]# netstat -lnp |grep vsftpd
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                  LISTEN      1229/vsftpd

默认的配置允许使用系统用户登录 ftp 服务器:
[root@cp3 ~]# useradd rachy
[root@cp3 ~]# passwd rachy
更改用户 rachy 的密码。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

在 rachy 的家目录下写点东西:
[root@cp3 ~]# cd /home/rachy
[root@cp3 rachy]# echo “11111”>1.txt
[root@cp3 rachy]# mkdir test
[root@cp3 rachy]# ls
1.txt  test
客户端 192.168.147.140:

安装 lftp 命令:
[root@cp4 ~]# yum install -y lftp
登陆 ftp 服务器:
[root@cp4 ~]# lftp rachy@192.168.147.139
口令:
lftp rachy@192.168.147.139:~> ls
-rw-r–r–    1 0        0              6 Mar 10 13:51 1.txt
drwxr-xr-x    2 0        0            4096 Mar 10 13:51 test
lftp rachy@192.168.147.139:~>?
输入?查看 ftp 支持的命令
默认的配置允许客户端用户切换到任意其他非 /root 目录下,进行一些操作,很不安全:
lftp rachy@192.168.147.139:~> cd /
cd 成功, 当前目录 =/
lftp rachy@192.168.147.139:/> ls
dr-xr-xr-x    2 0        0            4096 Feb 22 12:55 bin
dr-xr-xr-x    5 0        0            1024 Feb 22 12:57 boot
drwxr-xr-x  18 0        0            3720 Mar 10 13:38 dev
drwxr-xr-x  75 0        0            4096 Mar 10 13:45 etc
drwxr-xr-x    3 0        0            4096 Mar 10 13:45 home
dr-xr-xr-x  15 0        0          12288 Feb 22 12:55 lib
drwx——    2 0        0          16384 Feb 22 12:52 lost+found
drwxr-xr-x    2 0        0            4096 Sep 23  2011 media
drwxr-xr-x    2 0        0            4096 Sep 23  2011 mnt
drwxr-xr-x    2 0        0            4096 Sep 23  2011 opt
dr-xr-xr-x  126 0        0              0 Mar 10 13:37 proc
dr-xr-x—    3 0        0            4096 Mar 02 20:56 root
dr-xr-xr-x    2 0        0          12288 Feb 22 12:56 sbin
drwxr-xr-x    2 0        0            4096 Feb 22 12:52 selinux
drwxr-xr-x    2 0        0            4096 Sep 23  2011 srv
drwxr-xr-x  13 0        0              0 Mar 10 13:37 sys
drwxrwxrwt    3 0        0            4096 Mar 10 13:40 tmp
drwxr-xr-x  12 0        0            4096 Feb 22 12:53 usr
drwxr-xr-x  19 0        0            4096 Mar 10 13:40 var

为了不让这种情况发生,我们有两种办法限制用户的访问权限:
1. 使用系统用户,打开 chroot 限制选项
2. 建立一个虚拟用户,将真实用户映射到该虚拟用户
1. 在服务端 192.168.147.139 上,编辑配置文件:
[root@cp3 rachy]# vim /etc/vsftpd/vsftpd.conf
打开行:chroot_local_user=YES
如果需要限制多个用户,那么需要:
(1)打开行:chroot_list_enable=YES
(2)打开行:chroot_list_file=/etc/vsftpd/chroot_list
(3)将需要限制的用户添加到 /etc/vsftpd/chroot_list 文件中
重启 vsftpd 服务:
[root@cp3 rachy]# /etc/init.d/vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]
在客户端 192.168.147.140 上重新连接服务器:
[root@cp4 ~]# lftp rachy@192.168.147.139
口令:
lftp rachy@192.168.147.139:~> cd /
cd 成功, 当前目录 =/
lftp rachy@192.168.147.139:/> cd /etc
cd: Access failed: 550 Failed to change directory. (/etc)
lftp rachy@192.168.147.139:/> cd /tmp
cd: Access failed: 550 Failed to change directory. (/tmp)
发现只能切换到 / 目录,但是其他所有目录都不能进入。
2. 在服务端 192.168.147.139 上,创建一个与虚拟用户对应的系统用户 virftp,禁止其登录:
[root@cp3 rachy]# useradd virftp -s /sbin/nologin
创建虚拟用户的明文用户名和密码文件:
[root@cp3 rachy]# vim /etc/vsftpd/vsftpd_login
test1
111222aaa
test2
aaa111ddd
更改其权限为 600:
[root@cp3 rachy]# chmod 600 /etc/vsftpd/vsftpd_login
将明文用户名密码文件转化成加密的 vsftpd 服务能够识别的二进制的库文件:
[root@cp3 rachy]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
创建虚拟用户配置文件存放的目录:
[root@cp3 rachy]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@cp3 rachy]# cd /etc/vsftpd/vsftpd_user_conf/
创建跟用户名同名的配置文件:
[root@cp3 vsftpd_user_conf]# vim test1
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
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
创建 test1 可以访问的目录:
[root@cp3 vsftpd_user_conf]# mkdir /home/virfrp/test1
授权给映射到的系统用户 virftp:
[root@cp3 vsftpd_user_conf]# chown -R virftp.virftp /home/virfrp/test1/
编辑认证相关的配置文件 pam,配置认证的方式:
[root@cp3 vsftpd_user_conf]# vim /etc/pam.d/vsftpd
在最前面添加两行:
#%PAM-1.0
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意:在配置上述库文件路径时需要事先确保该文件存在,上面是 32 位系统的路径,64 位系统的路径请改成 /lib64/security/pam_userdb.so:
[root@cp3 vsftpd_user_conf]# ls /lib/security/pam_userdb.so
/lib/security/pam_userdb.so
[root@cp3 vsftpd_user_conf]# ls /lib64/security/pam_userdb.so
编辑配置文件,修改几处内容:
[root@cp3 vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
在最后面添加:
guest_enable=YES
guest_username=virftp
virtual_use_lcoal_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
重启 vsftpd 服务:
[root@cp3 vsftpd_user_conf]# /etc/init.d/vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]
在 test1 家目录下写点东西:
[root@cp3 vsftpd_user_conf]# cd /home/virftp/test1/
[root@cp3 test1]# echo “11111”>1.txt
[root@cp3 test1]# mkdir 2222
在本地测试:
[root@cp3 vsftpd_user_conf]# yum install -y lftp
[root@cp3 vsftpd_user_conf]# lftp test1@127.0.0.1
口令:
lftp test1@127.0.0.1:~> cd /etc
cd: Access failed: 550 Failed to change directory. (/etc)
lftp test1@127.0.0.1:~> ls
-rw-r–r–    1 0        0              6 Mar 10 15:55 1.txt
drwxr-xr-x    2 0        0            4096 Mar 10 15:55 2222
在客户端测试:
[root@cp4 ~]# lftp test1@192.168.147.139
口令:
lftp test1@192.168.147.139:/> cd /etc
cd: Access failed: 550 Failed to change directory. (/etc)
lftp test1@192.168.147.139:/> ls
-rw-r–r–    1 0        0              6 Mar 10 15:55 1.txt
drwxr-xr-x    2 0        0            4096 Mar 10 15:55 2222

在浏览器中测试:

vsftp 部署和优化

vsftp 部署和优化

也可以在 Windows 下使用 ftp 客户端访问。

FTP 协议详解与 vsftpd 在 Linux 上的安装配置 http://www.linuxidc.com/Linux/2016-09/134831.htm

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd  http://www.linuxidc.com/Linux/2014-12/110070.htm

CentOS7 基于虚拟用户的 vsftpd  http://www.linuxidc.com/Linux/2016-11/137150.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142188.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5900字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中