Linux系统工程师--(1)Vsftpd服务的部署及优化与linux中内核级加强型火墙的管理
Linux系统工程师
实验所用系统为Redhat-rhel8.2。
目录
- Linux系统工程师
- Linux的系统工程师--Vsftpd服务的部署及优化
- 一、ftp介绍
- 二、vsftpd安装及启用
- 三、vsftpd基本信息
- 四、匿名用户访问控制
- 1、登录控制和家目录控制
- 2、上传控制
- 3、目录建立控制
- 4、下载控制
- 5、删除重命令控制
- 6、匿名用户上传文件权限设定
- 7、匿名用户上传文件的用户身份设定
- 8、登录数量控制
- 9、传输速率控制
- 五、本地用户的访问
- 1、登录控制
- 2、写权限控制
- 3、家目录控制
- 4、上传文件权限控制
- 5、用户登录控制
- 1)用户登录白名单
- 2)锁定用户到自己家目录中
- 3)文件当中指定用户被锁定在自己家目录(黑名单)
- 4)文件当中指定用户不被锁定(白名单)
- 六、虚拟用户访问
- 1、建立虚拟用户过程
- 1)修改认证文件
- 2)对认证文件进行加密(系统不识别,需转换成hash)
- 3)修改认证策略
- 4)修改配置文件
- 5)重启服务
- 6)测试
- 2、虚拟用户家目录的独立设定
- 1) 实验准备
- 2)修改配置文件
- 3)测试
- 3、配置独立
- 1)修改主配置文件
- 2)建立配置目录
- 3)写用户名称相同的文件为用户配置文件
- 4)重启服务
- 5)测试
- Linux的系统工程师--linux中内核级加强型火墙的管理
- 一、selinux的功能
- 二、selinux的状态及管理
- 1、selinux的开启
- 三、selinux的安全上下文
- 1、查看
- 2、修改安全上下文
- 四、seport
- 五、setrouble
- 六、sebool
Linux的系统工程师–Vsftpd服务的部署及优化
实验环境:
- server主机
selinux关闭(需重新开启虚拟机`reboot`)
172.25.254.109
vim /etc/sysconfig/selinux
///
disabled
///
getenforce ##查看selinix状态
火墙开启
dnf安装设定完成
- client主机
172.25.254.9
selinux关闭
本地文件仓库配置完成
安装lftp ##ftp协议文本浏览器
一、ftp介绍
ftp:file transfer proto
互联网中最老牌的文件传输协议
是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。
二、vsftpd安装及启用
dnf install vsftpd -y ##server
dnf install lftp -y ##client
关闭selinux
systemctl disable --now firewallvim /etc/vsftpd/vsftpd.conf ##启动匿名用户的访问功能
///
12 anonymous_enable=YES
///
systemctl restart vsftpd
测试:
ftp://ip
lftp ip ##此访问方式必须能列出资源才算访问成功##使用完成后exit退出
登录控制实验:
- 先测试,匿名用户不能登录ftp
- 指定用户登录成功
- 修改配置文件,重启服务,使匿名用户可以登录
实验步骤:
###server&client
dnf search ftp
dnf install vsftpd.x86_64 lftp.x86_64 -y
rpm -ql vsftpd
systemctl enable --now vsftpd
netstat -antlupe | grep vsftpd ##查看端口
firewall-cmd --permanent --add-service=ftp ##在火墙永久开启的服务里加上ftp
firewall-cmd --reload ##重启火墙
firewall-cmd --list-all ##查看火墙永久开启的服务###client测试
lftp 172.25.254.109
#`ls' at 0 [530 Login incorrect.] ##匿名用户访问失败,修改配置文件12:no->yes
###server
vim /etc/vsftpd/vsftpd.conf ##修改配置文件
///
anonymous_enable=YES
///
systemctl restart vsftpd ##重启服务
###client测试
lttp 172.25.254.109 ##匿名用户访问成功
[注意] 在登录目录中可以查看,即
ls
,才是登录成功
#匿名用户登录被拒绝,指定用户登录成功
#修改配置文件
#匿名用户登录成功
三、vsftpd基本信息
服务名称:vsftpd.service
配置目录:/etc/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
默认发布目录:/var/ftp
报错信息:550 ##程序本身拒绝553 ##文件系统权限限制500 ##权限过大530 ##认证失败
四、匿名用户访问控制
[注意] 修改完配置文件都要重启服务 systemctl restart vsftpd
在配置文件作修改
/etc/vsftpd/vsftpd.conf
lftp 192.168.0.10 ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos ##本地用户访问
1、登录控制和家目录控制
登录控制(有) ##有指的是,配置文件中有此配置
12 anonymous_enable=YES|NO ##具体在上文中有做此实验家目录控制(没有) ##当没有时,需要手动添加
anon_root=/westosdir ##当添加了家目录之后,登录的位置即在指定的家目录中
#家目录控制
#家目录控制测试
2、上传控制
#可将上一个实验的家目录改回默认,即注释掉添加的内容
上传控制(有)
29 anon_upload_enable=YES|NO ##默认为YES,删掉注释符即可chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub ##ftp不可写则不能上传
###client
lftp 192.168.0.109
cd pub
put /etc/passwd ##上传文件
ls ##查看是否上传成功
#server
#client
[注意] 如果目标文件夹已经存在要上传的文件,也会报错553,需要在server删掉已经存在的文件
3、目录建立控制
目录建立控制(有)
anon_mkdir-write_enable=YES|NO ##默认为YES,删掉注释符即可
###client
cd pub
mkdir dir ##查看是否可以建立
#client,目录建立成功
4、下载控制
下载控制(没有)
anon_world_readable_only=NO ##匿名用户可以下载不能读的文件(默认为YES,匿名用户不能下载不能读的文件)##下载的东西在登陆ftp的位置
#client,下载成功
[注意] 匿名用户不能下载不能读的文件,并且下载的文件所有人和所有组要为默认用户ftp,否则下载失败
#server,建立文件,修改文件权限和所有人、所有组
#client,文件可读
,不可读但所有人所有组不符
,不可读但所有人所有组相符
的情况对比
5、删除重命令控制
删除控制(没有)
anon_other_write_enable=YES|NO ##yes为可以删除
6、匿名用户上传文件权限设定
匿名用户上传文件权限设定(没有)
anon_umask=xxx ##默认预留权力##当设定chown_username之后上传文件权限将不受此参数设定控制
anon_umask=022 ##上传文件权限为644(文件减去111)
7、匿名用户上传文件的用户身份设定
匿名用户上传文件的用户身份设定(有)
chown_uoloads=YES
chown_username=westos ##此用户必须已存在
chown_upload_mode=0644 ##文件默认权力
#server,修改配置,查看已上传的文件的所有人和权力
#client,上传文件
8、登录数量控制
登录数量控制(没有)
max_clients=1 ##此时可以ls的用户最多只有1名,其他都需要等待
#client,第二个登录的用户被拒绝
9、传输速率控制
传输速率控制(没有)
anon_max_rate=102400(字节=100k) 测试:
dd if=/dev/zero of=westosfile bs=1M count=500 ##建一个500M的文件
lftp 172.25.254.109
put westosfile ##上传
#修改过后,最开始上传的速度比较快是告知此源可用,之后会慢慢减速到设定的速度
五、本地用户的访问
[注意] 修改完配置文件都要重启服务
systemctl restart vsftpd
在配置文件作修改
/etc/vsftpd/vsftpd.conf
1、登录控制
登录控制(有)
local_enable=YES|NO #YES为可登录,默认为yes###server
useradd westos
useradd lee
echo westos | passwd --stdin westos
echo westos | passwd --stdin lee
###client
lftp 172.25.254.109 -u westos
2、写权限控制
写权限控制(有)
write_enable=NO|YES ##默认可写,写功能的总开关,关闭后匿名用户也不可写
#默认可写,修改后上传文件被拒绝
3、家目录控制
[注意] 将上一个实验的写权限恢复默认,即打开状态
家目录控制(没有)
local_root=/westosdir
#client,进入的目录为/westosdir
4、上传文件权限控制
[注意] 建议将家目录恢复默认,注释掉修改的内容即可
上传文件权限控制(有)
local_umask=077 ##默认上传权限为644,即umask=022
#修改后上传的文件权限改变
5、用户登录控制
/etc/vsftpd/ftpusers ##永久黑名单(权限最大)#即改即生效
/etc/vsftpd/user_list ##临时黑名单(可能会因为设定变成白名单)#即改即生效
1)用户登录白名单
用户登录白名单(没有)
userlist_deny=NO ##设定/etc/vsftpd/user_list为白名单##不在名单中的用户不能登录ftp
#在配置文件中加入lee用户
#除lee用户以外的其他普通用户被拒绝登录
2)锁定用户到自己家目录中
[注意] 注释掉白名单
锁定用户到自己家目录中(有,是否能切换到/)
默认下用户可以浏览/,不安全,所以将其锁定在自己的家目录
chroot_local_user=YES ##YES=锁定
###server
chmod u-w /home/* ##显示权限过大时,删除写权限则不被锁定
3)文件当中指定用户被锁定在自己家目录(黑名单)
文件当中指定用户被锁定在自己家目录(黑名单)
chmod u+w /home/* ##恢复权限
chroot_local_user=NO ##默认为NO,用户不被锁定
chroot_list_enable=YES ##目录开启
chroot_list_file=/etc/vsftpd/chroot_list ##文件中的用户被锁定
#指定westos用户被锁定,则其他用户可以切到/,westos用户被拒绝
4)文件当中指定用户不被锁定(白名单)
文件当中指定用户不被锁定(白名单)
chmod u+w /home/*
chroot_local_user=YES ##默认为NO,YES指用户被锁定
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##文件中的用户不被锁定,即为白名单
##指定westos用户不被锁定,则其他用户不可以切到/,westos用户被允许
[注意] 报错no route to host
1、网络 ##确保网络畅通,即虚拟机真机互通
2、服务 ##确保服务开启
systemctl status vsftpd.service
systemctl start vsftpd.service
3、火墙 ##确保火墙开启
firewall-cmd --permanent --add-service=ftp ##在火墙永久开启的服务里加上ftp
firewall-cmd --reload ##重启火墙
firewall-cmd --list-all ##查看火墙永久开启的服务
4、selinux ##确保selinux关闭
getenfoce-->disabled
六、虚拟用户访问
先检测用户登录环境(匿名用户和普通用户可用)
匿名用户登录需打开(anonymous_enable=YES)
1、建立虚拟用户过程
1)修改认证文件
cd /etc/vsftpd/
vim /etc/vsftpd/westos_pam ##建立认证文件模板,文件中的虚拟用户可以根据设定的密码登录ftp
///
westos1 ##虚拟用户名
123 ##对应的密码
westos2
123
///
2)对认证文件进行加密(系统不识别,需转换成hash)
db_load -T -t hash -f westos_pam westos_pam.db##T-transfer; t-type; f-指定要转换的文件
3)修改认证策略
vim /etc/pam.d/westos
///
account required pam_userdb.so db=/etc/vsftpd/westos_pam ##用户##用pam_userdb.so插件检测文件中的账号是否存在(westos_pam后的.db会自动补齐)
auth required pam_userdb.so db=/etc/vsftpd/westos_pam ##密码
///
pam插件-用来做身份认证
rpm -qc vsftpd–> /etc/pam.d/vsftpd(认证策略)
required-当此认证不通过,整个认证失败
两个都配对则认证成功,任何一个认证失败则整个失败
4)修改配置文件
vim /etc/vsftpd/vsftpd.conf
///
pam_service_name=westos ##改变认证策略
guest_enable=YES ##开启虚拟用户登录
guest_username=ftp ##指定一个本地用户作为虚拟用户登录的身份##ftp进入的目录不能有写权限,否则会报错权限过大
///
[注意] 此时除了指定用户外,其他的本地用户都不能登录
5)重启服务
systemctl restart vsftpd.service
6)测试
lftp 172.25.254.109 -u westos1
Password:123
ls(有正确输出)
2、虚拟用户家目录的独立设定
1) 实验准备
mkdir -p /ftphome/westos{1,2} ##与虚拟用户名相同才能使用$
touch /ftphome/westos1/westos1file
touch /ftphome/westos2/westos2file
mkdir /ftphome/westos{1,2}/pub
2)修改配置文件
vim /etc/vsftpd/vsftpd.conf
///
local_root=/ftphome/$USER ##指定家目录
user_sub_token=$USER ##变量声明
///
systemctl restart vsftpd
3)测试
lftp 172.25.254.109 -u westos1
Password:123
ls(pub;westos1file)
3、配置独立
- 实验环境
注释掉匿名用户上传和建立目录可写
///
#anon_upload_enable=YES
#anon_other_write_enable=YES
#anon_world_readable_only=NO
#anon_mkdir_write_enable=YES
///
systemctl restart vsftpd.service
- 实验准备
chgrp ftp /ftphome/westos{1..3}/pub
chmod 775 /ftphome/westos{1..3}/pub ##开启拥有者和拥有组权限
1)修改主配置文件
vim /etc/vsftpd/vsftpd.conf
///
user_config_dir=/etc/vsftpd/westos ##改变认证策略
///
2)建立配置目录
mkdir /etc/vsftpd/westos
3)写用户名称相同的文件为用户配置文件
vim /etc/vsftpd/westos/westos1
///
anon_upload_enable=YES ##只有westos1自己可上传
///
4)重启服务
systemctl restart vsftpd.service
5)测试
lftp 172.25.254.109 -u westos1
Password:123
ls
cd /pub
put /etc/passwd
#2754 bytes transferred
exit
westos2和3不可以上传
Linux的系统工程师–linux中内核级加强型火墙的管理
实验环境:
还原
rm -rf /etc/vsftpd
dnf reinstall vsftpd -y
systemctl restart vsftpd
需要开启一些功能
vim /etc/vsftpd/vsftpd.conf
///
anonymous_enable=YES
anon_upload_enable=YES
///
systemctl restart vsftpd
一、selinux的功能
selinux-disable | selinux-enable | |
---|---|---|
ftp upload | yes(可以上传) | no |
mv /mnt/file /var/ftp | yes(可以被浏览) | no |
ps axZ | grep vdftpd | - |
ls -Z /mnt/westoslee | ? | 标签 |
实验准备:
touch /mnt/westosfile
mv /mnt/westosfile /var/ftp/
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/
- selinux-disable状态
lftp 172.25.254.109
ls
cd /pub
put /etc/passwdps axZ | grep vdftpdtouch /mnt/westoslee
ls -Z /mnt/westoslee
#可以上传,可以浏览
##不可见
- selinux-enable状态
vim /etc/sysconfig/selinux
///
enforcing
///
reboot
touch /mnt/westosfile1
mv /mnt/westosfile1 /var/ftp/ps axZ | grep vdftpd
#unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1644 pts/0 R+ 0:00 grep --color=auto vdftpdls -Z /mnt/westoslee
#system_u:object_r:default_t:s0 /mnt/westoslee
给程序和文件加上标签,标签匹配才能访问
- selinux对于文件的影响
当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载
标签内记录程序和文件的安全上下文(context) - selinux对程序功能的影响
当selinux开启会对程序的功能加载开关,并设定此开关的状态为关闭
当需要此功能时需要手动开启功能开关
此功能叫sebool
二、selinux的状态及管理
1、selinux的开启
vim /etc/sysconfig/selinux
disabled ##selinux关闭
enforcing ##selinux开机设定为强制状态(拒绝且警告)##不符合条件一定不能被允许,并且被警告
permissive ##selinux开机设定为警告状态(通过且警告)##不符合条件被允许,并且被警告
[注意] selinux开启或关闭需要重启系统
getenforce ##selinux状态查看selinux开启后强制和警告级别的转换
setenforce 0 ##警告
setenforce 1 ##强制
selinux日志位置
/var/log/audit/audit.log
三、selinux的安全上下文
1、查看
ls -Z ##查看文件的安全上下文
ls -Zd ##查看目录的安全上下文
ls -axZ ##查看进程的安全上下文
2、修改安全上下文
- 临时修改
在selinux重启后会还原
chcon -t 标签 文件|目录
chcon -t public_content_t /var/ftp/westosfile1
chcon -Rt public_content_t /westosdir ##修改目录本身及子文件的安全上下文
- 永久修改
如果需要特殊指定安全上下文,需要修改内核安全上下文列表
semanage fcontext -l ##查看内核安全上下文列表
semanage fcontext -a -t public_content_t '/westosdir(/.*)?'
restorecon -RvvF /westosdir
touch /.autorelabel ##重启系统时selinux初始化文件标签开关文件
#永久修改
#初始化文件标签开关文件后,临时修改的安全上下文恢复默认,永久修改的没有改变
四、seport
selinux会限制端口的使用,enforcing下被拒绝,permissive下可以使用
semanage port -l | grep ssh ##列出端口
semanage port -a -t ssh_port_t -p tcp 1111 ##添加端口
semanage port -d -t ssh_port_t -p tcp 1111 ##删除端口
实验:
vim /etc/ssh/sshd_config
///
修改端口22->2222
///
getenforce(Enforcing)
systemctl restart sshd ##重启服务被拒绝
setenforce 0
getenforce(Permissive)
systemctl restart sshd ##可以重启
setenforce 1
systemctl restart sshd ##被拒绝
semanage port -l | grep ssh ##列出端口
semanage port -a -t ssh_port_t -p tcp 2222 ##添加端口
semanage port -l | grep ssh ##添加成功
systemctl restart sshd ##可以重启
semanage port -d -t ssh_port_t -p tcp 2222 ##删除端口
semanage port -l | grep ssh ##删除成功
systemctl restart sshd ##被拒绝
vim /etc/ssh/sshd_config ##将配置文件恢复
systemctl restart sshd
五、setrouble
/var/log/audit/audit.log ##selinux警告信息
/var/log/messages ##selinux问题解决方案
setroubleshoot-server ##此软件功能时采集警告信息先并分析得到解决方案存放到message中
六、sebool
getsebool -a ##显示服务的bool值
setsebool -P ftpd_anon_write on ##更改bool值
Linux系统工程师--(1)Vsftpd服务的部署及优化与linux中内核级加强型火墙的管理相关推荐
- linux系统工程师----2.linux中内核级加强型火墙的管理
linux中内核级加强型火墙的管理 前言 一.selinux的功能 二.Selinux的三种状态及管理 三.Selinux的安全上下文 1.查看 2.修改安全上下文 四.SEBOOL 五.SEPORT ...
- Linux 中内核级加强型火墙的管理
一.Selinux的功能 1.观察现象 当Selinux未开启时 在/mnt中建立文件被移动到/var/ftp下可以被vsftpd服务访问 匿名用户可以通过设置后上传文件 当使用ls -Z /var/ ...
- Vsftpd 服务的部署及优化
Vsftpd 服务的部署及优化 1 实验环境 2 ftp介绍 3 vsftpd安装与启用 4 vsftpd基本信息 5 用户访问控制 5.1 匿名用户访问 5.2 本地用户访问 6 虚拟用户访问 6. ...
- Vsftpd服务的部署及优化
######################### # 实验环境 # ######################### # #server主机: # westos_node1 # ...
- RH135---Linux系统管理及网络服务之 linux中内核及加强型火墙管理 --Selinux
# 一.Selinux的功能 # 1.观察现象 当Selinux未开启时disable 在/mnt中建立文件被移动到/var/ftp下可以被vsftpd服务访问 匿名用户可以通过设置后上传文件 当使用 ...
- 2 Linux中内核级加强防火墙的管理
#实验环境配置# 客户端下载vsftpd.x86_64 lftp.x86_64 systemctl enable --now vsftpd #开启ftp服务 服务端增加火墙配置 firewall-cm ...
- Linux中的vsftpd服务的部署及优化
1.vsftpd安装及启用 需要先配置好主机网络 挂载镜像并搭建本地软件仓库: 安装vsftp软件包: 开启vsftp服务并关闭防火墙: 关闭selinux: 测试安装发布: 安装lftp服务(ftp ...
- 【转载,整理】Linux模拟试题及答案(全)+经典Linux系统工程师面试题(附答案)
转自:http://www.ha97.com/871.html http://www.ha97.com/870.html 2010-6 11 经典Linux系统工程师面试题(附答案) 发表于: L ...
- 重启部署在Linux系统下的tomcat服务
2019独角兽企业重金招聘Python工程师标准>>> 重启部署在Linux系统下的tomcat服务具体的操作步骤: 1.在Winscp上建立连接,输入用户和密码,这个密码一般是看不 ...
最新文章
- ios--用证书进行真机调试(转)
- golang 结构体简介
- Java平滑处理什么意思_为何要进行数据平滑处理?
- jQuery的AJAX
- python bottle框架 运维_python bottle框架(WEB开发、运维开发)教程 | linux系统运维...
- 思维题 UVA 10881 Piotr's Ants
- TeamTalk 服务器代码分析
- 201671010426 孙锦喆 实验二词频统计软件项目报告
- Windows/Linux/MacOS下VMware Workstation Pro/Vmware Fusion虚拟机的安装使用,Vmware Tools 的安装,Vmware使用技巧与故障排除。
- linux ubuntu硬盘数据丢失【硬盘开机未挂载】
- 千秋华夏 壮丽河山 国庆节快乐~
- 4.决策树的探赜索隐
- 淘宝个人卖家如何进行免登声明
- 函数表达式与命名函数区别
- XML学习笔记(1)
- 如何选择retina和univeral?
- 公众号加附件怎么做?公众号推文上传附件教程
- SLM7.1SR1SP05 配置(configuration guide+ link help) - 02 overview啥也没有不用看了
- 打造QQ空间头部视差ListView
- linux中大于等于符号 特殊字符,Linux 特殊字符、符号
热门文章
- 图像抖动(加入随机噪声+矩阵有序抖动)Java实现,不使用OpenCV 按照课堂中讲的两种抖动(Dithering)方法,自己编程实现(编程语言不限)。实现方法一:以加入随机噪声的方式保留信息
- 在北京外地农村户口和城镇户口五险一金的区别?
- 平凡的世界和你我(田润生与郝红梅)
- Aionもし初めならば:すべてすべてまったくありもしない話なので
- php http 缓存,如何设计一个完美的http缓存策略
- markdwon语法与Typora
- [work] python从字符串中提取所有数字到list
- java基础教程案例_Java入门的五个经典案例
- vue图片缩略图及图片预览功能
- 那些年我追过的程序员“大佬”,他们后来都怎么样了?