Chinaunix

标题: iptable开放www服务端口问题 [打印本页]

作者: neosnake    时间: 2006-03-09 12:20
标题: iptable开放www服务端口问题
菜鸟刚学iptables第一天大家多指导

问题是这样的:我在vmware上装了个rh9,开了个httpd跑了个测试论坛.(http://192.168.0.2在eth0上)从
192.168.0.1(winxp host)上用ie访问一切正常.


现在我想把所有端口关掉,只留80端口给httpd开放,还有22,21端口给ssh和ftp.所以我这样写规则:


  1. #!/bin/bash
  2. #清空原来的rules
  3. iptables -F

  4. #默认禁止一切
  5. iptables -P INPUT DROP
  6. iptables -P OUTPUT DROP
  7. iptables -P FORWARD DROP

  8. #默认允许一切lo
  9. ...记不清不写了,这段应该没问题

  10. #开80端口给httpd
  11. iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 1024:65535 -d 192.168.0.2 --dport 80 -j ACCEPT
  12. iptables -A OUTPUT -o eth0 -p tcp -s 192.168.0.2 --sport 80 -d any/0 --dport 1024:65535 -j ACCEPT

  13. #开22,21给ssh,ftp
  14. 类似开80一样写的
复制代码


执行之后,发现从192.168.0.1(winxp host)上虽然还是可以访问到www服务,但是变的好慢.ssh也是.为什么会这样?
我知道这个写法肯定有很多问题,请大侠指点一下.比如我看到在iptables -A OUTPUT那行里别人都用了!--syn,不知道这个是什么意思.
作者: Yuri.G.    时间: 2006-03-09 12:22
为什么要这样写呢?
不就开个80麽?
有必要这么麻烦麽?
作者: neosnake    时间: 2006-03-09 12:27
原帖由 Yuri.G. 于 2006-3-9 12:22 发表
为什么要这样写呢?
不就开个80麽?
有必要这么麻烦麽?

那怎么可以写的简单一点啊?还有用了这个规则后,访问www服务变的好慢
作者: suran007    时间: 2006-03-09 13:19
当然慢了,你要是再加几条规则还更慢呢,如果你就是单独的一台服务器向外提供web服务,并且要求远程控制,那就开80和22就可以了
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -P INPUT DROP
应该可以满足你的要求

[ 本帖最后由 suran007 于 2006-3-9 13:20 编辑 ]
作者: kenduest    时间: 2006-03-09 16:06

  1. iptables -F
  2. iptables -X
  3. iptables -P INPUT DROP
  4. iptables -P FORWARD ACCEPT
  5. iptables -P OUTPUT ACCEPT
  6. iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
  7. iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT

复制代码


這是不對的寫法,主要ˋ因為沒考慮 tcp/ip 雙向的問題。那自己主動要連出去會不通。

要補上:

  1. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
复制代码


==

[ 本帖最后由 kenduest 于 2006-3-9 16:20 编辑 ]
作者: platinum    时间: 2006-03-09 16:08
不需要做 OUTPUT 链的策略
作者: neosnake    时间: 2006-03-09 18:21
原帖由 suran007 于 2006-3-9 13:19 发表
当然慢了,你要是再加几条规则还更慢呢,如果你就是单独的一台服务器向外提供web服务,并且要求远程控制,那就开80和22就可以了
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCE ...

你最后一行 iptables -P INPUT DROP,那不是什么都进不来了?是不是该放在前面哦,然后在最后加上kenduest写的

  1. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
复制代码

[ 本帖最后由 neosnake 于 2006-3-9 18:25 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2