Selinux
SElinux配置文件:/etc/sysconfig/selinux
SElinux工作类型:
targeted:用来保护常见的网络服务,仅有限进程受到selinux控制,默认类型
minimum:targeted的修改版,只对选择的网络服务,仅对选中的进程生效 mls:提供mls机制的安全性,国防级别的
SELinux工作模式:
enforcing: 强制模式,拦截并记录非法访问
permissive: 宽容模式,只记录不阻止
disabled: 禁用SElinux
setenforce 0
为零时关闭selinux
getenforce
查看当前selinux的模式
安全上下文的组成:
所有文件、端口
、进程都会被打上安全标签
查看文件的上下文标签:ls -lZ
查看进程的上下文标签:ps auxZ
ps auxZ | grep *
可以检索想要的标签
以
system_u:object_r:etc_t:s0
为例:分别表示为用户:角色:类型:级别
每一个系统账户都被映射到一个selinux用户 @H_404_10@
角色:定义数据是用户、程序、还是文件资源object_r
表示文件或目录等资源,system_r
表示进程
类型:重要属性,定义何种进程可以访问何种类型的文件,对于进程和文件,类型字段意义不同
在资源文件(object)上称为type
在主体进程(subject)上称为domain
级别:s0级别最低,s15级别最高
举例,创建一个httpd服务的网站index.html,当selinux服务开启时网站不能正常访问,因为标签为admin_home_t
,但创建index2.html时,标签类型为httpd_sys_content_t
时则可以正常访问
semanage fcontext -a -t httpd_sys_content_t index.html #其中-a为添加 -t为修改类型
类型修改完后刷新:restorecon -Rv index.html
此时访问index.html则可以成功访问
修改文件标签方法二(修改后可以还原)
chcon [options] file
选项:
-R 递归修改
-t 修改类型
-r 修改角色
-u 修改用户
chcon -t httpd_sys_content_t index.html
下面将用ssh的端口的安全标签举例:
vim /etc/ssh/sshd_config
@H_404_10@
这时使用systemctl restart sshd
,发现服务重新启动不了
以下命令可以查看selinux仅接受哪些端口访问sshd
semanage port --list | grep ssh
@H_404_10@
可以看出仅接受22号端口
那么我们怎么让selinux接受2202的端口呢?
继续往下看!
semanage port -a -t ssh_port_t -p tcp 2202
这时再查看,发现端口已经增加了2202
再次重启sshd服务:
systemctl restart sshd
发现重启成功了!可以使用
netstat -tunlp | grep ssh
查看监听端口进行检验最后,使用xshell连接Linux虚拟机,发现连接不上了(
因为配置文件中,已经把端口改成2202了
)连接时把端口改诚2202即可,ssh root@IP_ADDR:2202
使用以下命令可以将添加的端口标签删除
semanage port -d -t ssh_port_t -p tcp 2202
Firewalled
查看firewalled状态
systemctl status firewalld.service
firwalld管理配置方法
命令行配置:firewall-cmd
图形界面配置:firewall-config(yum -y install firewall-config)
修改配置文件/etc/firewalld/
查看防火墙区域:
查看默认区域firewall-cmd --get-default-zone
查看当前区域firewall-cmd --get-active-zone
firewalld默认提供了九个zone
drop(丢弃)、block(限制)、public(公共)、external(外部)、dmz(非军事区)、work(工作)、home(家庭)、internal(内部)、trusted(信任)
查看防火墙规则:
firewalled-cmd --list-all
其中,service:cockpit dhcpv6-client ssh可以通过浏览器访问,例如,
systemctl start cockpit
,之后浏览器访问ipaddr:9090
firewalld添加一个服务:
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
firewalld紧急模式
firewall-cmd --panic-on #拒绝所有包
阻塞所有ICMP包
firewall-cmd --add-icmp-block=echo-request
富规则/自定义规则
1.拒绝所有来自192.168.1.100流量
firewall-cmd --add-rich-rule 'rule family=ipv4 source addeRSS=192.168.1.100 reject'#注意是单个ip就不能加/24
2.拒绝192.168.1.100 ssh连接
firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.1.100 service name =ssh reject' #允许为access
3.将所有来自192.168.1.100访问的80端口都转换为8080
firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.1.100 forward-port port =80 protocol=tcp to-port=8080 '
富规则举例:
firewall-cmd --add-port=8080/tcp
firewall-cmd --add-rich-rule=' rule family=ipv4 source address=192.168.1.100/24 forward-port port=80 protocol=tcp to-port=8080'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。