/ Forside / Teknologi / Internet / Sikkerhed / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Sikkerhed
#NavnPoint
stl_s 37026
arlet 26827
miritdk 20260
o.v.n. 12167
als 8951
refi 8694
tedd 8272
BjarneD 7338
Klaudi 7257
10  molokyle 6481
Iptables-script, ping og samba
Fra : Steffen Fischer


Dato : 22-02-02 20:44

Hej alle

Jeg har netop sat en 2.4.17 kerne i min debian potato, som fungerer
nat-boks for lokalnettet. I samme omgang fandt jeg det naturligt at
erstatte ipchains med iptables, og det nedenstående script er mit
allerførste... så I skal ikke grine alt for højt :)

Det lokale net, hvorfra folk gerne vil på internettet er 192.168.1.0 på
eth0, og externt interface er eth1. Der kører af og til webserver og
ftpserver på maskinen så disse porte er forsøgt åbnet.

#! /bin/sh

case "$1" in
start)
echo -n "Starting firewall"

# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Flush all tables
iptables -F
iptables -t nat -F
iptables -X

# Sæt default policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING DROP

# Tillad input fra denne og fra lokalnettet
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Åben for ftp og http
iptables -A INPUT -p tcp --syn --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 80 -j ACCEPT
# Åben for icq
iptables -A INPUT -p tcp --syn --dport 5190 -j ACCEPT

# Tillad ping replies
iptables -A INPUT -p ICMP -s 0/0 --icmp-type echo-request -j ACCEPT

# Forward til og fra lokalnet
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT

# Masquerading
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

echo "."
;;

stop)
echo -n "Stopping firewall"
iptables --flush
# så åbner vi den på vid gab
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# og sætter masquerading til
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo "."
;;

restart)
$0 stop
sleep 1
$0 start
;;

reload)
$0 restart
;;

*)
echo "Usage: /etc/init.d/firewall {start|stop}"
exit 1
;;
esac

exit 0

Jeg har nu følgende spørgsmål:

1. Ser dette script fuldstændig tosset ud - eller sagt på en anden måde:
hvad skal ændres eller tilføjes?

2. Hvorfor kan jeg ikke pinge mig selv fra maskinen? Altså at bl.a.
"ping localhost" fejler med denne besked:
PING debian (127.0.0.1): 56 data bytes
ping: sendto: Operation not permitted
ping: wrote debian 64 chars, ret=-1

3. Hvorfor kan jeg ikke længere se mit samba-share?

4. Er der nogle hjælpesomme sjæle, der kan hjælpe mig?

Med venlig hilsen
Steffen Fischer

PS.: Spørgsmål 4 er snarere en opfordring end et spørgsmål


 
 
Kasper Dupont (23-02-2002)
Kommentar
Fra : Kasper Dupont


Dato : 23-02-02 10:04

Steffen Fischer wrote:
>
> Hej alle
>
> Jeg har netop sat en 2.4.17 kerne i min debian potato, som fungerer
> nat-boks for lokalnettet. I samme omgang fandt jeg det naturligt at
> erstatte ipchains med iptables, og det nedenstående script er mit
> allerførste...

Fornuftigt.

> så I skal ikke grine alt for højt :)

HA, HA, HA

>
> Det lokale net, hvorfra folk gerne vil på internettet er 192.168.1.0 på
> eth0, og externt interface er eth1. Der kører af og til webserver og
> ftpserver på maskinen så disse porte er forsøgt åbnet.
>

For det første undrer jeg mig lidt over at du bruger
et shell script og ikke blot en configurationsfil
til iptables-restore. Jeg ved ikke lige hvordan debian
fungerer på det punkt, men på RedHat kan man skrive
sine regler i /etc/sysconfig/iptables og så indlæse
dem med "service iptables start". Findes der en fil
med navnet /etc/rc.d/init.d/iptables på dit system?

> #! /bin/sh
>
> case "$1" in
> start)
> echo -n "Starting firewall"
>
> # Turn on IP forwarding
> echo 1 > /proc/sys/net/ipv4/ip_forward
>
> # Flush all tables
> iptables -F
> iptables -t nat -F
> iptables -X
>
> # Sæt default policies
> iptables -P INPUT DROP
> iptables -P FORWARD DROP
> iptables -P OUTPUT ACCEPT
> iptables -t nat -P POSTROUTING DROP
>
> # Tillad input fra denne og fra lokalnettet
> iptables -A INPUT -i lo -j ACCEPT
> iptables -A INPUT -i lo -j ACCEPT

Et eksemplar af den linie burde være nok.

> iptables -A INPUT -i eth0 -j ACCEPT
> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> # Åben for ftp og http
> iptables -A INPUT -p tcp --syn --dport 21 -j ACCEPT
> iptables -A INPUT -p tcp --syn --dport 80 -j ACCEPT
> # Åben for icq
> iptables -A INPUT -p tcp --syn --dport 5190 -j ACCEPT

Jeg har aldrig selv brugt --syn, men det er måske
en udmærket idé.

>
> # Tillad ping replies
> iptables -A INPUT -p ICMP -s 0/0 --icmp-type echo-request -j ACCEPT

Øh, replies? Du må vel mene requests? I øvrigt er
"-s 0/0" overflødigt.

>
> # Forward til og fra lokalnet
> iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
> iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT

Hvad er formålet med de to regler? Hvis formålet er
at acceptere alle masqueradede pakker ville jeg nok
have valgt disse to regler i stedet:

iptables -A FORWARD -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

>
> # Masquerading
> iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
>
> echo "."
> ;;
>
> stop)
> echo -n "Stopping firewall"
> iptables --flush
> # så åbner vi den på vid gab
> iptables -P INPUT ACCEPT
> iptables -P FORWARD ACCEPT
> iptables -P OUTPUT ACCEPT
> # og sætter masquerading til
> iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
> echo "."
> ;;
>
> restart)
> $0 stop
> sleep 1
> $0 start
> ;;
>
> reload)
> $0 restart
> ;;
>
> *)
> echo "Usage: /etc/init.d/firewall {start|stop}"
> exit 1
> ;;
> esac
>
> exit 0
>
> Jeg har nu følgende spørgsmål:
>
> 1. Ser dette script fuldstændig tosset ud - eller sagt på en anden måde:
> hvad skal ændres eller tilføjes?

Det ser fornuftigt ud. Det er kun dine forwarding
regler jeg absolut ikke forstår.

>
> 2. Hvorfor kan jeg ikke pinge mig selv fra maskinen? Altså at bl.a.
> "ping localhost" fejler med denne besked:
> PING debian (127.0.0.1): 56 data bytes
> ping: sendto: Operation not permitted
> ping: wrote debian 64 chars, ret=-1

Underligt, den fejlmelding har jeg aldrig set fra
ping. Virker det hvis du slår firewallen fra?

>
> 3. Hvorfor kan jeg ikke længere se mit samba-share?

Hvilken maskine er server, og hvilken er klient?
Compilerede du selv den nye kerne? I så fald har
du måske glemt at vælge samba. Samba klienten på
Linux er et filsystem, der enten skal compileres
i kernen eller som et modul.

>
> 4. Er der nogle hjælpesomme sjæle, der kan hjælpe mig?
>
> Med venlig hilsen
> Steffen Fischer
>
> PS.: Spørgsmål 4 er snarere en opfordring end et spørgsmål

--
Kasper Dupont
For sending spam use mailto:razor-report@daimi.au.dk

Steffen Fischer (23-02-2002)
Kommentar
Fra : Steffen Fischer


Dato : 23-02-02 19:00


"Kasper Dupont" <kasperd@daimi.au.dk> wrote in message
news:3C775AF5.6F30232D@daimi.au.dk...
>
> For det første undrer jeg mig lidt over at du bruger
> et shell script og ikke blot en configurationsfil
> til iptables-restore. Jeg ved ikke lige hvordan debian
> fungerer på det punkt, men på RedHat kan man skrive
> sine regler i /etc/sysconfig/iptables og så indlæse
> dem med "service iptables start". Findes der en fil
> med navnet /etc/rc.d/init.d/iptables på dit system?

