iptables 防火墙基本配置操作

iptables 是 CentOS 6 以及更早版本 Linux 系统中使用的防火墙组件,它能很大程度的保护服务器的安全。CentOS 7 及已更换为 Firewall 防火墙,关于 Firewalld 可以参考《Firewall 防火墙的基本操作》。
  iptables 有两种配置方式,一种是使用命令增加、删除和修改防火墙配置,一种是直接改写 iptables 配置文件。这里我比较推荐改配置文件,因为更加直观啦。以下目前只讲 ipv4 防火墙配置,ipv6 我自己研究的也不是很深,以后再总结...

配置 iptables

①编辑防火墙配置文件:vi /etc/sysconfig/iptables
②修改配置文件内容,以下给出一个范例,仅供参考,请按照自己的需求编写:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30000:50000 -j ACCEPT
-A INPUT -p udp --dport 50000:65535 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT

③保存文件、退出 vi
④重启防火墙:service iptables restart

范例的一些简单的说明和解释

*filter
iptables 的 filter 表,记住必须要写在配置的最前面就行了。

:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]
跟在 * filter 的下一行即可。负责 INPUT(入方向)、FORWARD(转发)、OUTPUT(出方向)的默认策略。ACCEPT 默认放行、DROP 默认丢弃。后面的数字仅仅用来统计数据包,对配置没有意义,配置时写 0 即可。

-A INPUT -i lo -j ACCEPT
入方向允许环回。这一句必须要有。

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
入方向允许 22 端口的 TCP 通信。(这里是允许 SSH 通信,必须要有。)

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
入方向允许 80 端口的 TCP 通信。(这里是允许访问 WEB 前端,如果服务器作为 WEB 服务器,需要开放 80 端口)

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
入方向允许 21 端口的 TCP 通信。(这里是允许 FTP 默认端口通信)

-A INPUT -p tcp -m state --state NEW -m tcp --dport 30000:50000 -j ACCEPT
入方向允许 30000 到 50000 端口的第一个数据包通过 TCP 协议通信,需要配合下面的 “--state RELATED,ESTABLISHED” 一起工作。一般 - m state --state NEW 配给需要用来通信但不需要一直开放的端口,例如 FTP 进行数据传输时使用的随机端口。

-A INPUT -p udp --dport 50000:65535 -j ACCEPT
入方向允许 50000 到 65535 端口的 UDP 通信。

-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
入方向允许 PING 数据包。如果没有这条规则,PING 服务器会超时,也就是 “禁 PING”。

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
入方向允许已经建立连接的端口通信。配合上面的 “--state NEW” 一起工作。

-A INPUT -j REJECT --reject-with icmp-port-unreachable
入方向拒绝所有没有允许的请求。也就是上面规则没有允许的端口的访问都会被拒绝。这一条一定要放在所有 INPUT(入方向)规则的最后一行。

COMMIT
提交之前的所有规则。COMMIT 在所有规则之后,一般在最后一行即可。

一般仅配置 INPUT(入方向)的防火墙策略,FORWARD(转发)和 OUTPUT(出方向)默认允许就好。

免责声明:
1.本站所有内容只做学习和交流使用。 版权归原作者所有。
2.保证站内提供的所有可下载源码资源(软件等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。
3.本站部分内容均收集于网络!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。请联系站长邮箱:admin#ibian.online(#换成@)处理!

给TA打赏
共{{data.count}}人
人已打赏
综合项

Pake打包Web APP记录

2025-3-15 16:07:41

综合项

详细图解Eclipse下载、安装和使用教程

2025-4-1 16:30:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索