关于ftp服务器的知识

ftp工作是会启动两个通道: 控制通道 , 数据通道 在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式) PORT模式: 在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21) 发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。 PASV模式: 传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。 1 安装ftp #rpm -qa vsftpd 查看是否已经安装 #yum install -y vsftpd #rpm -ql vsftpd /etc/logrotate.d/vsftpd. vsftpd的日志文件 /etc/pam.d/vsftpd PAM认证文件 /etc/rc.d/init.d/vsftpd 启动脚本 /etc/vsftpd vsftpd的配置文件存放的目录 /etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件 /etc/vsftpd/user_list 禁止或允许使用vsftpd的用户列表文件 /etc/vsftpd/vsftpd.conf 主配置文件 /etc/vsftpd/vsftpd_conf_migrate.sh vsftpd操作的一些变量和设置 /usr/sbin/vsftpd vsftpd的主程序 其他一些说明文档和手册文件略! /var/ftp 匿名用户主目录 /var/ftp/pub 匿名用户的下载目录 #service vsftpd start #chkconfig --level vsftpd #chkconfig --level 2345 vsftpd on 2 匿名用户的登录名:ftp(anonymous) 密码空 ,登录的目录为/var/ftp 用匿名用户登录的时候默认是只有下载的权限,没有上传,创建和删除的权限: #vim /etc/vsftpd/vsftpd.conf anon_upload_enable=YES 上传 anon_mkdir_write_enable=YES 创建 anon_other_write_enable=YES 删除 #service vsftpd restart 为了安全应该禁止匿名用户的登录: #vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO #anon_upload_enable=YES 上传 #anon_mkdir_write_enable=YES 创建 #anon_other_write_enable=YES 删除 #service vsftpd restart 3 创建一个直接登录系统用户来登录ftp: #useradd -s /sbin/nologin viong #passwd viong 用户具有 上传 创建 下载 切换目录 ------------------------------------------------------------------ 4 加强vsftp安全设置: 限制系统用户锁定在家目录: #vim /etc/vsftpd/vsftpd.conf chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list 限制更多的系统用户,把需要限制的用户加入/etc/vsftpd/chroot_list中即可 #touch /etc/vsftpd/chroot_list #cut -d: -f 1 /etc/passwd >>/etc/vsftpd/chroot_list 将本地用户都加入到chroot_list 限制重要系统用户不能登录ftp: #cat /etc/vsftpd/ftpusers 默认已经添加了系统中一些比较重要的用户 #echo "viong" >>/etc/vsftpd/ftpusers 此时viong不能登录ftp 利用ftp用户策略允许登录ftp的系统用户: /etc/vsftpd/user_list 只有在这个文件中的用户才能登录系统: #vim /etc/vsftpd/vsftpd.conf #在userlist_enable=YES 的后面添加 userlist_deny=NO userlist_file=/etc/vsftpd/user_list 设置登录ftp目标ip地址:用iptables设置 --------------------------------------- 搭建支持SSL加密传输的vsftpd: #openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem 生成证书 #vim /etc/vsftpd/vsftpd.conf ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=YES ssl_sslv3=YES rsa_cert_file=/etc/vsftpd/vsftpd.pem 下面是ssl参数一些定义,根据自己需求去修改: ssl_enable=yes/no //是否启用 SSL,默认为no allow_anon_ssl=yes/no //是否允许匿名用户使用SSL,默认为no rsa_cert_file=/path/to/file //rsa证书的位置 dsa_cert_file=/path/to/file //dsa证书的位置 force_local_logins_ssl=yes/no //非匿名用户登陆时是否加密,默认为yes force_local_data_ssl=yes/no //非匿名用户传输数据时是否加密,默认为yes force_anon_logins_ssl=yes/no //匿名用户登录时是否加密,默认为no force_anon_data_ssl=yes/no //匿名用户数据传输时是否加密,默认为no ssl_sslv2=yes/no //是否激活sslv2加密,默认no ssl_sslv3=yes/no //是否激活sslv3加密,默认no ssl_tlsv1=yes/no //是否激活tls v1加密,默认yes ssl_ciphers=加密方法 //默认是DES-CBC3-SHA #service vsftpd restart 用flashftp连接: 连接类型为:FTP使用公开SSL(验证SSL) 地址:192.168.137.130:21 登录类型:普通 用户:viong 密码:123 将文件上传至ftp的试验代码:
linux下配置ftp扩展: linux+nginx+php+mysql环境下,在部署的时候没有添加php的ftp扩展。 1、找到安装的PHP源码包解压的文件夹 进入到到FTP的扩展目录# /root/php-5.3.6/ext/ftp (按自己的软件路径) 我的是找不到安装的文件夹了,就重新下载了一个php的包,然后放到了 /home/www 文件夹下 2、调用phpize程序生成编译配置文件 [root@zj ftp]# /usr/local/php/bin/phpize 注意:Cannot find config.m4. Make sure that you run '/home/admin/php/bin/phpize' in the top level source directory of the module 如出现以上错误,则检查是否进入ftp扩展目录 3. 编译扩展库,分别执行下面的configure和make命令。   ./configure --with-php-config=/usr/local/php/bin/php-config   make   make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下, [root@zj ftp]# cd modules/ [root@zj modules]# ls   ftp.la ftp.so 4、编辑php.ini文档,找到extension_dir的目录,将编译好的扩展文件复制到extension下面 找到第491行看到 extension_dir = "//usr/local/php/lib/php/extensions/" [root@zj modules]#cp ftp.so /usr/local/php/lib/php/extension 我的没有找到 extension_dir 这个设置,然后发现 memcache.so 在/usr/local/php/lib/php/extensions/no-debug-zts-20121212 然后我也就把 ftp.so 放到了这个文件下 5、在php.ini的添加扩展库位置,设置要添加的扩展库。 extension = "ftp.so" 6、重启php-fpm服务 如果不能正常重启fpm服务,就直接   killall php-fpm 然后执行   /usr/local/php/sbin/php-fpm
posted @ 2016-02-28 19:49  猪啊美  阅读(222)  评论(0编辑  收藏  举报