上海专业网站制作开发,wordpress付款可见原理,公司网页原型设计,兰州市最新通知一、ftp连接方式 1、命令连接 ftp在与用户交互时#xff0c;首先打开的是TCP的21号端口#xff0c;建立命令连接#xff0c;这个连接会始终存在#xff0c;直到用户输入bye的那一刻#xff0c;才断开命令连接。 2、数据连接 1#xff09;主动连接 主动连接是基于TCP21号端… 一、ftp连接方式 1、命令连接 ftp在与用户交互时首先打开的是TCP的21号端口建立命令连接这个连接会始终存在直到用户输入bye的那一刻才断开命令连接。 2、数据连接 1主动连接 主动连接是基于TCP21号端口的这种方式下是ftp服务器主动去连接客户端的而客户端该使用哪个端口来响应这个请求呢在这种情况下ftp服务器和客户端就会达成一个共识ftp服务器主动连接请求的端口是用于命令连接的端口加1如果端口被占用就再加1直到找到空闲的端口为止。假如客户端与服务端建立的命令连接是CIP,12345,SIP,21 此时客户端使用12345这个端口与ftp服务器的21号端口建立命令连接那么在主动连接时服务器就会使用12345112346这个端口去主动连接客户端。 使用主动连接这种方式去连接客户端就必然会造成一种缺陷客户端是不向外提供服务的所以对于像这种主动来扫描它端口的行为就会被认为是一种赤裸裸的挑衅一种攻击因此很容易被客户端防火墙拒绝掉造成连接的失败。 2被动连接 被动连接是基于TCP的随机端口这种方式下客户端会发送给服务器两个数字如12389那么这时建立的数据连接端口就是123*25689。 二、用户认证方式 1、匿名用户 在登录FTP时使用默认的用户名一般是ftp或anonymous 2、系统用户 使用系统用户登录在/etc/passwd中 3、虚拟用户 FTP虚拟用户是FTP服务器的专有用户使用虚拟用户登录FTP只能访问FTP服务器提供的资源大大增强了系统的安全。 虚拟用户的优点 1独立即为虚拟的那么不会受到系统其他用户的影响 2安全如果vsftpd用本地用户搭建的话有可能由于限制目录权限等问题而引发安全为题 三、配置虚拟用户实现安全控制vsftpdpam_mysqlmysql 1、使用ftp虚拟用户案例 某技术论坛需要做一个与用户交流使用的FTP服务器需实现以下2条功能 1专用账号ftpuser1允许用户上传文件、下载文件、删除文件、创建目录 2专用账号ftpuser2则只允许用户下载不允许上传 2、新建本地用户vuser 为什么需要本地用户呢因为虚拟用户在服务器系统上不存在所以需要新建一个本地用户把所有的虚拟用户映射为一个系统用户它们访问时的文件目录就是此系统用户的家目录默认权限是700 3、安装相关软件程序 1 [rootnmshuishui ~]# yum -y install vsftpd mysql-server mysql-devel pam_mysql 4、创建虚拟用户账号 1准备数据库及相关表 1创建数据库 1 [rootnmshuishui ~]# service mysqld start 2授权管理数据库的用户及网段 3为vsftpd数据库创建用户表 2添加测试的虚拟用户 为了密码安全在为虚拟用户添加密码时应该使用PASSWORD函数加密后存储 5、配置vsftpd 1建立基于pam认证配置文件 1 [rootnmshuishui ~]# vim /etc/pam.d/vsftpd.mysql 添加如下两行 1 2 auth required /lib64/security/pam_mysql.so uservsftp passwdvsftpd host172.16.251.93 dbvsftpd tableusers usercolumnname passwdcolumnpassword crypt2 account required /lib64/security/pam_mysql.so uservsftp passwdvsftpd host172.16.251.93 dbvsftpd tableusers usercolumnname passwdcolumnpassword crypt2 注意由于mysql的安装方式不同pam_mysql.so基于unix sock连接mysql服务器时可能会出问题此时建议授权一个可远程连接的mysql并访问vsftpd数据库的用户。 2修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf使其支持mysql认证 3启动vsftpd服务进行测试 为了以示区别在公共目录/var/ftp/pub目录下touch一个pub.txt在/var/ftproot/目录下touch一个ftproot.txt 1匿名用户登录 2虚拟用户ftpuser1登录 再看它所处的目录是在/var/ftproot/目录下有文件为证 3虚拟用户ftpuser2登录 虚拟用户ftpuser2登录后与ftpuser1登录所处的位置完全一样不再贴图。 6、配置虚拟用户的访问权限 vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录只需要在vsftpd.conf指定其路径及名称即可。 1配置vsftpd为虚拟用户提供配置文件目录 1 2 #vim /etc/vsftpd/vsftpd.conf user_config_dir/etc/vsftpd/vusers #添加此项 2创建虚拟用户的配置文件目录并提供配置文件 1 2 3 4 5 6 [rootnmshuishui ~]# cd /etc/vsftpd/ #进入vsftpd目录 [rootnmshuishui vsftpd]# mkdir vusers #创建虚拟用户的配置文件目录 [rootnmshuishui vsftpd]# cd vusers #进入虚拟用户的配置文件目录 [rootnmshuishui vusers]# touch ftpuser1 ftpuser2 #提供虚拟用户的配置文件 [rootnmshuishui vusers]# ls ftpuser1 ftpuser2 3配置虚拟用户的访问权限 1ftpuser1允许用户上传文件、下载文件、删除文件、创建目录 1 2 3 4 5 #vim ftpuser1 anon_upload_enableYES anon_mkdir_write_enableYES anon_other_write_enableYES anon_umask022 在windows上使用FlashFXP测试 2ftpuser2只允许用户下载不允许上传 既然只允许ftpuser2下载不允许上传那就不需要给它任何权限了只要ftpuser1上传的文件可读ftpuser2即可下载。 四、经验分享时刻 1、如果没有iptables规则的话请关闭iptables否则它会阻挡你vsftp服务的正常运行 2、如果不使用selinux也请关闭如果不关闭会报下面这个错使用FlashFXP连接FTP服务器 本文转自 nmshuishui 51CTO博客原文链接http://blog.51cto.com/nmshuishui/1390942如需转载请自行联系原作者