Avatar billede blach Nybegynder
13. oktober 2004 - 17:38 Der er 10 kommentarer og
1 løsning

iptables routing

Hvordan godkender jeg indgående trafik på port 6004 og router denne trafik videre til intern ip 10.0.0.99 vha. iptables på RedHat ? (vel noget med PREROUTING eller do_nat !)

Jeg har et firewall script som jeg gerne vil have det implementeret i:
#!/bin/bash

function do_nat {
    CIFACE=$1
    SRC_IP=$2
    NAT_IP=$4
    PROTOC=$3
    NATPRT=$5

    iptables -t nat -I PREROUTING  -i $CIFACE -p $PROTOC -d $SRC_IP --dport $NATPRT -j DNAT --to $NAT_IP
    iptables -t nat -I POSTROUTING -s $NAT_IP -p $PROTOC -o $CIFACE --sport $NATPRT -j SNAT --to $SRC_IP
}

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

iptables -P INPUT  ACCEPT
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD ACCEPT

iptables -F -t nat
iptables -F -t filter
iptables -F -t mangle

iptables -t nat -A POSTROUTING -s 10.0.0.1/8 -d ! 10.0.0.1/8 -j MASQUERADE
Avatar billede langbein Nybegynder
13. oktober 2004 - 22:46 #1
"Jeg har et firewall script" - Det kan jeg ikke være helt enig i for denne routeren står helt åpen, det er ingen firewall (men så langt dog en router, ok.)

iptables -P INPUT  ACCEPT
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD ACCEPT


Her ser det ut som om man forsøker å få til en DNAT, dvs forwarding inn til server på LAN pluss en delt internettforbindelse. Her brukes det noen variabler som det ser ut som om ikke får noen verdi, slik at dette ikke får noen funksjon.

function do_nat {
    CIFACE=$1
    SRC_IP=$2
    NAT_IP=$4
    PROTOC=$3
    NATPRT=$5

    iptables -t nat -I PREROUTING  -i $CIFACE -p $PROTOC -d $SRC_IP --dport $NATPRT -j DNAT --to $NAT_IP
    iptables -t nat -I POSTROUTING -s $NAT_IP -p $PROTOC -o $CIFACE --sport $NATPRT -j SNAT --to $SRC_IP
}

Her kommer den delte internettforbindelsen på nytt en gang til, men denne gang med en alternativ syntaks:
iptables -t nat -A POSTROUTING -s 10.0.0.1/8 -d ! 10.0.0.1/8 -j MASQUERADE

Konklusjon: Dette virker i beste fall som en helt åpen nat router uten noen firewallbeskyttelse annet enn den som følger av nat funksjonen (tror jeg i hvert fall. :)

Man bør i all enkelhet lage dette scriptet på nytt på basis av:

http://iptables-script.dk/
Avatar billede langbein Nybegynder
13. oktober 2004 - 22:53 #2
#!/bin/sh

# iptables script generator: V0.1-2002
# Comes with no warranty!
# e-mail: michael@1go.dk

# Diable forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward

LAN_IP_NET='10.0.0.1/24'
LAN_NIC='eth1'
WAN_IP='80.202.xx.xx'
WAN_NIC='eth0'
FORWARD_IP='10.0.0.99'

# load some modules (if needed)

# Flush
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F

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

# enable Masquerade and forwarding
iptables -t nat -A POSTROUTING -s $LAN_IP_NET -j MASQUERADE
iptables -A FORWARD -j ACCEPT -i $LAN_NIC -s $LAN_IP_NET
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# STATE RELATED for router
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Open ports to server on LAN
iptables -A FORWARD -j ACCEPT -p tcp --dport 6004
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6004 -j DNAT --to 10.0.0.99:80

# Enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

(Bare en utestet "kladd" for å jobbe videre med.)
Avatar billede langbein Nybegynder
13. oktober 2004 - 22:53 #3
Rettelse:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6004 -j DNAT --to 10.0.0.99:6004
Avatar billede blach Nybegynder
13. oktober 2004 - 23:32 #4
OK; jeg prøver at teste et script fra http://iptables-script.dk/ imorgen...


Tak for dine forklaringer... og dit eksempel! Tror jeg forstår det nu...
Avatar billede langbein Nybegynder
14. oktober 2004 - 00:26 #5
Jo, prinsippene er egenrlig enkle. Har man fått tak i dem så kan man bruke iptables-script.dk som et utgangspunkt og så redigere om til det passer.
Avatar billede blach Nybegynder
14. oktober 2004 - 08:55 #6
langbein: Mit script ser nu sådan ud, det er meningen at man skal kunne komme ind med Netop via port 6502 og blive sendt videre til intern ip 10.0.0.99
Men kan ikke komme igennem! Hvad er der galt?

#!/bin/bash

# iptables script generator: V0.1-2002
# Comes with no warranty!
# e-mail: michael@1go.dk

# Diable forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward

LAN_IP_NET='10.0.0.1/8'
LAN_NIC='eth1'
WAN_IP='80.163.174.146'
WAN_NIC='eth0'
FORWARD_IP='10.0.0.99'

# load some modules (if needed)
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

# Flush
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -F -t nat
iptables -F -t filter
iptables -F -t mangle

# enable Masquerade and forwarding
iptables -t nat -A POSTROUTING -s $LAN_IP_NET -j MASQUERADE
iptables -A FORWARD -j ACCEPT -i $LAN_NIC -s $LAN_IP_NET
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Open ports on router for server/services
iptables -A INPUT -j ACCEPT -p tcp --dport 80
iptables -A INPUT -j ACCEPT -p tcp --dport 21
iptables -A INPUT -j ACCEPT -p tcp --dport 22

iptables -A INPUT -j ACCEPT -p tcp --dport 6502
iptables -A INPUT -j ACCEPT -p udp --dport 6502

# STATE RELATED for router
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Open ports to server on LAN
iptables -A FORWARD -j ACCEPT -p tcp --dport 6502
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6502 -j DNAT --to 10.0.0.99:6502

iptables -A FORWARD -j ACCEPT -p udp --dport 6502
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 6502 -j DNAT --to 10.0.0.99:6502

# Enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward


iptables -t nat -A POSTROUTING -s 10.0.0.1/8 -d ! 10.0.0.1/8 -j MASQUERADE
Avatar billede blach Nybegynder
14. oktober 2004 - 09:11 #7
Hmm, det virker :) Skulle bare lige prøve uden for nettet...

Tak for hjælpen!
Avatar billede blach Nybegynder
14. oktober 2004 - 19:04 #8
Du har ikke en ide til hvordan jeg gør den mere sikker?
Avatar billede langbein Nybegynder
15. oktober 2004 - 01:24 #9
Det kan jo hjelpe å "hardne" det Linux operativsystemet som firewall kjører på:
http://www.eksperten.dk/spm/546696
Avatar billede blach Nybegynder
19. oktober 2004 - 22:04 #10
Tak for hjælpen, tror det virker fint nok... Sætter dog nok lige disse porte:
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

til
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
Avatar billede langbein Nybegynder
26. oktober 2004 - 22:23 #11
Ja det må man ellers så står firewall helt åpen !
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester