Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Mar 2003

Iptables hjälp

Well, har hållt på med denna uppgift rätt länge; scenariot ser ut som följande:

internet -> hårdvarubrandvägg -> Gentoo "Firewall" med iptables <-> Gentoo med Apache.

"firewall"
eth0 10.0.0.100 /24
eth1 192.168.1.1 /24 "Internal LAN" i sammanhanget och är kopplat mot Apacheserverns eth1.

Har försökt konfigurera Gentoo "Firewall" med NAT men det går inget vidare, grunderna i iptables har jag nog hyfsad insikt i men SNAT/DNAT etc gör mig inte klokare .. speciellt inte när varannan tutorial man rotar fram har annorlunda syntax och ibland även helt olika.

hårdvarubrandväggen tillhandlahåller DNS info men datorn med apache får ingen DNS info och kan därför inte kommunicera utåt.

konfig hitills:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT

# tillåt alla tidigare established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT-m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# allow SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT

# allow ping
iptables -A INPUT -p icmp -j ACCEPT

# allow DNS traffic
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

iptables -A FORWARD -p tcp --dport 53 -o eth1 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -o eth1 -j ACCEPT

iptables -A FORWARD -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

echo "1" > /proc/sys/net/ipv4/ip_forward

Jag tippar själv starkt på att det behövs mer än 1 POSTROUTING rad eller SNAT/DNAT kommandon av nått slag.
Och behövs det fler OUTPUT regler?

Edit: Det är Port NAT jag vill få till.

MYCKET tacksam för snabbt svar.

Trädvy Permalänk
Hedersmedlem
Plats
Uppsala
Registrerad
Jul 2001

Tänk på att du inte godkänner något, förutom established, ut. DNS-requests eller ICMP-paket kommer t ex inte komma ut.

X370 Taichi / R7 1700 @ 3.75 GHz 1.2 V / 2x8 GB 3200 MHz CL16 / MSI GTX 1070 Gaming, OC / Samsung 960 EVO 500 GB / Corsair RM650x
LG G6 (H870)

Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Mar 2003

Okej, så om jag ska godkänna trafik så måste det ske i alla 3 kedjorna; input, forward och output ?

Trädvy Permalänk
Hedersmedlem
Plats
Uppsala
Registrerad
Jul 2001

Nja. TCP-trafik borde klara sig som du har det, men UDP (DNS) och ICMP är inte "connection-oriented" så du måste antingen tillåta uttrafik helt, eller tillåta utgående. Om du lägger till:

iptables -A OUTPUT -p icmp -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

Så borde åtminstone den delen fungera.

Ska sova nu, så förhoppningsvis kan någon annan hjälpa till om det behövs mera.

X370 Taichi / R7 1700 @ 3.75 GHz 1.2 V / 2x8 GB 3200 MHz CL16 / MSI GTX 1070 Gaming, OC / Samsung 960 EVO 500 GB / Corsair RM650x
LG G6 (H870)

Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Mar 2003

Tackar.

Nån som kan ge ett bra exempel på SNAT/DNAT som fungerar?

Trädvy Permalänk
Medlem
Plats
Câmara de Lobos, Madeira, Portugal
Registrerad
Nov 2005

För apache behöver du en regel, som forwardar till servern:

iptables -t nat -A PREROUTING - p TCP -i eth? --dport 80 -j DNAT --to-destination Serverns-IP
iptables -t nat -A POSTROUTING - o eth? -j SNAT --to-source Internet-IP

Ersätt frågetecknen med rätt nummer på nätverkskortet ,som är anslutet till Internet.

En bra iptablesmanual: http://iptables-tutorial.frozentux.net/

Fagerja