/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
IPtables of FTP-server bag NAT
Fra : Jacob Jensen


Dato : 19-02-06 22:54

Hej

Jeg har forsøgt at sætte en ftp-server op bag min linux-boks (Fedora Core 4)
som fungerer som NAT-enhed ved hjælp af IP-tables. Jeg har sørget for at
følgende moduler er loaded.

modprobe --first-time iptable_nat
modprobe --first-time ip_conntrack
modprobe --first-time ip_conntrack_ftp
modprobe --first-time ip_nat_ftp

Og at denne kommando er udført:

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

Alt dette ser i øvrigt ud til at virke fint. NAT ser ud til at være sat
korrekt op. HTTP kører fint, ICQ kører fint, POP3 og SMTP kører fint.

Jeg kører nu følgende to kommandoer og forventer at min FTP-server herefter
kan tilgås:

iptables -t filter -A FORWARD -p tcp -d 192.168.0.3 --dport 21 -m
state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d $external_ip --dport 21 -j DNAT --to
192.168.0.3:21

Resultatet er:

Filezilla godt kan tilgå min FTP-server men fil-sendinger virker ikke.
IE kan slet ikke tilgå den. Min FTP-server registrerer bruger og pass, men
så sker der ikke mere.

Jacob



 
 
Klaus Alexander Seis~ (19-02-2006)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 19-02-06 23:04

Jacob Jensen wrote

> Filezilla godt kan tilgå min FTP-server men fil-sendinger
> virker ikke.

Kan det være fordi du ikke forwarder ftp-data (vistnok port 20, men
jeg kan ikke tjekke det herfra hvor jeg sidder nu), hvorfra data
sendes?

Mvh,

--
Klaus Alexander Seistrup
SubZeroNet, Copenhagen, Denmark
http://magnetic-ink.dk/

Jacob Jensen (19-02-2006)
Kommentar
Fra : Jacob Jensen


Dato : 19-02-06 23:31

> Kan det være fordi du ikke forwarder ftp-data (vistnok port 20, men
> jeg kan ikke tjekke det herfra hvor jeg sidder nu), hvorfra data
> sendes?

Det har jeg også tænkt men så vidt jeg har forstået (og det er vist også det
Kent siger) skulle ip_conntrack_ftp styre det for mig ved at mærke pakkerne
som "RELATED".

Jacob



Kent Friis (19-02-2006)
Kommentar
Fra : Kent Friis


Dato : 19-02-06 23:14

Den Sun, 19 Feb 2006 22:54:21 +0100 skrev Jacob Jensen:
> Hej
>
> Jeg har forsøgt at sætte en ftp-server op bag min linux-boks (Fedora Core 4)
> som fungerer som NAT-enhed ved hjælp af IP-tables. Jeg har sørget for at
> følgende moduler er loaded.
>
> modprobe --first-time iptable_nat
> modprobe --first-time ip_conntrack
> modprobe --first-time ip_conntrack_ftp
> modprobe --first-time ip_nat_ftp
>
> Og at denne kommando er udført:
>
> echo 1 > /proc/sys/net/ipv4/ip_forward
>
> Alt dette ser i øvrigt ud til at virke fint. NAT ser ud til at være sat
> korrekt op. HTTP kører fint, ICQ kører fint, POP3 og SMTP kører fint.
>
> Jeg kører nu følgende to kommandoer og forventer at min FTP-server herefter
> kan tilgås:
>
> iptables -t filter -A FORWARD -p tcp -d 192.168.0.3 --dport 21 -m
> state --state NEW -j ACCEPT
> iptables -t nat -A PREROUTING -p tcp -d $external_ip --dport 21 -j DNAT --to
> 192.168.0.3:21
>
> Resultatet er:
>
> Filezilla godt kan tilgå min FTP-server men fil-sendinger virker ikke.
> IE kan slet ikke tilgå den. Min FTP-server registrerer bruger og pass, men
> så sker der ikke mere.

