iptables是Linux操作系统中常用的防火墙软件,可以帮助管理员控制网络数据包的流向和访问控制。iptables通过配置表规则来控制网络数据包的流向,根据规则进行过滤、转发和重定向等操作,实现网络访问控制和安全策略。
以下是iptables常用命令:
iptables -L 该命令可以列出当前iptables中的所有规则,包括过滤、转发、重定向等规则。
代码语言:javascript复制$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -F 该命令可以清空当前iptables中的所有规则。
代码语言:javascript复制$ iptables -F
iptables -P 该命令可以设置iptables中默认的策略,包括INPUT、FORWARD、OUTPUT三个链。默认情况下,iptables的默认策略是ACCEPT。
代码语言:javascript复制$ iptables -P INPUT DROP
$ iptables -P FORWARD DROP
$ iptables -P OUTPUT DROP
以上命令将iptables的默认策略设置为DROP,即拒绝所有数据包。
iptables -A 该命令可以向iptables中添加新的规则,可以添加过滤规则、转发规则、重定向规则等。
代码语言:javascript复制$ iptables -A INPUT -s 192.168.1.1 -j ACCEPT
以上命令添加了一条过滤规则,允许源IP为192.168.1.1的数据包通过INPUT链。
iptables -D 该命令可以从iptables中删除指定的规则。
代码语言:javascript复制$ iptables -D INPUT -s 192.168.1.1 -j ACCEPT
以上命令删除了之前添加的过滤规则,禁止源IP为192.168.1.1的数据包通过INPUT链。
iptables -I 该命令可以在iptables中插入一条新的规则。
代码语言:javascript复制$ iptables -I INPUT 2 -s 192.168.1.1 -j ACCEPT
以上命令在INPUT链的第二条规则前插入了一条新的过滤规则,允许源IP为192.168.1.1的数据包通过INPUT链。
iptables -s 该命令可以指定源IP地址或地址段。
代码语言:javascript复制$ iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
以上命令添加了一条过滤规则,允许源IP地址段为192.168.1.0/24的数据包通过INPUT链。
iptables -d 该命令可以指定目标IP地址或地址段。
代码语言:javascript复制$ iptables -A INPUT -d 192.168.1.1 -j ACCEPT
以上命令添加了一条过滤规则,允许目标IP地址为192.168.1.1的数据包通过INPUT链。
iptables -p 该命令可以指定数据包的协议类型,例如TCP、UDP、ICMP等。
代码语言:javascript复制$ iptables -A INPUT -p tcp --dport 22 -j ACCEPT
以上命令添加了一条过滤规则,允许TCP协议的SSH数据包通过INPUT链的22端口。
iptables -m 该命令可以指定匹配模块,例如匹配MAC地址、时间段等。
代码语言:javascript复制$ iptables -A INPUT -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT
以上命令添加了一条过滤规则,允许MAC地址为00:11:22:33:44:55的数据包通过INPUT链。
iptables -j 该命令可以指定动作,例如ACCEPT、DROP、REJECT等。
代码语言:javascript复制$ iptables -A INPUT -s 192.168.1.1 -j DROP
以上命令添加了一条过滤规则,禁止源IP为192.168.1.1的数据包通过INPUT链。
iptables -N 该命令可以创建一个新的用户自定义链。
代码语言:javascript复制$ iptables -N MYCHAIN
以上命令创建了一个名为MYCHAIN的用户自定义链。
iptables -E 该命令可以重命名一个用户自定义链。
代码语言:javascript复制$ iptables -E MYCHAIN NEWCHAIN
以上命令将名为MYCHAIN的用户自定义链重命名为NEWCHAIN。
iptables -X 该命令可以删除一个用户自定义链。
代码语言:javascript复制$ iptables -X MYCHAIN
以上命令删除了名为MYCHAIN的用户自定义链。
iptables-save 该命令可以将当前iptables的规则保存到文件中。
代码语言:javascript复制$ iptables-save > /etc/iptables/rules.v4
以上命令将当前iptables的规则保存到/etc/iptables/rules.v4文件中。