Nu vil jeg ikke påstå at jeg har vildt styr på debian endnu, men
/etc/rc.d/init.d/iptables eller /etc/init.d/iptables findes ikke på debian
som standard. Man kunne jo måske bare lave en, der så kan gøre brug af
iptables-restore... dog får jeg med dette skript styr på hvad præcist der
startes og særligt hvad der sker når det stoppes.

>
[snip af skript]
> > # Tillad input fra denne og fra lokalnettet
> > iptables -A INPUT -i lo -j ACCEPT
> > iptables -A INPUT -i lo -j ACCEPT
>
> Et eksemplar af den linie burde være nok.
>

Det var lige en af de klassiske copy-and-paste fejl.

[snip af skript]
> >
> > # Tillad ping replies
> > iptables -A INPUT -p ICMP -s 0/0 --icmp-type echo-request -j ACCEPT
>
> Øh, replies? Du må vel mene requests? I øvrigt er
> "-s 0/0" overflødigt.
>

Tja - det kommer vel an på om jeg vil tillade svar eller forespørgsler - men
det er jo nok dig, der har fat i det længste strå.

> >
> > # Forward til og fra lokalnet
> > iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
> > iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
>
> Hvad er formålet med de to regler? Hvis formålet er
> at acceptere alle masqueradede pakker ville jeg nok
> have valgt disse to regler i stedet:
>
> iptables -A FORWARD -i eth0 -s 192.168.1.0/24 -j ACCEPT
> iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
>

Formålet var netop at få masquerading til overhovedet at fungere, eftersom
jeg havde lidt bøvl med det. Det fungerede med ovenstående (selvom det måske
ikke er specielt kønt), men jeg har taget dit forslag til efterretning... og
det fungerer søreme stadig.

[snip af skript]

>
> > 2. Hvorfor kan jeg ikke pinge mig selv fra maskinen? Altså at bl.a.
> > "ping localhost" fejler med denne besked:
> > PING debian (127.0.0.1): 56 data bytes
> > ping: sendto: Operation not permitted
> > ping: wrote debian 64 chars, ret=-1
>
> Underligt, den fejlmelding har jeg aldrig set fra
> ping. Virker det hvis du slår firewallen fra?
>

Niks hvis jeg slår firewallen fra (dvs. sætter default policy til allow) er
samme fejl der stadig. Faktisk kan jeg slet ikke pinge nogen på lokalnettet,
mens det på internettet sker uden problemer. Er det mon noget med at "ping"
kun benytter det ene interface? Hvis man forsøger at køre "ping -I
192.168.1.1 192.168.1.2" fås den samme fejlmeddelse... hmm.

> >
> > 3. Hvorfor kan jeg ikke længere se mit samba-share?
>
> Hvilken maskine er server, og hvilken er klient?
> Compilerede du selv den nye kerne? I så fald har
> du måske glemt at vælge samba. Samba klienten på
> Linux er et filsystem, der enten skal compileres
> i kernen eller som et modul.
>

Det er den føromtalte debian computer, der fungerer som samba server. Jeg
kompilerede selv kernen og valgte at inkludere "SMB file system support" i
den (ikke som modul), men jeg vil ikke udelukke at der er en lille ting jeg
mangler. Af bitter erfaring har jeg f.eks. lært at det er smart at vælge
"System V IPC" ved kernekompilering . Klienten er en windows 98se maskine
på lokalnettet.

Tak for hjælpen og mvh
Steffen Fischer




Steffen Fischer (23-02-2002)
Kommentar
Fra : Steffen Fischer


Dato : 23-02-02 21:59


