dasspapir Skrevet 10. september 2002 Del Skrevet 10. september 2002 Jeg har prøvd å sette opp iptables, men ser ikke feilen i scriptet mitt. eth1 er inn mot lokalnettet og trenger ingen restriksjoner. eth0 er mot internett og her skal alt sperres bortsett fra ftp, ssh, dns og http. Den skal også fungere som Internett router for lokalnettet (noe som den gjør med dette scriptet) ---Begynnelse--- IPT="/sbin/iptables" #Slå på forwarding echo 1 > /proc/sys/net/ipv4/ip_forward $IPT --flush $IPT --table nat --flush $IPT --delete-chain $IPT --table nat --delete-chain # Set up IP FORWARDing and Masquerading $IPT --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE modprobe ip_tables # Lag firewall tabell $IPT -N firewall $IPT -A firewall -j LOG --log-level info --log-prefix "Firewall:" $IPT -A firewall -j DROP #Slipp gjennom DNS $IPT -A INPUT -p udp --source-port 53 -j ACCEPT $IPT -A INPUT -p tcp --source-port 113 -j ACCEPT $IPT -A INPUT -p tcp --destination-port 113 -j ACCEPT #Allow ftp to send data back and forth. # $IPT -A INPUT -p tcp ! --syn --source-port 21 --destination-port 1024:65535 -j ACCEPT # Slipp gjennom noen porter $IPT -A INPUT -i eth0 -p tcp --syn --destination-port ! 80 -j ACCEPT $IPT -A INPUT -i eth0 -p tcp --syn --destination-port ! 22 -j ACCEPT $IPT -A INPUT -i eth0 -p tcp --syn --destination-port ! 21 -j ACCEPT # Blokker alle andre porter enn spesifisert over $IPT -A INPUT -i eth0 -p icmp -j firewall $IPT -A INPUT -i eth0 -p tcp --syn -j firewall $IPT -A INPUT -i eth0 -p udp -j firewall ---SLUTT--- Hva gjør jeg feil? Jeg får fortstatt tilgang på ftp og http hvis jeg tar bort denne linja. [ Denne Melding var redigert av: dasspapir på 2002-09-11 08:18 ] Lenke til kommentar
DanteUseless Skrevet 10. september 2002 Del Skrevet 10. september 2002 Får du feilmeldinger ved kjøring av scriptet? Husk at ting som du skal firewalling som forwardes/masq må kjøres gjennom en annen "chain" enn input/output. -Dante Lenke til kommentar
dasspapir Skrevet 10. september 2002 Forfatter Del Skrevet 10. september 2002 Jeg får ingeng feilmeldinger. Jeg er nybegynner på iptables, så jeg setter pris på litt utdypning. Ingen porter skal forwardes til maskiner på lokalnettet. Tabellene ser slik ut: [root@server iptables-script]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp spt:domain ACCEPT tcp -- anywhere anywhere tcp spt:auth ACCEPT tcp -- anywhere anywhere tcp dpt:auth ACCEPT tcp -- anywhere anywhere tcp dpt:!http flags:SYN,RST,ACK/SYN ACCEPT tcp -- anywhere anywhere tcp dpt:!ssh flags:SYN,RST,ACK/SYN DROP tcp -- anywhere anywhere tcp dpt:!ftp flags:SYN,RST,ACK/SYN firewall icmp -- anywhere anywhere firewall tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN firewall udp -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain firewall (3 references) target prot opt source destination LOG all -- anywhere anywhere LOG level info prefix `Firewall:' DROP all -- anywhere anywhere [ Denne Melding var redigert av: dasspapir på 2002-09-10 14:14 ] Lenke til kommentar
DanteUseless Skrevet 10. september 2002 Del Skrevet 10. september 2002 Quote: Hva gjør jeg feil? Jeg får fortstatt tilgang på ftp og http hvis jeg tar bort denne linja. Hvilken linje? Ønsker du å stoppe all trafikk (NAT/masq-traffik) utenom det du bestemmer der? -Dante Lenke til kommentar
dasspapir Skrevet 11. september 2002 Forfatter Del Skrevet 11. september 2002 denne linja: $IPT -A INPUT -i eth0 -p tcp --syn --destination-port ! 21 -j ACCEPT Det er ønsker er at NAT sakal fungere (og det gjør den så det er ikke no problem). Greia er at denne boksen også fungerer som en server (http/ftp/ssh) som skal synes fra Internett siden (eth0). Her skal ALL annen trafikk enn ftp, ssh, dns, http og NAT sperres. Fra innsiden skal det ikke være noen restriksjoner (eth1) [ Denne Melding var redigert av: dasspapir på 2002-09-11 08:18 ] Lenke til kommentar
DanteUseless Skrevet 11. september 2002 Del Skrevet 11. september 2002 Hvis _all_ trafikk annet enn det du ønsker skal slippe gjennom eth0 (INPUT) så kan det gjøres på den "hardcore" måten. Dvs å hindre all trafikk på INPUT chain, og så sleppe gjennom det som skal gjennom: ----snipp snipp---- #Sette DROP som default, og flush $IPTABLES -P INPUT DROP $IPTABLES -F INPUT #Slippe gjennom trafikk til port 80. $IPTABLES -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT ---snipp snipp--- Eller så kan du gjøre på en litt annen måte; dvs å sleppe gjennom trafikk, og så stenge alt som ikke passer de reglene som er sluppet gjennom. (Du må huske at "pakkene" traverserer gjennom "chain'ene") ------------------- $IPTABLES -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT $IPTABLES -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT $IPTABLES -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT $IPTABLES -A INPUT -p tcp -i eth0 -d 0/0 -s 0/0 -j DROP --------------------- Menneh, vet ikke om dette fungerer.. skreiv det mer eller mindre utifra hukommelsen. Btw: huske kontrolldata for ftp oxo -Dante Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå