Gå til innhold

Problemer med iptables


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...