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

 

a.端?转?:

在详述端?转?之?,先讲一下我日??到的一件事情。
本人是?测试的,有一厂家拿了一个?务器软件?我测试。基于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?务器?真正的算是个防?墙。

b.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
这写是XCHEN兄给我的指导 ?这里先谢谢了 上?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 把你的规则?存下? 因为你所有设置的规则??新?动?都?会被?存 所以你必
?写一个脚本?让他开机?行 所以你就?以用这命令??存你的规则 然?让他开机自动?行就?以了。

 

全文结? 

發表留言