FTP简述:
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至 远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
一.ftp的启动
安装ftp服务之前
更改selinux配置(后边会说到),将状态改为disabled,配置文件为/etc/sysconfig/selinux,重启生效!!!
配置好yum源(见前文)
yum install vsftpd ##安装vsftpd服务
systemctl start vsftpd ##启动vsftp服务
systemctl enable vsftpd ##开机自启动vsftpd服务
firewall-cmd --permanent --add-service=ftp ##设置防火墙
firewall-cmd --reload ##防火墙重新加载
安装ftp服务:
搭建ftp环境:
测试:
使用一台客户机连接服务端
客户机需要提前安装lftp服务
二.ftp的基本信息
访问数据端口:21
数据传输端口:>1024随机端口
默认发布目录: /var/ftp
访问方式:
lftp 172.25.254.100 匿名登陆
lftp 172.25.254.100 -u student 用户登陆
配置文件:
/etc/vsftpd/vsftpd.conf
登陆报错原因:
500表示文件系统权限过大
530表示认证失败
550服务本身设置不允许
553服务器上文件权限过小 基本都是selinux设置有问题
三.ftp的安全部署
配置文件 /etc/vsftpd/vsftpd.conf
匿名用户:
anonymous_enable=YES|NO ##匿名用户是否可以登陆
anon_upload_enable=YES|NO ##匿名用户可上传
anon_world_readable_only=YES|NO ##匿名用户可下载
anon_mkdir_write_enable=YES|NO ##匿名用户可写
anon_other_write_enable=YES|NO ##匿名用户是否可删除和重命名
anon_root=/目录 ##设定匿名用户家目录
anon_umask=xxx ##匿名用户上传文件默认权限修改
anon_max_rate=102400 (默认以k为单位) ##最大上传速率
chown_uploads=YES|NO
chown_username=student ##匿名用户使用的用户身份修改
1)设置匿名用户无法登录
2)设置匿名用户可以上传
3)设置匿名用户可以下载
4)匿名用户可写
5)匿名用户是否可删除和重命名
本地用户:
local_root=/目录 ##本地用户家目录修改
local_umask=xxx ##本地用户上传文件权限
chroot_local_user=YES
chmod u-w /home/* ##限制本地用户浏览/(根)目录,所有用户被锁定到自己家目录中
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##用户黑名单建立
没有/etc/vsftpd/chroot_list文件时须自己建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##用户白名单建立
1)本地用户家目录建立
2)本地用户上传文件权限
3)限制本地用户浏览/(根)目录
四.ftp虚拟用户的设置
安装好pam服务
1.创建虚拟帐号身份
vim /etc/vsftpd/account ##文件名称任意
帐号 user1
密码 xxxxxuser2
xxxxx............
............
db_load -T -t hash -f /etc/vsftpd/account /etc/vsftpd/account.db
vim /etc/pam.d/westos ##文件名称任意
account required pam_userdb.so db=etc/vsftpd/account
auth required pam_userdb.so db=etc/vsftpd/account
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos (指向/etc/pam.d/westos pam在什么地方就在pam.d下建立什么)
guest_enable=YES
2.虚拟帐号身份指定
guest_username=ftpuser
chmod u-w /home/ftpuser