发新话题
打印

水鸟兄帮忙

水鸟兄帮忙

我用ADSL上网  eth0接外网
eth1接lan

[root@www waker]# /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:BA:5F:55:AB
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:239097 errors:0 dropped:0 overruns:0 frame:0
          TX packets:225234 errors:0 dropped:0 overruns:0 carrier:0
          collisions:102
          RX bytes:220362259 (210.1 Mb)  TX bytes:31432172 (29.9 Mb)

eth1      Link encap:Ethernet  HWaddr 00:50:BA:5F:A0:F2
          inet addr:192.168.1.251  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:158144 errors:0 dropped:0 overruns:0 frame:0
          TX packets:215948 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0
          RX bytes:23543732 (22.4 Mb)  TX bytes:210344944 (200.6 Mb)

lo        Link encapocal Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:29037 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29037 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0
          RX bytes:11247744 (10.7 Mb)  TX bytes:11247744 (10.7 Mb)

ppp0      Link encapoint-to-Point Protocol
          inet addr:218.2.158.7  P-t-P:218.2.158.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0
          RX bytes:227 (227.0 b)  TX bytes:124 (124.0 b)
         
          修改你的例子代码为
         
#!/bin/sh
#edit by waterbird, 2002.4.4
echo "starting the firewall..."

##Ismod the firewall modules
#modprobe ip_tables

##Enable the ip_forward
echo "1" > /proc/sys/net/ipv4/ip_forward

##clear the chains
iptables -F
iptables -X
iptables -F -t nat

##Define the policy
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

##Define the IP and Interface
LAN_IP="192.168.1.251"
LAN_IFACE="eth1"

ADSL_IFACE="ppp+"

IPTABLES="/sbin/iptables"

#########################POSTROUTING chain
#MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -j MASQUERADE

##########################FORWARD rules
#accept LAN IP go out
$IPTABLES -A FORWARD -i $LAN_IFACE -s 192.168.1.0/24 -j ACCEPT

#accept come back packets from INTERNET
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


###########################INPUT chain
#for come back from this adsl-server packets
$IPTABLES -A INPUT -i $ADSL_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

echo "firewall started! :-D"

结果客户机上不了
而且TELNET不到192.168.1.251

客户机DNS为192.168.1.251
网关为192.168.1.251
什么地方错了
      

TOP

此规则只是针对上网,其他服务不能用,当然要另外加。

有几句错误,
正确如下:
ADSL_IFACE="ppp0"
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -o $ADSL_IFACE -j MASQUERADE

要telnet,在INPUT 中加这句
$IPTABLES -A INPUT -i $LAN_IFACE -s 192.168.1.0/24 --dport 23 -j ACCEPT

如果你还要允许使用网关DNS,就要打开53端口;
如果你嫌这样麻烦,就把口子开大一点:
$IPTABLES -A INPUT -i $LAN_IFACE -s 192.168.1.0/24 -j ACCEPT
(还是加这句吧,免得以后要打开什么服务,还要加规则)
这样局域网的机器都能对进行网关操作(包括telnet ,ftp,使用网关的代理,DNS等等)

如果你没装squid代理,客户端就不要在IE中设置代理,只要加网关
192.168.1.251 就OK了。      
~~~~~~~~~~~~~~~~~~~~~~~ 我飞呀...飞呀...飞... linux给了我自由的空间! ~~~~~~~~~~~~~~~~~~~~~~~ 关于防火墙或系统安全的其他问题 请到linux/unix系统安全版块。

TOP

多谢水鸟兄,不过您还得继续受累,请进

想把web访问定向到squid

iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp --dport www -j REDIRECT --to-
port 3128

结果

ERROR
The requested URL could not be retrieved

--------------------------------------------------------------------------------

While trying to retrieve the URL: /

The following error was encountered:

Invalid URL
Some aspect of the requested URL is incorrect. Possible problems:

Missing or incorrect access protocol (should be `http://'' or similar)
Missing hostname
Illegal double-escape in the URL-Path
Illegal character in hostname; underscores are not allowed
Your cache administrator is root.



--------------------------------------------------------------------------------
Generated Tue, 09 Apr 2002 08:27:51 GMT by www.jinlighting.com (Squid/2.4.STABLE1)      

TOP

域名无法解析,
网关需设置使用外网的DNS server,
局域网的机器也需指定。      
~~~~~~~~~~~~~~~~~~~~~~~ 我飞呀...飞呀...飞... linux给了我自由的空间! ~~~~~~~~~~~~~~~~~~~~~~~ 关于防火墙或系统安全的其他问题 请到linux/unix系统安全版块。

TOP

但在客户机直接将proxy设为xx.xx.xx.xx:3128却可以
我有点不明白
:)      

TOP

本来就需这样设置,
其实在配置ADSL时,就已经设置了默认的DNS,
对于上网域名的解析,都由squid 带劳,

但是有个问题,如果客户端不设置DNS,
对于除上网以外的其他应用,
如QQ,PING的域名解析可能有问题。      
~~~~~~~~~~~~~~~~~~~~~~~ 我飞呀...飞呀...飞... linux给了我自由的空间! ~~~~~~~~~~~~~~~~~~~~~~~ 关于防火墙或系统安全的其他问题 请到linux/unix系统安全版块。

TOP

ping telnet ftp都可以

但如果我不在ie中设proxy就有问题我想还是上面的iptables写错了      

TOP

如果你想不设代理而上网,
就是所谓的squid透明代理
除了加这句外:
iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp --dport www -j REDIRECT --to-port 3128
还要配置squid.conf,加上

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
等等设置      
~~~~~~~~~~~~~~~~~~~~~~~ 我飞呀...飞呀...飞... linux给了我自由的空间! ~~~~~~~~~~~~~~~~~~~~~~~ 关于防火墙或系统安全的其他问题 请到linux/unix系统安全版块。

TOP

将squid设为透明代理可以(客户机不用设proxy)
但很多网站上不了,比如linuxeden就不行
说没有存取权限

hehe
我要继续学习
多谢水鸟兄      

TOP

水鸟兄
再去网络应用版看看我的samba问题行不?      
@@@@@@@@@@@@@@@ >> 电脑真难整========>我靠靠 >>

TOP

发新话题