centos7搭建FTP服务 |
1. FTP协议占用的两个端口: 21端口:命令控制,用于接收客户端执行的FTP命令。 20端口:数据传输,用于上传下载文件数据。 2. FTP数据传输类型: 主动模式:FTP服务端主动向FTP客户端发起连接请求。 被动模式:FTP服务端等待FTP客户端的连接请求。 安装 vsftpd服务 使用yum命令:yum install vsftpd -y 清空防火墙的默认规则:iptable -F 保存清空防火墙的规则:service iptables save Vsftppd的程序与配置文件: 主程序 /usr/sbin/vsftpd 用户禁止登陆列表 /etc/vsftpd/ftpusers /etc/vsftpd/user_list 主配置文件 /etc/vsftpd/vsftpd.conf 查看Vsftpd程序的主配置文件: cat /etc/vsftpd/vsftpd.conf 备份vsftpd的主配置文件: mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak 过滤掉所有包含#号的行,并将过滤结果写回到vsftpd.conf文件中: grep -v “#” /etc/vsftpd/vsftd.conf_bak > /etc/vsftpd/vsftp.conf 此时再分析下vsftpd程序的主配置文件: cat /etc/vsftpd/vsftpd.conf anonymous_enable=YES local_enable=YES write_enable=YES local umask=022 vsftpd程序配置文件参数的作用: 参数 作用 listen=[YES|NO] 是否以独立运行的方式监听服务。 listen_address=IP地址 设置要监听的IP地址。 listen_port=21 设置FTP服务的监听端口。 Vstfpd的验证方式: Vsftp程序提供的FTP五福可选认证方式,分别匿名访问、本地用户、虚拟用户。 匿名访问:任何人无需验证口令即可登入FTP服务器。(就是所有人均可以随意登入FTP服务,这样就会产生安全问题)。 本地用户:使用FTP服务器中用户、密码信息。 虚拟用户:创建独立的FTP账号资料。 这两项需要用户账户和口令后才能登入ftp服务,更加的安全,就很安全。 参数 作用 Download_enable=[YES|NO] 是否允许下载文件。 userlist_enable=[YES|NO] userlist_deny=[YES|NO] 是否启用“禁止登陆用户名单。” max_clients=0 最大客户端连接,0为不限制 作用 作用 max_per_ip=0 同一IP地址最大连接数,0位为不限制 anonymous_enable=[YES|NO] 是否允许匿名用户访问。 anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件。 anon_umask=022 匿名用户上传文件的umask值。 anon_root=/var/ftp 匿名用户的FTP根目录。 anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录。 anon_other_write_enable=[YES|NO] 是否开放匿名用户其他写入权限。 local_max_rate=0 本地用户最低最大传输速率,0为不限制。 匿名访问模式 FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境不要放敏感的数据,以免泄露,vsftpd程序默认已经允许匿名访问模式,我们要开启匿名用户的上传和写入权限: vim /etc/vsftpd/vsftpd.conf 参数 作用 anonymous_enable=YES 允许匿名访问模式。 anon_umask=022 匿名用户上传文件umask值。 anon_upload_enable=YES 允许匿名用户上传文件。 anon_mkdir_write_enable=YES 允许匿名用户创建目录。 anon_other_write_enable=YES 允许匿名用户修改目录名或删除目录。 保存并退出vsftpd.conf文件,再重启vsftpd服务并设置为开机自启动。 systemctl restart vsftpd systemctl enable vsftpd 注意:日常工作中也要将服务加到启动项中。
Linux连接到FTP,格式:ftp [参数] [ip] 如果没有默认安装,请执行:yum install ftp -y即可
上面防火墙规则清空,也允许了匿名用户创建目录与写入权限,为什么会拒绝呢? 上面设置匿名访问的ftp根目录为/var/ftp/pub ls ld /var/ftp/pub 发现输出的匿名用户的FTP根目录所有者和组都是root,所以匿名用户没有权限,我们修改为ftp。 chown ftp /var/ftp/pub 再创建文件夹发现还是错误550,,这时候就想到SELinux服务。 查看所有与ftp相关的SELinux规则: getsebool -a | grep ftp 设置SELinux服务对ftp服务的访问规则策略为允许。 Setsebool – P ftpd_full_access=on 这样创建文件和文件夹就没问题了。 |