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,这意味着除非明确允许,否则所有入站连接都将被拒绝。

相关推荐
深念Y18 小时前
RIO-UL00(EMUI 4.1 / Android 6.0.1 / arm64)开机自启动 sshd
android·linux·华为·安卓·chroot·sshd·emui
Escalating_xu18 小时前
【Linux线程】线程控制全解析:终止、join/detach、cancel、线程栈与 NPTL(下篇)
java·linux·运维
老当益壮梁奶奶19 小时前
Linux软件编程学习笔记(二)Linux文件IO编程入门:从fopen到fgetc
linux·c语言·c++·笔记·学习
sunoo-22919 小时前
C 语言文件 IO 全攻略:从基础函数到实战踩坑(BMP 读取 + 词典查询)
linux·c语言·前端·笔记·vscode·学习
草莓熊Lotso19 小时前
【Linux网络加餐】手动部署:SSH 与 Web 服务实战 + 底层原理全解析
linux·运维·网络·人工智能·python·langchain·ssh
CHHH_HHH19 小时前
【Linux系统篇】深入解析Linux文件系统:从磁盘寻址到软硬链接
linux·服务器·开发语言·后端·ubuntu
XiaQ091920 小时前
Linux 常用命令学习笔记(用户管理篇):用户、组与权限的钥匙
linux·开发语言·笔记·学习
刚入门的大一新生20 小时前
Linux-Linux的进程状态
linux·运维·服务器
comedate1 天前
Windows / Linux GPU 虚拟内存布局差异与 CUDA 越界访问行为
linux·windows·mmu·cuda 越界访问
暴力求解1 天前
Linux网络---传输层协议TCP(二)
linux·服务器·开发语言·网络·tcp/ip