📜  Linux 中的 iptables 命令及示例(1)

📅  最后修改于: 2023-12-03 15:02:43.485000             🧑  作者: Mango

Linux 中的 iptables 命令及示例

iptables 是 Linux 中用于配置防火墙规则的工具。它允许程序员通过定义规则来控制进出系统的网络数据包。

安装 iptables

在大多数 Linux 发行版中,iptables 已经默认安装。如果未安装,可以按照以下操作进行安装:

  • 在 Debian 或 Ubuntu 上安装 iptables:sudo apt-get install iptables
  • 在 CentOS 或 RHEL 上安装 iptables:sudo yum install iptables
基本概念

在使用 iptables 命令之前,我们需要了解一些基本概念:

  • 表(Table):iptables 中的表是数据包过滤规则的容器。常见的表有 filternatmangle
  • 链(Chain):链是表中的规则序列。常见的链有 INPUTOUTPUTFORWARD
  • 规则(Rule):规则是链中的相应动作,用于确定数据包的处理方式。常见的规则动作有 ACCEPTDROPREJECT
  • 匹配(Match):匹配是规则中用于判断数据包是否与之匹配的条件。常见的匹配条件有 --source--destination--protocol
命令示例

以下是一些常用的 iptables 命令示例:

  1. 显示当前防火墙规则:
sudo iptables -L
  1. 清除当前所有防火墙规则:
sudo iptables -F
  1. 允许某个 IP 地址访问本机的 SSH 服务:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
  1. 允许本机访问外部的 HTTP 和 HTTPS 服务:
sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
  1. 禁止某个 IP 地址访问本机的任何服务:
sudo iptables -A INPUT -s 192.168.1.200 -j DROP
  1. 将某个 IP 地址转发到特定端口:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:8080
  1. 设置默认规则为拒绝所有进出数据包:
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP
  1. 允许本机回应 ping 请求:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

以上示例只是 iptables 的冰山一角,iptables 支持更多功能和选项,通过这些示例可以帮助程序员快速了解和使用 iptables,进一步保护系统安全。