Permalänk
Medlem

Hjälp med iptables

Fick för mig att installera ubuntu server 7.10 istället för win 2k3 som får agera router och server.

Wan ligger på eth1 som är confat för dhcp, LAN på eth0. Dhcp server är confad att fungera på eth0 och har ordnat så att båda datorerna i lanet får samma ip hela tiden.

Får dock inte iptables att fungera korrekt (det kanske det gör iofs ), tycker det ser lite knasigt eller att saker fattas när man kollar på den med iptables -v -L.

$ sudo iptables -v -L Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT 0 -- lo any anywhere anywhere 61 4400 ACCEPT 0 -- eth0 any anywhere anywhere 0 0 ACCEPT 0 -- eth1 any anywhere anywhere state RELATED,ESTABLISHED 0 0 ACCEPT tcp -- eth1 any anywhere anywhere tcp dpt:ssh 0 0 ACCEPT udp -- eth1 any anywhere anywhere udp dpt:28960 0 0 ACCEPT udp -- eth1 any anywhere anywhere udp dpt:20800 0 0 ACCEPT udp -- eth1 any anywhere anywhere udp dpt:20810 Chain FORWARD (policy ACCEPT 19 packets, 1827 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 3816 packets, 842K bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT 0 -- any lo anywhere anywhere

Kanske ser lite rörigt ut :P.

#!/bin/bash iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # NAT iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # Drop all input iptables -P INPUT DROP # Accept lan iptables -A INPUT -i eth0 -j ACCEPT # Accept existing and related sessions iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT # Öppna portar för servern iptables -A INPUT -i eth1 -p TCP --dport 22 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 28960 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 20800 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 20810 -j ACCEPT # Inkommande 4111 till 411 för servern iptables -t nat -A PREROUTING -i eth1 -p TCP --dport 4111 -j DNAT --to-destination 192.168.0.1:411 #Öppna portar till LAN iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 32459 -j DNAT --to-destination 192.168.0.11:411 iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 25431 -j DNAT --to-destination 192.168.0.11:411

Säg gärna om det är nåt mer som kan vara bra att lägga till.

EDIT: Kanske ska förklara vad jag vill göra också :).

Vill ha nat till mina 2 burkar och AP som är kopplade till en switch sin är kopplad på eth0.
Vill även öppna port 22, 28960, 20800 20810 till servern. Samt att inkommande på port 4111 ska komma till 411 på servern.

Visa signatur

CCNP

Permalänk
Medlem

Du saknar regler för FORWARD (trafik mellan Internet och LAN)
Du skall lägga till:

iptables -p FORWARD DROP

# Accept existing and related sessions to LAN
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

gärna också till sist i respektive kedja:
iptables -A FORWARD -i eth1 -j LOG
iptables -A INPUT -i eth1 -j LOG

De gör att paketen som inte matchar någon regel loggas i /var/log/messages.

Vill du komma åt servern från LANet med det externa IP-numret måste du lägga till SNAT regler i POSTROUTING kedjan.

http://iptables-tutorial.frozentux.net/

Visa signatur

Fagerja

Permalänk
Medlem

Lekt runt lite mer idag, ser ut såhär nu:

