设为首页 收藏本站
查看: 1819|回复: 0

[经验分享] vsftp部署和优化

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-13 14:22:51 | 显示全部楼层 |阅读模式
                      除了pureftp之外,常见的还有系统自带的ftp工具:vsftp。本节介绍vsftp的安装使用。
服务端IP:192.168.147.139        客户端IP:192.168.147.140
服务端192.168.147.139:
安装vsftpd:
[iyunv@cp3 ~]# yum install -y vsftpd
安装完成后就可以使用默认配置启动服务:
[iyunv@cp3 ~]# /etc/init.d/vsftpd start
为 vsftpd 启动 vsftpd:                                    [确定]
查看进程:
[iyunv@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
查看端口:
[iyunv@cp3 ~]# netstat -lnp |grep vsftpd
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      1229/vsftpd
默认的配置允许使用系统用户登录ftp服务器:
[iyunv@cp3 ~]# useradd rachy
[iyunv@cp3 ~]# passwd rachy
更改用户 rachy 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
在rachy的家目录下写点东西:
[iyunv@cp3 ~]# cd /home/rachy
[iyunv@cp3 rachy]# echo "11111">1.txt
[iyunv@cp3 rachy]# mkdir test
[iyunv@cp3 rachy]# ls
1.txt  test
客户端192.168.147.140:
安装lftp命令:
[iyunv@cp4 ~]# yum install -y lftp
登陆ftp服务器:
[iyunv@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上,编辑配置文件:
[iyunv@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服务:
[iyunv@cp3 rachy]# /etc/init.d/vsftpd restart
关闭 vsftpd:                                              [确定]
为 vsftpd 启动 vsftpd:                                    [确定]
在客户端192.168.147.140上重新连接服务器:
[iyunv@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,禁止其登录:
[iyunv@cp3 rachy]# useradd virftp -s /sbin/nologin
创建虚拟用户的明文用户名和密码文件:
[iyunv@cp3 rachy]# vim /etc/vsftpd/vsftpd_login
test1
111222aaa
test2
aaa111ddd
更改其权限为600:
[iyunv@cp3 rachy]# chmod 600 /etc/vsftpd/vsftpd_login
将明文用户名密码文件转化成加密的vsftpd服务能够识别的二进制的库文件:
[iyunv@cp3 rachy]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
创建虚拟用户配置文件存放的目录:
[iyunv@cp3 rachy]# mkdir /etc/vsftpd/vsftpd_user_conf
[iyunv@cp3 rachy]# cd /etc/vsftpd/vsftpd_user_conf/
创建跟用户名同名的配置文件:
[iyunv@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可以访问的目录:
[iyunv@cp3 vsftpd_user_conf]# mkdir /home/virfrp/test1
授权给映射到的系统用户virftp:
[iyunv@cp3 vsftpd_user_conf]# chown -R virftp.virftp /home/virfrp/test1/
编辑认证相关的配置文件pam,配置认证的方式:
[iyunv@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:
[iyunv@cp3 vsftpd_user_conf]# ls /lib/security/pam_userdb.so
/lib/security/pam_userdb.so
[iyunv@cp3 vsftpd_user_conf]# ls /lib64/security/pam_userdb.so
编辑配置文件,修改几处内容:
[iyunv@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服务:
[iyunv@cp3 vsftpd_user_conf]# /etc/init.d/vsftpd restart
关闭 vsftpd:                                              [确定]
为 vsftpd 启动 vsftpd:                                    [确定]
在test1家目录下写点东西:
[iyunv@cp3 vsftpd_user_conf]# cd /home/virftp/test1/
[iyunv@cp3 test1]# echo "11111">1.txt
[iyunv@cp3 test1]# mkdir 2222
在本地测试:
[iyunv@cp3 vsftpd_user_conf]# yum install -y lftp
[iyunv@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
在客户端测试:
[iyunv@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
在浏览器中测试:
QQ截图20170313142230.png
QQ截图20170313142237.png
也可以在Windows下使用ftp客户端访问。

                  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-351054-1-1.html 上篇帖子: pureftp部署和优化 下篇帖子: vsftpd虚拟用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表