`
webcenterol
  • 浏览: 951069 次
文章分类
社区版块
存档分类
最新评论

第五章:iptables应用案例分析(包过滤服务器上设置iptables)

 
阅读更多



二、服务器上的iptables的设置

1)查看

#查看filter表的设置情况
iptables -t filter -L
#清空filter表上的所有规则
iptables -t filter -F
#让filter表的数据包计数器和流量计数器归零
iptables -t filter -Z

2)设置

----------------------------------------------------------------------------------------------------------

#允许 任意一台主机/某个网段 连接本服务器的SSH服务(本服务器为:SSH服务器)
(1)允许任意一台主机连接本服务器的SSH服务
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 22
-m state --state ESTABLISHED -j ACCEPT
(2)允许某个网段连接本服务器的SSH服务
iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m -d 192.168.0.0/24 --sport 22 -m state --state ESTABLISHED -j ACCEPT
(3)允许某个网段的部分主机连接本服务器的SSH服务
iptables -t filter -A INPUT -p tcp -m iprange --src-range 192.168.0.1-192.168.0.5 --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m iprange --dst-range 192.168.0.1-192.168.0.5 --sport 22 -m state --state ESTABLISHED -j ACCEPT


#允许本服务器连接远程主机的SSH服务(本服务器为:SSH客户端)
iptables -t filter -A INPUT -p tcp --sport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

----------------------------------------------------------------------------------------------------------

#设置本服务器本地回环通行(因为本地回环地址:127.0.0.1,它提供了很多的服务,可通过netstat -autnlp查看)
iptables -t filter -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -t filter -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT


----------------------------------------------------------------------------------------------------------

#允许本服务器发送和接收ICMP数据包(ping指令)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

(1)此外还可以对icmp类型的包进行流量的限制,例如:
iptables -t filter -A INPUT -p icmp -m limit --limit 5/m --limit-burst 10 -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -m limit --limit 5/m --limit-burst 10 -j ACCEPT
其中,对INPUT链与OUTPUT链限制都进行限制流量:--limit 5/m表示每分钟可接受5个icmp类型的数据包;--limit-burst 10表示最多可接受10个,当达到10个时就出现丢弃该类型数据包
;一般我们只对INPUT链进行限制流量即可,所以当使用ping出现丢包的时,那么可能的故障就是防火墙做了相应的限制流量规则
(2)把icmp类型包的过滤写入到日志,以方便查看
iptables -t filter -A INPUT -p icmp-m limit --limit 5/m --limit-burst 10 -j LOG --log-levelINFO --log-prefix "CentOS-ICMP: "
tail -f /var/log/messages

----------------------------------------------------------------------------------------------------------

#假设本服务器为:DNS服务器(192.168.0.53)
iptables -t filter -A INPUT -p udp -d 192.168.0.53 --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp -s 192.168.0.53 --sport 53 -j ACCEPT


#允许本服务器发送和接收DNS服务(本服务器为:DNS客户端)
iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

----------------------------------------------------------------------------------------------------------

#假设本服务器:WEB服务器(192.168.0.53)
(1)允许所有的主机访问本WEB服务器
iptables -t filter -A INPUT -p tcp -d 192.168.0.53 --dport 80 -j ACCEPT(客户端请求)
iptables -t filter -A OUTPUT -p tcp -s 192.168.0.53--sport 80 -m state --state ESTABLISHED -j ACCEPT(服务器的回应)
(2)拒绝某台机子访问本WEB服务器
iptables -t filter -I INPUT -p tcp -d 192.168.0.53 --dport 80 -s 192.168.0.5 -j DROP
iptables -t filter -I OUTPUT -p tcp -s 192.168.0.53--sport 80 -d 192.168.0.5 -m state --state ESTABLISHED -jDROP
注意:拒绝的规则一定要写在允许的规则的前面((2)必须写在(1)的前面,所以可以使用-I参数,即:插入规则),因为规则的执行顺序是按从上到下的
就以上面作为这例子吧,我们的WEB服务器允许所有主机访问(除了192.168.0.5),所以我们还可以有另一种写法,如下:
iptables -t filter -A INPUT -p tcp -d 192.168.0.53 --dport 80 -s ! 192.168.0.5 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -s 192.168.0.53 --sport 80 -d ! 192.168.0.5 -j ACCEPT


#允许本服务器发送和接收httpd服务(本服务器为:web客户端)
iptables -t filter -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3127 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 3127 -j ACCEPT
注意:为什么要加上3127这个端口的相应规则呢?因为有些yum的源是提供特定端口的,此时就要自己写相应的规则


----------------------------------------------------------------------------------------------------------

#假设本服务器为:vsftp服务器(192.168.0.53)
(1)主动模式:除了打开服务器上的21端口,还得打开20端口
首先,加载相关模块
modprobe ip_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
注意以下几点
第一点:当 iptables 对 filter、nat、mangle 任意一个表进行操作的时候,会自动加载 ip_tables 模块
另外,iptable_filter、iptable_nat、iptable_mangle 模块也会自动加载

第二点:ip_conntrack 是状态检测机制,state 模块要用到,当 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 时,ip_conntrack 自动加载
第三点:ip_nat_ftp 是通过本机的 FTP 需要用到的(若你的系统不需要路由转发,没必要用这个)
第四点:ip_conntrack_ftp,当本机做 FTP 时,且要状态检测机制时才会用到


iptables -t filter -A INPUT -d 192.168.0.53 -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.0.53 -p tcp--sport 20:21 -m state --state ESTABLISHED,RELATED -j ACCEPT
注意:因为端口:20-21是连续的(大于20,表示为"20:";小于20,表示为":20"),所以可以--dport | --sport + 20:21这个写,如果不连续的话,那就得使用" -m multiport --dport |--sport + 端口1,端口2...",具体请使用man iptables,例如:下面这个例子
使用multiport可以添加多个不连接的端口,最多可以添加15组。如:-A INPUT -p tcp -m multiport –dport 21:25,135:139 -j DROP
如果不使用multiport参数,只能是添加连续的端口,如:-A INPUT -p tcp –dport 21:25 -j DROP,而不能写成21:25,135:139

(2)被动模式
首先,要实现被动模式,那么必须配置/etc/vsftpd/vsftpd.conf,在该文件增加如下内容:
pasv_enable=yes #启动被动模式
pasv_min_port=4040 #被动模式vsftpd服务器所使用的端口范围
pasv_max_port=4080

iptables -t filter -A INPUT -d 192.168.0.53 -p tcp --dport 21 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.0.53 -p tcp --sport 21 -j -m state --state ESTABLISHED ACCEPT
iptables -t filter -A INPUT -d 192.168.0.53 -p tcp --dport 4040:4080 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.0.53 -p tcp--sport 4040:4080 -m state --state ESTABLISHED -j ACCEPT
注意:被动模式下,你要使用工具下载文件,例如:在windows系统下,你可以使用xftp、FileZilla等ftp客户端工具

----------------------------------------------------------------------------------------------------------

#假设本服务器为:email服务器(192.168.0.53)
email服务器发送邮件默认所使用的端口:25
email服务器接收邮件默认所使用的端口:110
iptables -t filter -A INPUT -d 192.168.0.53 -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.0.53 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -d 192.168.0.53 -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.0.53 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT

----------------------------------------------------------------------------------------------------------

最后在规则的最前面插入检测状态(提高防火墙的工作效率):
iptables -t filter -I INPUT -m state --state INVALID -j DROP
iptables -t filter -I INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -I INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -t filter -I FORWARD -m state --state INVALID -j DROP
iptables -t filter -I FORWARD -m state --state ESTABLISHED -j ACCEPT

分享到:
评论

相关推荐

    iptables应用案例分析--包过滤

    iptables应用案例分析--包过滤,以实例说明iptables包过滤的原理。

    android流量防火墙iptables原理详解

    当 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器时,该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。 Iptables 由两个组件组成:netfilter 和 iptables。Netfilter ...

    iptables防火墙应用指南

    iptables是一款广泛应用于Unix/Linux系统的免费包过滤防火墙工具。它具有强大的功能和高度灵活性,能够精确控制流入、流出以及通过服务器的所有数据包。尽管iptables能够在较低配置的硬件上运行良好,但它依然能在高...

    iptables应用手册详细介绍

    在实际应用中,iptables 可以与代理服务器(如 squid)结合,以获得更加好的安全性。此外,iptables 也是一个非常灵活的工具,可以根据不同的需求进行配置和调整。 iptables 是一个功能强大且灵活的工具,能够满足...

    Linux使用iptables限制多个IP访问你的服务器

    在Linux内核上,netfilter是负责数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪等功能的一个子系统,这个子系统包含一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables是一个...

    iptables详解

    2. **安全防护**: iptables可以作为第一道防线,阻止恶意流量和攻击尝试到达服务器。 3. **流量管理**: 结合其他工具,iptables还能帮助管理网络流量,例如限制带宽使用或优先级调整。 #### 六、iptables常见问题及...

    深入解析iptables防火墙配置与实战应用

    其他说明:此外,《iptables 防火墙应用与技术》提供的教程包含了丰富的案例分析,旨在帮助学习者通过具体的例子加深对于iptables配置的理解,并能够在自己的环境中复制这些场景加以实际运用,进而达到保护网络资产...

    在Linux环境下用Iptables建立包过滤型防火墙.pdf

    在Linux环境下用Iptables建立包过滤型防火墙.pdf

    Linux iptables Pocket Refrence

    #### 五、iptables的应用场景 1. **Packet Filtering(数据包过滤)**:通过设置过滤规则来控制数据包的通过或拒绝。 2. **Network Address Translation(网络地址转换,NAT)**: - **Source NAT and ...

    基于iptables的包过滤防火墙.pdf

    基于iptables的包过滤防火墙.pdf

    iptables 语法 (经典)

    在filter表中,主要处理的是包过滤规则,这是最常见的应用场景。 1. 清除旧规则: `iptables -t filter -F` 这条命令会清除filter表中的所有规则,确保开始时没有遗留的规则影响新的配置。 2. 过滤异常包: `...

    如何使用netfilter-iptables构建防火墙

    如何用iptables的三表五连搭建防火墙

    python-iptables, iptables的python 绑定.zip

    python-iptables, iptables的python 绑定 简介关于 python-iptables是用来管理的工具,它是Linux下标准包过滤和操作框架的标准。 就像iptables代码手册所显示的:Iptables用于在Linux内核中设置。维护和检查IPv4包...

    Iptables速查手册

    Iptables作为用户空间的应用程序,通过与内核中的Netfilter接口进行交互,实现了对网络数据包的灵活控制。 #### 二、Iptables的工作原理 1. **Hook Points**: 在Netfilter中有五个主要的hook points,即数据包生命...

    netfilter/iptables(简称为iptables)

    netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)...

    linux两堵墙之一:iptables

    防火墙策略可以基于流量的源目地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃。这样一来,就可以保证仅有...

    centos6 iptables常用操作

    在Linux系统中,`iptables`是一款强大的工具,用于管理网络流量并控制数据包过滤规则。CentOS 6作为一款广泛使用的服务器操作系统,其内置的`iptables`功能可以帮助用户实现网络安全性的提升。本文将详细介绍CentOS ...

    基于linux下的包过滤防火墙ipchains与iptables的分析研究.pdf

    基于linux下的包过滤防火墙ipchains与iptables的分析研究.pdf

    iptables工作原理

    iptables

Global site tag (gtag.js) - Google Analytics