Redhat之FTP
FTP
这个协议就不多解释了,相信只要你是学计算机的,肯定对这个协议很熟。直接看配置。
配置
配置之前为了配置方便,我把防火墙和selinux
systemctl stop firewalld.service
setenforce 0
server | client | |
---|---|---|
ip | 192.168.0.100 | 192.168.0.200 |
hostname | system1 | system2 |
第一种:anonymous用户登录
Server 端:
- 安装vsftp
yum -y install vsftpd
- 配置vsftp
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
3.启动服务并给共享目录权限
systemctl start vsftpd
chown -R ftp /var/ftp/pub
client端
1.安装ftp并启动服务
yum -y install ftp
systemctl start ftp
2.连接测试
ftp 192.168.0.100
当然windows也可以访问。
第二种:指定用户登录
这里我创建了两个用户user1,user2。user1登录后可以切换目录,user2限制在自己的主目录(ftp 默认为用户的家目录)。
- 创建用户
useradd -d /home/user1 -s /sbin/nologin user1
echo 'user1' | passwd user1 --stdin
chmod -R 775 /home/user1
useradd -d /home/user2 -s /sbin/nologin user1
echo 'user1' | passwd user2 --stdin
chmod -R 775 /home/user2
- 修改vsftp配置文件
vim /etc/vsftpd/vsftpd.conf
#anonymous_enable=YES #禁止匿名登录
chroot_local_user=YES #将所有用户限制在其主目录
chroot_list_enable=YES #启用不限制的名单
allow_writeable_chroot=YES #使ftp可写
vim /etc/vsftpd/chroot_list
user1 #添加user1到白名单,不受限制,可以切换到上层目录
systemctl restart vsftpd #重启服务
如果你想简单的配置,只需要将vsftp.conf 中的anonymous_enable=NO.重启服务。如果出现
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()。这是因为从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。解决办法:(1)在vsftpd.conf 中增加一行:allow_writeable_chroot=YES,使可写。(2)去除用户目录的写权限 chmod a-w /home/user1
- 验证
user1:可以切换到上层目录
user2:不可以切换到上层目录
第二种:虚拟用户登录
创建一个虚拟用户virtual_user,应用加密的用户文件登录ftp
- 创建虚拟用户并加密
cd /
vim userlist
vuser1
vuser1
vuser2
vuser2
vuser3
vuser3
db_load -T -t hash -f userlist vuser.db #对明文进行加密
rm -f userlist #删除原始文件
- 创建虚拟用户
useradd -d /var/virtual_user -s /sbin/nologin virtual_user
chmod -Rf 755 /var/virtual_user #添加权限
- 配置虚拟配置文件
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/virtual_user
account required pam_userdb.so db=/etc/vsftpd/virtual_user
cp vuser.db /etc/vsftpd/ -----------------把用户数据文件拷贝到相应目录
- 编辑ftp配置文件
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=virtual_user
allow_writeable_chroot=YES
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vusers_config_dir
- 配置用户文件
mkdir /etc/vsftpd/vusers_config_dir #如果定义用户的权限则在此目录下创建和用户名相同的文件即可。
vim /etc/vsftpd/vusers_dir/vuser1 #定义vuer1的权限
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
- 重启服务查看结果
systemctl restart vsftpd