Du mangler at åbne for ESTABLISHED og RELATED. ip_conntrack_ftp
styrer data-connections automatisk, og de havner i en af de to
kategorier (nok RELATED, da ftp-data er relateret til ftp).

iptables -A FORWARD -m STATE --state ESTABLISHED,RELATED -j ACCEPT

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Jacob Jensen (19-02-2006)
Kommentar
Fra : Jacob Jensen


Dato : 19-02-06 23:30

> iptables -A FORWARD -m STATE --state ESTABLISHED,RELATED -j ACCEPT

Den linje har jeg også. Den er vist et led i at NAT i det hele taget virker.

Jacob



Kent Friis (20-02-2006)
Kommentar
Fra : Kent Friis


Dato : 20-02-06 18:54

Den Sun, 19 Feb 2006 23:30:26 +0100 skrev Jacob Jensen:
>> iptables -A FORWARD -m STATE --state ESTABLISHED,RELATED -j ACCEPT
>
> Den linje har jeg også. Den er vist et led i at NAT i det hele taget virker.

Både og.

Den har ikke noget med NAT at gøre, men hvis man har en deny policy,
skal der være et eller andet der fortæller systemet at svar på
udgående connections må komme ind. Og ESTABLISHED går netop
på eksisterende connections (uanset om connection'en startede som
ind- eller udgående). Det gælder uanset om der er tale om
NAT eller ej.

RELATED går derimod på anden trafik der "hænger sammen med" en
eksisterende connection, og det kunne fx være ftp-data.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Jacob Jensen (20-02-2006)
Kommentar
Fra : Jacob Jensen


Dato : 20-02-06 19:55

Her er hele mit script til opsætning af iptables. Kan nogle af jer se
hvorfor tingene er som jeg oprindeligt skrev?

modprobe --first-time iptable_nat
modprobe --first-time ip_conntrack
modprobe --first-time ip_conntrack_ftp
modprobe --first-time ip_nat_ftp

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

iptables -t filter --flush
iptables -t nat --flush
iptables -t mangle --flush

iptables -t filter --delete-chain
iptables -t nat --delete-chain
iptables -t mangle --delete-chain

iptables -t filter --policy INPUT DROP
iptables -t filter --policy OUTPUT ACCEPT
iptables -t filter --policy FORWARD DROP
iptables -t nat --policy POSTROUTING ACCEPT
iptables -t nat --policy PREROUTING ACCEPT

external_ip=`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | sed -e
's/.*://'`

iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
iptables -t filter -A INPUT -p ipv6-crypt -j ACCEPT
iptables -t filter -A INPUT -p ipv6-auth -j ACCEPT
iptables -t filter -A INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j
ACCEPT
iptables -t filter -A INPUT -p udp -m udp --dport 631 -j ACCEPT
iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j
ACCEPT
iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j
ACCEPT
iptables -t filter -A INPUT -j REJECT --reject-with icmp-host-prohibited

iptables -t filter -A FORWARD -s 192.168.0.0/24 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -p tcp -d 192.168.0.3 --dport 2500 -m
state --state NEW -j ACCEPT
iptables -t filter -A FORWARD -p tcp -d 192.168.0.2 --dport 2501 -m
state --state NEW -j ACCEPT
iptables -t filter -A FORWARD -p tcp -d 192.168.0.3 --dport 21 -m
state --state NEW -j ACCEPT
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -j REJECT --reject-with icmp-host-prohibited

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d $external_ip --dport 2500 -j
DNAT --to 192.168.0.3:2500
iptables -t nat -A PREROUTING -p tcp -d $external_ip --dport 2501 -j
DNAT --to 192.168.0.2:2501
iptables -t nat -A PREROUTING -p tcp -d $external_ip --dport 21 -j DNAT --to
192.168.0.3:21


Jacob



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste