分享
 
 
 

iptables在网络中的两个经典应用

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

一.端口转发:

在详述端口转发之前,先讲一下我日前遇到的一件事情。本人是搞测试的,有一厂家拿了一个服务器软件叫我测试。基于win2k的,端口号为881,服务器直接连接外部网络,客户端通过服器ip来访问,而他们没有基于linux的服务器软件,照他们意思就必须将服务器换成windows的。作为一个linux爱好者,我想大家明白这种痛苦。我翻了一下资料,发现iptables的端口转发功能可以解决,折腾了一下午,终于完成任务。下面将我的方法讲一下:思想:利用端口转发,当服务器接收到881端口请求以后,将其转到 10.10.2.200:881上,10.10.2.200再将数据返回给请求连接

Eth0:连接ADSL,即ppp0接口

Eth1:连接内部网络,ip为10.10.1.1

10.10.2.200为win2k服务器,其端口881提供网络服务。

iptbles脚本:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 881 -j DNAT --to-destination 10.10.2.200:881 ;将881请求发至10.10.2.00:881端口

iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -d 10.10.2.200 -p tcp -m tcp --dport 881 -j SNAT --to-source 10.10.1.1 ;返回a.b.b.d时数据源来自同一子网,就将其源地址更改为10.10.1.1,从eth0发出,并在连接跟踪表中查出a.b.c.d 从ppp0进来的,又由ppp0将此数据发出。

当然不要忘了加一条允许881端口访问的语句。 iptables ?A INPUT ?p tcp ?dport 881 ?i ppp0 ?j ACCEPT

可不可把服务器放在局域内,用端口转发来实现呢?答案当然是肯定的,既然能把881端口转发,那么21,80这些个端口更不在话,而且很多服务器软件都可以自定义端口,那就在得玩了,只要有合适的端口,即使给局域网每一个用户开一个ftp服务器也是可的。你想要实现什么服务都可以,当然是基于端口转发的。

局域网内10.10.2.101是win2k,提供www服务,端口为800

通过服务器http://serverip:800 进行访问。

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 800 -j DNAT --to-destination 10.10.2.101:800

iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -d 10.10.2.101 -p tcp -m tcp --dport 800 -j SNAT --to-source 10.10.1.1

iptables ?A INPUT ?p tcp ?dport 800 ?i ppp0 ?j ACCEPT

由于是基于端口转发实现的,所以服务器上只需装个iptables来转发数据就行了,一切服务由内部服务器完成,这样的话,我 linux服务器才真正的算是个防火墙。

二.IPTABLES防火墙使用经验一谈

最近架设了一台LINUX的小型服务器 因为需要把LINUX的机子作为软路由器来使用 所以把使用的一些经验谈一下。

iptables的功能十分的强大 例如IP转发和伪装 防御DoS,扫描和嗅探试的攻击等等 在这里就不阐述了

我的系统环境: redhat 7.2, adsl 2m, 8139fast 网卡

1:linux如何所以软路由功能:

说到这里 大家可能会想 只要在/etc/rc.d/rc.local加上cat 1 > /proc/sys/net/ipv4/ip_forward就可以了 让linux具 ip_forward的功能 但你会发现 就算这样设置你局域网内的其他电脑还是不能共享上网 这是为什么 因为当你只有一个公网的ip 候 你就必须用到iptables的IP伪装功能 把IP的伪装成你公网的IP 那怎么实现呢 你可以这样 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 这样就可以把你所以出去的IP地址伪装成ppp0的IP地址(因为我 ADSL 如有不同可以修改)

2:我不想开放我的端口 但我要在我的电脑上启用http服务 并对外服务:

因为你不想开放除了80以外的端口 你可以这样 iptables ?P INPUT ?j DROP 我们用-P来拦截全部的通信

然后在来允许哪些端口可以被使用你可以这样写:

iptables ?A INPUT ?p tcp ?dport 80 ?j ACCEPT

你可以适当的按照这样的格式来添加自己想开放的端口 当然如果你觉得这样不是很好的管理你也可以新建一个iptables表 你可以样做iptables ?N test (新建一个test表)

iptables ?A test DROP

iptables ?A test ?p tcp ?dport 80 ?j ACCEPT(允许80端口被访问)

iptables ?A INPUT ?j test

iptables ?A OUTPUT ?j test

iptables ?A FORWARD ?j test

(这3条的意思指让INPUT OUTPUT FORWARD都按照test的设置)

3我想在我内网的电脑上架设ftp服务 我该怎么做:

这就又要用到iptables 的又一个强大的功能端口映射了

你可以这样iptables -t nat -A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.0.6:21

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.6 -p tcp -m tcp -- dport 25-j SNAT --to-source 192.168.0.1

上面2句话的意思是把服务器的25端口映射到192.168.0.6这台电脑上

4:我不想让人家可以PING到我

这大概是做防火墙用到最多的一种了 你可以在iptables写这句话 iptables -A INPUT -p icmp --icmp-type echo-request -i ppp0 -j DROP 如果你前面是新建了一个新的test表 那也可以这样写iptables -A test -p icmp --icmp-type echo-request -i ppp0 -j DROP

这句话就是不允许人家PING我 因为ping用到的是icmp协议 因为icmp没有端口可言 所以也不需要指定端口了好了 这就是iptables的几种比较基本的用法

这里在介绍几iptbales常用的一些命令

iptables ?F 清空所有的iptables的规则设置

/sbin/iptables-save > iptables ? save 把你的规则保存下来 因为你所有设置的规则再重新启动后都不会被保存 所以你必来写一个脚本来让他开机运行 所以你就可以用这命令来保存你的规则 然后让他开机自动运行就可以了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有