Avatar billede blach Nybegynder
09. marts 2003 - 17:38 Der er 56 kommentarer og
2 løsninger

HJÆÆÆLP: Router (IPtables)

Jeg har sat en dhcp-server op, og har fået hjælp til at route trafikken videre ud på internettet (vist nok vha. IPtables).
Men nu har jeg genstartet maskinen, og så virker det ikke mere...
Klienterne får stadig ip osv. og kan se hinanden via netværket - men de bliver ikke routet videre på internettet...
Ham der hjalp, lavede en fil til mig, som han sagde, forklarede processen:
#!/bin/bash

##    do_nat eth0      80.163.174.146  TCP 10.0.0.3 80
##    do_nat $EXTERNAL $EXT_IP        TCP NATIP    PORT

function do_nat {
    CIFACE=$1
    SRC_IP=$2
    NAT_IP=$4
    PROTOC=$3
    NATPRT=$5

    iptables -t nat -I PREROUTING  -i $CIFACE -p $PROTOC -d $SRC_IP --dport $NATPRT -j DNAT --to $NAT_IP
    iptables -t nat -I POSTROUTING -s $NAT_IP -p $PROTOC -o $CIFACE --sport $NATPRT -j SNAT --to $SRC_IP
}

#-----------------------------------------------------------------
#### Herunder er firewall lavet - MEGET SIMPEL
#-----------------------------------------------------------------

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -P INPUT  ACCEPT
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD ACCEPT

iptables -F -t nat
iptables -F -t filter
iptables -F -t mangle

iptables -t nat -A POSTROUTING -s 10.0.0.1/8 -d ! 10.0.0.1/8 -j MASQUERADE

## Herunder er eksempel paa at "nat"te port 80 fra ekstern IF til intern server 10.0.0.3
#do_nat eth0  80.163.174.146 TCP 10.0.0.3 80

Men jeg forstår det ikke 100% - skal jeg bare skrive de kommandoer? eller hvad skal jeg gøre???
Avatar billede blach Nybegynder
09. marts 2003 - 17:43 #1
Måske bare "køre" den fil? altså det jeg har printet?
Avatar billede mfalck Praktikant
09. marts 2003 - 18:29 #2
ja - prøv det .. evt tjek det med iptables -L (husk at være root)
Avatar billede blach Nybegynder
09. marts 2003 - 18:36 #3
hmm virkede med bare rc.firewall start

mfalck, hvis du vil score pointene, kan du hjælpe mig med at gøre min firewall mere stikker...?
Avatar billede mfalck Praktikant
09. marts 2003 - 18:44 #4
tja - det kan jeg vel godt - det kommer lidt an på hvor sikker du vil have den .. hvilke behov har du (services etc)
Avatar billede mfalck Praktikant
09. marts 2003 - 18:46 #5
jeg har selv taget udgangspunkt i :

http://ipkungfu.sourceforge.net/
Avatar billede mfalck Praktikant
09. marts 2003 - 18:46 #6
http://www.linuxkungfu.org/

er nyere (v.030)
Avatar billede blach Nybegynder
09. marts 2003 - 18:48 #7
Altså trafik ud af huset må meget gerne være meget åben...
Men ind skal det være hacker-sikkert.
Jeg har http-server, ssh - altså ingen telnet og ftp...
Ved ikke helt hvad jeg ellers skal sige?
Avatar billede mfalck Praktikant
09. marts 2003 - 18:55 #8
#do_nat eth0  80.163.174.146 TCP 10.0.0.3 80

du skal nok fjerne kommentaren på denne - for ellers er der ikke adgang ind til din www-server.
Avatar billede mfalck Praktikant
09. marts 2003 - 19:04 #9
http://bifrost.heimdalls.com/