Chain INPUT (policy DROP 245 packets, 21021 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT 0 -- lo any anywhere anywhere 63 4409 ACCEPT 0 -- eth0 any anywhere anywhere 3 192 ACCEPT 0 -- eth1 any anywhere anywhere state RELATED,ESTABLISHED 0 0 ACCEPT tcp -- eth1 any anywhere anywhere tcp dpt:ssh 0 0 ACCEPT udp -- eth1 any anywhere anywhere udp dpt:28960 0 0 ACCEPT udp -- eth1 any anywhere anywhere udp dpt:20800 0 0 ACCEPT udp -- eth1 any anywhere anywhere udp dpt:20810 Chain FORWARD (policy DROP 65 packets, 3589 bytes) pkts bytes target prot opt in out source destination 87900 126M ACCEPT 0 -- eth0 any anywhere anywhere 51122 2453K ACCEPT 0 -- eth1 any anywhere anywhere state RELATED,ESTABLISHED Chain OUTPUT (policy ACCEPT 3861 packets, 480K bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT 0 -- any lo anywhere anywhere

#!/bin/bash # Rensa iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Droppa input iptables -P INPUT DROP iptables -P FORWARD DROP # Accept lan iptables -A INPUT -i eth0 -j ACCEPT # Nat iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -A FORWARD -i eth0 -j ACCEPT # Accept existing and related sessions iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT # Servern: # SSH iptables -A INPUT -i eth1 -p TCP --dport 22 -j ACCEPT # COD4 UDP iptables -A INPUT -i eth1 -p UDP --dport 28960 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 20800 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 20810 -j ACCEPT # Verlihub 4111 to 411 iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 411 -j REDIRECT --to-port 4111 ## Min dator: # Torrent iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 32459 -j DNAT --to-destination 192.168.0.11:32459 # DC iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 25431 -j DNAT --to-destination 192.168.0.11:25431 iptables -t nat -A PREROUTING -i eth1 -p udp --dport 25431 -j DNAT --to-destination 192.168.0.11:25431

Portforwarding för min dator 192.168.0.11 slutade funka när jag la in det du skrev. SSH, hubben och cod4 server funkar dock som det ska. Även internet för mig.

EDIT: Nu dog även "portändringen" för hubben. Funkar igen då jag använder iptables -P INPUT ACCEPT istället för DROP

# Rensa iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Drop all input iptables -P INPUT DROP # Accept lan iptables -A INPUT -i eth0 -j ACCEPT # Nat iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -A FORWARD -i eth0 -j ACCEPT # Accept existing and related sessions iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT # Open ports for the server # SSH: iptables -A INPUT -i eth1 -p TCP --dport 22 -j ACCEPT # COD4 UDP iptables -A INPUT -i eth1 -p UDP --dport 28960 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 20800 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 20810 -j ACCEPT # Verlihub 4111 to 411 iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 411 -j REDIRECT --to-port 4111 # Min dator # Torrent iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 32459 -j DNAT --to-destination 192.168.0.11:32459 # DC iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 25431 -j DNAT --to-destination 192.168.0.11:25431 iptables -t nat -A PREROUTING -i eth1 -p udp --dport 25431 -j DNAT --to-destination 192.168.0.11:25431

EDIT2: Tog lite hjälp på irc och fick allt att funka, men lyssnar gärna om nån har lite synpunkter :).

# Rensa iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Drop all input iptables -P INPUT DROP iptables -P FORWARD DROP # Accept lan iptables -A INPUT -i eth0 -j ACCEPT # Nat iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -A FORWARD -i eth0 -j ACCEPT # Accept existing and related sessions iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT # Öppna portar för servern # SSH: iptables -A INPUT -i eth1 -p TCP --dport 22 -j ACCEPT # COD4 UDP iptables -A INPUT -i eth1 -p UDP --dport 28960 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 20800 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 20810 -j ACCEPT # Verlihub 4111 till 411 iptables -A INPUT -i eth1 -p TCP --dport 4111 -j ACCEPT iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 411 -j REDIRECT --to-port 4111 ## Internal Port forwarding ## # Torrent iptables -I FORWARD -i eth1 -p tcp --dport 32459 -d 192.168.0.11 -j ACCEPT iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 32459 -j DNAT --to-destination 192.168.0.11:32459 # DC iptables -I FORWARD -i eth1 -p tcp --dport 25431 -d 192.168.0.11 -j ACCEPT iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 25431 -j DNAT --to-destination 192.168.0.11:25431

Visa signatur

CCNP

Permalänk
Medlem

De här reglerna är bra att ha om du använder loggning (rekommenderas). De hindrar att logfilen fylls med ofarliga anrop från Windowsdatorer, som söker efter andra datorer i arbetsgruppen.

iptables -A INPUT -p UDP -i eth1 -s 0/0 --dport 135:139 -j DROP
iptables -A INPUT -p TCP -i eth1 -s 0/0 --dport 135:139 -j DROP
iptables -A INPUT -p TCP -i eth1 -s 0/0 --dport 445 -j DROP

Visa signatur

Fagerja