本文共 2958 字,大约阅读时间需要 9 分钟。
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_enable=YES 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 guoli0813 生成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服务 service vsftpd restart 虚拟用户建立完毕,原来的真实用户就不能登录了 对虚拟用户设置不同的权限 设置主配置文件 在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_upload_enable=YES 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,如需转载请自行联系原作者