Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

IPTables monitor?

1 view
Skip to first unread message

Jot

unread,
Nov 15, 2001, 12:41:16 PM11/15/01
to
Tjipp! .... sitter o pysslar med IPTables o så. ... tycker det är lite
halvknepigt så jag undrar om ni folk känner te nått bra program som gör att
man kan se vilka 'rules' som varje paket går igenom, och så? .. underlättar ju
en hel del :)

Jörgen Persson

unread,
Nov 15, 2001, 5:23:47 PM11/15/01
to

Om jag inte missminner mig så har IPChains en del verktyg för debugging.
Tyvärr har jag inte sett någon motsvarighet i IPTables. Å andra sidan
har IPTables bättre stöd för att logga trafik och det är nog så jag hade
gjort om jag hade velat att följa paket genom brandväggen.

Har du tittat på IPTables officiella sida[1]? Där finns en del
information...

Jörgen
[1] http://netfilter.samba.org/

Robn <Robin Rosenberg >

unread,
Nov 15, 2001, 8:43:36 PM11/15/01
to
Jot wrote:

Använd loggningen som finns inbyggd.

Exempel: Logga alla nya utgående (ickec-forwardade) uppkopplingar

iptables -I OUTPUT -m state --state NEW -j LOG --log-prefix "OUTPUT"

Lägga upp sådana regler i alla kedjor så ser du vad som händer.

För att filtrera kan man lägga upp en egen kedja, ex.

# Lägg upp kedja
iptables -N LOGGNING
iptables -A LOGGNING -m state --state ESTABLISHED -j RETURN
iptables -A LOGGNING -j LOG
iptables -A LOGGNING -j RETURN

# Dirigera två kedjor till loggning
iptables -I OUTPUT -j LOGGNING
iptables -t nat -I POSTROUTING -j LOGGNING

Några tips
-A lägger till en regel sist i kedjan
-I lägger till en regel först i kedjan
-D tar bort en matchande regel från kedjan
-L listar reglerna, i en angiven kedja.

Se man iptables(1) för info kommandot iptables. Läs omx switchen -t för att
ange tabell. Ex -t nat för att komma åt NAT/masqueradekedjorna.

Det är möjligt att någon har gjort ett trevligt GUI för detta men om det
vet jag intet.

-- robin


Magnus

unread,
Nov 23, 2001, 2:34:40 PM11/23/01
to
Robin,

Du verkar kunna det här med iptables superbra. Skulle du (eller någon annan)
kunna hjälpa mig med ett kort "defaultscript" för min linuxrouter? Det är så
att jag idag kör ipchains som är konfigurerad som router (masquerading) och
firewall mot mitt bakomliggande nät. Den agerar förstås också firewall för
sig själv. Internet finns på eth0 och det lokala nätet på eth1. Allt är
stängt by default, förutom det som uttryckligen är öppnat. Mitt NAT:ade nät
använder 192.168-adresser. Jag vill alltså ha en iptables configfil som:

1) Dropar ALL TCP och UDP trafik in (förutom det som explicit öppnats)
2) Dropar ALL ICMP ECHO request in (men tillåter all annan ICMP)
3) Tillåter ALL trafik ut
4) Tillåter all TCP-trafik till port 25 och 80 på "sig själv" (men ej till
bakomliggande nät)
5) Forward av TCP port 2020 till port 2121 på en NAT:ad adress (t.ex.
192.168.0.10) bakom linuxen.
6) Allt som dropas ska loggas

Detta borde ge en grundläggande exempelfil som duger som brandvägg för de
flesta men som man sedan kan utöka och förändra själv i eget tycke utan
speciellt stor kunskap. Så skulle någon kunna knåpa ihop en dylig (gärna med
ett kilo kommentarer i) så gör nog den personen ganska många en rejäl
tjänst!

I ipchains skulle man kunna åstakomma ovanstående ungefär såhär:
-A forward -i eth1 -j MASQ
-A input -i eth0 -s 192.168.0.0/24 -j ACCEPT
-A input -i eth1 -p icmp -s 0/0 8 -d 0/0 -j DENY -l
-A input -i eth1 -p tcp --dport 25 -j ACCEPT
-A input -i eth1 -p tcp --dport 80 -j ACCEPT
-A input -i eth1 -p udp -s 0/0 -d 0/0 0: -j DENY -l
-A input -i eth1 -p tcp -s 0/0 -d 0/0 0: -y DENY -l
Tyvärr finns det i ipchains ingen funktion för port forwarding (vilket är
anledningen till att jag vill uppgradera).

Tack

