ftp
1.ftp启用
-
用getenforce命令查看selinux状态
-
vim /etc/sysconfig/selinux
-
yum install -y vsftpd
-
systemctl start vsftpd
-
systemctl enable vsftpd
关闭防火强,用下面的方法可不用每次关闭防火墙 -
firewall-cmd --list-all ##查看
-
firewall-cmd --permanent --add-service=ftp #添加ftp
-
firewall-cmd --reload #添加后需重新加载
2.ftp基本信息
访问数据的端口:21
数据传输端口:>1024的随即端口
默认发布目录:/var/ftp
访问方式:
- lftp 172.25.254.100 ##匿名用户登陆
–> /var/ftp(默认访问) - lftp 172.25.254.100 -u student ##用户登陆
–>/home/student(默认访问家目录)
配置文件:
- /etc/vsftpd/vsftpd.conf
3.ftp的安全部署
报错信息:
- 500:权限过大
- 530:认证失败
- 550:服务本身不允许
- 553:文件系统权限过小
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vsftpd.conf
systemctl restsrt vsftpd.service ##修改后需重启
(1)匿名用户上传:
anon_upload_enable=YES
(2)匿名用户下载:
anon_world_readable——only=NO
(3)匿名用户建立目录:
anon_mkdir_write_enable=YES
(4)匿名用户删除和重命名:
anno_other_write_enable=YES
(5)匿名用户家目录修改:
anno_root=/westos
(6)匿名用户默认上传文件权限修改:
anon_umask=xxx
(7)匿名用户使用的用户身份修改:
chown_uploads=YES
chown_username=student
(8)最大上传速率:
anno_max_rate=102400 ##单位:字节
dd if=/dev/zero of=/mnt/file bs=1M count=60
(9)最大链接个数:
max_clients=5
(10)本地用户家目录修改:
local_root=/westos
(11)本地用户上传文件权限:
local_umask=xxx
(12)限制本地用户浏览根目录
chroot_local_user=YES ##此参数要求去掉自己对家目录的写权限
chmod u-w /home/*
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(13)限制本地用户登陆:
- vim /etc/vsftpd/ftpusers ##永久黑名单
- vim /etc/vsftpd/user_list ##临时黑名单
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##此参数设定,此文件变成用户白名单,名单中出现的用户可以登陆ftp
3.ftp虚拟用户的设定
- vim /etc/vsftpd/westos ##文件名称任意
user1
123
user2
123
-
db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westos.db
-
vim /etc/pam.d/westos ##文件名称任意
account requierd pam_userdb.so bd=/etc/vsftpd/westos
auth requierd pam_userdb.so bd=/etc/vsftpd/westo
- vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES
11.04
虚拟用户身份指定
guest_usernam=westos
虚拟用户家目录独立设定
- vim /etc/vsftpd/vsftpd.conf
local_rooot=/ftphome/USERusersubtoken=USER user_sub_token=USERusersubtoken=USER
- mkdir -p /ftphome/user1/user1dir
- mkdir -p /ftphome/user2/user2dir
虚拟用户独立配置
- chgrp ftp /ftphome -R
- chmod 775 /ftphome/user1/user1dir
- chmod 775 /ftphome/user2/user2dir
- vim /etc/vsftpd/vsfypd.conf
user_config_dir=/etc/vsftpd/userconf
-
mkdir -p /etc/vsftpd/userconf
-
vim /etc/vsftpd/userconfuser1
举例:anon_upload_enable=YES
selinux
-
touch /mnt/westos
-
mv /mnt/westos /var/ftp
-
ls -Z /var/ftp
-
ps auxZ | grep vsftpd
-
lftp 172.25.254.100 -u student
-
将enforcing设置成disable | setenforce 0
-
cat /var/log/audit/audit.log
修改安全上下文
切换到/var/ftp/:
- chcon -t public_content_t /var/ftp/westos1 ##临时的
对目录:
-
mkdir /westos
-
touch /westos/westosfile{1…5}
-
ls -Zd /westos
-
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos
-
lftp 172.25.254.100 ##不能访问
-
setenforce 0
-
chcon -t public_content_t /westos -R
-
ls -Zd /westos
把selinux重启一次,安全上下文又变回default_t -
semanage fcontext -l | grep /var/ftp
-
semanage fcontext -l | grep /westos
-
semanage fcontext -a -t public_contrent_t /westos
-
semanage fcontext -l | grep /westos ##只改变了westos目录的安全上下文
-
restorecon -RvvF /westos
-
semanage fcontext -d -t public_content_t /westos
-
rm -fr /westos
-
mkdir /westos
-
touch /westos/file{1…5}
-
semanage fcontext -a -t public_content_t ‘/westos(/.*)?’
-
restorecon -RvvF /westos
-
getsebool -a | grep ftp
ftp_home_dir --> off
- setsebool -p ftp_home_dir on
本地用户可以写,可以删除
selinux排错
- cat /var/log/messages
- rpm -qa | grep setroubleshoot