[zorp-hu] ADSL+fix IP -> problema, berelt vonal, masik hely nem problema

Deim Agoston ago@lsc.hu
Fri, 28 Jun 2002 14:52:16 +0200


Sziasztok!

LAssan mar mindent feladok, Scott is probalt mar segiteni, de tobb szem
tobbet lat alapon a kovetkezo problemat vetnem fel:
- adott egy 10.0.0.0-s alhalo, hozza kifele egy fix IP-s ADSL
- adott most mar a vegletekig lebutitott ipchains (csak redirect van mar) es
Zorp (csak HTTP szures, abban sincs kulon osztaly)

Kernel: 2.2.21, a siterol letoltott patchek hozzaadva, freeswan.org-rol
leszedve a 1.97-es valtozat, abbol forgatva a binaris, make menugoval
megcsinalva. A csomaszureshez:
CONFIG_IP_FIREWALL=y -> kotelezo ugyebar
CONFIG_IP_FIREWALL_NETLINK=y
CONFIG_NETLINK_DEV=y
CONFIG_IP_ROUTE_FWMARK=y -> csak ugy
CONFIG_IP_TRANSPARENT_PROXY=y - > kotelezo ugyebar
CONFIG_IP_MASQUERADE=y -> megszokas

Kernel telpitve, szukseges opciok:
/proc/sys/net/ipv4/ip_forward 1
/proc/sys/net/ipv4/conf/all/rp_filter 0 es ez minden if-re igaz

Interfacek:
eth0 - kell a ppp0-nak, ADSL kovetelmeny
eth1 - belso if
lo - standard
ppp0 - kifele biztositja a kapcsolatot, fix IP, ADSL

instances.conf tartalma:
intra --log-tags --verbose=5 -p /etc/zorp/policy.py

A teszteles es orulet hataran levo policy.py tartalma:
from Zorp.Core import *
from Zorp.Http import *

Zorp.firewall_name = 'zorp@inside'

InetZone("intranet", "10.0.0.0/24", inbound_services=[], outbound_services=["intra_HTTP_inter"]),
InetZone("internet","0.0.0.0/0", inbound_services=["intra_HTTP_inter"], outbound_services=[])

def intra():
    Service("intra_HTTP_inter", HttpProxy)
    Listener(SockAddrInet("10.0.0.40", 51080), "intra_HTTP_inter")

ipchainsben a kovetkezokeppen nez ki most:
REDIRECT   tcp  ----l-  10.0.0.0/24          anywhere           any ->   www => 51080

De, hogy kulon lancon tartsam a dolgokat, voltak mar a kovetkezo szabalyok is:
(ipchains-utils-szal es anelkul generalva)
ipchains -A input -i eth1 ! -d 10.0.0.40/32 -j INtra
ipchains -A INtra -d 0.0.0.0/0 80 -p tcp -j REDIRECT 51080 (es ugyanez logolva is)

Routing tabla:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
nilus-Loopback0 *               255.255.255.255 UH    0      0        0 ppp0
10.0.0.0        *               255.255.255.0   U     0      0        0 eth1
default         nilus-Loopback0 0.0.0.0         UG    0      0        0 ppp0

Windowson gw a 10.0.0.40, lokalis DNS van, command-bol fel tudja oldani a 
neveket/cimeket, DNS a 10.0.0.40-en levo BIND.

Ami tortenik:

Indulaskor a kovetkezo latszik a logban:

