linux防火墙功能是netfilter模块提供的
iptables是一个客户端,客户端是用来接收用户命令的
ipyables -nvL -t nat
n 数字显示 v 详细详细 L 列出规则
-t 指定要操作的表
iptables由表和链构成
具体的四表
filter表——过滤数据包 默认表
Nat表——用于网络地址转换(IP、端口)
Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表——决定数据包是否被状态跟踪机制处理
五链
INPUT:处理进入本机的数据包。
FORWARD:处理转发的数据包。
OUTPUT:处理从本机发出的数据包。
PREROUTING:在路由选择之前处理数据包。
POSTROUTING:在路由选择之后处理数据包。
添加规则
-A INPUT -s 192.168.0.123 -p tcp --dport 22 -j ACCEPT
mac规则
-A INPUT -m mac --mac-source mac地址 -p tcp --dport 22 -j ACCEPT
-m module 模块
-p 指定协议
-A INPUT -s 192.168.0.100 -j ACCEPT
命令行添加规则
iptables -t filter -A INPUT -s 192.168.0.123 -p tcp --dport 8080 -j ACCEPT
不加 -s 表示 任何
service iptables save 保存
ESTABLISHED
区域:
public 仅允许访本机sshd dhcp ping服务
trusted 允许任何访问
通过端口 ip 协议限制
iptables -t filter -A INPUT -s 192.168.1.120 -j DROP
-t 在 fiilter 表上添加
-A 添加规则 INNPUT 添加到input链 -j 丢弃
iptables -vnL --line-numbers 显示编号
Chain INPUT (policy ACCEPT 64 packets, 4994 bytes)
num pkts bytes target prot opt in out source destination
1 1 84 DROP all -- * * 101.201.116.250 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 55 packets, 5970 bytes)
num pkts bytes target prot opt in out source destination
常用命令
删除规则。删除第一条
iptables -D INPUT 1
修改规则。 REJECT 拒绝有回应
iptables -R INPUT 1 -s 101.0.0.0/24 -j REJECT
```bash
指定协议
iptables -A INPUT -s 192.168.1.128 -p icmp -j REJECT
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
iptables -A INPUT -j DROP
iptables -I INPUT -i lo -j ACCEPT
拒绝第一次握手,新连接不让连, --syn:用于匹配第一次握手, 相当于:--tcp-flags SYN,ACK,FIN,RST SYN
iptables -A INPUT -p tcp --syn -jREJECT
拒绝请求 --icmp-type 8
iptables -A INPUT -s 192.168.1.128 -p icmp --icmp-type 8 -j REJECT
multiport扩展,指定多个端口
iptables -A INPUT -s 192.168.1.128 -p tcp -m multiport --dports 443,80,22 -j REJECT
创建自定义链
iptables -N web_chain
iptables -A WEB_CHAIN -s 192.168.1.128 -p tcp --dport 6379 -j REJECT
iptables -A INPUT -j WEB_CHAIN #内置链关联自定义链
保存配置
iptables-save > iptables.txt
iptables -F 清空防火墙规则
iptables -X 删调自定义链
iptables-restore < iptables.txt 当清空规则后,重新恢复
写到rc.local,开机自动加载
iptables-restore </root/iptables.txt
centos的iptables规则路径/etc/sysconfig/iptables-config
在 Ubuntu 20.04 中,iptables 的配置文件路径为 /etc/iptables/rules.v4 和 /etc/iptables/rules.v6,分别用于 IPv4 和 IPv6 的 iptables 规则配置。
IPv4 规则文件路径:/etc/iptables/rules.v4
IPv6 规则文件路径:/etc/iptables/rules.v6
您可以通过编辑这些文件来配置 iptables 防火墙规则。在文件中,您可以添加 iptables 规则,指定允许或拒绝特定的网络连接和数据包。
iptales A FORWARD -s 10.0.0.0/24 ! -d 10.0.0.0/24 -m state --state NEW -j ACCEPT
-s 10.0.0.0/24:源IP地址为10.0.0.0/24网段。
! -d 10.0.0.0/24:目标IP地址不在10.0.0.0/24网段内。
-m state --state NEW:只针对新的连接。
-j ACCEPT:接受并允许该连接通过。
内网访问外网 SNAT 源地址转换,
外网服务内网 DNAT 目标地址转换,
用6.6.6.6的公网地址,公司配置
## 转发: REDIRECT
访问本机的8080端口转给80端口
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80
iptables -A INPUT -i eth0 -p icmp --icmp-type Echo-Request -j DROP
这条规则的作用是禁止通过eth0接口进入的Ping请求,即阻止来自外部网络的Ping请求进入主机
--icmp-type Echo-Request:匹配ICMP类型为Echo-Request的数据包,即Ping请求。