匿名用户
FTP协议占用两个端口号:
21端口:命令控制,用于接收客户端执行的FTP命令。html
20端口:数据传输,用于上传、下载文件数据。 linux
实验:匿名访问,服务器192.168.10.10 客户端192.168.10.20 匿名访问模式的FTP根目录为/var/ftp:
第1步:
服务器端,安装vsftpd服务,
yum install vsftpd -y
第2步:
服务器端,编辑配置文件: vim /etc/vsftpd/vsftpd.conf 在配置文件中追加:第一项原配置文件中已存在
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
第3步:
客户端,安装ftp服务,
yum install ftp -y
第4步:
客户端,使用命令: ftp 192.168.10.10 用户名Name: anonymous 密码空密码。
建立文件夹时,权限被拒绝。是SELinux的限制,和/var/ftp的全部者的限制
ftp> mkdir file
550 Permission denied.
第5步:
服务器端,
chown ftp /var/ftp/pub
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
第6步:
客户端进行验证。
本地用户
本地用户即服务器端(除root外)的普通用户。
第1步:
服务器端编辑配置文件: vim /etc/vsftpd/vsftpd.conf 追加:已经有的项目不添加
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
userlist_deny=YES
userlist_enable=YES
第2步:
/etc/vsftpd/ftpusers /etc/vsftpd/user_list 禁止列表
服务器端vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么建立个普通用户abc 并添加密码:
useradd abc
passwd abc
第3步:
服务器端设置SELinux: setsebool -P ftpd_full_access=on
第4步:
客户端登陆ftp192.168.10.10 并验证 ,建立的文件位于abc帐户家目录:/home/abcweb
虚拟用户
http://blog.sina.com.cn/s/blog_3edc5e2e0102vzv8.html权限设置参考
http://blog.chinaunix.net/uid-324202-id-144759.html 数据库MySQL算法
虚拟用户不是系统中存在的,所以比本地用户安全,步骤
第1步:创建虚拟FTP用户数据库文件。数据库
第2步:建立FTP根目录及虚拟用户映射的系统用户。vim
第3步:创建支持虚拟用户的PAM认证文件。安全
第4步:在vsftpd.conf文件中添加支持配置。服务器
第5步:为虚拟用户设置不一样的权限。session
第6步:重启vsftpd服务,验证明验效果。
第1步:创建虚拟FTP用户数据库文件。
服务器端,切换目录cd /etc/vsftpd/
[root@linuxprobe vsftpd]# vim vuser.listapp
//单数行为账号,双数行为密码。
linuxprobe
pa33w0rd
blackshield
pa22w1rd
使用db_load命令用HASH算法生成FTP用户数据库文件vuser.db: db_load -T -t hash -f vuser.list vuser.db
查看文件:file vuser.db
FTP用户数据库内容很敏感,因此权限给小一些:chmod 600 vuser.db
第2步:建立FTP根目录及虚拟用户映射的系统用户。
建立用户virtual并设置为不容许登录系统并定义该用户的家目录:useradd -d /var/ftproot -s /sbin/nologin virtual
为保证其余用户能够访问,给予rwxr-xr-x权限:chmod -Rf 755 /var/ftproot/
第3步:创建支持虚拟用户的PAM认证文件。
[root@linuxprobe ~]#
vim /etc/pam.d/vsftpd.vu
//参数db用于指向刚刚生成的vuser.db文件,但不要写后缀。
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
第4步:在vsftpd.conf文件中添加支持配置。
vim /etc/vsftpd/vsftpd.conf
----------------------------------
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
allow_writeable_chroot=YES
-------------------------------------
添加后的配置文件,已测试,可直接复制
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir
第5步:为虚拟用户设置不一样的权限。
如今不管是linuxprobe仍是blackshield账户,他们的权限都是相同的——默认不能上传、建立、修改文件,
若是但愿用户blackshield可以彻底的管理FTP内的资料,就须要让FTP程序支持独立的用户权限配置文件了:
指定用户独立的权限配置文件存放的目录:vim /etc/vsftpd/vsftpd.conf (user_config_dir=/etc/vsftpd/vusers_dir)
建立用户独立的权限配置文件存放的目录:mkdir /etc/vsftpd/vusers_dir/
切换进入到该目录中:cd /etc/vsftpd/vusers_dir/
建立空白的linuxprobe的配置文件:touch linuxprobe
指定blackshield用户的具体权限:vim blackshield 下面一段直接复制会报错。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
第6步:重启vsftpd服务,验证明验效果。
setsebool -P ftpd_full_access=on
在客户端验证以上两个用户的权限。
linuxprobe用户不能建立文件夹, blackshield用户能够建立文件夹
-----------------------------------------------------------------------------------实际应用例子-------------------
ftp服务器匿名用户设置
匿名用户在服务器端映射到ftp用户下
/一、主配置文件:/etc/vsftpd/vsftpd.conf 删除默认配置增长如下内容:
客户端只能下载~:
anonymous_enable=YES
no_anon_password=YES 匿名登陆系统不检测密码,一般是email
anon_max_rate=1000000 最大带宽10M
data_connection_timeout=60 超时60s
idle_session_timeout=600 发呆超过10分钟断线
max_clients=50 最大链接数及每一个IP可用链接
max_per_ip=5
local_enable=NO
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
banner_file=/etc/vsftpd/anon_welcome.txt 欢迎信息
----------------------------------------------------------------------------------
二、让匿名用户能够上传/下载资料(权限开放最大)上一个配置文件后面增长:
write_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
改文件夹权限:
mkdir /var/ftp/uploads
chown ftp /var/ftp/uploads
还要修改seLinux:
setsebool -P ftpd_anon_write=on
setsebool -P ftpd_full_access=on
--------------------------------------------------------------------------/
三、让匿名用户具备上传权限,不能下载(实际应用案例:经审核才能下载),上传以后就在客户端看不见了
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
chown_uploads=YES
chown_username=daemon 将上传文件全部者改成daemon因此没法下载