er et alternativ til ipkungfu - der er et webinterface med på den sidste, men den har jeg ikke prøvet, men den ser let ud, hvilket nok er en fordel i dit tilfælde (når man starter med sikkerhed, så er det en stor fordel at det er til at overskue og man får noget hjælp).
Avatar billede mfalck Praktikant
10. marts 2003 - 10:59 #10
fik du det til at spille ?!?!
Avatar billede blach Nybegynder
10. marts 2003 - 14:41 #11
Jeg har lidt svært ved at sætte mig ind i det...
du kan vel ikke lave noget simpelt som gør, at folk ikke kan se mit netværk, klienternes filer, printere osv?
Avatar billede mfalck Praktikant
10. marts 2003 - 14:45 #12
tjo jeg kan kigge på noget i aften - det er bare lidt svært at sætte noget generelt op, da sådan en konfiguration må tage udgangspunkt i opsætningen af netværket.
Avatar billede mfalck Praktikant
10. marts 2003 - 14:47 #13
du prøvede ikke at installere ipkungfu .. den er ret god til at gøre det meste for dig.
Avatar billede blach Nybegynder
10. marts 2003 - 18:33 #14
Hvis jeg installerer det ipkungfu, laver den så nogle indstilliger selv, eller er det noget jeg selv gør via det webinterface?
Avatar billede mfalck Praktikant
10. marts 2003 - 21:42 #15
ipkunfu er et script som sætter firewallen op for dig ... den anden var bifrost som har et webinterface; jeg tror jeg vil anbefale dig at prøve bifrost først - da det nok er lidt mere brugervenligt.
Avatar billede mfalck Praktikant
11. marts 2003 - 23:53 #16
jeg faldt lige over denne side - her kan du selv generere en iptables fil der passer til dit setup

http://www.iptables.1go.dk/index1.php
Avatar billede blach Nybegynder
12. marts 2003 - 17:38 #17
http://www.iptables.1go.dk/index1.php - kender jeg, udfaldet er vel stort set det jeg har i forvejen...?
Avatar billede mfalck Praktikant
12. marts 2003 - 18:39 #18
jeg læste lige dit sprøgsmål igennem igen; hvis det kører nu så tror jeg ikke der er så langt igen for at få en sikret firewall.

hvis du skal have åbent for ssh ind så skal du skrive

do_nat eth0      80.163.174.146  TCP 10.0.0.3 22
Avatar billede mfalck Praktikant
12. marts 2003 - 18:40 #19
jeg kan se på ipadressen at der er en webserver oppe og køre
Avatar billede blach Nybegynder
12. marts 2003 - 18:41 #20
Ja og der er også åbnet for ssh...
Avatar billede mfalck Praktikant
12. marts 2003 - 18:43 #21
der er desværre lidt for åbent.

22/tcp    open        ssh
80/tcp    open        http
111/tcp    open        sunrpc
139/tcp    open        netbios-ssn
443/tcp    open        https
3306/tcp  open        mysql
6000/tcp  open        X11
Avatar billede mfalck Praktikant
12. marts 2003 - 19:06 #22
jeg tror du skal prøve at sætte følgende ind i dit script:

-A INPUT -i eth0 -dport 111 -j DROP #drop sun rpc
-A INPUT -i eth0 -dport 137 -j DROP #drop MS netbios
-A INPUT -i eth0 -dport 138 -j DROP #drop MS netbios
-A INPUT -i eth0 -dport 139 -j DROP #drop MS netbios
-A INPUT -i eth0 -dport 3306 -j DROP #drop mysql
-A INPUT -i eth0 -dport 6000 -j DROP #drop Xserver

evt kan du prøve een ad gangen
Avatar billede mfalck Praktikant
12. marts 2003 - 19:11 #23
evt kan du prøve een ad gangen og se om det virker.
Avatar billede mfalck Praktikant
12. marts 2003 - 19:12 #24
disse skal nok tilføjes også:

-A INPUT -i eth0 -p UDP -dport 137 -j DROP #drop MS netbios
-A INPUT -i eth0 -p UDP -dport 138 -j DROP #drop MS netbios
-A INPUT -i eth0 -p UDP -dport 139 -j DROP #drop MS netbios
Avatar billede blach Nybegynder
12. marts 2003 - 19:24 #25
A INPUT -i eth0 -dport 111 -j DROP #drop

