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是显示客户机的当前目录lcdlcd c:\转到c:vsftpd.conf配置文件:/etc/vsftpd/vsftpd.confvsftpd.conf缺省配置:anonymous_enable=YES :允许匿名用户登录local_enable=YES :允许本地用户登录write_enable=YES :可以上传,就一定能上传嘛,不能,得看目录的权限local_umask=022 :上传文件的默认maskdirmessage_enable=YES :进入目录会有一段提示xferlog_enable=YES :服务器启用上传和下载日志功能connect_from_port_20=YES :20端口打开,就意味着启用主动模式xferlog_std_format=YES :用标准的格式写日志pam_service_name=vsftpd :认证配置文件是vsftpduserlist_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=YESanon_mkdir_enable=YES虚拟用户使用独立的文件保存用户帐号步骤:1.建立虚拟用户口令库文件2.生成vsftpd的认证文件 (/etc/pam.d/vsftpd/)3.建立虚拟用户所需的PAM配置文件4.建立虚拟用户所需访问的目录并设置相应权限5.设置vsftpd.conf配置文件建立虚拟用户口令库文件口令库文件奇数行为用户名,偶数行为口令#cat logins.txtstaidguoli0813shashaguoli0813生成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.vuauth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_loginaccount required /lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login建立虚拟用户及要访问的目录并设置相应的权限建立所有FTP虚拟用户账户使用的系统用户帐号,并设置该帐号宿主目录的权限useradd -d /home/ftpsite virtualchmod 700 /home/ftpsite/设置vsftpd.conf配置文件在配置文件中添加虚拟用户的配置内容guest_enable=YES #支持虚拟用户guest_username=virtual #映射为virtualpam_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=YESanon_mkdir_write_enable=YES #可以上传文件anon_other_write_enable=YES #可以删除和修改文件配置vsftpd服务器中的资源限制vsftpd服务器中的资源使用可以进行限制max_clients=100 #允许最多100个客户端max_per_ip=5 #每个用户只能开启5个线程下载local_max_rate=500000 #本地用户下载速度500kanon_max_rate=200000 #匿名用户下载速度200k配置基于IP的虚拟ftp服务器(这个不写了)
本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/361181,如需转载请自行联系原作者
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。