firewall火墙控制
-
firewall概述
动态防火墙后台程序firewalld提供了一个动态管理的防火墙,用以支持网络“zones”,以分配对一个网络及相关链接和界面一定程度的信任。它具有对IPv4和IPv6 防火墙设置的支持。它支持以太网桥,并有分离运行时间和永久性配置选择。它还具有一个通向服务或者应用程序以直接增强防火墙规则的接口。 -
系统提供了图像化的配置工具firewall-config、system-config-firewall,提供命令行客户端firewall-cmd,用于配置firewalld永久性或非永久性运行时间的改变:它依次用iptables工具与执行数据包筛选的内核中的Netfilter通信
-
防火墙:内核上的插件在linux中是iptables的意思
一个在系统内核上的数据包,在系统表格的汇总 -
默认有三张表五条链
filter访问本机服务的表------------> input output forward
net根本机服务没有关系的表 --------> input outputprerouting postouting mangle(net+filter)----------->input output prerouting (DNAT) postouting(SNAT) forward -
只要有一条选项不匹配就会被禁止
源地址转换 目的地地址转换 -
管理火墙就是管理iptables表格的内容
-
两种管理方式
一、 iptables更专业,参属更详细
二 、 firewalld 操作更简单
方法不同但功能相同
编写火墙策略的工具,将工具的服务关掉之后,表格不生效
1.selinux端口标签的修改(管理selinux端口标签)
1)添加端口
semanage port -a -t http_port_t -p tcp 6666
具体步骤:
<1>安装软件开启服务
[root@shenzhen ~]# yum install httpd
<2>编辑配置文件修改默认端口为6666,重启服务时出现报错
[root@shenzhen ~]# vim /etc/httpd/conf/httpd.conf
[root@shenzhen ~]# systemctl restart httpd
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
<3>查看http正在使用的端口,发现服务没有起来
[root@shenzhen ~]# netstat -antlupe | grep http
<4>列出http相关的端口,发现没有6666这个端口
[root@shenzhen ~]# semanage port -l | grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
<5>加入6666端口,再次查看,列表中有6666,但是没有被使用,这是因为服务没有起来
[root@shenzhen ~]# semanage port -a -t http_port_t -p tcp 6666
[root@shenzhen ~]# netstat -antlupe | grep http
[root@shenzhen ~]# semanage port -l | grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 6666, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
<6>重启服务,6666端口被使用
[root@shenzhen ~]# systemctl restart httpd
[root@shenzhen ~]# netstat -antlupe | grep http
2)端口的删除
semanage port -d -t http_port_t -p tcp 6666
如过要删除的端口正在使用,删除时会报错,但是在配置文件中修改之后,重启服务删除命令会自动执行
具体步骤:
<1>再次编辑配置文件,将使用的默认端口还原,重启服务
[root@shenzhen ~]# vim /etc/httpd/conf/httpd.conf
[root@shenzhen ~]# systemctl restart httpd