免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: luza
打印 上一主题 下一主题

[Web] 求web服务器的iptables规则 [复制链接]

论坛徽章:
0
24 [报告]
发表于 2009-10-23 09:54 |只看该作者
再加一点防护

#!/bin/bash
/sbin/modprobe ip_conntrac
/sbin/modprobe ip_conntrack_ftp
echo "1" > /proc/sys/net/ipv4/ip_forward


/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -X
/sbin/iptables -t nat -X
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
#开放80
/sbin/iptables -A INPUT -p tcp --syn -m state --state NEW --dports 80 -j ACCEPT
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#内网代理
/sbin/iptables -A INPUT -p tcp -d192.168.1.2 -m multiport --dports 21,22,53,80 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s  192.168.1.0/24 -o eth0  -j SNAT --to 220.135.22.*

#控制单个IP的最大并发连接数
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT
#控制单个IP在一定的时间(比如60秒)内允许新建立的连接数
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEPT


还没有测试,请大家看看。

[ 本帖最后由 luza 于 2009-10-23 10:01 编辑 ]

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
23 [报告]
发表于 2009-10-23 09:53 |只看该作者
/sbin/iptables -A INPUT -p tcp --syn -m state --state NEW -m multiport --dports 80 -j ACCEPT

这行-m multiport 去掉
/sbin/iptables -t nat -A POSTROUTING -s  192.168.1.2/32 -o eth0  -j SNAT --to 220.135.22.*

把192.168.1.2/32改成192.168.1.0/24

[ 本帖最后由 chenyx 于 2009-10-23 09:55 编辑 ]

论坛徽章:
0
22 [报告]
发表于 2009-10-23 09:50 |只看该作者
感谢上面各位好心人给出的指导,我现在把上面的总结一下,各位再帮忙看看。
需求:外网卡:eth0 :220.135.22.* 内网卡:192.168.1.2
要求 1.服务器对外只提供HTTP服务,即只开放80端口,其他一律不接受。
     2.内网可以通过服务器上网,并且通过内网连接服务器进行FTP,SSH操作。

脚步如下:


#!/bin/bash
/sbin/modprobe ip_conntrac
/sbin/modprobe ip_conntrack_ftp
echo "1" > /proc/sys/net/ipv4/ip_forward


/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -X
/sbin/iptables -t nat -X
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -p tcp --syn -m state --state NEW -m multiport --dports 80 -j ACCEPT
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.1.2 -m multiport --dports 21,22,53,80 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s  192.168.1.2/32 -o eth0  -j SNAT --to 220.135.22.*

请大家看看,作为一个www服务器安全系数够了吗?还需要加什么吗?

论坛徽章:
0
21 [报告]
发表于 2009-10-22 23:29 |只看该作者

回复 #16 jonelaw 的帖子

运行那个脚本类似service iptables start

论坛徽章:
5
寅虎
日期:2015-01-20 09:16:52亥猪
日期:2015-01-21 14:43:44IT运维版块每日发帖之星
日期:2015-12-17 06:20:00每日论坛发贴之星
日期:2015-12-17 06:20:00每周论坛发贴之星
日期:2015-12-20 22:22:00
20 [报告]
发表于 2009-10-22 13:48 |只看该作者

回复 #18 luza 的帖子

iptables -A INPUT -p tcp -s 192.168.1.2 -m multiport --dports 21,22,53,80 -j ACCEPT
iptables -t nat -A POSTROUTING -s  内网网段 -o 外网网卡号  -j SNAT --to 220.135.22.*

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
19 [报告]
发表于 2009-10-22 13:38 |只看该作者
厉害啊。我发现有的人一不会了就重做系统。最好的办法是中道问题解决它。

论坛徽章:
0
18 [报告]
发表于 2009-10-22 11:50 |只看该作者

继续求助!!

用了2楼给的规则可以了,现在又有点需求,不知道怎么搞?

我的公网IP是220.135.22.* ,我想通过服务器的另一块网卡192.168.1.2实现iptables代理上网,即:

外网只能访问80端口,内网的用户可以进行ftp,ssh,即开放给192.168.1.2   20,21,22端口,并实现上互联网的功能,应该怎么配置?

现有的规则为:

#!/bin/bash
/sbin/modprobe ip_conntrac
/sbin/modprobe ip_conntrack_ftp

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -p tcp --sport 21 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


要怎么加规则才能满足需求?

论坛徽章:
0
17 [报告]
发表于 2009-10-21 16:39 |只看该作者
我用 ufw...基于 iptables 的

ufw default deny //* 先设置默认全部拒绝
ufw allow http //* 等同于 ufw allow 80/tcp
ufw allow 22/tcp //* 等同于 ufw allow ssh
ufw enable //* 启用

最后把你的 ufw 服务跑起来. 如果规则修改过了, 就运行

ufw reload

论坛徽章:
0
16 [报告]
发表于 2009-10-21 11:20 |只看该作者
原帖由 luza 于 2009-10-21 11:11 发表
这个IPTABLES不需要启动iptables服务器吗?
我关闭了iptables服务(/etc/init.d/iptables stop),规则依然起作用,为什么?



以前我也碰到过,后来觉得有点难就没有再进行下去了。

论坛徽章:
0
15 [报告]
发表于 2009-10-21 11:19 |只看该作者
顶起 关注!
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP