FTP 数据传输模式:
被动(服务器去连客户端):
客户端----->服务器port:21
建立连接后
客户端开随机端口<------服务器port:20
主动(客户端去连服务器):
客户端----->服务器port:21
客户端开随机端口----->服务器随机端口
VSFTP配置注意事项:
1、匿名登录的根目录为:/var/ftp
2、配置文件:/var/vsftpd/vsftpd.conf
3、local_enable=YES 允许本地账户登陆(使用虚拟用户时,不能设为NO,因为虚拟用户是对应到一个本地用户的)
4、本地用户的限制文件:
可以通过/etc/vsftpd/ftpusers文件限制,默认不允许该文件中列出的本地账户登陆。(可修改/etc/pam.d/vsftpd,修改为只允许该文件内的本地账户登录)
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny(这里需修改为allow) file=/etc/vsftpd/ftpusers onerr=succeed
……
也可以通过/etc/vsftpd/user_list文件限制本地用户登录,相关的vsftpd.conf配置:
第一种情况:userlist_enable=YES(使用该文件)
userlist_deny=YES(该文件中的本地账户不允许登录)
第二种情况:
userlist_enable=YES(使用该文件)
userlist_deny=NO(该文件中的本地账户允许登录)
当然还有种情况就是userlist_enable=NO,就是不是用/etc/vsftpd.userlist文件来控制本地用户登录。
5、禁锢本地登录账户:
使账户登录后根目录为设定的FTP目录,不能通过cd切换到服务器其他目录。
chroot_local_user=YES
禁锢指定的用户:
chroot_list_enable=YES #如chroot_local_user=YES,这里的设置就是说该文件内的用户不受禁锢限制,如果chroot_local_user=NO则文件里的用户受限制,太BT了,NND。
chroot_list_file=/etc/vsftpd/chroot_list(如没有就自建)
虚拟用户配置:
1、touch /etc/vuser --------输入虚拟用户的用户名和密码,奇数行用户名,偶数行密码;
2、db_load -T -t hash -f /etc/vuser /etc/vuser.db ----生成数据库,生成成功后最好rm -rf /etc/vuser。如果没有db_load,请安装相应的包。db4-4.3.29-9.fc6.i386.rpm和db4-utils
3、vim /etc/pam.d/vsftpd
把原来的都注释掉先,
加入auth requied pam_userdb.so db=/etc/vuser #不写.db后缀
account requied pam_userdb.so db=/etc/vuser
也可新建一个认证文件,写上以上两行,但是要修改vsftpd.conf中pam_serice_name参数
……
pam_service_name=vsftpd #默认认证文件,如果是自建的文件,就改成该文件
userlist_enable=YES
tcp_wrappers=YES
……
4、修改vsftpd.conf:
加入
……
guest_enable=YES
guest_username=redhat #对应一个系统账户
虚拟用户登录后的目录为对应的系统账户的家目录。可在建用户时指定用户的家目录,不一定是/home下的用户名目录。(useradd -d /home/ftpsite redhat;chmod 700 /home/ftpsite)
针对不同虚拟用户使用不同的权限:
mkdir /etc/vsftpd/vsftpd_user_conf
touch /et/vsftpd/vsftpd_user_conf/mike #mike用户的权限
写入相应的权限
anon_world_readable_only=NO #表示用户可以浏览 FTP目录和下载文件
anon_upload_enable=YES #表示用户可以上传
anon_mkdir_write_enable=YES #表示用户具有建立和删除目录的权限
anon_other_write_enable=YES #表示拥护具有文件改名和删除文件的权限
阅读(586) | 评论(0) | 转发(0) |