🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.sieci
Article #200

Re: Masquerade - pomocy!

#200
From: Lukasz Grochal
Date: Sun, 03 Jan 1999 03:07
133 lines
5875 bytes
3 Jan 1999 01:47:48 GMT Roman Niewiarowski pisze:
> vi /etc/sysconfig/network
> [...]
> FORWARD_IPV4="true"

... taaa, przez to chyba wszyscy przeszli ;) Kiedy tydzień temu stawiałem
RedHat'a szukałem tego przez bite dwie godziny klnąc jak szewc. System niby
ładny i po odpowiednim wyczyszczeniu nawet zgrabny routerek z niego wyszedł,
ale te wszystkie "user friendly" pliki konfiguracyjne doprowadziły mnie do
szału - różnice między dystrybucjami (na co dzień używam debiana) są coraz
większe ;)

	No, to była dygresja, a teraz konkrety - jeśli nie bardzo ufamy
providerowi, to lepszym firewallem będzie coś takiego (Masquerade-HOWTO z
dodatkami):

#!/bin/sh
#
# /etc/rc.d/rc.firewall, define the firewall configuration, invoked from
# rc.local.
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin

LOCAL_DEV=eth0
LOCAL_IF=192.168.1.1
LOCAL_NET=192.168.1.0
LOCAL_MASK=255.255.255.0
WORLD_DEV=eth1
WORLD_IF=???.???.???.???
WORLD_NET=???.???.???.???
WORLD_MASK=???.???.???.???

# testing, wait a bit then clear all firewall rules.
# uncomment following lines if you want the firewall to automatically
# disable after 10 minutes.
# (sleep 600; \
# ipfwadm -I -f; \
# ipfwadm -I -p accept; \
# ipfwadm -O -f; \
# ipfwadm -O -p accept; \
# ipfwadm -F -f; \
# ipfwadm -F -p accept; \
# ) &

### uwaga na marginesie... powyższe _bardzo_ ułatwia życie :)

# Incoming, flush and set default policy of deny. Actually the default policy
# is irrelevant because there is a catch all rule with deny and log.
ipfwadm -I -f
ipfwadm -I -p deny

# dowolny interfejs, udaje loopback - spoofing, spad
ipfwadm -I -i deny -o -P all -S 127.0.0.0/8 -V $LOCAL_IF -D 0/0
ipfwadm -I -i deny -o -P all -S 127.0.0.0/8 -V $WORLD_IF -D 0/0

# dowolny interfejs, pakiety udajace, ze sa ode mnie - jw.
ipfwadm -I -a deny -o -P all -S $LOCAL_IF/32 -V $LOCAL_IF -D 0/0
ipfwadm -I -a deny -o -P all -S $LOCAL_IF/32 -V $WORLD_IF -D 0/0
ipfwadm -I -a deny -o -P all -S $WORLD_IF/32 -V $LOCAL_IF -D 0/0
ipfwadm -I -a deny -o -P all -S $WORLD_IF/32 -V $WORLD_IF -D 0/0

# local interface, local machines, going anywhere is valid
ipfwadm -I -a accept -V $LOCAL_IF -S $LOCAL_NET/$LOCAL_MASK -D 0.0.0.0/0

# remote interface, claiming to be local machines, IP spoofing, get lost
ipfwadm -I -a deny -V $WORLD_IF -S $LOCAL_NET/$LOCAL_MASK -D 0.0.0.0/0 -o

# interfejs zewnetrzny - polaczenia na port SSH sa przepuszczane
ipfwadm -I -a accept -V $WORLD_IF -S 0.0.0.0/0 -D $WORLD_IF/32 22 -P tcp
ipfwadm -I -a accept -V $WORLD_IF -S 0.0.0.0/0 -D $WORLD_IF/32 22 -P udp