hvad skal alle de drop være godt for? Og hvorfor 1 ad gangen?
Jeg må have en anden firewall som starter ved maskinens start? En som er indbygget i RedHat 8.0?
Avatar billede mfalck Praktikant
12. marts 2003 - 19:28 #26
som regel skal disse regler ligge i /etc/sysconfig/iptables, som bliver kørt ved start ved hjælp af /etc/init.d/iptables (som regel linket til ved /etc/rc3.d/S08iptables)
Avatar billede blach Nybegynder
12. marts 2003 - 19:29 #27
Skal jeg lige køre en "cat /etc/sysconfig/iptables" så?
Avatar billede mfalck Praktikant
12. marts 2003 - 19:30 #28
ja prøv evt lige det
Avatar billede mfalck Praktikant
12. marts 2003 - 19:30 #29
evt også en "ls -l /etc/init.d/iptables" og "ls -l /etc/rc?.d/*iptables"
Avatar billede mfalck Praktikant
12. marts 2003 - 19:31 #30
jeg skal desværre have bestyrelsesmøde i min andelsforening så jeg bliver nødt til at logge af nu. Jeg kigger måske på det senere.
Avatar billede blach Nybegynder
12. marts 2003 - 19:38 #31
[root@cpe /]# ls -l /etc/init.d/iptables
-rwxr-xr-x    1 root    root        5636 Aug  7  2002 /etc/init.d/iptables

[root@cpe /]# ls -l /etc/rc?.d/*iptables*
lrwxrwxrwx    1 root    root          25 Feb 17 21:46 /etc/rc5.d/K99iptables -> /etc/rc.d/init.d/iptables
lrwxrwxrwx    1 root    root          25 Feb 17 21:46 /etc/rc5.d/S99iptables -> /etc/rc.d/init.d/iptables

[root@cpe /]# cat /etc/sysconfig/iptables
# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
#      firewall; such entries will *not* be listed here.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Lokkit-0-50-INPUT - [0:0]
-A INPUT -j RH-Lokkit-0-50-INPUT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 21 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68
-i eth0 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68
-i eth1 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT
-A RH-Lokkit-0-50-INPUT -i eth1 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2049 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 0:1023 -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT
COMMIT
# Generated by webmin
*mangle
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed
# Generated by webmin
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed


Hvis du kan gøre noget bedre, så den bliver mere sikker, må du endelig sige til.
Så man ikke kan se windows klienterne f.eks.
Avatar billede blach Nybegynder
12. marts 2003 - 21:02 #32
Er det også muligt at regulere, så f.eks. hver bruger kun har max 10 kb/sec at bruge af? Eller filer større end 2 mb kun må hentes med 5 kb/sec ?
Eller er det ikke i firewall'en man laver den slags?
Avatar billede mfalck Praktikant
12. marts 2003 - 22:28 #33
prøv først som root at skrive "iptables -L"

hvis du vil gemme din akuelle opsætning kan du gøre det med:
iptables-save > /tmp/iptables.out
derefter kan du lægge iptables.out over i /etc/sysconfig/iptables (husk at lave en kopi af den originale først).

For at sikre dit script lidt mere så kan du prøve at smide nedenstående smøre (den fra før) ind i /etc/sysconfig/iptables inden det sidste "COMMIT":

-A INPUT -i eth0 -p tcp -dport 111 -j DROP #drop sun rpc
-A INPUT -i eth0 -p tcp -dport 137 -j DROP #drop MS netbios
-A INPUT -i eth0 -p tcp -dport 138 -j DROP #drop MS netbios
-A INPUT -i eth0 -p tcp -dport 139 -j DROP #drop MS netbios
-A INPUT -i eth0 -p UDP -dport 137 -j DROP #drop MS netbios
-A INPUT -i eth0 -p UDP -dport 138 -j DROP #drop MS netbios
-A INPUT -i eth0 -p UDP -dport 139 -j DROP #drop MS netbios
-A INPUT -i eth0 -p tcp -dport 3306 -j DROP #drop mysql
-A INPUT -i eth0 -p tcp -dport 6000 -j DROP #drop Xserver
Avatar billede mfalck Praktikant
12. marts 2003 - 22:31 #34
dit andet spørgsmål angår det som hedder "bandwith queing". Jeg har ikke prøvet at lave noget sådant selv;

