ITPub博客

首页 > IT基础架构 > 网络安全 > vsftpd experiment

vsftpd experiment

原创 网络安全 作者:sgy618 时间:2011-04-21 23:28:52 0 删除 编辑

vsftpd experiment

[@more@]
vsftpd
very security file transfer protocol daemon

需求1:
你在公司需要搭一个FTP服务器,实现文件的共享,匿名下载。限制下载速率。

1、装包vsftpd
yum -y install vsftpd
anon_max_rate=100000 --------100KB/s
vim /etc/vsftpd/vsftpd.conf

2、启动服务
service vsftpd start
3、把要共享文件放到/var/ftp目录下(为什么 ?)
匿名访问FTP服务器,实际使用的是服务器端的名称为ftp的用户,于是访问到的目录将是此用户的家目录/var/ftp
[root@localhost ~]# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

需求2:
能实现匿名上传
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
]# service vsftpd restart
专门创建一个test目录到/var/ftp下,做为匿名上传的位置
[root@localhost ~]# mkdir /var/ftp/test
[root@localhost ~]# ls -ld /var/ftp/test/
drwxr-xr-x 2 root root 4096 04-10 16:14 /var/ftp/test/
[root@localhost ~]# chown ftp.ftp /var/ftp/test/
[root@localhost ~]# ls -ld /var/ftp/test/
drwxr-xr-x 2 ftp ftp 4096 04-10 16:14 /var/ftp/test/

总结:
如果允许写操作,必须在配置文件中定义可写,并在文件系统上定义相应的用户可写。
配置文件的权限定义
文件系统文件的权限定义
!交集!

vim /etc/vsftpd/vsftpd.conf
anon_root=/ftpdir ---- /ftpdir的权限对ftp是否可是rwx 不可以!
匿名用户不能有w权限,当然不具备x权限更好

需求3:
定义非匿名方式,实现更多权限
1、得创建非匿名帐号
vsftpd 可以直接用服务器端useradd创建的帐号做FTP登录帐号
]# useradd -s /sbin/nologin ftpuser1
]# echo 123 | passwd --stdin ftpuser1
2、客户端可以用ftpuser1帐号直接访问FTP服务器端。
]# lftp -u ftpuser1 192.168.1.254
口令: 123
将访问到ftpuser1的家目录
vim /etc/vsftpd/vsftpd.conf

local_max_rate=100000 ---- 100KB/s

service vsftpd restart

安全问题:用户登录FTP后,可以切换目录到服务器端的/
[root@localhost ~]# grep -n ^chroot /etc/vsftpd/vsftpd.conf
95:chroot_list_enable=YES
97:chroot_list_file=/etc/vsftpd/chroot_list
[root@localhost ~]# ls /etc/vsftpd/chroot_listls: /etc/vsftpd/chroot_list: 没有那个文件或目录
[root@localhost ~]# touch /etc/vsftpd/chroot_list
[root@localhost ~]# echo ftpuser1 >> /etc/vsftpd/chroot_list
[root@localhost ~]# service vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]

如果设置为
chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
即, 可以浏览其主目录的上级目录.

所以, 如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在
文件vsftpd.chroot_list中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).
或者, 设置如下
chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list
然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)
中即可(一行一个用户名).

需求4:
匿名和ftpuser1帐号访问的是同一共享目录
匿名只能下载
ftpuser1可上传下载到test目录下

1、装包
yum -y install vsftpd
2、配置
vim /etc/vsftpd/vsftpd.conf
local_root=/var/ftp
95:chroot_list_enable=YES
97:chroot_list_file=/etc/vsftpd/chroot_list

mkdir /var/ftp/test 作为上传目录
[root@localhost ftp]# ls -ld /var/ftp/test/
drwxr-xrwx 2 root root 4096 04-10 16:38 /var/ftp/test/
或者setfacl -m user:ftpuser1:rwx /var/ftp/test

service vsftpd restart
找客户端验证结果


需求5:
对FTP服务器端做黑白名单
put只能上传文件,不能上传目录
userlist_enable=YES
userlist_file为名单(/etc/vsftpd/user_list)
userlist_deny=no userlist_file为白名单(只有名单中的用户才可登录)
userlist_deny=yes userlist_file为黑名单

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23168012/viewspace-1048965/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-01-12

  • 博文量
    104
  • 访问量
    396307