19. september 2003 - 00:43Der er
144 kommentarer og 1 løsning
iptables og Diable forwarding
Jeg roder lidt med at konfigurere en firewall og har i den forbindelse et spørgsmål. Jeg finder lidt inspiration list og her - bla herfra http://iptables.1go.dk og stykker det jeg kan bruge sammen.
Det er generatoren (linket) som genererer en linie jeg ikke kan forstå/tyde:
Den er givetvis i forbindelse med noget andet men hvilket? Jeg har prøvet at anvende den generede iptables 100% uden held, hvorfor jeg prøver at stykke min egen sammen.
Ovenstående medfører i mit eks. at jeg ikke kan surfe fra fjerncomputeren, men derimod virker samba. Min firewall virker altså uden ovenstående, men vil gerne vide hvad jeg giver afkald på!
Undskylder jeg laver en laang tråd, men tror det er mest brugervenligt at indsætte alt det der genereres:
#!/bin/sh
# iptables script generator: V0.1-2002 # Comes with no warranty! # e-mail: michael@1go.dk
# Diable forwarding (DETTE GIVER PROBLEMER HOS MIG!) echo 0 > /proc/sys/net/ipv4/ip_forward
Den konkrete linie disabler router-funktionen på serveren. Det vil sige, at du kan ikke komme igennem linux maskinen. Sidste linie åbner for routeren igen.
Hvis den står til 0, så er det alene linux maskinen som kan komme ud i verden.
Det er ikke en fejl. Scriptet starter med at disable routning, da routning er begge veje - og derfor også indgående. Det vil sige, at umiddelbart efter at routning disables tømmes iptables (altså ingen sikkerhed), hvorefter iptables genopbygges - og til slut tillades routning igen.
Teorien er, at mens der etableres en firewall (med iptables), så kan jeg angribe igennem routeren - men ikke hvis den er stoppet.
Hvad kan forklaringen være på, at ovenstående iptables ikke virker 100%. Jeg kan komme på nettet med fjernmaskinen, men fildeling via samba virker ikke længere. Hvad skal rettes til så det kommer til at passe til mine behov? Har rodet lidt frem og tilbage, men uden held hvilket piner mig. Har en anden iptables jeg har "samlet" fra flere eksempler, men den har samtlige UDP porte åbne, hvilke jeg ikke kan finde ud af at få lukket. Denne generetor er rimelig overskuelig og ikke så lang at læse og dermed mere overskuelig. Problemet er bare den ikke løser min opgave. Se og min nyeste tråd: http://www.eksperten.dk/spm/411548
for at få ovenstående til at virke skal jeg medtage følgende linie: iptables -A INPUT -p ALL -i $LAN_NIC -s $LAN_IP_NET -j ACCEPT
Linien gør det muligt at jeg i windows kan skrive "\\computernavn" og dermed få mit delte (samba) filtræ frem. Dette virker ikke uden ovenstående.
Nu har jeg dig lap. Har du en logisk forklaring på hvorfor tre portscannere (browser baserede) siger der ingen UDP porte er åbne. Men når jeg anvender "Advanced Administrative Tools" (windows program) får jeg svar tilbage om at alle UDP porte er åbne? Du er velkommen til at følge mit indlæg omkring dette http://www.eksperten.dk/spm/411548 Det bør siges jeg anvender den iptables der er liste i denne tråd. Den anden er altså ikke længere gældende på mit system.
hm... jo... det kan der være noget om men har fået en kammerat til at scanne mig og der er resultatet også en masse åbne udp porte.
Kan jeg få dig til at copy-paste din iptables fil? Jeg ved vi har samme opsætning og fast ip. Så er jeg i hvert fald sikker på det ikke kan gøres bedre! Jeg ved ikke hvorfor, men den generator du linkede til engang er nede og det irriterer mig helt vildt jeg er i vilrede. Prøver nogle forskellige ting af, men inten virker samba ikke eller også er der noget galt med vnc eller det at komme på nettet i det hele taget. Jeg har fundet en anden generator, men den genererer ipchains og det system er jeg ikke så meget inde i. Filen er også mange, mange linier større og dermed mere uoverskuelig.
jeg kan godt klippe min opsætning, men jeg er bange for, at du får et mage-chok - da jeg slet ikke bruger scriptet fra 1go.dk - jeg bruger et script som er kæmpestort, og som kan det hele på den halve tid :-)
Hvis du vil se en konfigureret udgave, så har jeg selvfølgelig det. En deltalje man skal huske - moduler som skal loades klares ikke af scriptet - i modsætning til 1go.dk script.
et af mine problemer med ipchain udgaven er også at den skal installeres på en anden måde og ved ikke om det er korrekt.... jeg er klar :-) Vil da gerne se hvordan det skal gøres ordentligt - håber bare jeg forstår det
yea.... men hvad skal jeg gøre når på den 1go ikke virker? ;-) Jeg er jo ved at blive lidt desperat! Vil rigtig gerne have noget ordentlig og ja.. den er vel bedre end ingenting. Jeg kan bare ikke rigtig installere den korrekt og synes det er lidt forvirrende da ... ja... skal iptables så køre som en tjeneste? Alt i alt foretrækker jeg iptables fremfor ipchain... Er iptables ikke også afløseren?
her kommer min konfigurationsdel - selve scriptet kan du selv downloade. Efter tilretning af script kører jeg det - og derefter en "service iptables save" - og får de nødvendige moduler i /etc/rc.local:
# Main configuration, modify to suit your setup. Help can be found at: # http://www.mplug.org/phpwiki/index.php?MonMothaReferenceGuide IPTABLES="/sbin/iptables" # set to your iptables location, must be set TCP_ALLOW="25 80" # TCP ports to allow UDP_ALLOW="XXX 68 XXXX XXXX XXXX" # UDP ports to allow INET_IFACE="eth1" # the interface your internet's on (one only), must be set LAN_IFACE="eth0" # the interface your LAN's on (one only) INTERNAL_LAN="10.0.0.0/8" # The internal LAN (including DMZs but not censored hosts) MASQ_LAN="10.0.0.0/8" # the internal network(s) to be masqueraded (this is overridden by MAC_MASQ) SNAT_LAN="" # Internal networks/hosts to use static NAT (format is <internal ip or network>:<external ip>) (this is overridden by MAC_SNAT) DROP="DROP" # What to do with packets we don't want: DROP, REJECT, TREJECT (Reject with tcp-reset for TCP), LDROP (log and drop), LREJECT (log and reject), LTREJECT (log and reject with tcp-reset) DENY_ALL="" # Internet hosts to explicitly deny from accessing your system at all DENY_HOSTWISE_TCP="" # Specific hosts to deny access to specific TCP ports; format is "IP>PORT" DENY_HOSTWISE_UDP="" # Specific hosts to deny access to specific UDP ports; format is "IP>PORT" BLACKHOLE="" # People you don't want to have anything to do with (equivlent of my old TK_DROP). This is a bidirectional drop. BLACKHOLE_DROP="DROP" # What to do for the blackholes (same options as DROP directive above) ALLOW_HOSTWISE_TCP="" # Specific hosts allowed access to specific TCP ports; format is "IP>PORT" ALLOW_HOSTWISE_UDP="" # Specific hosts allowed access to specific UDP ports; format is "IP>PORT" TCP_FW="" # TCP port forwards, form is "SPORT:DPORT>IP" UDP_FW="" # UDP port forwards, form is "SPORT:DPORT>IP" MANGLE_TOS_OPTIMIZE="TRUE" # TOS "optimizations" on or off (TRUE/FALSE toggle) ENABLE="Y" # Set to 'Y' when it's configured; this is for your own saftey
# Flood Params. You will still recieve the packets and the bandwidth will be used, but this will cause floods to be ignored (useful against SYNFLOODS especially) LOG_FLOOD="2/s" # Limit on logging (for LTREJECT, LREJECT and LDROP, the packet will always take the policy regardless of logging) SYN_FLOOD="20/s" # GLOBAL limit on SYN packets (servers will probably need even higher sustained rates as this isn't on a per IP basis) PING_FLOOD="1/s" # GLOBAL limit on ICMP echo-requests to reply to
# Outbound filters (they work, but are of limited functionality), probably better to use a proxy here ALLOW_OUT_TCP="" # Internal hosts allowed to be forwarded out on TCP (internet censorship!) (do not put this/these host/s in INTERNAL_LAN, but do define their method of access [snat, masq] if not a public ip)
# Below here is experimental (please report your successes/failures) MAC_MASQ="" # MAC addresses permitted to use masquerading, leave blank to not use MAC_SNAT="" # MAC addresses permitted to use static NAT, leave blank to not use (format is <MAC Address>:<external ip>) TTL_SAFE="" # How many hops packets need to make once they get on your LAN (null disables the mangling) (requires patch from patch-o-matic) USE_SYNCOOKIES="TRUE" # TCP SynCookies on or off (TRUE/FALSE toggle) PROXY="10.0.0.XXX:3128" # Redirect for Squid or other transparent proxy. Syntax to specify the proxy is "host:port". DHCP_SERVER="TRUE" # Set to true if you run a DHCP server. DHCP clients do not need this. This allows broadcasts to the server from potential clients on the LAN to succeede. MUST DEFINE LAN_IFACE IF YOU USE THIS!
# Only touch these if you're daring (PREALPHA stuff, as in basically non-functional) DMZ_IFACE="" # Interface your DMZ is on (leave blank if you don't have one) MUST DEFINE LAN_IFACE IF YOU USE THIS!
# Home made by lap PPTP_SERVER="FALSE" # PPTPD server on firewall
# Flood Params. You will still recieve the packets and the bandwidth will be used, but this will cause floods to be ignored (useful again st SYNFLOODS especially) LOG_FLOOD="2/s" # Limit on logging (for LTREJECT, LREJECT and LDROP, the packet will always take the polic y regardless of logging) SYN_FLOOD="20/s" # GLOBAL limit on SYN packets (servers will probably need even higher sustained rates as t his isn't on a per IP basis) PING_FLOOD="1/s" # GLOBAL limit on ICMP echo-requests to reply to
# Outbound filters (they work, but are of limited functionality), probably better to use a proxy here ALLOW_OUT_TCP="" # Internal hosts allowed to be forwarded out on TCP (internet censorship!) (do not put this/these host/s in INTERNAL_LAN, but do define their method of access [snat, masq] if not a public ip)
# Below here is experimental (please report your successes/failures) MAC_MASQ="" # MAC addresses permitted to use masquerading, leave blank to not use MAC_SNAT="" # MAC addresses permitted to use static NAT, leave blank to not use (format is <MAC Addres s>:<external ip>) TTL_SAFE="" # How many hops packets need to make once they get on your LAN (null disables the mangling ) (requires patch from patch-o-matic) USE_SYNCOOKIES="TRUE" # TCP SynCookies on or off (TRUE/FALSE toggle) PROXY="10.0.0.1:3128" # Redirect for Squid or other transparent proxy. Syntax to specify the proxy is "host:port ". 295,1 31% USE_SYNCOOKIES="TRUE" # TCP SynCookies on or off (TRUE/FALSE toggle) PROXY="10.0.0.1:3128" # Redirect for Squid or other transparent proxy. Syntax to specify the proxy is "host:port". DHCP_SERVER="TRUE" # Set to true if you run a DHCP server. DHCP clients do not need this. This allows broadcasts to the server from potential clients on the LAN to succeede. MUST DEFINE LAN_IFACE IF YOU USE THIS!
# Only touch these if you're daring (PREALPHA stuff, as in basically non-functional) DMZ_IFACE="" # Interface your DMZ is on (leave blank if you don't have one) MUST DEFINE LAN_IFACE IF YOU USE THIS!
puha... sikken er smøre :-) Er det mon klogt jeg går i krig med den konfiguration... har ikke megen forstand på at sætte det op. Har måske en ide, men...
Egentlig ikke, vi tager det efterhånden som vi kommer igennem konfigurationslinierne - du starter med at downloade nyeste udgave af scriptet fra linket
Det første du har hjulpet mig med at sætte op synes jeg har givet mig rimelig mening.... vil gerne lære nyt, men det er op til dig at vurdere om det er for kompliceret. Jeg synes om udgangspunkt det virker overvældende at skal redigere i en kæmpe tekst fil frem for et grafik klik-klik miljø. Tja, er måske windows skadet...
I virkeligheden er det ikke så meget vi skal redigere - det er rigtigt, at det ser slet ud, men det er trods alt kun konfigurtationsafsnittet vi skal tilpasse.
Det vigtigste er bare, at du har en editor du kan finde rundt i - har du det?
en ting.,.. kan jeg lave en # umiddelbart bag linien og skrive kommentar? Jeg vil gerne gøre det sådan således jeg kan sætte maskinen op alene en anden dag
jeg vil gerne kunne logge på vnc udefra - altså port 22. Lokalt skal jeg kunne logge pp port 22 og i fx stifinder kunne skrive \\computernavn og dermed få det filtræ frem som er del via samba. Mail kører jeg via outlook og kalder op til min udbyder. Så... ja.. jeg skal vel ikke have port 25 åben for at kunne det?
jeg skal også have mulighed for at bruge min printer lokalt, men ikke globalt. Mit såkaldte filtræ vil jeg også gerne kunne se.. men så er FTP vel mere smart. Vil faktisk gerne have en ftp op men kan vel altid tilføje port 21 når jeg når så langt?
port 22 er ssh - port 5800-5810 er vnc - med mindre du portforwarer i din ssh-klient. Vi tager udgangspunkt i ssh - altså skal TCP_ALLOW="22" - som den er.
adgang fra lokal til server er alt åben i denne firewall.
sig til hvis jeg er for ivrig og vil for mange ting. Du må gerne sige jeg skal holde lidt igen :-), men kan vi ikke sætte ftp op med det sammen.... hmm... vi må hellere droppe det.... jeg har ikke pakkerne installeret... vi tager en ting af gangen...
Korrekt :-) Der sker ikke noget ved at åbne for port 21 selvom ftp-pakker ikke er installeret. Firewall'en er et ekstra "lag", så du kan også godt installere en ftp-server - og ved ikke at åbne i firewall, så virker den alligevel indefra.
korrekt - og ja, TCP_ALLOW er tcp-porte (browser bruger tcp) - UDP_ALLOW er åbne udp-porte - klippet fra manualen:
UDP ports to allow on incoming connections to the firewall itself (localhost). The defaults are what you need to play all battle.net games (including Starcraft and Diablo ][) and to act as a DHCP client if the connection tracker fails. These also apply to any computers behind the firewall.
det er også min erfaring den skal være fra... ellers virkede min tidligere opsætning ikke... men kunne jo bare åbne for de porte jeg har brug for men... så er det nemmere at slå den helt fra. Firewall på linux'en er for mig ok
til det med udp skal det siges det har irriteret mig VOLSOMT at har lykkedes mig at scanne dem som værende åbne... ok.. jeg snakker vidst for meget... jeg lytter... :-)
hvad åbner udp portene op for? ligesom fx port 21 er ftp 80 er www og ja... gør udp portene så? Er det generelt sådan at der ikke kan hackes gennem en udp port?
Vi du gerne logge besøg udefra i din firewall (ADVARSEL: det er rigtig meget) - og skal porte være "closed" eller "stealth" på ydersiden. Forskellen er, og en portscanner får at vide, at porten er lukket - eller at den ikke eksisterer?
en udp-port er ligeså usikker som en tcp (i teorien). Nu kommer vi ud i noget basalt netværks protokol, men måden tcp og udp arbejder på er meget forskellige. Tcp er en "snakke frem og tilbage" protokol, hvorimod udp er mere en "send et spørgsmål og håb på et svar - engang" (det var en meget simpel udlægning).
ja, og derfor er nettet 192.168.0.0/24 = netværk 192.168.0.0, subnet mask 255.255.255.0 = alle adresser på det pågældende net skal ligge imellem 192.168.0.1 og 192.168.0.254.
filen som jeg hentede den ser således ud: INTERNAL_LAN="192.168.0.0/24 192.168.1.0/24" MASQ_LAN="192.168.0.0/24 192.168.1.0/24" så jeg skal altså ikke rette noget
Er der ip-adresser, som du ikke vil snakke med OVERHOVEDET på internettet? Er der ip-adresser fra dit lokalnet, som ikke må komme i kontakt med noget på internettet?
nej, den bruges hvis du har flere ip-adresser på ydersiden, og en given adresse skal sendes til en bestemt adresse på indersiden (f.eks. direkte til din XP) - og det er IKKE portforwaring endnu.
Er der porte fra ydersiden, som skal sendes direkte ind på dit lokalnet. Det kunne f.eks. være, at du har en web-server på din XP - så hvis jeg forbinder mig til web på din linux, så skal jeg sendes videre til XP?
nej.. min xp maskine er og skal forblive "dum" den er ikke fast.. flyttes rundt omkring (er en bærebar). Det er linux maskinen der skal alt det sjove... den skal lave al arbejdet her i huset ;-)
indrømmer jeg har vidst nok lavet noget lort i forbindelse med den opsætning jeg har nu.. skal jeg prøve at rette det tilbage? jeg skriver følgende i filen /etc/rc.d/rc.local: sh /etc/rc.d/rc.firewall
et udklip... har dette noget at sige i forbindelse med load: LREJECT TREJECT iptables: No chain/target/match b y that name iptables: No chain/target/match by that name
der er også en besked længere oppe: Setting up drop chains chains: LDROP iptables: No chain/target/match by that name iptables: No chain/target/match by that name
den sidste linie er gentaget 4 gange hvilket den også var sidst
dejligt du skriver hvad tingene gør... tror ikke du løber om hjørner med mig.. men... jeg kunne læse det på skærmen... kunne se den kørte filen... men lignede lidt et ? til at starte med ;-)
Godt, hvis du har lyst, så kan du genstarte linux, men en security scan er nu det rigtige. Det er ikke utænkeligt, at port 21 svarer "closed", men ellers skal porte være stealth.
Læg ud med de 2 du selv har skrevet - tag en hurtig omgang først, så jeg får en umiddelbar melding:
ok.. jeg genstarter.. kommer her tilbage... og umiddlebart derefter foretager scan + tjekker om jeg kan det har min xp jeg gerne vil kunne genstarter....
det skyldes helt sikkert, at ftp ikke kører. Ip-adressen vil altid være din linux maskine yderside. Når du sender noget ud fra dit lokalnet, så vil afsender adressen være din linux yderside - sådan er en NAT firewall altid.
når du scanner fra inderside, så er ALLE porte åbne, så derfor hjælper det ikke at scanne indefra - en firewall lukker på ydersiden, så det store grumme internet ikke angriber dig.
Konkret er port 25 åben, da du har startet en mailserver op.
mailserver.... hm... vil det sige at jeg har en sådan kørende i linux? for det kan da ikke være windows.... vel? Troede ellers jeg vidste hvilke pakker jeg har med....
hos mig skriver den adressen på min faste ip.. og gætter adressen på inderside maskinen... tror jeg har haft det fjernet engang men... kan ikke huske hvad... kan det passe det var i forbindelse med noget SNAT??
når du arbejder med sikkerhed, så er der en basal kommando du skal kende: "netstat -an" - den virker på de fleste platforme (både unix, linux og windows) - den viser hvilke adresser/porte en maskine lytter på.
Prøv kommandoen på linux - du har med garanti sendmail startet op (vil vise sig som localadress 0.0.0.0:25)
helt præcist kommer auditmypc med følgende under privacy..."Real IP [Best guess] The IP address you're trying to hide is 192.168.0.110" adressen er skrevet med rødt
ja, bortset fra at det ikke er med rødt, så kommer den også sådan hos mig - det tror jeg faktisk ikke, at du kan fjerne (jeg kan i hvert fald ikke), da det er min browser, som sender oplysningen.
hm... mente bare det kunen lade sig gøre... der står jo netop det er noget man prøver at fjerne som tilsyneladende ikke er lykkedes. Mener jeg har sket noget med SNAT der manipulerer med IP'erne på indersiden således en maskine på indersiden sender til linuxmaskinen... og derfra får pakkerne linuxmaskinens ip.. således det liger der kun er en pc på nettet
tror jeg har det fra følgende: iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source xx.xx.xx.xx skrevet af fra et eksempel tidligere har eksperimenteret med...
uha.. nu begynder du at snakke om noget andet jeg også skal have sat op en dag.
Jeg er rigtig glad for det vi nu har lavet - er sikker på det er gjort rigtigt, men hvis jeg skal sige lidt så er det... jeg kunne også det samme før.. Er der mere jeg umiddelbart kan få implimenteret i løsningen for udnytte den bedre.. ja.. hvad hedder sådan noget.
Ja, jeg vil klart foreslå en transparent firewall - du har godt størt glæde af den, hvis du har flere PC'ere på LAN, men det giver også en god, konstant download selvom du ikke finder placering af downloadede filer hurtigt - så er filen alligevel under download.
Ellers har ikke nogle gode forslag - det er ved at være for fremskreden på aftenen.
ikke helt almindelig, da den lige skal gøres transp. - og du skal ændre lidt i rc.firewall - således at al trafik imod port 80 i verden sendes igennem proxy.
Opret nyt spørgsmål i morgen - så kan jeg hurtig finde det som skal til - men jeg lukker ned nu
kommer nok med en tråd i morgen... men... godnat... :-)
Synes godt om
Ny brugerNybegynder
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.