Jun 28 16:55:35 rawhide intra[980]: core.info(5): zorp version 1.4.4 going down. 
Jun 28 16:55:37 rawhide intra[1169]: core.debug(0): Verbosity level: 5 
Jun 28 16:55:37 rawhide intra[1169]: core.info(5): zorp version 1.4.4 starting up 
Jun 28 16:55:38 rawhide intra[1169]: core.debug(5): (zorp/nosession): Zone(intranet): outbound service=intra_HTTP_inter 
Jun 28 16:55:38 rawhide intra[1169]: core.debug(5): (zorp/nosession): Zone(internet): inbound service=intra_HTTP_inter 
Jun 28 16:55:38 rawhide intra[1169]: core.caps(5): (zorp/nosession): Changing process capabilities; caps='= cap_net_bind_service+ep cap_net_admin+p' 
Jun 28 16:55:38 rawhide intra[1169]: core.caps(5): (zorp/nosession): Changing process capabilities; caps='= cap_net_bind_service,cap_net_admin+ep' 
Jun 28 16:55:38 rawhide intra[1169]: core.caps(5): (zorp/nosession): Resetting process capabilities; caps='= cap_net_bind_service,cap_net_admin+p' 


Ha kozvetlenul csatlakozom a proxyhoz (Exploderben proxy a 10.0.0.40, port a 
51080) termeszetesen megakadalyoz, logban a kovetkezo latszik:

Jun 28 13:00:54 rawhide intra[1114]: core.session(3): (zorp@valinal/intra_HTTP_i
nter:0): Starting proxy instance; client_fd='9', client_address='AF_INET(10.0.0.
4:1138)', client_zone='Zone(intranet, 10.0.0.0/24)', client_local='AF_INET(10.0.
0.40:51080)' 
Jun 28 13:00:54 rawhide intra[1114]: core.session(4): (zorp@valinal/intra_HTTP_i
nter:0/http): Proxy starting; class='HttpProxy', module='http' 
Jun 28 13:00:54 rawhide intra[1119]: core.policy(1): (zorp@valinal/intra_HTTP_in
ter:0): Inbound service not permitted; service='intra_HTTP_inter', zone='Zone(in
tranet, 10.0.0.0/24)' 
Jun 28 13:00:54 rawhide intra[1119]: http.debug(5): (zorp@valinal/intra_HTTP_int
er:0/http): An error occurred, serving error file; filename='/usr/share/zorp/htt
p/connecterror.html' 
Jun 28 13:00:54 rawhide intra[1119]: core.session(4): (zorp@valinal/intra_HTTP_i
nter:0/http): Proxy ending; class='HttpProxy', module='http' 
Jun 28 13:00:54 rawhide intra[1119]: core.accounting(5): (zorp@valinal/intra_HTT
P_inter:0): client: accounting info; duration='0', sent='842', received='297' 

Mikor az atiranyitasra hagyatkoztam (gw a 10.0.0.40, DNS a 10.0.0.40) akkor a
kovetkezo jelent meg:

Jun 28 12:26:21 rawhide intra[822]: core.session(3): (zorp@valinal/intra_HTTP_in
ter:0): Starting proxy instance; client_fd='9', client_address='AF_INET(10.0.0.4
:1047)', client_zone='Zone(intranet, 10.0.0.0/24)', client_local='AF_INET(10.0.0
.40:51080)' 

Es megallt. Alakitottam az ipchainst es a kovetkozot ertem el:
- meg logolassal sem latszik az, hogy egy csomag at lett volna iranyitva, 
mindegy, hogy az input lancon vagy INtra lancon iranyitom at a zorp portjara

Ami furcsa:

Ugyanezek a csomagok, ugyanezek a szabalyok (ipchains, zorp) berelt vonalon
mennek, termeszetesen egy ket parameter mas, peldaul ott tudom ,hogy milyen
network es broadcast stb cim van a kulso interfacen, igy tudom finomitani
a szabalyokat a szuresre.

Hardware: ASUS alaplap, Celeron II proci. Csak azert irom le, mert erdekes:
alapertlemezesekent a REalTek halokartyak 0-as(!) IRQ-t kaptak, mind a ketto!
BIOS buzergalas ota nem, de azota minden kis hardware valtozas utan (pl
uj billentyu) felhozza a BIOS setupot....
Mit neztem el, de nagyon? Mar nem tudokm asra gondolni, mint valami nagyon
trivialisra....
Udv,
Ago