#1.部署 FTP 服务器
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定
FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法,在 RED HAT ENTREPRISE LINUX 6 中。 FTP 服务器包的名称为 VSFTPD , 它代表 Very Secure File TransferProtocolDamon 服务器名称,也叫做 vsftpd,默认配置文件让 ANONYMOUS 用户只能下载位于 CHROOT 目录中的内容。 /var/ftp/ 这意味着远程 FTP 客户端能以用户anonymous 或 ftp 身份连接到服务器 ( 无需密码 ), 并从 ftp服务器上的 /var/ftp/ 目录下载文件 ( 其本地 ftp 用户可以读取这些文件 )
#2.安装 vsftpd 包并启动服务
yum install vsftpd -y ##安装vsftp服务
systemctl start vsftpd ##启动vsftp服务
systemctl stop firewalld ##关闭防火墙
systemctl enable vsftpd ##开机启动vsftp服务
配置好yum源安装vsftp服务
启动vsftp服务,设置开机启动vsftp服务
2.命令方式配置防火墙(防火墙处于开启状态)
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
图形界面配置防火墙
firewall-config (防火墙处于开启状态)
Configuration :选择permnent
Public 下选中ftp
Options :选择reload firewall
关闭退出
3.配置内核防火墙文件
/etc/sysconfig/selinux
SELINUX=disabled
4.reboot重启
命令:getenforce
Disabled 关闭内核防火墙成功
5.vsftp文件信息
/etc/ftp 默认发布目录
/etc/vsftp 配置目录
6.vsftpd服务的配置参数(/etc/vsftp ) 配置完成后重启服务
报错说明:530认证失败 550程序不允许 553服务器文件系统不允许 500权限过大
(1)匿名用户登陆设定
anonymous_enable=YES ##匿名用户可以登陆
anonymous_enable=NO ##匿名用户不能登陆
(2)匿名用户上传文件
vim /etc/vsftpd/vsftpd.conf 编辑ftp配置文件
chgrp ftp /var/ftp/pub 编辑组成员
chmod 775 /var/ftp/pub 组权限
lftp 172.25.254.109
cd /pub
put /file
anon_world_readable_only=NO ##允许匿名用户下载
(3)anon_mkdir_write_enable=YES ##允许匿名用户建立目录
550报错mkdir程序不允许创建目录
(4)anon_other_write_enable=YES ##允许匿名用户重命名和删除
550报错是命令不允许,因为重命名的时候,文件名冲突
(5) anon_root=/westos ##设置匿名用户家目录
(6)anon_umask=022 ##设置匿名用户上传的文件权限
(7)一组命令:
chown_uploads=YES 开启更改上传文件的用户的功能
chown_username=student 上传文件的用户改为student
chown_upload_mode=0644 将上传文件的用户权限改为0644 umask值会自动失效
(8)anon_max_rate=102400 设置文件上传速度为100k/s
制作大文件
(9)max_clients=2 ##最大链接数,设置连接ftp的最大数量2个
(10)local_root=/student ##本地用户家目录
(11)chroot_local_user=YES 限制本地用户cd出家目录,锁在家目录中(需删除写权限)
chmod u-w /home/* 需删除写权限
(12)chroot_local_user=NO 取消限制本地用户cd出家目录(需删除写权限)
(13) 组命令
``
chroot_list_enable=YES yes开启白名单
(default follows)
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list 编辑写入限制用户名,写进去的用户可以自由cd目录,没写进去的锁在家目录
vim /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/chroot_list
(15)组命令:
chroot_list_enable=NO ##NO开启黑名单
(default follows)
chroot_list_file=/etc/vsftpd/chroot_list ##黑白名单
vim /etc/vsftpd/chroot_list ##编辑写入限制用户名,写进去的用户不能cd目录,锁在家目录中
vim /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/chroot_list
(16)限制用户登录:
用户登录黑名单
配置文件:/etc/vdftpd/ftpusers ##设置永久黑名单
/etc/vsftpd/user_list ##设置临时黑名单
把用户westos设为永久黑名单
(不用重新启动vsftpd服务,即改即生效)
白名单设置(在里边的用户可以登陆)
vim /etc/vdftpd/vsftpd.conf
>>userlist_deny=NO
/etc/vdftpd/ftpusers 用户白名单(优先级高)
/etc/vsftpd/user_list 用户临时白名单
7 ,ftp虚拟身份的设定
创建虚拟帐号
vim /etc/vsftpd/loginusers ##文件名称任意
ftpuser1
123
ftpuser2
123
ftpuser3
123
(2)
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db 新建加密文件
(3)vim /etc/pam.d/ckvsftpd ##编辑密码配置文件
account required pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
@@account 账户 auth密码认证,required要求检验,pam_userdb.so检验程序,etc/vsftpd/loginusers帐号密码文件
(4) vdftpd文件配置
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES
@@虚拟帐号身份指定
guest_username=student 虚拟用户登录身份
chmod u—x /home/student 去掉写权限
实验:1.新建虚拟用户帐号密码
2.新建加密文件
3.编辑密码帐号配置文件
4.vsftpd文件配置
虚拟用户家目录的设定
vim /etc/vsftpd/vsftpd.conf
mkdir /ftpdir/student1/student1file 创建读取位置
user_sub_token=USER引用shell环境变量localroot=/ftpdir/USER 引用shell环境变量
local_root=/ftpdir/USER引用shell环境变量localroot=/ftpdir/USER 读取目录位置
systemctl restart vsftpd 重起ftp服务
虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高