15. april 2002 - 20:33Der er
35 kommentarer og 1 løsning
Hjælp med Iptables script
Jeg har sat en Linux Firewall op, med en redhat 7.2 og iptables, men jeg kan ikke få min DNAT til at virke som den skal. dette gælder for flere services som jeg kører på mit interne LAN, jeg vil give 500 point 2x 200 & 1x 100 hvis der er en der kan hjælpe mig igennem problemet, men kun via icq eller MSN. Kontakt mig på.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
# tillad ikke forwarding af pakker echo "0" > /proc/sys/net/ipv4/ip_forward
# angiver variablerne intern ip og extern ip INTIP=192.168.0.1 EXTIP=80.62.44.238
# kæderne bliver lige tømt, så man kan køre scriptet igen uden problemer iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -F block iptables -t nat -F
# luk al indgående som standard iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
# lav en ny kæde iptables -N block
# tillad alt lokal trafik iptables -A INPUT -i lo -j ACCEPT
# vi tillader trafik på forbindelser, der er blevet oprettet iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT # og vi tillader nye forbindelser, hvis de kommer indefra iptables -A block -m state --state NEW -i eth1 -j ACCEPT # vi tillader forward af etableret trafik. iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Starter FORWARD af pakker som skal til WEB/FTP serveren iptables -A FORWARD -d 192.168.0.2 -p tcp --dport 80 -j ACCEPT #iptables -A FORWARD -s 80.62.44.238 -p tcp -m multiport --dport 20,21,80,411 -j ACCEPT
# spær for adgang til visse services fra lan iptables -A INPUT -p udp -d $INTIP --dport syslog -j DROP iptables -A INPUT -p tcp -d $INTIP --dport swat -j DROP
# blockkæden kobles på INPUT og FORWARD kæderne # Det betyder at der er adgang til alt indefra (på nær det, der blev # droppet lige før, og til ALT udaf, men ingenting udefra iptables -A INPUT -j block iptables -A FORWARD -j block
# og derudover logger vi alt andet der prøver at blive forwardet. iptables -A FORWARD -j LOG
# Tilad forward af pakker echo "1" > /proc/sys/net/ipv4/ip_forward
#Gemmer Scriptet ved kørsel /etc/init.d/iptables save
Ikke dårlig. Meget bra satt opp firewall script bortsett fra noen detaljer hist og her. Det aller meste er jo 100 % korrekt. Mest komplette script sett på eksperten til nå ! Gjelder fortsatt ønsket om icq eller MSN ?
Her har du satt opp en enkel ekstern internetttilkopling. Samtidig finnes bare en enkelt intern LAN. Denne lan inneholder både arbeidsstasjoner og en enkelt server som kjører div server funksjoner inne på LAN (192.168.0.2). Firewall er en ren firewall den utfører ingen andre funksjoner som kan leses ut av scriptet. Rett ??
Jeg Kunne ikke få det til at virke, den kom med et par fejl, fordi der var lavet multiple -d og det kan man åbenbart ikke jeg ligger lige hele mit script, igen så hvis du gidder kigge på det en gang mere. :-)
#!/bin/sh
# tillad ikke forwarding af pakker echo "0" > /proc/sys/net/ipv4/ip_forward
# angiver variablerne intern ip og extern ip INTIP=192.168.0.1 EXTIP=80.62.44.238
# kæderne bliver lige tømt, så man kan køre scriptet igen uden problemer iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -t nat -F
# luk al indgående som standard iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
# lav en ny kæde iptables -N block
# tillad alt lokal trafik iptables -A INPUT -i lo -j ACCEPT
# vi tillader trafik på forbindelser, der er blevet oprettet iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# og vi tillader nye forbindelser, hvis de kommer indefra iptables -A block -m state --state NEW -i eth1 -j ACCEPT
# Starter FORWARD af pakker som skal til WEB/FTP serveren #iptables -A FORWARD -s 80.62.44.238 -p tcp -m multiport --dport 20,21,80,411 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --sport 1024:65535 -d 192.168.0.2 -m state --state NEW -j ACCEPT iptables -A FORWARD -p tcp --dport 3000:3019 -j ACCEPT iptables -A FORWARD -p tcp --dport 3020:3039 -j ACCEPT
# spær for adgang til visse services fra lan iptables -A INPUT -p udp -d $INTIP --dport syslog -j DROP iptables -A INPUT -p tcp -d $INTIP --dport swat -j DROP
# blockkæden kobles på INPUT og FORWARD kæderne # Det betyder at der er adgang til alt indefra (på nær det, der blev # droppet lige før, og til ALT udaf, men ingenting udefra iptables -A INPUT -j block iptables -A FORWARD -j block
# og derudover logger vi alt andet der prøver at blive forwardet. iptables -A FORWARD -j LOG
# Tilad forward af pakker echo "1" > /proc/sys/net/ipv4/ip_forward
#Gemmer Scriptet ved kørsel /etc/init.d/iptables save
Din firewall er satt opp til å akseptere en hel del trafikk inn til de lokale prosessene inne i firewallmaskinen. Dette gjør tingenen en del komlisert samtidig som firewallen får en mindre grad av sikkerhet. Det finnes på denne måte flere veier inn til firewallen som gjør at en hacker event kan oppnå kontroll over firewallen og bruke denne som "plattform" for videre anngrep inn mot nettverket.
Forholder det seg virkelig slik at du kjører web server og slikt ting på selve firewall maskinen, slik at det både er nødvendig å åpne opp inn til firewall maskinen og til serveren bak, eller er dette unødvendig ??
Du vil få en enklere og mere sikker firewall dersom du restrikter all trafikk inn til de lokale prosessene i firewallen samtidig som du åpner opp for de portene som behøves til den serveren som ligger bak.
Denne gjør det mulig å kjøre en web browser på selve firewall maskinen er dette nødvendig ? iptables -A INPUT -i lo -j ACCEPT
Disse to angir at det skal tillates den samme trafikk inn til de lokale prosessene på firewallen som til den serveren som ligger bak, er det nødvendig ?? iptables -A INPUT -j block iptables -A FORWARD -j block
Selv om du i utgangspunktet åpner opp for de samme portene på den bakenforliggende serveren i stedet for de tilsvarende portene inn til server prosessene, så mener jeg at sikkerhetsrisikoen langt fra blir den samme.
Firewallmaskinen er tilgjengelig fra internett ved en global "offentlig" ipadresse. Den kan nås fra hele verden. Den interne serveren kan bare nås via en lokal ip adresse som ikke er routbar via internett. Dette gjør den i utgangspunktet mindre utsatt, slik som jeg ser det.
Med andre ord, viktig spørsmål: Kjører du serverfunsjoner på din firewall maskin slik som ditt firewall script antyder, eller er dette ikke tilfellet slik at firewall scriptet kan skrives om til å være et rent firewall script med en bakenforliggende beskyttet server og et tilsvarende LAN ?? Behøver du, eller har du til hensikt å kjøre en web browser på din firewall maskin ??
(Problemstillingene ville ikke vært de samme dersom det hadde dreid seg om ipchains. Forsøker bare å optimalisere litt mot de muligheter som ligger i iptables.)
Hvis firewall kan være firewall og så avstengt mot omverdenen som mulig og server kan være server med de portene åpene som er nødvendig så blir tingene slik som jeg ser det både enklere og sikrere.
Kan vanskelig se at avsnittet over faktisk har noen fornuftig eller meningsfull funksjon (???) Dersom det ikke tjener noen bestemt hensikt så bør det tas vekk. Det vil slik som jeg ser det ikke være hensiktsmessig å ha liggende et stykke regelsett som ikke er i stand til å utføre noen fornuftig funksjon alene, da bør det heller tas vekk, eller funksjonen (hva den skal være) bør spesifiseres slik at den funksjon som ønskes oppnådd kan gjøres komplett. (Det vil si med de tillegsregler for forwarding som behøves for hver prerouting setning.)
Du bør angi nøyaktig hvordan ditt nettverks og server oppsett ser ut og hvorledes det er tenkt å skulle kjøre. Så bør det være mulig å finne fram til et regelsett ..
Disse regler bruges til at lave direct connection fra Icq, den skal bruge 20 porte per klient, iptables -t nat -A PREROUTING -p tcp --dport 3000:3019 -j DNAT --to 192.168.0.11 iptables -t nat -A PREROUTING -p tcp --dport 3020:3039 -j DNAT --to 192.168.0.12 iptables -t nat -A PREROUTING -p tcp --dport 3040:3059 -j DNAT --to 192.168.0.13 iptables -t nat -A PREROUTING -p tcp --dport 3060:3079 -j DNAT --to 192.168.0.14 iptables -t nat -A PREROUTING -p tcp --dport 3080:3099 -j DNAT --to 192.168.0.15 iptables -t nat -A PREROUTING -p tcp --dport 3100:3119 -j DNAT --to 192.168.0.16
Der ud over kører jeg en intern web/ftp/DC hub server på 192.168.0.2 det er port 21/80/411 så vil jeg gerne gøre sådan at det kun er 192.168.0.2 der kan bruge port 412 hvis dette kan lade sig gøre
Ja det klaret opp en del. Firwall skal kun ha en eneste port åpen gjennom input chain og det er port for ssh og det forenkler (og forbedrer) ganske mye. Altså kan hele kjeden "block" tas vekk og de reglene som ligger i block "kan legges direkte inn der de hører kjemme."
Når det gjelder icq greiene, så tror jeg det er litt viktig å bygge opp funksjonene litt steg for steg mens man sjekker at hvert enkelt steg fungerer før man går videre til det neste. Har ikke sett og kjenner ikke til noen dokumentasjon som forteller hvorledes man setter opp icq på denne måten gjennom firewall. Mener at dette derfor bør utsettes til slutt som en engen ekprimentserie, eventuelt at det lages et eget script som bare tester ut icq funksjonen. Det øvrige med en server innefor firewall ser jo ellers ut til å være rimelig greit nok.
Man kan godt begrense slik at det bare er en ip avsender som kan bruke en port. Det er serveren 192.168.0.2 som skal kunne gå inn på en port 412 på firewall maskinen ?? Hvorfor ?
Når det gjelder klientene og port 412 er dette på firewall maskinen som de skal ha adgang eller er det på servermaskinen ? (Det må vel være firewall maskinen det dreier seg om, hvorfor ?)
I det hele og store så mener jeg at man dvs vi bør begrense oss til standard og utprøvde ting, i hvertfall i første omgang, dersom vi skal kunne regne med at tingene skal komme opp å kjøre.
Stikker ut nå. Tar med meg en utskrift av dt over og kikker litt på det. Forsøker å lage et utkast til et revidert script som forhåpentligvis kan klare noe av det grunnleggende. Vil du ha det her eller pr mail ? Ellers hvis du jar noen flere opplysninger så legg de her eller send dem pr mail !!
Kjempebra, for scriptets oppgave er jo nettop å sørge for rett trafikk i forhold til de tingene som er på nettverket, og hvis noe av opplyningene om dette mangler, så er det heller ikke lett å sette opp de reglene som skal styre trafikken på rett måte.
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.