
Linux iptables简介
在Linux操作系统中,iptables是一个用于管理环境中防火墙规则的工具。同样地,我们还有一个工具来管理Linux上的防火墙规则,即firewalld。iptables是用来管理设置和检查Linux内核中的IP数据包的。它将有助于限制环境中不需要的数据包。它将持有一些内置的链,称为系统链和用户定义的链。
Rusty Russell在早期与Michael Neuling协商后最初写了iptables。iptables的man page最初是由Herve Eychenne(电子邮件ID:rv@wallfire.org)写的。
Linux Iptables的语法
iptables [-t table] {-A|-C|-D} chain rule-specification
- iptables。我们可以在语法或命令中使用 "iptables "关键字。它将接受不同的参数,如表名、选项、系统或用户链、特定规则集等。根据提供的参数,它将管理设置和检查IP表。
- OPTIONS。我们可以提供不同的标志,作为与 "iptables "命令兼容的选项。
- 链。根据条件或要求,我们可以使用系统链或用户定义的链。
Linux Iptables如何工作?
Linux是一个支持多用户的操作系统。它将支持多个服务器或应用程序。在运行这些服务器或应用程序时,管理数据包的安全是非常重要的。iptables有能力来管理它。它将在环境中创建一套规则,并根据规则,允许或限制流动的数据包。
下面是与iptables命令兼容的选项列表。
| 选项 No | 选项 | 说明 |
| 1 | -A, -append chain rule-specification | 这将有助于将一个或多个规则附加到所选或当前链的末端。 |
| 2 | -C, -check chain rule-specification | 它将帮助检查所选链中的规则是否符合规范。 |
| 3 | -D, -删除链的规则说明 -D, -delete chain rulenum | 这两个选项都有助于从选定的或当前的链中删除一个或多个规则。 |
| 4 | -I, -insert chain [rulenum] rule-specification | 它将帮助在当前或选定的链中插入一条或多条规则(根据给定的规则编号)。 |
| 5 | -R, -replace chain rulenum rule-specification | 它将帮助替换选定链中的规则。 |
| 6 | -L, -list [chain] | 它将帮助列出所选链中的所有规则。 如果没有选择链,那么它将列出所有的链。 |
| 7 | -S, -list-rules [chain](链)。 | 它将帮助打印所选链中的所有规则。 如果没有选择链,那么它将打印出所有的链作为iptables的保存。 |
| 8 | -w, -wait [seconds] | 该选项有助于等待xtables的锁。它将有助于防止工作或应用程序的多个实例。在默认情况下,如果不能获得锁,程序将自动退出。它将保持程序,直到可以获得独占锁。 |
| 9 | -W, -wait-interval微秒 | 这将有助于每一次迭代的等待时间间隔。 当运行一个敏感的应用程序时,并可能观察到应用程序或工作层面的延迟。它将等待xtables锁的时间延长(这可能是不可接受的)。这个选项只在"-w "下工作。 |
| 10 | -n, -numeric | 这将有助于提供数字格式的输出。IP地址和端口号将以数字格式打印。但在默认情况下,程序将尝试以网络名称、主机名或适用的服务来打印输出。 |
| 11 | -x, -exact | 它将有助于扩展数字。它也将有助于显示字节计数器和数据包的正确值。这个选项将有助于恢复-L命令的效果。 |
| 12 | -行数 | 它将有助于获得规则在链中的位置信息。当列出规则时,在每个规则的开头添加行号。 |
| 13 | -modprobe=command | 当添加或插入规则到链中时。使用命令来加载任何必要的模块,如目标、匹配扩展等,会有帮助。 |
实施Linux Iptables的例子
下面是Linux Iptables的例子。
例子#1 - 检查IP表规则
在Linux环境中,我们可以检查环境中可用的iptables规则列表。
命令:
iptables -L -n -v
解释:
按照上面的命令,我们要列出工作环境中可用的规则数量。
输出

例子#2 - 阻止IP地址
在iptables中,我们有功能阻止环境中的特定IP地址。
命令:
iptables -A INPUT -s 10.10.189.57 -j DROP
解释
按照上面的命令,我们要封堵10.10.189.57这个IP地址。
输出

例子 #3 - 解除对IP地址的封堵
在使用Linux的iptables的时候,我们也可以取消对IP地址的封锁。
命令:
iptables -D INPUT -s 10.10.189.57 -j DROP
解释
按照上面的命令,我们要解除对10.10.189.57这个IP地址的封锁。
输出

例子 #4 - 封锁出站端口
在Linux中,我们可以禁止外发端口的流量。
命令
iptables -A OUTPUT -p tcp --dport 80 -j DROP
解释
我们正在阻止环境中的出站流量,并阻止80号端口。
输出

例子 #5 - 阻止进入的端口
在iptables中,我们有一个功能可以阻止传入端口的流量。
命令
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
解释
我们正在阻止环境中传入的流量,并阻止80端口。
输出

结论
我们已经看到了 "Linux Iptables "的完整概念,有适当的例子、解释和命令,以及不同的输出。根据要求,我们可以创建或删除iptables或防火墙规则。我们也可以阻止或取消阻止IP地址或端口。