千罗网
千罗网,你的生活秘书.

资讯动态

联系方式

联系地址:广东省珠海市斗门区白藤湖幸福南路9栋1号商铺

联系电话:136 0244 7383

E--mail:518 5438@qq.com

联 系 人:雷先生

邮政编号:519090

当前位置: 首页 > 资讯动态 > 运维技术文章
运维技术文章

Linux防火墙配置范例

 

Filter(针对过滤系统):INPUT、FORWARD、OUTPUT

 

假如有这样一个局域网,内部IP地址范围192.168.1.1-254,网关地址为192.168.1.1,绑定在eth0接口上,同时,网关具有外部Internet地址为10.25.0.7,绑定在eth1接口上,防火墙就位于网关上,通过它的设置,对流经防火墙的网络包进行过滤处理。同时,在局域网内部有一台WWW服务器,他的内部地址为192.168.1.2,他被设置为可以接受外部的网络用户访问。

首先清空所有的规则链,并设置规则链的默认策略为DROP,即丢弃所有的网络数据包。

iptables -F
iptables -t nat -F
iptables -Z


iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

新增用户者自定义规则链bad_tcp_packets、allowed和icmp_packets。

iptables -N bad_tcp_packets

iptables -N allowed

iptables -N icmp_packets

下面定义bad_tcp_packets规则链的规则:将要求重导向的网络连接记录起来,然后将报文丢弃(防止本地机器被其他主机作为入侵跳板,侵入别的主机):

iptables -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j LOG --log-level INFO --log-prefix "New not syn:"

iptables -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP

下面定义allowed规则链的规则:允许要求连接的网络数据包或相应包进入,将其与网络数据包丢弃:

iptables -A allowed -p TCP --syn -j ACCEPT

iptables -A allwoed -p TCP -m state --state ESTABLLSHED,RELATED -J ACCEPT

IPTABLES -A allowed -p TCP -j DROP

下面定义icmp_packets规则链的规则:允许ping网络数据包进入,将其余的网络数据包丢弃:

iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT

iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

INPUT链,过滤要到达防火墙的网络数据包。

进入防火墙主机的TCP网络数据包必须先进行bad_tcp_packets过滤:

iptables -A INPUT -p TCP -j bad_tcp_packets

从WAN进入防火墙主机的ICMP网络数据包,必须先进行icmp_packets过滤,这是为了避免黑客传送不完整的IP网络数据包,系统会相应ICMP网络数据包,以通知对方,导致主机位置被侦测出来:

iptables -A INPUT -p ICMP -i eth1 -j icmp_packets

从LAN进入防火墙主机的全部单播和广播的网络数据包,均会放行:

iptables -A INPUT -p ALL -i eth0 -d 192.168.1.1 -j ACCEPT

iptables -A INPUT -p ALL -i eth0 -d 192.168.1.255 -j ACCEPT

从LAN进入防火墙主机的DHCP网络数据包,予以放行,只有当防火墙担任DHCP时才使用:

iptables -A INPUT -p UDP -i eth0 --dport 67 --sport 68 -j ACCEPT

从WAN进入防火墙主机的所有网络数据包,检查是否为响应网络数据包,若是则予以放行:

iptables -A INPUT -p ALL -d 10.25.0.7 -m state --state ESTABLISHED,RELATED -j ACCEPT

限制过滤规则的检测频率为每分钟平均流量三个网络数据包(超过)上限的网络数据包将暂停检测,并将瞬间流量设定为一次最多处理三个网络数据包(超过上限的网络数据包将丢弃不予处理),这类网络数据包通常是黑客用来进行拒绝服务攻击:

iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT packet died:"

FORWAD链,过滤要通过防火墙的网络数据包

通过防火墙的TCP网络数据包必须先进行bad_tcp_pcakets过滤:

iptables -A FORWAD -P TCP -J bad_tcp_packets

从LAN要到WAN的网络数据包均放行:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

从WAN到LAN的网络数据包仅放行应答网络数据包:

iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

允许来自WAN的PING网络数据包,递送到局域网内的WWW服务器:

iptables -A FORWARD -p ICMP -i eth1 -o eth0 -d 192.168.1.2 -j icmp_packets

允许来自WAN的HTTP,HTTPS网络数据包,递送到局域网的WEB服务器:

iptables -A FORWARD -p TCP -i eth1 -o eth0 -d 192.168.1.2 -m multiport --dport 80,443 -j allowed

限制过滤规则的检测频率为每分钟平均流量3各网络数据包(超过上限的网络数据包将暂停检测),并将瞬间流量设定为一次最多处理3个数据包(超过上限的网络数据包将被丢弃不予处理),这类网络数据包通常是黑客用来进行拒绝服务攻击:

iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died:"

OUTPUT链,过滤从防火墙送出的网络数据包。

从防火墙送出的TCP网络数据包必须先进行bad_tcp_packets过滤:

iptables -A OUTPUT -p TCP -j bad_tcp_packets

对于过滤通过的TCP包和其他类型的包,均会放行:

iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT

iptables -A OUTPUT -p ALL -s 192.168.1.1 -j ACCEPT

iptables -A OUTPUT -p ALL -s 10.25.0.7 -j ACCEPT

限制过滤规则的检测频率为每分钟平均流量3各网络数据包(超过上限的网络数据包将暂停检测),并将瞬间流量设定为一次最多处理3个数据包(超过上限的网络数据包将被丢弃不予处理),这类网络数据包通常是黑客用来进行拒绝服务攻击:

iptables -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died:"

4.NAT配置

1) 目的NAT(DNAT)

DNAT在外部数据包进入防火墙后且路由之前进行,他把该数据包的目的地址改为内部局域网的地址,然后路由该数据包进入到局域网内部主机。

举例:

iptables -t nat -A PREROUTING -t tcp -d 10.25.0.7 --dport 80 -i eth1 -j DNAT --to 192.168.1.2:80

说明:可以路由到达防火墙的访问80端口(即WWW服务器)的数据包的目的地址改为192.168.1.2。

2) 源NAT(SNAT)

SNAT主要用来更改从防火墙发出的数据包的源地址,使得来自局域网的私有地址通过防火墙后,更改为防火墙具有的外部地址,以便数据接收方接收数据后,能够找到正确的回复地址。

举例:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to10.25.0.7

说明:更改所有来自192.168.1.0/24的数据包的源IP地址为10.25.0.7

注意:系统在经过路由及过滤等处理后,直到数据包要送出时,才进行SNAT,有一种SANT的特殊情况是IP伪装,通常建议在用拨号上网时使用,也就是在合法IP地址不固定的情况下使用。

举例:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

说明:这样可以保证局域网内部的用户能够所有通过拨号服务器连接到INTERNET。

 

 

点击次数:  更新时间:2017-06-30  【打印此页】  【关闭
在线交流 
千罗1 千罗1 千罗1
千罗2 千罗2
千罗3 千罗3
在线咨询若无回应,请电话联系。