semanage命令用于管理SELinux的策略,格式为“semanage [选项] [文件]”。
SELinux服务极大地提升了Linux系统的安全性,将用户权限牢牢地锁在笼子里。semanage命令可以设置文件、目录的策略,还可以管理网络端口、消息接口。
常用参数:
- port: 管理定义的网络端口类型
- fcontext: 管理定义的文件上下文
- -l: 列出所有记录
- -a: 添加记录
- -m: 修改记录
- -d: 删除记录
- -t: 添加的类型
- -p: 指定添加的端口是tcp或udp协议的,port子命令下使用
- -e: 目标路径参考原路径的上下文类型,fcontext子命令下使用
实验环境
Red Hat Enterprise Linux release 8.2
Selinux已经开启
[root@node1 ~]# egrep -i selinux /etc/sysconfig/selinux | egrep -v "#"
SELINUX=enforcing
SELINUXTYPE=targeted
如selinux未开启就需要进配置文件把selinux设置为enforcing
# vim /etc/sysconfig/selinux
SELINUX=enforcing
重启使其生效
# reboot
检查semanage是否有安装
如果没有,需要安装semanage
[root@node1 ~]# yum install policycoreutils-python -y
先进/etc/httpd/conf/httpd里看看端口号是多少
[root@node1 ~]# egrep -i listen /etc/httpd/conf/httpd.conf | egrep -v "#"
列出所有定义的端口
[root@node1 ~]# semanage port -l
列出指定的端口类型的端口
[root@node1 ~]# semanage port -l | grep -w http_port_t
通过查询端口号来列出端口类型
[root@node1 ~]# [root@node1 ~]# semanage port -l | grep -w 443
创建、添加、删除端口
使用下面的命令为http添加新端口
[root@node1 ~]# semanage port -a -t http_port_t -p tcp 82
查看新添加的端口
[root@node1 ~]# semanage port -l | grep -w 82
添加一个范围的端口
[root@node1 ~]# semanage port -a -t http_port_t -p tcp 11180-11188
删除端口
[root@node1 ~]# semanage port -d -t http_port_t -p tcp 82
[root@node1 ~]# semanage port -d -t http_port_t -p tcp 11180-11188
[root@node1 ~]# restorecon -Rv /var/www/html/ 把整个文件上下文强制重新设置一下,递归
一旦成功配妥httpd服务程序之后,就会发现SELinux服务并没有那么难。