# 1. 删除所有现有规则
iptables -F
# 2. 设置默认的 chain 策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# 3. 阻止某个特定的 IP 地址
#BLOCK_THIS_IP="x.x.x.x"
#iptables -A INPUT -s "$BLOCK_THIS_IP" -j DRO
# 4. 允许全部进来的(incoming)SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 5. 只允许某个特定网络进来的 SSH
#iptables -A INPUT -i eth0 -p tcp -s 192.168.200.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 6. 允许进来的(incoming)HTTP
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# 7. 多端口(允许进来的 SSH、HTTP 和 HTTPS)
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT
# 8. 允许出去的(outgoing)SSH
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 9. 允许外出的(outgoing)SSH,但仅访问某个特定的网络
#iptables -A OUTPUT -o eth0 -p tcp -d 192.168.101.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 10. 允许外出的(outgoing) HTTPS
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
# 11. 对进来的 HTTPS 流量做负载均衡
#iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.101:443
#iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j DNAT --to-destination 192.168.1.102:443
#iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j DNAT --to-destination 192.168.1.103:443
# 12. 从内部向外部 Ping
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
# 13. 从外部向内部 Ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
# 14. 允许环回(loopback)访问
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 15. 允许 packets 从内网访问外网
# if eth1 is connected to external network (internet)
# if eth0 is connected to internal network (192.168.1.x)
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
# 16. 允许外出的 DNS
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
# 17. 允许 NIS 连接
# rpcinfo -p | grep ypbind ; This port is 853 and 850
#iptables -A INPUT -p tcp --dport 111 -j ACCEPT
#iptables -A INPUT -p udp --dport 111 -j ACCEPT
#iptables -A INPUT -p tcp --dport 853 -j ACCEPT
#iptables -A INPUT -p udp --dport 853 -j ACCEPT
#iptables -A INPUT -p tcp --dport 850 -j ACCEPT
#iptables -A INPUT -p udp --dport 850 -j ACCEPT
# 18. 允许某个特定网络 rsync 进入本机
#iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
# 19. 仅允许来自某个特定网络的 MySQL 的链接
#iptables -A INPUT -i eth0 -p tcp -s 192.168.200.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
# 20. 允许 Sendmail 或 Postfix
iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
# 21. 允许 IMAP 和 IMAPS
#iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT
# 22. 允许 POP3 和 POP3S
#iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT
# 23. 防止 DoS 攻击
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
# 24. 设置 422 端口转发到 22 端口
#iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22
#iptables -A INPUT -i eth0 -p tcp --dport 422 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 422 -m state --state ESTABLISHED -j ACCEPT
# 25. 为丢弃的包做日志(Log)
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
iptables -A LOGGING -j DROP
相关推荐
Linux 上的 iptables 防火墙是一种常用的防火墙软件,能够控制访问 Linux 系统的流量。iptables 防火墙的基本应用包括安装、清除规则、开放指定端口、屏蔽指定 IP、删除已添加的规则等。 安装 iptables 防火墙 若...
### Linux防火墙iptables常用规则详解 #### 一、iptables基础操作与配置 ##### 删除现有规则 在使用iptables之前,我们通常需要先清除已有的规则,以便于重新建立新的规则集。这可以通过`iptables -F`命令来实现。...
#### 二、iptables规则表与规则链 iptables的核心概念包括规则表(Table)和规则链(Chain)。规则表是规则链的集合,主要用于归类具有相同处理目的的防火墙规则。Linux防火墙默认提供了四种规则表: 1. **raw表**...
IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和...
本文档主要介绍了 Linux 中的iptables 命令的实例,涵盖了 iptables 的基本用法、规则设定、端口控制、NAT 转发等方面的知识点。 一、iptables 的基本概念 iptables 是 Linux 系统中的一个防火墙工具,用于控制...
- 查看iptables规则文件:`cat /etc/sysconfig/iptables` #### 配置规程流程 在配置远端服务器时,需要注意以下几点: - 不要一开始就设置DROP规则,以免误将SSH端口也DROP掉,导致无法远程访问。 - 第一次创建...
iptables 常用的通用匹配条件和扩展匹配条件;添加、修 改、删除自定义链的方法。 实验内容:1)使用 iptables 制定规则,包括添加、修改、保存和删除规则等。 2)使用通用匹配条件和扩展匹配条件定义 iptables ...
### iptables常用命令详解 #### 一、iptables简介 **iptables** 是一款强大的包过滤防火墙工具,它允许用户通过定义一系列复杂的规则来控制进出主机的数据包。此工具需要Linux内核版本至少为2.4及以上,对于2.6及...
表(Table)定义了iptables规则的处理目标,包括mangle表、nat表和Filter表。mangle表用于修改数据包的服务类型(ToS)、时间戳(TTL)等参数;nat表用于网络地址转换,适用于IP映射、端口映射等;而Filter表则用于...
- `iptables-save`: 将当前的iptables规则保存到文件中。 - `iptables-restore`: 从文件中恢复iptables规则。 #### 四、高级特性 - **连接跟踪**: - Iptables支持连接跟踪功能,可以识别并处理已建立连接的...
iptables 和 firewalld 是 Linux 系统中两种常用的防火墙解决方案,用于过滤不合法的流量,保护内网安全。本文将对比 iptables 和 firewalld 的配置使用方法,并详细介绍 CentOS 7 中的防火墙配置。 iptables ...
以上只是一部分iptables的常用语法和示例,实际使用中还可以根据需要添加更复杂的规则,如基于时间的规则、自定义标记等。iptables提供了一种灵活的方式来控制网络流量,确保系统安全并优化网络性能。理解并熟练掌握...
通过以上命令的组合使用,用户可以灵活地配置iptables规则,实现网络安全策略的定制化,如只允许特定端口的数据包通过、丢弃或接受特定类型的数据包,甚至是根据IP地址范围和连接状态来控制数据包的流动。...
这里记录了iptables 防火墙规则的一些常用的操作指令。 下面的操作以 CentOS 为基础介绍,应该对不同的 Linux 发行版都差不多。在 CentOS 5.x 和 6.x 中,iptables 是默认安装的(如果没有安装,先安装 iptables ...
最后,为了持久化iptables规则,我们可以使用`iptables-save`命令将当前的规则保存到文件,然后在系统启动时使用`iptables-restore`加载这些规则,确保重启后规则依然有效。 这个“两小时玩iptables”的音频讲解和...
`iptables`是Linux系统下常用的网络管理工具之一,主要用于实现包过滤、网络地址转换(NAT)等功能。通过配置iptables规则,我们可以对进出系统的数据包进行精细控制,从而达到网络安全防护的目的。 #### 二、...
- **iptables-save**:详细介绍了iptables-save命令的使用方法,这是保存iptables规则的主要工具。 - **iptables-restore**:解释了iptables-restore命令的用法,它是用来恢复之前保存的规则集的。 #### 规则的构建...
iptables 防火墙的基本管理包括关闭 firewalld 服务、启动 iptables 服务、查看防火墙规则、追加、插入防火墙规则、删除、清空防火墙规则等。 二、filter 表控制 filter 表是 iptables 防火墙中的一个重要组件,...