iptables使用详解

iptables 是 Linux 系统上用于配置 IPv4 数据包过滤规则的工具。它可以用于设置和管理防火墙规则,网络地址转换(NAT),网络地址端口转换(PAT)等。iptables 是 Linux 内核中 Netfilter 框架的一部分。

以下是 iptables 的一些基本概念和常见用法:

基本概念

表(Table): iptables 使用不同的表来组织规则,包括 filter、nat、mangle、raw 等。
链(Chain): 每个表包含一组链,如 INPUT、OUTPUT、FORWARD 等,用于指定规则应用于输入、输出、转发等数据包。
规则(Rule): 规则是由匹配条件和相应的动作组成的。如果数据包满足规则中定义的匹配条件,将执行规则中定义的动作。

常用命令和选项

查看规则:

iptables -L  # 列出所有规则
iptables -L -n -v  # 列出规则,显示 IP 地址和详细信息

清除规则:

iptables -F  # 清除所有规则

添加规则:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # 允许 SSH 连接

删除规则:

iptables -D INPUT -p tcp --dport 22 -j ACCEPT  # 删除指定规则

保存规则:

service iptables save  # 保存规则到配置文件
service iptables restart  # 重新加载规则

规则示例

允许所有本地流量:

iptables -A INPUT -i lo -j ACCEPT

允许已建立的连接:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

允许SSH连接:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

允许HTTP连接:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

拒绝所有其他连接:

iptables -A INPUT -j DROP

NAT(网络地址转换)

iptables 还可以用于配置网络地址转换,允许在不同网络之间转发数据包。

开启IP转发:

sysctl -w net.ipv4.ip_forward=1

配置端口转发:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80

连接跟踪和状态

iptables 具有连接跟踪和状态机制,用于跟踪网络连接的状态,这在设置规则时非常有用。

查看连接跟踪信息:

cat /proc/net/nf_conntrack

允许相关和已建立的连接:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

高级匹配条件和匹配模块

iptables 提供了多种匹配条件和匹配模块,可以根据需要使用。例如:

匹配源和目标 IP 地址:

iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.2 -j ACCEPT

使用 --protocol 选项匹配协议:

iptables -A INPUT --protocol tcp --dport 22 -j ACCEPT

使用 --mac-source 匹配源 MAC 地址:

iptables -A INPUT --protocol tcp --dport 80 --mac-source 00:11:22:33:44:55 -j ACCEPT

防止DDoS攻击

使用 iptables 可以实施一些策略来减缓或阻止 DDoS(分布式拒绝服务)攻击。

限制连接数:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j DROP

限制请求速率:

iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

这些规则可以帮助减轻来自大量请求的负载,并提高系统对恶意攻击的抵抗力。

注意事项:
在配置 iptables 规则时,确保不要阻断自己的远程连接,以防远程连接被中断。

在生产环境中修改 iptables 规则时要谨慎,可以在测试环境中进行验证。

在某些发行版上,防火墙规则的配置文件可能位于 /etc/sysconfig/iptables 或 /etc/iptables/rules.v4。

使用 iptables-save 命令可以将当前规则保存到文件,使用 iptables-restore 命令可以从文件加载规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值