--
Regards
Magnus Frostlid

"Robn >" <Robin Rosenberg <robin.r...@dewire.kom> skrev i meddelandet
news:cb_I7.6699$Z_1.1...@newsc.telia.net...

Robin <Robin Rosenberg >

unread,
Nov 24, 2001, 1:15:07 PM11/24/01
to
Magnus wrote:

> Robin,
>
> Du verkar kunna det här med iptables superbra. Skulle du (eller någon
> annan) kunna hjälpa mig med ett kort "defaultscript" för min linuxrouter?
> Det är så att jag idag kör ipchains som är konfigurerad som router
> (masquerading) och firewall mot mitt bakomliggande nät. Den agerar förstås
> också firewall för sig själv. Internet finns på eth0 och det lokala nätet
> på eth1. Allt är stängt by default, förutom det som uttryckligen är
> öppnat. Mitt NAT:ade nät använder 192.168-adresser. Jag vill alltså ha en
> iptables configfil som:

Tänkte inte på mig som expert, men jag håller på lär mig. Att göra
komplicerade skript som kastar bort trafik upplever jag inte som speciellt
"viktigt" men visst kan det vara en bra policy. Din router kör väl ing

Det där med loggingen had jag just gjort själv för att lära mig hur paketen
styrs genom kedjorna och vad det sker för trafik på nätet.

> Tyvärr finns det i ipchains ingen funktion för port forwarding (vilket är
> anledningen till att jag vill uppgradera).

Portforwarding kan du göra med programmer redir. Det har fungerat skitbra
för mig, förutom med en gammal linuxkärna (2.2.9 tror jag det var) där
portarna hängde sig med den ökända TIME_WAIT-buggen.

Om du ändå vill uppgrade så kan jag säga att inte tyckte att det var
speciellt svårt. Det var några detaljer. För att FTP skall funka (utan
krångel) kan man lägga till något liknande denna rad.

/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

..och masquerade sköts i nat -tabellen, ex.

iptables -t nat -A POSTROUTING -s internt/mask -j MASQUERADE

Bortkastandet kan du sköte med hjälp av en LOGDROP-kedje liknande

iptables -N LOGDROP
iptables -A LOGDROP -j LOG
iptables -A LOGDROP -j DENY

-- robin

Thomas Karlsson

unread,
Nov 25, 2001, 9:14:57 AM11/25/01
to

Magnus wrote:

Tja, skrev detta script "on-the-fly" så det finns risk att det inte fungerar,
men det är säkert bara några småsaker. :)
Men du förstår nog hur det fungerar

IPTABLES="/sbin/iptables"
$IPTABLES -A INPUT -p icmp --icmp-type
echo-request -j DROP # droppa echo
$IPTABLES -A INPUT -m state --state
ESTABLISHED,RELATED -j ACCEPT # Tillåt returpaket tillbaka till firewallen
$IPTABLES -A INPUT -p tcp --dport 80 -m state --state
NEW -j ACCEPT #Tillåt http till firewallen

$IPTABLES -A INPUT -p tcp --dport 25 -m state --state
NEW -j ACCEPT #Tillåt mail till firewallen

$IPTABLES -A INPUT -p tcp --dport 2020 -j DNAT
192.168.0.10:2121 # Port forwarding
$IPTABLES -A INPUT -j LOG --log-level info --log-prefix "DROPPED:
" # Logga allat
$IPTABLES -A INPUT -j
DROP
# Droppa allt
$IPTABLES -A OUTPUT -m state --state
ESTABLISHED,RELATED -j ACCEPT # Låt firewallen få skicka tillbaka returpaket
till klienter som connectar till den
$IPTABLES -A OUTPUT -m state --state
NEW -j ACCEPT # Låt firewallen prata ut som
den vill
$IPTABLES -t nat -A POSTROUTING -o eth0 -j SNAT --to-source [lokala internet
ip't] # NAT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED
-j ACCEPT # Tillåt returpaket att komma tillbaka
$IPTABLES -A FORWARD -i eth1 -m state --state
NEW -j ACCEPT # Tillåt allt från
interna nätet till internet

### Sätt default policy till drop
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP


//Thomas

Magnus Frostlid

unread,
Nov 26, 2001, 1:59:24 AM11/26/01
to
Thomas,

Tack så mycket. Precis vad jag var ute efter! Jag kollar igenom det och
provar hur det fungerar inom kort.

--
Magnus Frostlid

"Thomas Karlsson" <thomas.k...@rem.ove.telia.com> skrev i meddelandet
news:3C00FD2C...@rem.ove.telia.com...

0 new messages