分享
 
 
 

iptables实战记录

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

netfilter/iptables这个玩意儿似乎很复杂一直没太搞懂它的原理,所以从给公司配置服务器开始就从未使用过它,让同事们共享上网时才用了一下它的伪装,当时也只是从网上看到了那行iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE,仍然不知道它究竟都干了些什么。最近觉得QQ这个东西的确有些影响同事们工作,所以下决心摸索一下iptables,看看能不能提供一下生产力。

我的网络情况:linux服务器既是上网的拨号服务器,同时也是公司的web server、mail server、ftp server等,域名动态解析,同时它与公司其它windows客户端构成了一个局域网,内网IP为192.168.0.1(eth1接口),外网网卡(eth0接口),拨号接口为ppp0,网内其它计算机的IP也都是192.168.0网段。192.168.0.2到192.168.0.16为公司工作人员(公司比较小,只有10来个人),192.168.0.240到192.168.0.243这几个IP是我和其它两个同事在用,需要实现的目标是外网只能访问服务器的www、mail、ftp、tomcat这几个服务、内网192.168.0.2到192.168.0.16这个IP段的同事们上班时间只能上外网的www、mail、ftp、tomcat并禁止使用QQ、192.168.0.240到192.168.0.243这个IP段的同事们可以无限制上网。下面是我的脚本内容。

work_firewall.sh:

# Display start message

echo "Starting iptables rules..."

# 设置变量

IPT=/sbin/iptables

INTERNET_SERVER=192.168.0.1

IP_ME="127.0.0.1"

IP_SPEC_RANGE="192.168.0.240/30"

IP_WORK_RANGE="192.168.0.2/28"

IP_ALL="192.168.0.0/24"

# 清除所有规则

$IPT -F

$IPT -t nat -F

# 重置所有链默认设置

$IPT -P INPUT DROP

$IPT -P OUTPUT ACCEPT

$IPT -P FORWARD ACCEPT

$IPT -t nat -P PREROUTING ACCEPT

$IPT -t nat -P POSTROUTING ACCEPT

# 1. 限制internet对web服务器的访问

# (1) 允许自己无限制访问自己

$IPT -A INPUT -s $IP_ME -j ACCEPT

# (2) 允许访问www服务

$IPT -A INPUT -p tcp --dport 80 -j ACCEPT

# (3) 允许访问ftp服务

$IPT -A INPUT -p tcp --dport 20 -j ACCEPT

$IPT -A INPUT -p tcp --dport 21 -j ACCEPT

# (4) 允许访问mail服务

$IPT -A INPUT -p tcp --dport 110 -j ACCEPT

$IPT -A INPUT -p tcp --dport 143 -j ACCEPT

$IPT -A INPUT -p tcp --dport 25 -j ACCEPT

# (5) 允许访问tomcat服务

$IPT -A INPUT -p tcp --dport 8080 -j ACCEPT

# 2. 允许工作人员通过局域网访问服务器

$IPT -A INPUT -s $IP_SPEC_RANGE -j ACCEPT

$IPT -A INPUT -s $IP_WORK_RANGE -j ACCEPT

# 3. 允许特殊IP无限制上网

$IPT -t nat -A PREROUTING -s $IP_SPEC_RANGE -j ACCEPT

# 4. 对工作范围内IP限制部分上网功能

# (1) 允许访问DNS和ECHO

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 53 -j ACCEPT

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 42 -j ACCEPT

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 7 -j ACCEPT

# (2) 禁止QQ的TCP登录

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 219.133.38.5 -p tcp -j DROP

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.165 -p tcp -j DROP

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.17.209.23 -p tcp -j DROP

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.153 -p tcp -j DROP

# (3) 允许访问www

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 80 -j ACCEPT

# (4) 允许访问ftp

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 20 -j ACCEPT

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 21 -j ACCEPT

# (5) 允许访问mail

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 110 -j ACCEPT

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 143 -j ACCEPT

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 25 -j ACCEPT

# (6) 允许访问tomcat

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 8080 -j ACCEPT

# (7) 禁止访问其它服务

$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d ! $IP_ALL -j DROP

# 5. 共享上网

$IPT -t nat -A POSTROUTING -o ppp+ -j MASQUERADE

# 显示结束信息

echo "Completed iptables rules."

网上讲解iptables命令如何使用的文章已经数不胜数了,但真正要理解它的工作原理还是不太容易,也许是自己太笨周六那天竟然午饭都没吃苦苦思索了整整一天才慢慢有所领悟。netfilter/iptables共有三组规则表:filter、nat和mangle。filter表用于一般的信息包过滤,如我的网络中192.168.0.1服务器自己访问internet资源时或者外网访问服务器本身时使用filter表规则;nat表用于转发的信息包过滤,如我的局域网内客户端需要通过服务器访问外网时就需要用到nat表规则;mangle表用于高级路由,我此次没有用到,因此也没有深究,有空了再看看^_^。filter表包括INPUT链、OUTPUT链和FORWARD链;nat表包括PREROUTING链、POSTROUTING链和OUTPUT链;mangle表包括PREROUTING链和OUTPUT链。filter表为默认规则表。

表名

功能

filter

用于一般的信息包过滤,包括INPUT链、OUTPUT链和FORWARD链,如我的网络中192.168.0.1服务器自己访问internet资源时或者外网访问服务器本身时使用filter表规则

nat

用于转发的信息包过滤,包括PREROUTING链、POSTROUTING链和OUTPUT链,如我的局域网内客户端需要通过服务器访问外网时就需要用到nat表规则

mangle

用于高级路由,包括PREROUTING链和OUTPUT链

上面的脚本先清除了所有链的所有规则并重置了默认设置,其中INPUT链默认不接受外来访问服务器的任何数据包,接着第1步开放了服务器的80、20、21、110、143、25和8080端口,第2步允许局域网内的192.168.0.2到192.168.0.16及192.168.0.240到192.168.0.243的客户端访问服务器,第3步允许192.168.0.240及192.168.0.243无限制访问外网,第4步允许192.168.0.2到192.168.0.16访问外网的80、20、21、110、143、25、8080及DNS和echo,第5步局域网内客户端共享上网。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有