ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Selinux和Firewalled

2021-09-21 15:32:36  阅读:159  来源: 互联网

标签:Firewalled -- Selinux cmd 端口 firewall ssh port


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 *可以检索想要的标签

在这里插入图片描述
上图为ls -lZ后的效果
system_u:object_r:etc_t:s0为例:分别表示为用户:角色:类型:级别
每一个系统账户都被映射到一个selinux用户

用户:semanage login -l可以查看用户类型
在这里插入图片描述

角色:定义数据是用户、程序、还是文件资源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的端口的安全标签举例:

ssh默认端口22
下面将修改ssh默认配置文件

vim /etc/ssh/sshd_config

在这里插入图片描述
例如图上将其修改为2202

这时使用systemctl restart sshd,发现服务重新启动不了
在这里插入图片描述
这是因为selinux察觉到一个陌生的端口正在尝试访问ssh,所以直接被拒绝了.
以下命令可以查看selinux仅接受哪些端口访问sshd

semanage port --list | grep ssh

可以看出仅接受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'

标签:Firewalled,--,Selinux,cmd,端口,firewall,ssh,port
来源: https://blog.csdn.net/weixin_45951067/article/details/120388834

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有