防火墙命令¶
一、firewalld¶
1.查看防火墙的状态¶
2.启动防火墙¶
3.关闭防火墙¶
4.永久关闭SElinux¶
5.开机时禁用防火墙¶
6.查看已开放的端口¶
7.查询指定端口是否已经开放¶
8.添加指定需要开放的端口¶
Bash
firewall-cmd --add-port=3307/tcp --permanent
# 或
firewall-cmd --zone=public --add-port=80/tcp --permanent
9.移除指定端口¶
10.重启防火墙¶
11.查看服务名称¶
firewalld 中的服务名称基于 服务的名称定义,而不是操作系统中的具体进程名称。
查看所有服务名称:
查看允许的服务:
查看指定的服务名称:
二、iptables¶
1.显示所有规则详细信息¶
-L:列出链chain上面的所有规则,如果没有指定链,列出表上所有链的所有规则。
-v:显示执行过程详细信息。
2.显示所有规则详细信息及规则号¶
--line-number:显示出规则号。
3.允许(拒绝)某个内网ip访问服务器所有服务端口¶
3.1 将规则放到最后面¶
-A:在规则链的末尾加入新规则。
-s:匹配来源地址IP/MASK。
-j:执行的动作目标。
3.2 将规则放到最前面¶
3.3 将规则放到指定的规则号(如5)前面¶
3.4 允许(拒绝)某个内网ip访问服务器的某个端口(如远程端口22)¶
-p:指定要匹配数据报的协议类型。
--dport:匹配目标端口号。
3.5 删除指定的规则号(如5)¶
3.6 清空指定链INPUT上面的所有规则¶
3.7 删除指定链INPUT¶
该链必须没有被其它任何规则引用,而且这条上必须没有任何规则:
4.示例¶
以下示例都是直接将命令写到 /etc/sysconfig/iptables 配置文件中。
4.1 示例一¶
只允许服务器 IP 地址 172.18.0.95 访问PG数据库 172.18.0.30 :
参数解释:
-A INPUT:这个选项表示规则被添加到INPUT链中,INPUT链用于处理进入本地机器的数据包。-s 172.18.0.95:指定规则仅适用于来源 IP 地址为172.18.0.95的数据包。-p tcp:指定该规则适用于 TCP 协议的数据包。-m state --state NEW:这表示规则仅匹配新建连接的请求。NEW表示连接是新的,而不是与现有连接的状态相关的数据包。-m tcp --dport 5432:这指定规则只适用于目标端口为5432的 TCP 数据包,5432是 PostgreSQL 默认的端口号。-j ACCEPT:这表示匹配该规则的数据包将被接受并允许通过防火墙。
4.2 示例二¶
允许服务器 IP 地址 172.18.0.36 访问本机任意端口:
4.3 示例三¶
禁止任何 IP 访问本机:
参数解释:
--reject-with icmp-host-prohibited:这指定了拒绝时返回的 ICMP 错误类型。在这个规则中,icmp-host-prohibited表示当数据包被拒绝时,系统会发送一个 ICMPhost-prohibited错误消息,告知发送方目标主机不可达。
4.4 示例四¶
禁止任何 IP 经过本机转发流量:
参数解释:
-A FORWARD:这表示规则被添加到FORWARD链。FORWARD链负责处理 经过本地机器转发的流量。即,当数据包不是要发送到本机,而是从一个网络接口转发到另一个接口时,FORWARD链会处理这些数据包。