# interfejs zewnetrzny - polaczenia TCP i UDP na porty chronione sa odrzucane
ipfwadm -I -a reject -V $WORLD_IF -S 0.0.0.0/0 -D $WORLD_IF/32 0:1023 -P tcp -o
ipfwadm -I -a reject -V $WORLD_IF -S 0.0.0.0/0 -D $WORLD_IF/32 0:1023 -P udp -o

# remote interface, any source, going to permanent PPP address is valid
ipfwadm -I -a accept -V $WORLD_IF -S 0.0.0.0/0 -D $WORLD_IF/32

# loopback interface is valid.
ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0

# catch all rule, all other incoming is denied and logged. pity there is no
# log option on the policy but this does the job instead.
ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o


# Outgoing, flush and set default policy of deny. Actually the default policy
# is irrelevant because there is a catch all rule with deny and log.
ipfwadm -O -f
ipfwadm -O -p deny

# local interface, any source going to local net is valid
ipfwadm -O -a accept -V $LOCAL_IF -S 0.0.0.0/0 -D $LOCAL_NET/$LOCAL_MASK

# outgoing to local net on remote interface, stuffed routing, deny
ipfwadm -O -a deny -V $WORLD_IF -S 0.0.0.0/0 -D $LOCAL_NET/$LOCAL_MASK -o

# outgoing from local net on remote interface, stuffed masquerading, deny
ipfwadm -O -a deny -V $WORLD_IF -S $LOCAL_NET/$LOCAL_MASK -D 0.0.0.0/0 -o
ipfwadm -O -a deny -V $WORLD_IF -S 0.0.0.0/0 -D $LOCAL_NET/$LOCAL_MASK -o

# anything else outgoing on remote interface is valid
ipfwadm -O -a accept -V $WORLD_IF -S $WORLD_IF/32 -D 0.0.0.0/0

# loopback interface is valid.
ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0

# catch all rule, all other outgoing is denied and logged. pity there is no
# log option on the policy but this does the job instead.
ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o


# Forwarding, flush and set default policy of deny. Actually the default policy
# is irrelevant because there is a catch all rule with deny and log.
ipfwadm -F -f
ipfwadm -F -p deny

# Masquerade from local net on local interface to anywhere.
ipfwadm -F -a masquerade -W $WORLD_DEV -S $LOCAL_NET/$LOCAL_MASK -D 0.0.0.0/0

# catch all rule, all other forwarding is denied and logged. pity there is no
# log option on the policy but this does the job instead.
ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o


#koniec

-- 
(-) Lukasz Grochal                                 lgrochal@rmf.fm
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ http://www.rmf.fm/ludzie/lukie _
A poza tym uważam, że [----] [Ustawa z dn. 31 VII 81r., o kontroli
publikacji i widowisk; art. 2, pkt. 1 (Dz.U. nr 20, poz. 99)]  ...
Technical Details
Message-ID: <76mmuc$2f9$1@intranet.rmf.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!polsl.gliwice.pl!orion.cst.tpsa.pl!news.nask.pl!cyfronet!intranet.rmf.pl!not-for-mail
References: <368E8C45.BCDF155F@in.com.pl> <slrn78tj28.7fs.newrom@bilbo.pasjo.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!polsl.gliwice.pl!orion.cst.tpsa.pl!news.nask.pl!cyfronet!intranet.rmf.pl!not-for-mail
From: Lukasz Grochal <lgrochal@rmf.pl>
Newsgroups: pl.comp.os.linux.sieci
Subject: Re: Masquerade - pomocy!
Date: 3 Jan 1999 03:07:56 GMT
Organization: RMF FM
Lines: 133
Message-ID: <76mmuc$2f9$1@intranet.rmf.pl>
References: <368E8C45.BCDF155F@in.com.pl> <slrn78tj28.7fs.newrom@bilbo.pasjo.net.pl>
NNTP-Posting-Host: lukasz.rmf.pl
Mime-Version: 1.0
X-Server-Date: 3 Jan 1999 03:07:56 GMT
User-Agent: tin/pre-1.4-981225 ("Volcane") (UNIX) (Linux/2.0.36 (i586))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit