FTP学习报告及详细流程经历 一

来源:互联网 发布:索罗斯做空人民币 知乎 编辑:程序博客网 时间:2024/05/21 08:54
小记:尝试通过记录的方式提高技术能力,促进知识的巩固和记忆以及灵活运用。所以诞生了这一篇试水的博文。总之先尝试着写吧。                                                          ——房贷不息,生命不止

————————————————————————————————————————————————————

FTP搭建与使用

一.搭建FTP

http://www.cnblogs.com/chenmh/p/5365274.html一开始的FTP搭建主要是是参考的这片文章和谷歌的强大支持,这篇博文与我的实际操作差距不小,建议先大概通读此片文章后对照实际情况再决定是否参照本文搭建流程。

1.安装

首先是安装FTP,在linux环境下一般是用的是YUM安装方法,指令很简单:yum -y install vsftpd。然后稍等片刻一个vsftpd就装好啦,不过你以为这样就完了了?只能说太年轻丫~离你能爽快的使用路还很长呢,继续看下去吧。

2.配置

你要做的第二步是查看文件配置,安装完之后在/etc/vsftpd/路径下会存在三个配置文件。
- vsftpd.conf: 主配置文件
- user_list: 指定的用户是否可以访问ftp服务器。
- ftpusers: 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户。(实际上这个文件夹规定的是类似用户组黑名单,与用户组登录权限相关的还有user_lis,这个文件中记录的用户是与主配置文件中userlist_enable和userlist_deny的属性值有关,具体配置可以参考http://blog.csdn.net/bluishglc/article/details/42273197写得很详细)

    其他一些参数说明与参考博文一致,大部分情况下如非需要,建议不要修改咯~
  • ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息
  • idle_session_timeout=60 :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
  • data_connection_timeout=120 :设置客户机在进行数据传输时,设置空闲的数据中断时间
  • accept_timeout=60 设置在多长时间后自动建立连接
  • connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
  • max_clients=200 指明服务器总的客户并发连接数为200
  • max_per_ip=3 指明每个客户机的最大连接数为3
  • local_max_rate=50000(50kbytes/sec) 本地用户最大传输速率限制
  • anon_max_rate=30000匿名用户的最大传输速率限制
  • pasv_min_port=端口
  • pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
  • listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
  • listen_port=端口号 设置FTP工作的端口号,默认的为21
  • local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
  • chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user;
  • chroot_list_enable=yes/no 启用不锁定用户在主目录的名单
  • chroot_list_file=/etc/vsftpd/chroot_list指定列表文件
  • userlist_enable=YES/NO 是否加载用户列表文件;
  • userlist_deny=YES 表示上面所加载的用户允许登录;
  • userlist_file=/etc/vsftpd/user_list 指定列表文件
    PS:这里其实推荐安装WinSCP然后root登录直接修改文件,用jutty改实在的闲的。具体winSCP自行百度谷歌。
    PPS:修改配置后记得重启FTP服务,指令是service vsftpd restart

3.创建用户

第三步你要做的事就是创建一个专用的FTP登录用户(当然你要是用root登录我也拦不住你,只要你保证你的主管不会干掉你就好)。
1) 创建用户XXXX
useradd XXXX
2)设置用户只能ftp登录
usermod -s /sbin/nologin XXXX
3)设置用户密码
passwd XXXX
4)修改FTP默认路径,该路径设置后FTP用户只能登陆该位置下的文件夹,原默认路径为/home/XXXX
usermod -d /xxxxx XXXX
至此你就可以尝试启动FTP服务并用刚才设置的账号登录啦。
PS:然而大部分情形下你还是登不上去,因为线上环境一般会开启selinux防火墙,儿默认情况下FTP服务器是被动连接模式,也就是说远程登录FTP时大部分端口都是不允许连接的,只有修改FTP模式后才可以顺利登陆,针对这一情况修改方法有两种
1.关掉selinux :vim /etc/sysconfig/selinux
改成selinux=disabled
需要重启服务器哦
2.指令:setenforce 0
setenforce 1 :设置SELinux 成为enforcing模式
setenforce 0 :设置SELinux 成为permissive模式

PPS:实际上在后面java代码中你还是会遇到类似的问题,在连接后的代码中你还需要设置一次被动模式

金葵花知识小课堂————“主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。”

如果还是登录失败可以尝试将以下属性全部设置一遍再重启服务试试。如果还是不行的话再使用下面方式:
[root@ zhaiqutianshangxing vsftpd]# setsebool allow_ftpd_full_access 1
[root@ zhaiqutianshangxing vsftpd]# setsebool allow_ftpd_use_cifs 1
[root@ zhaiqutianshangxing vsftpd]# setsebool allow_ftpd_use_nfs 1
[root@ zhaiqutianshangxing vsftpd]# setsebool -P ftp_home_dir 1
[root@ zhaiqutianshangxing vsftpd]# setsebool httpd_enable_ftp_server 1
[root@ zhaiqutianshangxing vsftpd]# setsebool tftp_anon_write 1
[root@ zhaiqutianshangxing vsftpd]# service vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]
[root@ zhaiqutianshangxing vsftpd]# getsebool -a | grep ftp
allow_ftpd_anon_write –> off
allow_ftpd_full_access –> on
allow_ftpd_use_cifs –> on
allow_ftpd_use_nfs –> on
ftp_home_dir –> on
ftpd_connect_db –> off
httpd_enable_ftp_server –> on
sftpd_anon_write –> off
sftpd_enable_homedirs –> off
sftpd_full_access –> off
sftpd_write_ssh_home –> off
tftp_anon_write –> on

0 0
原创粉丝点击