Debian + shorewall: nat probleem

Pagina: 1
Acties:

  • Sallin
  • Registratie: Mei 2004
  • Niet online
Ik heb blijkbaar te vroeg gejuicht met mijn kroeg post.

Ik heb het volgende probleem, ik kan niet meer buiten mijn netwerk komen. Gisteren heb ik shorewall 4.4.3 (Debian testing) geinstalleerd. Nadat ik deze gestart had werkte alles goed, alle poorten behalve de gewenste waren dicht en ik kon vanuit mijn lokale netwerk alles doen wat ik wilde (internet/mail/etc). Na een reboot werkt het lokale netwerk wel, maar kan ik niet meer met externe services verbinden. Mijn netwerk ziet er als volgt uit, alles in IPv4 waarbij ik ook shorewall terminologie zal introduceren (tussen haakjes).
code:
1
2
3
4
5
6
7
8
9
                internet (net)
                        |
                        |
                        |
debian router/firewall eth0: 192.168.1.1, eth1: isp (fw) 
                        |
                        |
                        |
lokaal netwerk 192.168.1.10 e.v. (loc)

De fw moet verschillende processen regelen: (1) verkeer van net -> fw/loc blokkeren op poort 2222 na, (2) verkeer loc -> fw toestaan, (3) verkeer loc -> net + NAT/Masquerade regelen (4) verkeer fw -> net toestaan, (5) poorten mappen.

Als ik de shorewall logs bekijk (cmd: shorewall show log) dan zie ik het volgende:
code:
1
Nov 22 11:23:33 fw2loc:REJECT:IN= OUT=eth0 SRC=192.168.1.1 DST=195.130.131.1 LEN=70 TOS=0x00 PREC=0x00 TTL=64 ID=2961 DF PROTO=UDP SPT=32894 DPT=53 LEN=50

Het lijkt er op dat er een pakketje van de fw naar 195.130.131.1 wordt gestuurd en dat deze wordt gereject. Bovendien wordt het pakketje over eth0 gestuurd. Het 195. etc adres is de DNS van mijn provider en hoort dus bij net, terwijl eth0 de interface van loc is.

Een ander voorbeeld:
code:
1
Nov 22 11:38:19 FORWARD:REJECT:IN=eth0 OUT=eth0 SRC=192.168.1.11 DST=195.130.131.1 LEN=71 TOS=0x00 PREC=0x00 TTL=127 ID=9599 PROTO=UDP SPT=58009 DPT=53 LEN=51

Dit is het ipadres van mijn laptop die dezelfde DNS wilt benaderen en ook wordt afgewezen. Hier wordt ook weer eth0 als out aangeduid.

Ik heb dus waarschijnlijk een configuratiefout gemaakt. Ik heb behoorlijk wat tijd doorgebracht op de shorewall website (Installatie, FAQ en troubleshooting guides), maar ik kom er niet achter wat er nu fout gaat. Specifieke Debian instellingen heb ik aangepast (IP_FORWARDING=On in shorewall.conf). Ook gaat het opstarten van shorewall zonder problemen.

Relevante config files:
masq
code:
1
2
#INTERFACE              SOURCE          ADDRESS         PROTO   PORT(S) IPSEC   MARK
eth1                    192.168.0.0/16


rules
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP
#
#       Accept DNS connections from the firewall to the network
#
DNS(ACCEPT)     $FW             net
#
#       Accept SSH connections from the local network for administration
#
#SSH(ACCEPT)    loc             $FW
#
#       Allow Ping from the local network
#
Ping(ACCEPT)    loc             $FW

#
# Drop Ping from the "bad" net zone.. and prevent your log from being flooded..
#

Ping(DROP)      net             $FW

ACCEPT          $FW             loc             icmp
ACCEPT          $FW             net             icmp
#

# Port forwarding
DNAT            net             loc:192.168.1.10        udp     6881    #Bittorrent

# Open port
ACCEPT          net             $FW     tcp     2222                    #SSH
ACCEPT          loc             $FW     tcp     2222                    #SSH
SMB(ACCEPT)     $FW             loc                                     #Samba
SMB(ACCEPT)     loc             $FW                                     #Samba


interfaces
code:
1
2
3
#ZONE   INTERFACE       BROADCAST       OPTIONS
net     eth1            detect          dhcp,tcpflags,nosmurfs,routefilter,logmartians
loc     eth0            detect          tcpflags,nosmurfs,routefilter,logmartians,dhcp


policy
code:
1
2
3
4
5
6
#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST
loc             net             ACCEPT
net             all             DROP            info
$FW             net             ACCEPT
# THE FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info


zones
code:
1
2
3
4
5
#ZONE   TYPE    OPTIONS                 IN                      OUT
#                                       OPTIONS                 OPTIONS
fw      firewall
net     ipv4
loc     ipv4


Ik heb shorewall geprobeerd uit te zetten (cmd shorewall clear). Hierna kon ik nog steeds niet het internet op met fw. Volgens de shorewall website heb ik dan waarschijnlijk een probleem buiten shorewall. Vandaar bij deze ook mijn /etc/network/interfaces file
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth1
iface eth1 inet dhcp

auto eth1

auto eth0
iface eth0 inet static
                network 192.168.1.0
                address 192.168.1.1
                netmask 255.255.255.0
                gateway 192.168.1.1
                broadcast 192.168.1.255

Iemand een idee waar ik de fout moet zoeken?

This too shall pass
Debian | VirtualBox (W7), Flickr


  • Sallin
  • Registratie: Mei 2004
  • Niet online
Ik heb wat hulp gekregen van de shorewall mailinglist. Ik had wat stoms gedaan in mijn /etc/network/interfaces. Voor eth0 had ik ook een gateway gedefinieerd, dat terwijl de enige gateway die er toe doet die van de provider is. De lijn gateway 192.168.1.1 verwijdert en alles draait.

This too shall pass
Debian | VirtualBox (W7), Flickr