jeg har et link til et sted hvor de gennemgår det på nettet:
http://lartc.org/howto/
Avatar billede blach Nybegynder
13. marts 2003 - 10:55 #35
-A INPUT -i eth0 -p tcp -dport 3306 -j DROP #drop mysql

Er det for at mysql serveren ikke kan ses?
Avatar billede mfalck Praktikant
13. marts 2003 - 12:13 #36
jeps.
Avatar billede mfalck Praktikant
13. marts 2003 - 12:14 #37
som jeg forstår dit setup så har du en firewall og en webserver bagved, ikke ?!?!

hvis mysql ligger på maskinen så skal du nok ikke have den linie med, hvis du vil tilgå mysql fra nettet.
Avatar billede blach Nybegynder
13. marts 2003 - 17:23 #38
Firewall og webserver bagved?
Jeg har kun firewall og webserver på serveren - ikke blandt klienterne!
Avatar billede mfalck Praktikant
13. marts 2003 - 20:06 #39
ok - jeg troede at du havde to maskiner - en firewall og en webserver. Medmindre du har en meget kraftig server eller meget lille belastning så ville jeg nok undlade at bruge bandwith queing - det er vist noget som trækker tænder ud på maskinen.
Avatar billede blach Nybegynder
14. marts 2003 - 13:27 #40
Okay...
Men så synes du bare, at jeg skal smide nedenstående smøre ind i /etc/sysconfig/iptables inden det sidste "COMMIT":

-A INPUT -i eth0 -p tcp -dport 111 -j DROP #drop sun rpc
-A INPUT -i eth0 -p tcp -dport 137 -j DROP #drop MS netbios
-A INPUT -i eth0 -p tcp -dport 138 -j DROP #drop MS netbios
-A INPUT -i eth0 -p tcp -dport 139 -j DROP #drop MS netbios
-A INPUT -i eth0 -p UDP -dport 137 -j DROP #drop MS netbios
-A INPUT -i eth0 -p UDP -dport 138 -j DROP #drop MS netbios
-A INPUT -i eth0 -p UDP -dport 139 -j DROP #drop MS netbios
-A INPUT -i eth0 -p tcp -dport 3306 -j DROP #drop mysql
-A INPUT -i eth0 -p tcp -dport 6000 -j DROP #drop Xserver


Ikke??
"iptables -L" hvad er det godt for?
Avatar billede mfalck Praktikant
14. marts 2003 - 20:31 #41
ja - evt kan du prøve dig lidt frem og sætte een ind ad gangen så du er sikker på at det hele kører bagefter.

iptables -L viser hvilke regler der er i dine iptables.
Avatar billede blach Nybegynder
14. marts 2003 - 20:45 #42
[root@cpe /]# iptables -L
Chain INPUT (policy ACCEPT)
target    prot opt source              destination

Chain FORWARD (policy ACCEPT)
target    prot opt source              destination

Chain OUTPUT (policy ACCEPT)
target    prot opt source              destination

Chain RH-Lokkit-0-50-INPUT (0 references)
target    prot opt source              destination
Avatar billede mfalck Praktikant
15. marts 2003 - 10:03 #43
ok - har du smidt de linier ind i /etc/sysconfig/iptables skal du lave en

/etc/init.d/iptables restart

for at få ændringerne til at træde i kraft.
Avatar billede blach Nybegynder
16. marts 2003 - 12:14 #44
Hvis jeg skriver nogle af de ting ind skriver den:

[root@cpe root]# /etc/init.d/iptables restart
Flushing all current rules and user defined chains:        [  OK  ]
Clearing all current rules and user defined chains:        [  OK  ]
Applying iptables firewall rules: Bad argument `137'
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                          [FAILED]
Avatar billede mfalck Praktikant
16. marts 2003 - 12:58 #45
prøv at ændre UPD -> udp

-A INPUT -i eth0 -p udp -dport 137 -j DROP #drop MS netbios
-A INPUT -i eth0 -p udp -dport 138 -j DROP #drop MS netbios
-A INPUT -i eth0 -p udp -dport 139 -j DROP #drop MS netbios
Avatar billede blach Nybegynder
16. marts 2003 - 14:09 #46
Skriver samme fejlmeddelse ved genstart af iptables ...
Avatar billede mfalck Praktikant
17. marts 2003 - 11:43 #47
aha - jeg tror det er fordi der skal stå:

--dport 137
Avatar billede blach Nybegynder
17. marts 2003 - 16:36 #48
altså bare med 2 streger?

-A INPUT -i eth0 -p udp --dport 137 -j DROP #drop MS netbios
-A INPUT -i eth0 -p udp --dport 138 -j DROP #drop MS netbios
-A INPUT -i eth0 -p udp --dport 139 -j DROP #drop MS netbios
Avatar billede mfalck Praktikant
17. marts 2003 - 16:37 #49
jeps
Avatar billede blach Nybegynder
17. marts 2003 - 17:19 #50
Vil den heller ikke...
[root@cpe /]# /etc/init.d/iptables restart
Flushing all current rules and user defined chains:        [  OK  ]
Clearing all current rules and user defined chains:        [  OK  ]
Applying iptables firewall rules: iptables-restore v1.2.6a: Unknown arg `--dport
'
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                          [FAILED]
Avatar billede mfalck Praktikant
17. marts 2003 - 17:36 #51
underligt ud over jeg droppe på port 445 så er det da identisk ?!!

-A INPUT -p tcp --dport 137 -j DROP
-A INPUT -p tcp --dport 138 -j DROP
-A INPUT -p tcp --dport 139 -j DROP
-A INPUT -p tcp --dport 445 -j DROP
-A INPUT -p udp --dport 137 -j DROP
-A INPUT -p udp --dport 138 -j DROP
-A INPUT -p udp --dport 139 -j DROP
-A INPUT -p udp --dport 445 -j DROP
Avatar billede blach Nybegynder
17. marts 2003 - 18:26 #52
Hmmm du skriver "-p" i min er det "-i"... Du skriver også "tcp" i stedet for "udp" i de drop af 137, 138 og 139..
Avatar billede mfalck Praktikant
17. marts 2003 - 18:30 #53
-i angiver at det er eth0 (netværksinterfacet) i tilfælde af at der er flere.

de første er det tcp-protokollen mens de sidste 4 er det udp. Prøv i første omgang at kommentere dem ud fra scriptet og se hvad der sker (bare sæt en havelåge # foran )
Avatar billede mfalck Praktikant
17. marts 2003 - 18:34 #54
ellers fik jeg en ide:

prøv at sætte følgende ind efter sætningen:
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 137 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 138 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 139 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m udp --dport 137 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m udp --dport 138 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m udp --dport 139 --syn -j REJECT
Avatar billede blach Nybegynder
25. marts 2003 - 17:01 #55
Sætte det før den sidste "COMMIT" ??
Avatar billede mfalck Praktikant
25. marts 2003 - 21:05 #56
nej efter:
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT
Avatar billede blach Nybegynder
27. marts 2003 - 17:12 #57
Så skriver den:

[root@cpe /]# /etc/init.d/iptables restart
Flushing all current rules and user defined chains:        [  OK  ]
Clearing all current rules and user defined chains:        [  OK  ]
Applying iptables firewall rules: iptables-restore v1.2.6a: Unknown arg `--syn'
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                          [FAILED]
Avatar billede blach Nybegynder
11. oktober 2003 - 16:19 #58
Kom aldrig til at virke med mfalck's hjælp, en lavede et firewall script til mig..
Skriv hvis I vil se det :]

Tak for hjælpen anyways..
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