码迷,mamicode.com
首页 > 其他好文 > 详细

用iptables搭建一套强大的安全防护盾

时间:2016-08-22 00:36:49      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:linux   iptables   

iptables功能:

搭建一套防火墙规则

进行攻击防护、访问策略

进行数据包转发


Netfilter:

Linux系统核心层内部的一个数据包处理模块

Hook point:(PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING)

数据包在Netfilter中的挂载点

iptables规则组成:

四张表 + 五条链(Hook point) + 规则

四张表:filter表、nat表、mangle表、raw表

filter表:访问控制、规则匹配

nat表:地址转发

数据包访问控制:ACCEPT、DROP、REJECT

数据包改写:SNAT、DNAT

信息记录:LOG


iptables -nL  #列出已经设置的规则-n不显示主机名

iptables -F   #清除之前设置的规则


场景1:

对所有的地址开放本机的TCP(80、22、10-21)端口的访问

允许对所有的地址开放本机的基于ICMP协议数据包的访问

其他未被允许的端口则禁止访问

iptables -F
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT

以上配置存在的问题:① 本机无法访问本机   ② 本机无法访问其他主机   解决如下

iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

修改只允许10.103.188.233访问本机的httpd服务

iptables -D INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -s 10.103.188.233 --dport 80 -j ACCEPT


场景2:

FTP主动模式 iptables 设置:

iptables -F
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j REJECT

FTP被动模式 iptables 设置:

iptables -I INPUT -p tcp --dport 50000:6000 -j ACCEPT


场景3:公司常用简单 iptables 规则

员工在公司内部(10.10.155.0/24;10.10.188.0/24)能访问服务器上的任何服务

员工出差上海,通过VPN访问

公司有一个网站允许公网访问

iptables -F
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 10.10.155.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.188.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT  #VPN访问
iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT


执行 /etc/init.d/iptables save 命令;iptables的当前配置会保存在 /etc/sysconfig/iptables 文件中


iptables中NAT模式设置

SNAT:源地址转换   DNAT:目的地址转换


SNAT规则设置:

环境:webserver:10.10.188.173  SNATserver:eth0:10.10.188.232:eth1:10.10.177.232  client:10.10.177.233

SNATserver配置:

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1  #打开此配置

sysctl -p  #让此配置生效

iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232

client配置:

配置client路由;可以将client的默认网关设为SNATserver;vim /etc/sysconfig/network ; GATEWAY=10.10.177.232

配置完成client可以直接访问webserver:10.10.188.173


DNAT规则设置:

环境:webserver:10.10.177.233:80  DNATserver:10.10.177.232 10.10.188.232:80  client:10.10.188.173

DNATserver配置:

iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.233:80
iptables -t nat -L

client测试:curl http://10.10.188.232

client表面访问的是10.10.188.232,实际访问的是10.10.177.233:80


iptables防CC攻击

connlimit模块:限制每一个客户端IP的并发连接数

-connlimit-above n  #限制并发个数

iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT

limit模块:限速、控制流量

iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP


本文出自 “We_Need_To_Try” 博客,请务必保留此出处http://liuxiao255.blog.51cto.com/10551403/1840903

用iptables搭建一套强大的安全防护盾

标签:linux   iptables   

原文地址:http://liuxiao255.blog.51cto.com/10551403/1840903

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!