iptables, ipalias, nat, de mégis port filterezés és mindez DMZ nélkül

Fórumok

Sziasztok!

Nem tudok megbirkózni a köv feladattal:

A hálózat a következőképpen néz ki:

internet --- router(10.0.0.1) --- ([eth0] 10.0.0.3) linux_nat_box ([eth0:1] 10.0.0.5) --- (10.0.0.0/24)hálózat

tehát ugyanabban a subnetben van minden:

- a router
- a linux-os NAT box külső és belső lába is
- és az alháló is

Átrendezni nem lehet.

Szeretnék mindent NAT-olni, kivéve a 25-ös portot, mert azt teljesen tiltani szeretném a NAT box mögötti alháló részére.

script (ami NAT-ol)
... (csak a lényeg)

echo " Clearing any existing rules and setting default policy.."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F

echo " FWD: Allow all connections OUT and only existing and related ones IN"

iptables -A POSTROUTING -t nat -o eth0 -s 10.0.0.0/24 -d 0/0 -j MASQUERADE
iptables -A FORWARD -t filter -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -t filter -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

De hogyan tudom ebben a felállásban a 25-ös portot tiltani kifelé?
Előre is köszi!

Hozzászólások

az accept sor elott el kell drop-olni.
bar alapbol nekem nem szimpi - finoman szolva - ez az azonos subnet es natolas onmagara..
meg azonos az ip-je a routernek es a linux-nak?? routolas hogy van megoldva a linuxon a 10.0.0.0-as netre? ahh...biztos nem nagyon gany ez igy?

akkor mar valami bridge kellene inkabb

Több helyen is tilthatod , mondjuk ne engedd a csatlakozást a 25ös portról.

iptables -A INPUT -p tcp --sport 25 --dport 25 -j REJECT

Nem vagyok egy iptables guru , lehet van szebb megoldás is

Esetleg valami ilyesmi?

iptables -P FORWARD REJECT
iptables -F FORWARD
iptables -t filter -A FORWARD -i eth0.1 -p tcp --dport 25 -j REJECT
iptables -t filter -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -F
iptables -A POSTROUTING -t nat -o eth0 -s 10.0.0.0/24 -j MASQUERADE

Vagy talán:

iptables -P FORWARD REJECT
iptables -F FORWARD
iptables -t filter -A FORWARD -i eth0.1 -p tcp --dport 25 -j REJECT
iptables -t filter -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t mangle -F
iptables -t mangle -A FORWARD -i eth0.1 -j MARK --set-mark 1

iptables -t nat -F
iptables -t nat -A POSTROUTING -m mark --mark 1 -j MASQUERADE

Akkor viszont egy bátortalan tipp:

Vagy talán:

iptables -P FORWARD REJECT
iptables -F FORWARD
iptables -t filter -A FORWARD -i eth0.1 -p tcp --dport 25 -j REJECT
iptables -t filter -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t mangle -F
iptables -t mangle -A FORWARD -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MARK --set-mark 1

iptables -t nat -F
iptables -t nat -A POSTROUTING -m mark --mark 1 -j MASQUERADE

Vagyis:

iptables -t mangle -F
iptables -t mangle -A FORWARD -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING ! -s 10.0.0.0/24 -d 10.0.0.0/24 -j MARK --set-mark 2

iptables -P FORWARD REJECT
iptables -F FORWARD
iptables -t filter -A FORWARD -m mark --mark 1 -p tcp --dport 25 -j REJECT
iptables -t filter -A FORWARD -m mark --mark 2 -j REJECT
iptables -t filter -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -F
iptables -t nat -A POSTROUTING -m mark --mark 1 -j MASQUERADE

De az is lehet, hogy belekeveredtem, mint hülyegyerek a hózentrógerbe.

Ez így több sebből vérzik:

  • A router és a linux nat box IP címe nem egyezhet meg (a rajzon mindkettő 10.0.0.1)
  • A 10.0.0.0/24-es hálón bárki megkerülheti a linux nat boxot (senki nincs "mögötte").

Olyan nincs, hogy nem lehet átrendezni/átcímezni.

Igen...

Ha valaki nem akarja, akkor nem használja a DHCP-t...

A gyors megoldás az eredeti szabályaidnál a következő beillesztése:

iptables -t filter -A FORWARD -s 10.0.0.0/24 -p tcp --dport 25 -j DROP
iptables -A FORWARD -t filter -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT