文章目录
firewalld防火墙维护和状态查询命令
[root@localhost ~]# systemctl stop firewalld· 关闭防火墙
[root@localhost ~]# systemctl start firewalld 开启防火墙
[root@localhost ~]# systemctl restart firewalld 重启防火墙
[root@localhost ~]# systemctl status firewalld 状态防火墙
firewalld防火墙状态查询命令
[root@localhost ~]# systemctl status firewalld.service '//查看防火墙状态'
[root@localhost ~]# firewall-cmd --stat '//查看防火墙状态'
firewalld防火墙重载配置命令
重新加载firewalld的配置
[root@localhost ~]# firewall-cmd --reload 重启防火墙
success
[root@localhost ~]# firewall-cmd --complete-reload 状态信息将会丢失,多用于处理防火墙出现问题时
successb
[root@localhost ~]# systemctl restart firewalld.service 重启防火墙
查询预定义信息命令
查看预定义的区域
[root@localhost ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work '//默认网络区域'
查看预定义的服务
[root@localhost ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc
查看预定义的ICMP类型(过滤器)
[root@localhost ~]# firewall-cmd --get-icmptypes
address-unreachable bad-header communication-prohibited destination-unreachable echo
firewalld区域操作命令
显示网络连接或接口的默认区域
[root@localhost ~]# firewall-cmd --get-default-zone
public
设置网络连接或接口的默认区域为internal
[root@localhost ~]# firewall-cmd --set-default-zone=internal
success
显示已激活的所有区域
[root@localhost ~]# firewall-cmd --get-active-zones
internal
interfaces: ens33
区域操作命令2
显示ens33接口绑定的区域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
public
为ens33接口绑定work区域
[root@localhost ~]# firewall-cmd --zone=work --add-interface=ens33
success
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
work
为work区域更改绑定的网络接口ens33
[root@localhost ~]# firewall-cmd --zone=work --change-interface=ens33
success
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
work
为work区域删除绑定的网络接口ens33
[root@localhost ~]# firewall-cmd --zone=work --remove-interface=ens33
The interface is under control of NetworkManager, setting zone to default.
success
如果出现下面情况删除一下
[root@localhost ~]# firewall-cmd --zone=work --add-interface=ens33
Error: ZONE_CONFLICT: 'ens33' already bound to a zone
[root@localhost ~]# firewall-cmd --zone=public --remove-interface=ens33
success
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
no zone
[root@localhost ~]# firewall-cmd --zone=work --add-interface=ens33
success
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
work
firewalld区域操作命令3
查询work区域中是否包含接口ens33
[root@localhost ~]# firewall-cmd --zone=work --query-interface=ens33
yes
显示区域及其规则
[root@localhost ~]# firewall-cmd --list-all-zones
block
target: %%REJECT%%
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
等...
显示internal区域的所有规则
[root@localhost ~]# firewall-cmd --zone=internal --list-all
显示默认区域的所有规则
[root@localhost ~]# firewall-cmd --list-all
internal (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh mdns samba-client dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
...省略内容
区域操作命令总结
命令选项 | 说明 |
---|---|
–get-default-zone | 显示网络连接或接口的默认区域 |
–set-default-zone=区域类型 | 设置网络连接或接口的默认区域 |
–get-active-zones | 显示已激活的所有区域 |
–get-zone-of-interface=接口(网卡) | 显示指定接口绑定的区域 |
–zone=区域类型 --add-interface=接口(网卡) | 为指定接口绑定区域 |
–zone=区域类型 --change-interface=接口(网卡) | 为指定的区域更改绑定的网络接口 |
–zone=区域类型 --remove-interface=接口(网卡) | 为指定的区域删除绑定的网络接口 |
–query-interface=接口(网卡) | 查询区域中是否包含某接口 |
–list-all-zones | 显示所有区域及其规则 |
[–zone=区域类型] --list-all | 显示所有指定区域的所有规则 |
firewalld服务操作命令
显示internal区域内允许访问的所有服务
[root@localhost ~]# firewall-cmd --zone=internal --list-services
dhcpv6-client mdns samba-client ssh
为public区域设置允许访问SMTP服务
[root@localhost ~]# firewall-cmd --zone=public --add-service=smtp
success
删除internal区域中的SSH服务
[root@localhost ~]# firewall-cmd --zone=internal --remove-service=ssh
success
查询internal区域中是否启用了SSH服务
[root@localhost ~]# firewall-cmd --zone=internal --query-service=ssh
yes
操作命令总结
命令选项 | 说明 |
---|---|
[–zone=区域类型] --list-services | 显示指定区域内允许访问的所有服务 |
[–zone=区域类型] --add-service=服务 | 为指定区域设置允许访问的某项服务 |
[–zone=区域类型] --remove-service=服务 | 删除指定区域已设置的允许访问的某项服务 |
[–zone=区域类型] --query-service=服务 | 查询指定区域中是否启用了某项服务 |
firewalld端口操作命令
显示internal区域内允许访问的所有端口号
[root@localhost ~]# firewall-cmd --zone=internal --list-ports
启用internal区域22端口的TCP协议组合
[root@localhost ~]# firewall-cmd --zone=internal --add-port=22/tcp --timeout=5m
success
'//--timeout=5m:表示五分钟后删除该端口,多用于测试'
禁用internal区域22端口的TCP协议组合
[root@localhost ~]# firewall-cmd --zone=internal --remove-port=22/tcp
success
查询internal区域中是否启用了22端口和TCP协议组合
[root@localhost ~]# firewall-cmd --zone=internal --query-port=22/tcp
no
操作命令总结
命令选项 | 说明 |
---|---|
[–zone=区域类型] --list-ports | 显示指定区域内允许访问的所有端口号 |
[–zone=区域类型] --add-port=端口号[-端口号]/协议 [–timeout=时间] | 启用区域端口和协议组合,可选配置超时时间 |
[–zone=区域类型] --remove-port=端口号[-端口号]/协议] | 禁用区域端口和协议组合 |
[–zone=区域类型]==query-port=端口号[-端口号]/协议] | 查询区域中是否启用了端口和协议组合 |
firewalld阻塞ICMP操作命令
显示work区域内阻塞的所有ICMP类型
[root@localhost ~]# firewall-cmd --zone=work --list-icmp-blocks
为work区域设置阻塞echo-reply类型的ICMP
[root@localhost ~]# firewall-cmd --zone=work --add-icmp-block=echo-reply
success
删除work区域已阻塞的echo-reply类型的ICMP
[root@localhost ~]# firewall-cmd --zone=work --remove-icmp-block=echo-reply
success
查询work区域的echo-request类型的ICMP是否阻塞
[root@localhost ~]# firewall-cmd --zone=work --query-icmp-block=echo-request
no
操作命令总结
操作命令选项 | 说明 |
---|---|
[–zone=区域类型] --list-icmp-blocks | 显示指定区域内阻塞的所有ICMP类型 |
[–zone=区域类型] --add-icmp-block=ICMP类型 | 为指定区域设置阻塞的某项ICMP类型 |
[–zone=区域类型] --remove-icmp-block=ICMP类型 | 删除指定区域已阻塞的某项ICMP类型 |
[–zone=区域类型] --query-icmp-block=ICMP类型 | 查询指定区域的ICMP阻塞功能 |
| -------------------------------- |
| [–zone=区域类型] --list-icmp-blocks | 显示指定区域内阻塞的所有ICMP类型 |
| [–zone=区域类型] --add-icmp-block=ICMP类型 | 为指定区域设置阻塞的某项ICMP类型 |
| [–zone=区域类型] --remove-icmp-block=ICMP类型 | 删除指定区域已阻塞的某项ICMP类型 |
| [–zone=区域类型] --query-icmp-block=ICMP类型 | 查询指定区域的ICMP阻塞功能 |
文章目录
iptables编写防火墙规则命令
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
ps:
- 不指定表名时,默认指filter表
- 不指定链名时,默认指表内的所有链
- 除非设置链的默认策略,否则必须指定匹配条件
- 选项、链名、控制类型使用大写字母,其余均为小写
数据包的常见控制类型
- ACCEPT:允许通过
- DROP:直接丢弃,不给出任何回应
- REJECT:拒绝通过,必要时会给出提示
- LOG:记录日志信息,然后传给下一跳规则继续匹配
添加、查看、删除规则
添加新的规则
[root@client ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
[root@client ~]# iptables -I INPUT -p udp -j ACCEPT
[root@client ~]# iptables -I INPUT 2 -p icmp -j ACCEPT
-A:在链的末尾追加一条规则
-I:在链的开头(或指定序号)插入一条规则
查看规则表
-L:列出所有的规则条目
-n:以数字形式显示地址、端口等信息
-v:以更详细的方式显示规则信息
–line-numbers:查看规则时,显示规则的序号
[root@client ~]# iptables -n -L INPUT --line-numbers
删除、清空规则
-D:删除链内指定序号(或内容)的一条规则
-F:清空所有的规则
[root@client ~]# iptables -D INPUT 3
[root@client ~]# iptables -n -L INPUT
[root@client ~]# iptables -t nat -F
设置默认策略
-p:为指定的链设置默认规则
[root@client ~]# iptables -t filter -P FORWARD DROP
[root@client ~]# iptables -P OUTPUT ACCEPT
总结规则
类别 | 选项 | 用途 |
---|---|---|
添加新的规则 | -A | 在链的末尾追加一条规则 |
-I | 在链的开头(或指定序号)插入一条规则 | |
查看规则列表 | -L | 列出所有的规则条目 |
-N | 以数字形式显示地址、端口等信息 | |
-V | 以更详细的方式显示规则信息 | |
–line-numbers | 查看规则时,显示规则的序号 | |
删除、清空规则 | -D | 删除链内指定序号(或内容)的一条规则 |
-F | 清空所有的规则 | |
设置默认策略 | -P | 为指定的链设置默认规则 |
常见的通用匹配条件
- 协议匹配:-p 协议名
- 地址匹配:-s 源地址、-d目的地址
- 接口匹配:-i 入站网卡、-o出站网卡
[root@client ~]# iptables -I INPUT -p icmp -j DROP
[root@client ~]# iptables -A -FORWARD ! -p icmp -j ACCEPT
ps:感叹号表示条件取反
[root@client ~]# iptables -A -FORWARD -s 192.168.1.10 -j REJECT
[root@client ~]# iptables -I INPUT -s 10.10.10.0/24 -j DROP
[root@client ~]# iptables -A INPUT -i ens33 -s 192.168.0.0/16 -j DROP
常用的隐含匹配条件
- 端口匹配:–sport 源端口、–dport目的端口
- ICMP匹配:–icmp-type ICMP类型
[root@client ~]# iptables -A FORWARD -s 192.168.5.0/24 -p udp --dport 53 -j ACCEPT
[root@client ~]# iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
常用的显示匹配条件
端口匹配:-m multiport --sports 源端口列表
-m multiport --dports 目的端口列表
2、IP范围匹配:-m iprange --src-range IP范围
3、MAC地址匹配:-m mac --mac-source MAC地址
4、状态匹配:-m state --state 连接状态
[root@client ~]# iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT
[root@client ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.5.43-192.168.5.46 -j ACCEPT
[root@client ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP
总结规则
类别 | 条件类型 | 用法 |
---|---|---|
通用匹配 | 协议匹配 | -p 协议名 |
地址匹配 | -s 源地址、-d 目的地址 | |
接口匹配 | -i 入站网卡、-o 出站网卡 | |
隐含匹配 | 端口匹配 | –sport 源端口、–dport 目的端口 |
ICMP类型匹配 | –icm-type ICMP类型 | |
显式匹配 | 多端口匹配 | -m multiport --sports | --dports 端口列表 |
IP范围匹配 | -m iprange --src-range IP范围 | |
MAC地址匹配 | -m mac --mac-source MAC地址 | |
状态匹配 | -m state --state 连接状态 |