开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链)

简介:
+关注继续查看

一、iptables:从这里开始

删除现有规则

iptables -F

(OR)

iptables --flush

设置默认链策略

iptables的filter表中有三种链:INPUT, FORWARD和OUTPUT。默认的链策略是ACCEPT,你可以将它们设置成DROP。

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP #一般出站连接设置为ACEEPT,看需求

允许来自外部的ping测试

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

允许从本机ping外部主机

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

二、iptables:协议与端口设定

允许所有SSH连接请求

本规则允许所有来自外部的SSH连接请求,也就是说,只允许进入eth0接口,并且目的端口为22的数据包

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

允许从本地发起的SSH连接

本规则和上述规则有所不同,本规则意在允许本机发起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

仅允许来自指定网络的SSH连接请求

以下规则仅允许来自192.168.100.0/24的网络:

iptables -A INPUT -i eth0 -p tcp -s 192.168.100.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

上例中,你也可以使用-s 192.168.100.0/255.255.255.0作为网络地址。当然使用上面的CIDR地址更容易让人明白。

仅允许从本地发起到指定网络的SSH连接请求

以下规则仅允许从本地主机连接到192.168.100.0/24的网络:

iptables -A OUTPUT -o eth0 -p tcp -d 192.168.100.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

允许HTTP/HTTPS连接请求

# 1.允许HTTP连接:80端口

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

# 2.允许HTTPS连接:443端口

iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

允许从本地发起HTTPS连接

本规则可以允许用户从本地主机发起HTTPS连接,从而访问Internet。

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

类似的,你可以设置允许HTTP协议(80端口)。

-m multiport:指定多个端口

通过指定-m multiport选项,可以在一条规则中同时允许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

允许出站DNS连接

iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT

iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

防止DoS攻击

iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

-m limit: 启用limit扩展

--limit 25/minute: 允许最多每分钟25个连接

--limit-burst 100: 当达到100个连接后,才启用上述25/minute限制

三、转发与NAT

允许路由

如果本地主机有两块网卡,一块连接内网(eth0),一块连接外网(eth1),那么可以使用下面的规则将eth0的数据路由到eht1:

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

MAC和地址的绑定

iptables -A FORWARD -s 192.18.30.10 -m mac --mac-source 00:13:21:25:E5:C8 -j ACCEPT

DNAT与端口转发

以下规则将会把来自422端口的流量转发到22端口。这意味着来自422端口的SSH连接请求与来自22端口的请求等效。

# 1.启用DNAT转发

iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to-destination 192.168.102.37:22

允许连接到422端口的请求

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

假设现在外网网关是xxx.xxx.xxx.xxx,那么如果我们希望把HTTP请求转发到内部的某一台计算机,应该怎么做呢?

iptables -t nat -A PREROUTING -p tcp -i eth0 -d xxx.xxx.xxx.xxx --dport 8888 -j DNAT --to 192.168.0.2:80

iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.2 --dport 80 -j ACCEPT

当该数据包到达xxx.xxx.xxx.xxx后,需要将该数据包转发给192.168.0.2的80端口,事实上NAT所做的是修改该数据包的目的地址和目的端口号。然后再将该数据包路由给对应的主机。

但是iptables会接受这样的需要路由的包么?这就由FORWARD链决定。我们通过第二条命令告诉iptables可以转发目的地址为192.168.0.2:80的数据包。再看一下上例中422端口转22端口,这是同一IP,因此不需要设置FORWARD链。

# 2.SNAT与MASQUERADE

如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3的ip然后发出去:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j snat --to-source 192.168.5.3

对于snat,不管是几个地址,必须明确的指定要snat的IP。假如我们的计算机使用ADSL拨号方式上网,那么外网IP是动态的,这时候我们可以考虑使用MASQUERADE

iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE

负载平衡

可以利用iptables的-m nth扩展,及其参数(--counter 0 --every 3 --packet x),进行DNAT路由设置(-A PREROUTING -j DNAT --to-destination),从而将负载平均分配给3台服务器:

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

自定义的链

记录丢弃的数据包

# 1.新建名为LOGGING的链

iptables -t nat -N BLUCK

iptables -t nat -F BLUCK

# 2.将所有来自POSTROUTING 链中的数据包跳转到BLUCK链中

iptables -t nat -A POSTROUTING -j BLUCK

# 3.指定自定义规则

iptables -t nat -A BLUCK  -s 192.168.30.0/24 -o eth0 -j MASQUERADE 




本文转自 Linux_woniu 51CTO博客,原文链接:http://blog.51cto.com/linuxcgi/1965341

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux Commnad iptables 防火墙
Linux Commnad iptables 防火墙
0 0
【Unix/Linux 系统管理】iptables 防火墙设置
【Unix/Linux 系统管理】iptables 防火墙设置
0 0
Linux之iptables防火墙(下)
所谓防火墙也称之为防护墙,它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统。按照给定的规则,允许或者限制网络报文通过。 硬件防⽕墙:通过硬件和软件的组合,基于硬件的防⽕墙保护整个内部网络安全。(例如 华为E9000) 软件防⽕墙:通过纯软件,单独使⽤软件系统来完成防⽕墙功能,保护安装它的系统。 大型公司都是以硬件防火墙为主,软件防火墙为辅。软件防火墙根据情况来决定是否开启,如果服务器性能不够,可能会关闭软件防火墙。
0 0
Linux之iptables防火墙(上)
所谓防火墙也称之为防护墙,它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统。按照给定的规则,允许或者限制网络报文通过。 硬件防⽕墙:通过硬件和软件的组合,基于硬件的防⽕墙保护整个内部网络安全。(例如 华为E9000) 软件防⽕墙:通过纯软件,单独使⽤软件系统来完成防⽕墙功能,保护安装它的系统。 大型公司都是以硬件防火墙为主,软件防火墙为辅。软件防火墙根据情况来决定是否开启,如果服务器性能不够,可能会关闭软件防火墙。
0 0
Linux之iptables防火墙概述及相关规则(三)
Linux之iptables防火墙概述及相关规则(三)
0 0
Linux之iptables防火墙概述及相关规则(二)
Linux之iptables防火墙概述及相关规则(二)
0 0
Linux之iptables防火墙概述及相关规则(一)
Linux之iptables防火墙概述及相关规则(一)
0 0
【Linux】iptables之防火墙的应用及案例、策略、备份与还原(2)
实验环境:为网关、Web 服务器配置防火墙规则 需求描述: 1、为网站服务器编写入站规则
0 0
【Linux】iptables之防火墙概述及规则匹配+实例(1)
网络中的防火墙,是一种将内部网络和外部网络分开的方法,是一种隔离技术。防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包作出判断,最大限度地阻止网络中的黑客破坏企业网络,从而加强企业网络安全。
0 0
Linux:iptables对外开启端口
Linux:iptables对外开启端口
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Decian GNU/Linux安全合规之路
立即下载
从 Linux 系统内核层面来解决实际问题的实战经验
立即下载
冬季实战营第二期:Linux操作系统实战入门
立即下载