Chinaunix首页 | 论坛 | 博客
  • 博客访问: 623121
  • 博文数量: 73
  • 博客积分: 1813
  • 博客等级: 上尉
  • 技术积分: 1213
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-27 19:59
文章分类
文章存档

2013年(1)

2012年(12)

2011年(28)

2010年(31)

2009年(1)

我的朋友

分类: LINUX

2011-10-11 15:50:36

目前公司的业务情况如下:某一台服务器要求只允许外网两个IP访问,内网的所有服务器都可以访问.
要过到此目的,可以在cisco防火墙上进行配置,也可以用本机的iptables进行控制,下面是iptables进行
控制访问的步骤:
1.首先在测试节段做定时脚本,防止iptables策略出错造成所有机器都无法访问.

cat  iptables_flush.sh

#!/bin/bash

/sbin/iptables -F
/sbin/iptables -t nat -F

/sbin/iptables -P ACCEPT  #默认所有都接受


2.做crontab计划任务

crontab -l

*/10 * * * *  sh iptables_flush.sh  

每隔10分钟自动转为默认


3.配置iptables策略

cat iptables.sh

#!/bin/bash

iptables -F
iptables -t nat -F

iptables -P INPUT DROP
iptables -A INPUT -s A.B.C.0/24 -j ACCEPT   #要通过的网段
iptables -A INPUT -s A.B.C.D -j ACCEPT #要通过的IP
iptables -A INPUT  -m state --state RELATED -j ACCEPT       #保持与已经存在的连接相关的连接
iptables -A INPUT  -m state --state ESTABLISHED -j ACCEPT   #保持从本机发起的连接

4.将iptables脚本放入后台执行,原因:第一节拒绝所有就会有可能把后几条屏蔽了

sh iptables.sh &

5.进行测试
在通过的网段内连接本主机--通过
在被允许的主机上连接本主机--通过
从主机往任一台机器发送连接--通过
注:如果不加最后两条基于状态的策略,从本机发往其他主机是不会成功连接的,因为根据TCP与UDP的连接协议,两台主机要进行连接,是有3次握手与4次握手的,意味着两条主机要进行交互.而在前几条策略是不允许没有加入策略的主机进行连接的.所有加了后两条,表明从本机发起的连接是被允许返回接受的!

测试通过后把crontab的iptables_flush.sh去除

阅读(3902) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~