"Steffen Fischer" <steffen@person.dk> wrote in message
news:a58lbm$mk5$1@sunsite.dk...
>
> "Kasper Dupont" <kasperd@daimi.au.dk> wrote in message
> news:3C775AF5.6F30232D@daimi.au.dk...
> >
> > > 2. Hvorfor kan jeg ikke pinge mig selv fra maskinen? Altså at bl.a.
> > > "ping localhost" fejler med denne besked:
> > > PING debian (127.0.0.1): 56 data bytes
> > > ping: sendto: Operation not permitted
> > > ping: wrote debian 64 chars, ret=-1
> >
> > Underligt, den fejlmelding har jeg aldrig set fra
> > ping. Virker det hvis du slår firewallen fra?
> >
>
> Niks hvis jeg slår firewallen fra (dvs. sætter default policy til allow)
er
> samme fejl der stadig. Faktisk kan jeg slet ikke pinge nogen på
lokalnettet,
> mens det på internettet sker uden problemer. Er det mon noget med at
"ping"
> kun benytter det ene interface? Hvis man forsøger at køre "ping -I
> 192.168.1.1 192.168.1.2" fås den samme fejlmeddelse... hmm.
>

Det viser sig desuden at jeg ikke kan portscanne mig selv med nmap:

debian# nmap -v localhost

Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
No scantype specified, assuming vanilla tcp connect() scan. Use -sP if you
really don't want to portscan (and just want to see what hosts are up).
sendto in send_ip_raw: sendto(4, packet, 28, 0, 127.0.0.1, 16) => Operation
not permitted
sendto in send_tcp_raw: sendto(3, packet, 40, 0, 127.0.0.1, 16) => Operation
not permitted

Dette har heller ikke har været et problem tidligere (dvs. før opgraderingen
til den nye kerne og itagbrugelse af iptables). Men denne observation
betyder vel bare, at det ikke *kun* er ping, der er fjollet.

Forslag modtages med kyshånd... næsten da. :)

--
Steffen Fischer



Kasper Dupont (24-02-2002)
Kommentar
Fra : Kasper Dupont


Dato : 24-02-02 01:00

Steffen Fischer wrote:
>
> "Steffen Fischer" <steffen@person.dk> wrote in message
> news:a58lbm$mk5$1@sunsite.dk...
> >
> > "Kasper Dupont" <kasperd@daimi.au.dk> wrote in message
> > news:3C775AF5.6F30232D@daimi.au.dk...
> > >
> > > > 2. Hvorfor kan jeg ikke pinge mig selv fra maskinen? Altså at bl.a.
> > > > "ping localhost" fejler med denne besked:
> > > > PING debian (127.0.0.1): 56 data bytes
> > > > ping: sendto: Operation not permitted
> > > > ping: wrote debian 64 chars, ret=-1
> > >
> > > Underligt, den fejlmelding har jeg aldrig set fra
> > > ping. Virker det hvis du slår firewallen fra?
> > >
> >
> > Niks hvis jeg slår firewallen fra (dvs. sætter default policy til allow)
> er
> > samme fejl der stadig. Faktisk kan jeg slet ikke pinge nogen på
> lokalnettet,
> > mens det på internettet sker uden problemer. Er det mon noget med at
> "ping"
> > kun benytter det ene interface? Hvis man forsøger at køre "ping -I
> > 192.168.1.1 192.168.1.2" fås den samme fejlmeddelse... hmm.
> >
>
> Det viser sig desuden at jeg ikke kan portscanne mig selv med nmap:
>
> debian# nmap -v localhost
>
> Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
> No scantype specified, assuming vanilla tcp connect() scan. Use -sP if you
> really don't want to portscan (and just want to see what hosts are up).
> sendto in send_ip_raw: sendto(4, packet, 28, 0, 127.0.0.1, 16) => Operation
> not permitted
> sendto in send_tcp_raw: sendto(3, packet, 40, 0, 127.0.0.1, 16) => Operation
> not permitted
>
> Dette har heller ikke har været et problem tidligere (dvs. før opgraderingen
> til den nye kerne og itagbrugelse af iptables). Men denne observation
> betyder vel bare, at det ikke *kun* er ping, der er fjollet.
>
> Forslag modtages med kyshånd... næsten da. :)
>
> --
> Steffen Fischer

Jeg bruger selv 2.4.17, og jeg har ikke det problem. Så der
er sandsynligvis tale om en konfigurationsfejl. Jeg kan ikke
lige gennemskue hvad fejlen kan være. Jeg vil overveje det,
og hvis jeg kommer i tanke om noget skriver jeg igen.

--
Kasper Dupont
For sending spam use mailto:razor-report@daimi.au.dk

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste