iptables 命令使用帮助总结

本文为博主原创,转载请注明出处:

1.iptables 命令帮助参数

复制代码
root@controller1:~# iptables --help
iptables v1.6.1

Usage: iptables -[ACD] chain rule-specification [options]
       iptables -I chain [rulenum] rule-specification [options]
       iptables -R chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LS] [chain [rulenum]] [options]
       iptables -[FZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (print this help information)

Commands:
Either long or short options are allowed.
  --append  -A chain            Append to chain
  --check   -C chain            Check for the existence of a rule
  --delete  -D chain            Delete matching rule from chain
  --delete  -D chain rulenum
                                Delete rule rulenum (1 = first) from chain
  --insert  -I chain [rulenum]
                                Insert in chain as rulenum (default 1=first)
  --replace -R chain rulenum
                                Replace rule rulenum (1 = first) in chain
  --list    -L [chain [rulenum]]
                                List the rules in a chain or all chains
  --list-rules -S [chain [rulenum]]
                                Print the rules in a chain or all chains
  --flush   -F [chain]          Delete all rules in  chain or all chains
  --zero    -Z [chain [rulenum]]
                                Zero counters in chain or all chains
  --new     -N chain            Create a new user-defined chain
  --delete-chain
            -X [chain]          Delete a user-defined chain
  --policy  -P chain target
                                Change policy on chain to target
  --rename-chain
            -E old-chain new-chain
                                Change chain name, (moving any references)
Options:
    --ipv4      -4              Nothing (line is ignored by ip6tables-restore)
    --ipv6      -6              Error (line is ignored by iptables-restore)
[!] --protocol  -p proto        protocol: by number or name, eg. `tcp'
[!] --source    -s address[/mask][...]
                                source specification
[!] --destination -d address[/mask][...]
                                destination specification
[!] --in-interface -i input name[+]
                                network interface name ([+] for wildcard)
 --jump -j target
                                target for rule (may load target extension)
  --goto      -g chain
                              jump to chain with no return
  --match       -m match
                                extended match (may load extension)
  --numeric     -n              numeric output of addresses and ports
[!] --out-interface -o output name[+]
                                network interface name ([+] for wildcard)
  --table       -t table        table to manipulate (default: `filter')
  --verbose     -v              verbose mode
  --wait        -w [seconds]    maximum wait to acquire xtables lock before give up
  --wait-interval -W [usecs]    wait time to try to acquire xtables lock
                                default is 1 second
  --line-numbers                print line numbers when listing
  --exact       -x              expand numbers (display exact values)
[!] --fragment  -f              match second or further fragments only
  --modprobe=<command>          try to insert modules using this command
  --set-counters PKTS BYTES     set the counter during insert/append
[!] --version   -V              print package version.

2.iptables 常用参数

  1. -L, --list
    • 列出所有规则链。
    • 示例:iptables -L 列出所有链的默认规则。
  2. -A, --append
    • 向指定链追加一条规则。
    • 示例:iptables -A INPUT -p tcp --dport 22 -j ACCEPT 向 INPUT 链追加一条规则,允许所有到 TCP 端口 22 的连接。
  3. -D, --delete
    • 删除链中的一条规则。
    • 示例:iptables -D INPUT -p tcp --dport 22 -j ACCEPT 删除 INPUT 链中允许 TCP 端口 22 的规则。
  4. -I, --insert
    • 在链的指定位置插入一条规则。
    • 示例:iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT 在 INPUT 链的第一条规则之前插入一条允许 TCP 端口 80 的规则。
  5. -R, --replace
    • 替换链中的一条规则。
    • 示例:iptables -R INPUT 1 -p tcp --dport 8080 -j ACCEPT 替换 INPUT 链中第一条规则为允许 TCP 端口 8080 的规则。
  6. -F, --flush
    • 删除链中的所有规则。
    • 示例:iptables -F INPUT 删除 INPUT 链中的所有规则。
  7. -N, --new-chain
    • 创建一个新的用户自定义链。
    • 示例:iptables -N MYCHAIN 创建一个名为 MYCHAIN 的新链。
  8. -X, --delete-chain
    • 删除一个用户自定义链。
    • 示例:iptables -X MYCHAIN 删除名为 MYCHAIN 的链。
  9. -P, --policy
    • 设置链的默认策略。
    • 示例:iptables -P INPUT DROP 将 INPUT 链的默认策略设置为 DROP。
  10. -j, --jump
    • 指定匹配的数据包应该跳转到的目标。
    • 示例:iptables -A INPUT -p tcp --dport 22 -j ACCEPT 匹配的数据包将被接受(ACCEPT)。

11. -v, --verbose

    • 显示更详细的信息。这通常包括每个规则的匹配次数、数据包数、字节数等统计信息。

3.常用命令

1.删除现有规则

复制代码
iptables -F
(OR)
iptables --flush

2.屏蔽指定的IP地址

以下规则将屏蔽BLOCK_THIS_IP所指定的IP地址访问本地主机:

复制代码
BLOCK_THIS_IP="x.x.x.x"
iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP
(或者仅屏蔽来自该IP的TCP数据包)
iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP

3.允许来自外部的ping测试

复制代码
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

** 4.允许从本机ping外部主机**

复制代码
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

5.允许环回(loopback)访问

复制代码
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

6.允许 SSH 访问

复制代码
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

7.允许 HTTP 访问

复制代码
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

8.拒绝所有其他入站连接

复制代码
iptables -P INPUT DROP

注意:这里使用了 -P INPUT DROP 来设置 INPUT 链的默认策略为 DROP,这意味着除非明确允许,否则所有入站连接都将被拒绝。

相关推荐
cominglately2 小时前
centos单机部署seata
linux·运维·centos
魏 无羡2 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
CircleMouse2 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
木子Linux3 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.8243 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
鹏大师运维3 小时前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
watermelonoops3 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
滴水之功4 小时前
VMware OpenWrt怎么桥接模式联网
linux·openwrt
ldinvicible4 小时前
How to run Flutter on an Embedded Device
linux
YRr YRr5 小时前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu