天天看点

VSFTP服务器学习笔记

FTP服务器传输模式:

主动模式:由服务器主动链接客户机建立数据链路

被动模式:FTP服务器等待客户机建立数据链路

FTP使用的21端口用于与客户机建立命令链路,在主动模式下服务器使用20端口向客户机建立数据链路

21命令端口,20数据端口

说一下主动模式:

FTP客户机由大于1024的N端口(比如1026)向FTP服务器的21端口发送请求建立命令链路,服务器21端口响应,然后服务器的20端口主动向服务器的N+1端口(比如1027)发送数据,然后客户端相应。

被动模式的链接:

FTP服务器会通过已经建立的数据链路通知客户机自己已经打开了大于1024的端口M,用于建立数据链路,当需要传输数据时,FTP客户机会通过N+1端口向FTP服务器的M端口请求建立数据链路,这样20端口就用不上了。

所以我们对安全而言,要采用主动模式。

ftp命令:

get命令用来下载文件,put用来上传文件

mget和mput用于一次下载或上传多个文件,支持同配符

bye命令退出ftp命令

pwd是服务器的当前目录

lcd是显示客户机的当前目录

lcd

lcd c:\转到c:

vsftpd.conf配置文件:/etc/vsftpd/vsftpd.conf

vsftpd.conf缺省配置:

anonymous_enable=YES :允许匿名用户登录

local_enable=YES :允许本地用户登录

write_enable=YES :可以上传,就一定能上传嘛,不能,得看目录的权限

local_umask=022 :上传文件的默认mask

dirmessage_enable=YES :进入目录会有一段提示

xferlog_enable=YES :服务器启用上传和下载日志功能

connect_from_port_20=YES :20端口打开,就意味着启用主动模式

xferlog_std_format=YES :用标准的格式写日志

pam_service_name=vsftpd :认证配置文件是vsftpd

userlist_enable=YES :userlist_enable设置为yes时ftp服务器将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器

listen=YES :监控,工作在独立模式下

tcp_wrappers=YES :支持tcpwrappers

/etc/vsftpd.ftpusers用于保存不允许登录FTP的本地帐号

/etc/vsftpd.user_list

    设置禁止vsftpd.user_list文件中的用户登录

    userlist_enable=YES

    userlist_deny=YES

    设置只允许vsftpd.user_list文件中的用户登录

    userlist_deny=NO

黑名单优先级高于白名单

anonymous和ftp用户都是登录到服务器上的/var/ftp目录中

在vsftpd.conf文件中添加设置项:chroot_local_user=YES

重启vsftpd服务 service vsftpd restart

这样就使得本地用户登录FTP服务器后,宿主目录将座位根目录

假如你要匿名用户上传和建目录开启这两项:

anon_upload_enable=YES

anon_mkdir_enable=YES

虚拟用户

使用独立的文件保存用户帐号

步骤:

1.建立虚拟用户口令库文件

2.生成vsftpd的认证文件  (/etc/pam.d/vsftpd/)

3.建立虚拟用户所需的PAM配置文件

4.建立虚拟用户所需访问的目录并设置相应权限

5.设置vsftpd.conf配置文件

建立虚拟用户口令库文件

口令库文件奇数行为用户名,偶数行为口令

#cat logins.txt

staid

guoli0813

shasha

生成vsftpd的认证文件

使用db_load命令生成认证文件

db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db

设置认证文件只对用户可读可写

chmod 600 /etc/vsftpd/vsftpd_login.db

建立虚拟用户所需的PAM配置文件

手工建立vsftpd.vu文件

# cat /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

建立虚拟用户及要访问的目录并设置相应的权限

建立所有FTP虚拟用户账户使用的系统用户帐号,并设置该帐号宿主目录的权限

useradd -d /home/ftpsite virtual

chmod 700 /home/ftpsite/

设置vsftpd.conf配置文件

在配置文件中添加虚拟用户的配置内容

guest_enable=YES  #支持虚拟用户

guest_username=virtual  #映射为virtual

pam_service_name=vsftpd.vu #修改为vsftpd.vu为验证文件

虚拟用户建立完毕,原来的真实用户就不能登录了

对虚拟用户设置不同的权限

设置主配置文件

在vsftpd.conf文件中添加用户配置文件目录设置

user_config_dir=/etc/vsftpd_user_conf

建立用户配置文件目录

使用mkdir命令建立用户配置文件目录

mkdir /etc/vsftpd_user_conf

为虚拟用户创建单独的配置文件

用户配置文件名称和用户名相同

/etc/vsftpd_user_conf/staid

/etc/vsftpd_user_conf/shasha

每个FTP虚拟用户都可一独立设置其权限

anon_world_readable_only=NO  #只能读而不能干别的

anon_mkdir_write_enable=YES #可以上传文件

anon_other_write_enable=YES #可以删除和修改文件

配置vsftpd服务器中的资源限制

vsftpd服务器中的资源使用可以进行限制

max_clients=100 #允许最多100个客户端

max_per_ip=5 #每个用户只能开启5个线程下载

local_max_rate=500000 #本地用户下载速度500k

anon_max_rate=200000 #匿名用户下载速度200k

配置基于IP的虚拟ftp服务器(这个不写了)

本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/361181,如需转载请自行联系原作者

继续阅读