04. juli 2002 - 03:20Der er
15 kommentarer og 1 løsning
Iptables/Firewall script.
Jeg skal have min server til at forwarde følgende porte fra eth1(10.0.0.0) til eth0(192.168.1.0). Der skal laves et script som kan, enable gateway (MASQUERADING), forwarde følgende porte: 5800. 5900. 5901. 5902. 2121.
Der skal også laves et andet script der kan lukke for p2p.
Jeg har nu fået min forwarding til at virke. Jeg har læst manpagen for iptables, men har ikke helt forstået den. det jeg skal have lavet er et script der forwarder ovenstående porte, altså 5800. 5900. 5901. 5902. 2121.
ARGH.. den sendte noget den ikke skulle.... prøver lige igen.
ovenstående porte skal forwardes til 192.168.1.15. det er ikke det store problem, det har jeg fået den til, men alligevel kunne det være dejlig at have det i scriptet.
Når maskinen starter skal den køre et script der kun tillader de porte som jeg selv definerer, gerne så man kan bruge nettet til normalt brug, dvs. surf, ftp, irc, icq, mail osv. jeg mener at have læst mig til at iptables er bygget op at rulesets. de kommer så i en bestemt rækkefølge, og hver rule (kæde?) definerer hvad der skal gøres med pakken. dvs. at definerer man at alt på port 81 skal have DENY, og en anden regel om at alt der kommer på port 81, men fra en bestemt ip skal komme igennem.. er det ikke sådan det virker?
her havde jeg så forestillet mig at man skulle lave en regel der sagde at al trafik er blocet, og man herefter åbner for normal surf (http, irc, ftp, icq osv.) jeg ved ikke om det er sådan det virker, men jeg har haft uheldige episoder med maskiner med spyware som prøver at lave connections udaftil på mæekelige porte, og noget af dette vil jeg gerne undgå.
dvs. et script der allower normal brug af internet men gerne skulle blocke for peer-2-peer programmer. er det noget der kan lade sig gøre?
LANIF=eth0 WANIF=eth1 OWNIP=indsæt din egen offentlige ip her. DESTIP=192.168.1.15 FORWARDPORTS="5800 5900 5901 5902 2121" for port in $FORWARDPORTS do $IPTABLES -t nat -A PREROUTING -p tcp -d $OWNIP --dport $port -j DNAT --to $DESTIP done
$IPTABLES -t filter -P OUTPUT DROP # Hvis en pakke ikke er omfattet af en af nedenstående regler, så skal den droppes. TCPPORTS="20 21 22 25 80 447" # ftp-data ftp ssh smtp http https for port in $TCPPORTS do $IPTABLES -t filter -A OUTPUT -j ACCEPT -p tcp --dport $port -o $WANIF done
$IPTABLES -t filter -P FORWARD DROP $IPTABLES -t filter -A FORWARD -j ACCEPT -i $LANIF
Den måde, man typisk gør det på, er at man har en default policy, der som regel er sat til DROP. Derefter giver man så adgang til de, der har brug for det. Hvis du så vil give adgang til alle undtagen en bestemt IP, så skriver du bare "!10.10.10.10." eller hvad IP'en nu er.. ! = ikke.
så er jeg tilbage... skulle lige hjælpe en kammerat med noget samba sjov. nu er jeg ikke inde i scripting, men kan man sætte flere destip's og så forwarde til flere maskiner på en gang? jeg gætter på at det skal være noget i retnigen af: DESTIP1=xxx.xxx.xxx.xxx FORWARDPORTS1="xxxx xxxx xxxx xxxx" og så: for port in $FORWARDPORTS1 do $IPTABLES -t osv?
nu sidder jeg helt og bliver i tvivl... mit net er opbygget på følgende måde: router på 10.0.0.1 . server på 10.0.0.45 externt, og 192.168.1.1 internt. hvilke iper skal hvorhen?
Det interface, der har 10.0.0.45 er det, jeg kalder WANIF og det ander er LANIF.
Mht forwarding. HVis du har ting, der skal forwardes til andre IP'er så kan du bare kopiere hele stykker: Nu står der: DESTIP=192.168.1.15 FORWARDPORTS="5800 5900 5901 5902 2121" for port in $FORWARDPORTS do $IPTABLES -t nat -A PREROUTING -p tcp -d $OWNIP --dport $port -j DNAT --to $DESTIP done
Derunder indsætter du bare noget i stil med: DESTIP=192.168.1.16 FORWARDPORTS="80 443" for port in $FORWARDPORTS do $IPTABLES -t nat -A PREROUTING -p tcp -d $OWNIP --dport $port -j DNAT --to $DESTIP done
ok. det var sådan set også det jeg mente, men det kom vist lidt tåget til udtryk :) Tak for hjælpen!
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.