目录
1、禁止一个IP访问
iptables -I INPUT -s $ip -j REJECT
2、清空默认的防火墙默认规则:
iptables -F
3、保存清空后的防火墙规则表
service iptables save
4、firewall-cmd --list-all
#查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)
5、查看所有的防火墙策略
firewall-cmd --list-all-zones
#(即显示/etc/firewalld/zones/下的所有策略)
6、firewall-cmd --reload
#重新加载配置文件
配置了的都需要重新加载配置文件
7、查看可以添加的服务
firewall-cmd --get-services
firewall-cmd --get-services | grep ftp
8、添加服务
firewall-cmd --zone=public --add-service=ftp --permanent
9、查询指定端口是否已开.开启:yes,未开启:no
10、添加指定端口
firewall-cmd --add-port=53/tcp --permanent
11、删除指定端口
firewall-cmd --remove-port=53/tcp --permanent
12、snat转换
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT --to-source
20.20.20.11
当源地址是 内网网段 并且出口网卡为 eth0 的时候进行 SNAT 转换
查看记录是否保存成功
iptables -t nat -L
13、将本机80端口请求转发到另外一台主机的8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 目标主机IP:8080
14、将本机的80端口请求转发到本机的8080端口
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
15、封锁IP
iptables -A INPUT -s 封闭的IP地址 -j DROP 和 iptables -I INPUT -s $ip -j REJECT 是iptables命令中用于封锁IP地址的两种不同方式。
-
iptables -A INPUT -s 封闭的IP地址 -j DROP:
- 使用 "-A" 参数表示在规则链的末尾添加规则。
- "-s" 参数指定源IP地址,即要封闭的IP地址。
- "-j DROP" 表示匹配到该规则后,将丢弃(drop)该数据包,即完全忽略该数据包。
-
iptables -I INPUT -s $ip -j REJECT:
- 使用 "-I" 参数表示在规则链的开头插入规则。
- "-s" 参数指定源IP地址,即要封闭的IP地址。
- "-j REJECT" 表示匹配到该规则后,将拒绝(reject)该数据包,即向发送方发送一个拒绝的响应。
区别:
- 添加规则的位置不同:第一种方式是在规则链的末尾添加规则,第二种方式是在规则链的开头插入规则。
- 动作不同:第一种方式使用 DROP 动作,完全忽略该数据包;第二种方式使用 REJECT 动作,向发送方发送一个拒绝的响应。
选择使用哪种方式取决于具体的需求。如果希望完全忽略该数据包,不给发送方任何响应,可以使用 DROP 动作。如果希望向发送方发送一个拒绝的响应,告知其连接被拒绝,可以使用 REJECT 动作。
16、iptables和firewalld的区别
Firewalld和iptables是两种不同的防火墙管理工具,它们在实现和使用上有一些区别。
-
架构和设计:Firewalld是基于动态防火墙管理器的概念构建的,它使用D-Bus和NetworkManager来实现动态更新防火墙规则。而iptables是一个基于内核的防火墙工具集,它直接与Linux内核交互来配置和管理防火墙规则。
-
管理方式:Firewalld使用基于区域的管理方式,将网络接口和连接的安全级别划分为不同的区域,并为每个区域定义相应的访问规则。这种管理方式更加灵活和易于管理。而iptables使用基于规则链的管理方式,通过定义规则链和规则来控制网络流量。
-
动态更新:Firewalld支持动态更新防火墙规则,可以在运行时添加、删除或修改规则,而无需重启防火墙服务。这使得在实时环境中进行防火墙配置更加方便。而iptables的规则是静态的,需要手动编辑配置文件或使用命令来更新规则。
-
简化配置:Firewalld提供了更高级别的抽象和简化的配置接口,使得配置防火墙规则更加易于理解和操作。它还提供了图形界面和命令行工具来管理防火墙。而iptables的配置相对更底层和复杂,需要直接编辑规则和表。
总的来说,Firewalld相对于iptables提供了更高级别的抽象和动态更新的能力,使得防火墙配置更加灵活和易于管理。然而,iptables仍然是一个强大而灵活的工具,适用于需要更细粒度控制的场景。