|
| 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
| |
|
|