|
vsftpd是一个ftp服务器,安全性很高 vs=very secure
1.安装
yum install vsftpd
2.配置文件
配置文件一般是/etc/vsftpd/vsftpd.conf
格式是X=Y 等号两边没有空格
直接查看感觉好像挺多的,但其中大多数都是注释
直接查看有效行
cat /etc/vsftpd/vsftpd.conf | grep -v '^#' |grep -v '^$'
也就是12行
anonymous_enable=YES 允许匿名登录
local_enable=YES 本地用户可以登录
write_enable=YES用户有写权限
local_umask=022 上传到服务器的权限掩码
dirmessage_enable=YES显示某目录下.message隐含文件的内容
xferlog_enable=YES服务器开启上传和下载日志(Linux 日志都放在/var/log下),日志由xferlog_std_format指定
xferlog_std_format=YES选择写入日志的文件(YES写入xferlog_file,NO写入vsftpd_log_file)
connect_from_port_20=YES服务器可以使用主动模式(如果防火墙设置了屏蔽服务器主动发出的连接,主动模式将不启作用)
pam_service_name=vsftpd 设置PAM认证服务的配置文件名称
listen=YES FTP服务器将处于独立启动模式
tcp_wrappers=YES FTP服务器将使用TCP_wrappers(一种安全机制,独立于防火墙)作为主机访问控制方式
userlist_enable=YES 为YES时,服务器将检查/etc/vsftpd/user_list设置文件中指定的用户是否可以访问vsftpd服务器(若在配置文件中设置userlist_deny=YES时,将禁止所有登录,userlist_enable将不起作用,userlist_deny=NO时,只允许/etc/vsftpd/user_list中的用户登录,若没有userlist_deny这一项,默认为userlist_deny=YES)
3.用户访问控制
/etc/vsftpd/ftpusers用于保存不允许进行ftp登录的本地用户账号
/etc/vsftpd/user_list可以对vsftpd服务器更灵活的用户访问控制(见上面的userlist_enable的介绍)
4.匿名用户访问
配置文件中设置anonymous_enable=YES
启动服务后访问
ftp localhost
在用户命中输入anonymous
Name (localhost:quincy): anonymous
密码为ftp
便登录了ftp
可用dir查看下当前目录
ftp> dir
227 Entering Passive Mode (127,0,0,1,62,138).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Mar 01 2013 pub
若是本地用户登录,用户名和密码就是你的本地用户名和密码
5.使用本地用户账户安全性问题
使用本地账户登录,默认会登录i到账户的宿主目录,但可以通过cd ..来到上级目录,甚至到/目录
因此存在安全性问题
5.1 将本地用户禁锢在宿主目录
在配置文件中设置chroot_local_user=YES
这样 cd ..就无法进入宿主目录的上级目录了
5.2使用虚拟用户
步骤如下(操作都在/etc/vsftpd目录下)
5.2.1建立虚拟用户口令库文件
vim login.txt 奇数行用户名,偶数行密码
e.g.
up
abc
down
cba
5.2.2生成vsftpd的认证文件
db_load -T -t hash -f login.txt vsftp_login.db
chmod 600 vsftp_login.db
生成的认证文件后缀一定要是.db
生成后,第一步的文件就可以删除了
5.2.3建立虚拟用户所需的PAM配置文件
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.vu
vim /etc/pam.d/vsftpd.vu
可以把内容全删掉,只写下面两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意不要加后缀.db
5.2.4建立虚拟用户所要访问的目录并设置相应权限
useradd -d /home/ftpv virtual
chmod 700 /home/ftpv/
5.2.5设置vsftpd.conf配置文件
guest_enable=YES 启用虚拟用户功能
guest_username=virtual 虚拟用户身份都为virtual身份
pam_service_name=vsftpd.vu
5.2.6对虚拟用户设置不同的权限
5.2.6.1设置主配置文件
user_config_dir=/etc/vsftpd/virtual_user_conf添加用户配置文件目录设置
5.2.6.2为每个虚拟用户添加权限
在/etc/vsftpd/virtual_user_conf下添加用户配置文件,一个用户对应一个配置文件,
用户配置文件名称与用户名相同,每个虚拟用户都可以独立设置其权限
e.g. vim up
anon_world_readable_only=NO #可以浏览和下载
anon_upload_enable=YES #上传文件
anon_mkdir_wirte_enable=YES #建立和删除目录
anon_other_wirte_enable=YES #建立和改名、删除文件
local_root=XX #指定用户目录为宿主目录下的XX
#更多权限可以查看 man vsftpd.conf
|
|