iptables工作常用的案例

iptables在企业中的作用?

Linux防火墙其实指的是Linux下的Netfilter/Iptables;Iptables在企业中还是应用得非常广泛的。那么,它究竟应用在哪些方面呢?

1)很多中小企业和网吧利用iptables来作企业的NAT路由器,传统的路由器供企业内部员工上网。

2)IDC机房的服务器可以用Iptables硬件防火墙作为主机的防护措施,由于部署硬件防火墙需要很大投资,一般很少机房部署硬件防火墙。景安河南的民营互联网数据中心,自建的郑州BGP机房部署4台傲盾DDOS防火墙做集群。

3)iptables可以结合squid作为企业内部商务的透明代理。

4)当将iptables作为企业NAT路由器时,我们可以使用iptables的扩展模块屏蔽P2P流量,还可以禁止非法网页。

5)iptables还可以用于外网IP向内网IP映射。我们可以假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的ip地址都是内网IP,但是部分用户要求建立自己的web服务器对外发布信息。我们可以在防火墙的外部网卡上绑定多个合法IP地址,然后通过IP映射使发给其中某一个IP地址的包转发至内部用户的Web服务器上,这样内部的Web服务器也可以对外提供服务了。

6)iptables可以防止轻量级的DOS攻击。比如ping攻击及SYN洪水攻击,我们利用iptables来做相关安全策略还是很有效果的。

 

具体的详细的案例:

阻止指定IP地址

例:丢弃来自IP地址x.x.x.x的包

  1. iptables -A INPUT -s x.x.x.x -j DROP
  2. 注:当你在log里发现来自某ip地址的异常记录,可以通过此命令暂时阻止该地址的访问以做更深入分析

例:阻止来自IP地址x.x.x.x eth0 tcp的包

  1. iptables -A INPUT -i eth0 -s x.x.x.x -j DROP
  2. iptables -A INPUT -i eth0 -p tcp -s x.x.x.x -j DROP

允许所有SSH的连接请求

例:允许所有来自外部的SSH连接请求,即只允许进入eth0接口,并且目标端口为22的数据包

  1. iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

使用multiport 将多个规则结合在一起

允许多个端口从外界连入,除了为每个端口都写一条独立的规则外,我们可以用multiport将其组合成一条规则。如下所示:  例:允许所有ssh,http,https的流量访问

  1. iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT

负载平衡传入的网络流量

使用iptables可以实现传入web流量的负载均衡,我们可以传入web流量负载平衡使用iptables防火墙规则。  例:使用iptables nth将HTTPS流量负载平衡至三个不同的ip地址。

  1. 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
  2. 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
  3. 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

允许外部主机ping内部主机

  1. iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  2. iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

允许内部主机ping外部主机

  1. iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
  2. iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

 

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

很多情况下,MySQL数据库与web服务跑在同一台服务器上。有时候我们仅希望DBA和开发人员从内部网络(192.168.100.0/24)直接登录数据库,可尝试以下命令:

  1. iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

防止DoS攻击

  1. iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
  2. 上述例子中:
  3. -m limit: 启用limit扩展
  4. –limit 25/minute: 允许最多每分钟25个连接(根据需求更改)。
  5. –limit-burst 100: 只有当连接达到limit-burst水平(此例为100)时才启用上述limit/minute限制。

端口转发

例:将来自422端口的流量全部转到22端口。  这意味着我们既能通过422端口又能通过22端口进行ssh连接。启用DNAT转发。

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

除此之外,还需要允许连接到422端口的请求

  1. iptables -A INPUT -i eth0 -p tcp --dport 422 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 422 -m state --state ESTABLISHED -j ACCEP

 

 

 

 

 

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值