VSFTP的黑白名单

实验拓扑图

1,配置静态IP [root@ftp ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=static ONBOOT=yes HWADDR=00:0c:29:ae:0f:02 IPADDR=192.168.1.10 NETMASK=255.255.255.0 [root@ftp ~]# service network restart [root@ftp ~]# chkconfig network on 2,安装vsftpd软件 [root@ftp ~]# rpm -q vsftpd vsftpd-2.0.5-16.el5 3,调整匿名上传目录权限,并准备下载测试文件 [root@ftp ~]# chown ftp /var/ftp/pub/ [root@ftp ~]# ls -ld /var/ftp/pub/ drwxr-xr-x 3 ftp root 4096 01-13 23:01 /var/ftp/pub/ [root@ftp ~]# tar jcf /var/ftp/ftpconfig.tar.bz2 /etc/vsftpd/ 4,新建测试用户 [root@ftp ~]# useradd u1 [root@ftp ~]# useradd u2 [root@ftp ~]# useradd laya [root@ftp ~]# passwd  u1 [root@ftp ~]# passwd  u2 [root@ftp ~]# passwd  u3 5,修改vsftpd.conf配置文件开放本地用户 [root@ftp ~]# cat /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=NO      当userlist_enable=NO时不考虑黑/白名单,既不对用户的访问造成影响。 tcp_wrappers=YES 6,重新启动vsftpd服务 [root@ftp ~]# service vsftpd restart [root@ftp ~]# chkconfig vsftpd on 7,XP1客户端测试

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): u1 331 Please specify the password. Password: 230 Login successful. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. u1 226 Directory send OK. ftp: 收到 4 字节,用时 0.00Seconds 4000.00Kbytes/sec. ftp> bye 221 Goodbye.

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): u2 331 Please specify the password. Password: 230 Login successful. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. u2 226 Directory send OK. ftp: 收到 4 字节,用时 0.00Seconds 4000.00Kbytes/sec. ftp> bye 221 Goodbye.

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): laya 331 Please specify the password. Password: 230 Login successful. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 226 Directory send OK. ftp> bye 221 Goodbye.

注意放入/etc/vsftpd/ftpusers中的用户默认为黑名单(既不管怎样这里的用户都不可访问,但对虚拟用户名不起作用), 但不影响其他用户的访问,如u1,u2,laya。 [root@ftp ~]# cat /etc/vsftpd/ftpusers # Users that are not allowed to login via ftp root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody 8,更改/etc/vsftpd/user_list配置文件,把u1,u2加入 [root@ftp ~]# vim /etc/vsftpd/user_list # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied.另外对虚拟用户名也起作用 root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody u1 u2

a, 修改vsftpd.conf配置文件 [root@ftp ~]# cat /etc/vsftpd/vsftpd.conf |grep -v "^#" | grep -v "^$" anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO tcp_wrappers=YES

重新启动vsftpd服务 [root@ftp ~]# service vsftpd restart [root@ftp ~]# chkconfig vsftpd on

XP1客户端测试

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): u1 331 Please specify the password. Password: 230 Login successful. ftp> bye 221 Goodbye.

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): u2 331 Please specify the password. Password: 230 Login successful. ftp> bye 221 Goodbye.

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): laya 530 Permission denied. Login failed. ftp>

b,修改vsftpd.conf配置文件

[root@ftp ~]# cat /etc/vsftpd/vsftpd.conf |grep -v "^#" | grep -v "^$" anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=YES                    //(此时本行也可以不写,效果相同) tcp_wrappers=YES

重新启动vsftpd服务 [root@ftp ~]# service vsftpd restart [root@ftp ~]# chkconfig vsftpd on

XP1客户端测试

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): u1 530 Permission denied. Login failed. ftp> bye 221 Goodbye.

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): u2 530 Permission denied. Login failed. ftp> bye 221 Goodbye.

C:\>ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 2.0.5) User (192.168.1.10:(none)): laya 331 Please specify the password. Password: 230 Login successful. ftp> pwd 257 "/home/laya" ftp> mkdir aa 257 "/home/laya/aa" created ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. aa 226 Directory send OK. ftp: 收到 4 字节,用时 0.00Seconds 4000.00Kbytes/sec. ftp>

注:

 a,当userlist_enable=YES  userlist_deny=NO 则只有/etc/vsftpd/user_list中用户可以访问,既u1,u2可以访问 (前提/etc/vsftpd/ftpusers 中没有这两个用户),其他用户如laya不可访问

b,当只有userlist_enable=YES 仅etc/vsftpd/user_list中用户不可访问,等价于userlist_enable=YES  userlist_deny=YES  此时u1,u2不可访问,但laya可以。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Charlie's Road

Container ViewController自定义转场控制器。

最近接触到新公司的老项目改版。自从来了之后一直在忙另一个项目,也没有看老项目的实现逻辑。 看到设计稿的时候,并不是普通的树形标签导航的样子。大致效果如FaceU...

1261
来自专栏DannyHoo的专栏

iOS开发中解决UIScrollView滚动时NSTimer失效的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

1172
来自专栏岑志军的专栏

ReactNative-综合案例(02)

1767
来自专栏学海无涯

iOS开发之UIRefreshControl使用踩坑

问题描述 接上一个话题,实现了TabBar的点击刷新以后,开始继续写完成功能,刷新UITableView,于是考虑到iOS 10以后,UIScrollView已...

34710
来自专栏Guangdong Qi

小Q项目框架搭建及会动的Tabbar未完待续,持续更新中

1754
来自专栏LeeCen

WKWebView ajax请求Cookie丢失

发现H5里面 ajax请求失败302,这可能Cookie丢失或Cookie不相同了

4921
来自专栏文大师的新世界

7. 偷用Swiper简改

看这段代码应该就很清楚了,如果是android系统就渲染Pager如果是ios就使用横向的ScrollView,修改后的app首页如下:

1023
来自专栏向治洪

React Native 使用react-native-image-picker库实现图片上传功能

react-native-image-picker作为一个集成相机和相册的功能的第三方库,因为其使用相对简单受到前端开发人员的喜爱。 react-native-...

6049
来自专栏iOS Developer

Github源码推荐:(12.25):手势解锁,个人SDK集成,无限循环图片轮播--转自Bison的技术博客

1432
来自专栏编程之旅

iOS开发——头像设置及本地沙盒保存,圆形头像显示

现在的APP中,对于头像的设置,我们大多采用圆形头像,并且需要支持从照相机获取或者从相册中选择用户需要的头像,并且保存在本地或者服务器中。

1863

扫码关注云+社区

领取腾讯云代金券