Avatar billede hmortensen Nybegynder
28. august 2006 - 20:02 Der er 4 kommentarer og
1 løsning

iptables - router

Hej

Jeg har lagt en ny firmware på min router, som er bygget over linux, og bruger derfor iptables. Jeg har lavet NAT entries, og de virker fint ude fra, men hvis jeg forsøger fra LAN'et af, virker det ikke.

Det her stod allerede i filen:

#!/bin/sh

. /etc/functions.sh
WAN=$(nvram get wan_ifname)
LAN=$(nvram get lan_ifname)

## CLEAR TABLES
for T in filter nat; do
  iptables -t $T -F
  iptables -t $T -X
done

iptables -N input_rule
iptables -N output_rule
iptables -N forwarding_rule

iptables -t nat -N prerouting_rule
iptables -t nat -N postrouting_rule

### INPUT
###  (connections with the router as destination)

  # base case
  iptables -P INPUT DROP
  iptables -A INPUT -m state --state INVALID -j DROP
  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -A INPUT -p tcp --tcp-flags SYN SYN --tcp-option \! 2 -j  DROP

  #
  # insert accept rule or to jump to new accept-check table here
  #
  iptables -A INPUT -j input_rule

  # allow
  iptables -A INPUT -i \! $WAN  -j ACCEPT      # allow from lan/wifi interfaces
  iptables -A INPUT -p icmp    -j ACCEPT      # allow ICMP
  iptables -A INPUT -p gre      -j ACCEPT      # allow GRE

  # reject (what to do with anything not allowed earlier)
  iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
  iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable

### OUTPUT
### (connections with the router as source)

  # base case
  iptables -P OUTPUT DROP
  iptables -A OUTPUT -m state --state INVALID -j DROP
  iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  #
  # insert accept rule or to jump to new accept-check table here
  #
  iptables -A OUTPUT -j output_rule

  # allow
  iptables -A OUTPUT -j ACCEPT          #allow everything out

  # reject (what to do with anything not allowed earlier)
  iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
  iptables -A OUTPUT -j REJECT --reject-with icmp-port-unreachable

### FORWARDING
### (connections routed through the router)

  # base case
  iptables -P FORWARD DROP
  iptables -A FORWARD -m state --state INVALID -j DROP
  iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
  iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

  #
  # insert accept rule or to jump to new accept-check table here
  #
  iptables -A FORWARD -j forwarding_rule

  # allow
  iptables -A FORWARD -i br0 -o br0 -j ACCEPT
  iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT

  # reject (what to do with anything not allowed earlier)
  # uses the default -P DROP

### MASQ
  iptables -t nat -A PREROUTING -j prerouting_rule
  iptables -t nat -A POSTROUTING -j postrouting_rule
  iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE


Jeg har så tilføjet flg. i bunden:
iptables -A FORWARD -j ACCEPT -p tcp -m multiport --dport 21,80,3389
iptables -t nat -A PREROUTING -i $WAN -p tcp -m multiport --dport 21,80,3389 -j DNAT --to 192.168.1.2

Er der fejl i min NAT, eller skal der fjernes/tilføjes noget andet?
Avatar billede hmortensen Nybegynder
28. august 2006 - 20:04 #1
Skal lige tilføjes at det virker hvis jeg bruger 192.168.1.2, men ikke hvis jeg bruger domæne.dk
Avatar billede langbein Nybegynder
29. august 2006 - 13:56 #2
Her deklareres et sett med nye regelsett:

iptables -N input_rule
iptables -N output_rule
iptables -N forwarding_rule

iptables -t nat -N prerouting_rule
iptables -t nat -N postrouting_rule

Det blir også sendt trafikk til regelsettene:

iptables -A FORWARD -j forwarding_rule
iptables -t nat -A PREROUTING -j prerouting_rule
iptables -t nat -A POSTROUTING -j postrouting_rule

Men det fremgår ikke noe sted i scriptet over at de aktuelle regelsettene blir gitt noe innhold. Altså sendes trafikken til tomme regelsett. (empty rule stacks).

Angir ikke dette en bridge (tror det ..) ?

iptables -A FORWARD -i br0 -o br0 -j ACCEPT

Og så kommer:

iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE

Man kan vel pr definisjon ikke bruke masquerade sammen med en bridge ??
(Med mindre dette skjer på en litt spesiell måte ..)

Synes ikke det ser ut som om tingene henger helt sammen.. (Ikke for å være nesevis ..)

Hvor kommer originalen fra ? ER det snakk om en to port Linux router ? (I teorien så kunne et jo være en router som også inneholder en bridge ..)
Avatar billede hmortensen Nybegynder
29. august 2006 - 14:01 #3
Det øverste er som sagt det der fulgte med firmwaren.

Routeren har et WAN interface, og 4 LAN + WiFi, som er bridget.
Avatar billede langbein Nybegynder
29. august 2006 - 23:28 #4
Se det blir noe helt annet. Kunne ikke få det som står over til å stemme med en alminnelig 2 port eller 3 port router.

Det som vel ellers også må være saken, det er at det scriptet som står over ikke kan være hele konfigureringsscriptet, men bare en del av et hele. Jeg ville tro at det da finnes flere muliggens selvstendige script eller konfigureringsregler som setter opp firewallen som helhet.

Tilbake til det opprinnelige spørsmål .. "Skal lige tilføjes at det virker hvis jeg bruger 192.168.1.2, men ikke hvis jeg bruger domæne.dk" .. dette er jo typisk hvis dns trafikken ikke slipper gjennom, dvs først og fremst udp port 53 og muligvis tcp port 53. Det kan jo testes som et eksperiment.

Ellers så tviler jeg på at det er rette måten å gjøre tingene på, å føye til konfigureringskode til slutten av filen, slik som over. Mener at det ser ut som om scriptet over ikke er komplett, og at det dreier seg om konfigureringsregler som skal gå inn i en helhet i forhold til andre regler. Uten et overblikk over denne helheten så går det måske ikke helt bra å gjøre for mange endringer.

Hva slags firewall dreier det seg om ? Det skulle ikke være slik at den har et grafisk eller web basert gresesnitt som genererer ut de reglene som man ikke kan lese ut av scriptet over ?

Det som ser ut til å være saken det er at det genereres flere chains eller rule stacs som også er i bruk for filtrering. Samtidig så finnes det ikke noen angivelse av hvilke rules som ligger i disse "rules stacs". Altså kan scriptet ikke være komplett, eller det spiller eventuelt sammen med andre scripts.

Ganske interessant "case" forresten. Det skulle vært interessant å sett hele konfigureringen .. (Fordi dette godt kan lages ved hjelp av standard Linux + PC + 5 vanlige nettverkskort + 1 trådløst kort.)

Ellers så kan jo det med udp/tcp port 53 testes bare for å få det eventuelt til å kjøre ..
Avatar billede hmortensen Nybegynder
02. januar 2007 - 13:32 #5
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester