iptables vsftpd + ssl

Konfiguration av nätverk, hur man använder Ubuntu som server, och håller sin dator säker
durus
Inlägg: 65
Blev medlem: 19 jun 2007, 14:37

iptables vsftpd + ssl

Inlägg av durus »

Hej
Jag kan inte få iptables att släppa igenom trafic för min ftp. Jag kör vsftpd med ssl. Någon som har något tips på vad jag kan testa ? Jag vet att det är något fel med iptables för det fungerar om jag väljer att släppa igenom allt på mitt ip.

vsftpd inställningar

Kod: Markera allt

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
pasv_min_port=50505
pasv_max_port=50510
ftpd_banner=VÃkommen till min ftpserver
chroot_local_user=YES
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd

## SSL - krypterad trafik
ssl_enable=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES
rsa_cert_file=/etc/ssl/vsftpd/vsftpd.pem
iptables

Kod: Markera allt

#!/bin/bash

# No spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $filtre
done
fi 

# No icmp
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#load some modules you may need
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe iptable_filter
modprobe iptable_nat 
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
# Remove all rules and chains
iptables -F
iptables -X

# Create chains
iptables -N FIREWALL
iptables -N TRUSTED
iptables -N ALLOWED_PORT

# first set the default behaviour => accept connections
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

# Send all INPUT packets to the FIREWALL chain
iptables -A INPUT -j FIREWALL
# DROP all forward packets, we don't share internet connection in this example
iptables -A FORWARD -j DROP

# FIREWALL Chain start _____________ 

# Allow ESTABLISHED and RELATED incoming connection
iptables -A FIREWALL -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow loopback traffic
iptables -A FIREWALL -i lo -j ACCEPT
# Send all packages to chains
iptables -A FIREWALL -j TRUSTED
iptables -A FIREWALL -j ALLOWED_PORT
# DROP all other packets
iptables -A FIREWALL -j DROP
# _____

# TRUSTED Chain start _____________ 
# VNC
iptables -A TRUSTED -i eth0 -s 192.168.0.2 -p tcp -m tcp --dport 5901 -j ACCEPT 

# ____

# ALLOWED_PORT chain
# SSH
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
# FTP
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT 
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT 
# _____

# End message
echo " [End iptables rules setting]"
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

Re: iptables vsftpd + ssl

Inlägg av Emil.s »

iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT

Bör vara:
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 20 -j ACCEPT

Blir svårt att tillåta något etablerad trafik om den blir blockerad innan trafiken skapas. ;)
Och så ansluter ju klienten till port 21, alltså är destinationen P21.

Den andra raden kan man iof kanske ha "-m state --state ESTABLISHED,RELATED" med på.

Ang P20 så är jag osäker på vilkensom startar komunikationen, men det är möjligt att det kan vara D-port där med.

Något liknande med sista raden också... Du lär iallafall minst lägga till "RELATED".
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
Daniel Nylander
Inlägg: 1002
Blev medlem: 21 aug 2006, 14:57
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Stockholm
Kontakt:

Re: iptables vsftpd + ssl

Inlägg av Daniel Nylander »

Aktiv FTP använder port 20 som source-port på servern (till >1023 på klienten). Passiv FTP skickar på ursprungliga porten
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

Re: iptables vsftpd + ssl

Inlägg av Mekaniserad Apelsin »

Daniel Nylander skrev:Aktiv FTP använder port 20 som source-port på servern (till >1023 på klienten). Passiv FTP skickar på ursprungliga porten
Bah, passive ftp skickar PASV med en nya klientport och servern svarar med en ny serverport, sedan tar klienten och ansluter från den nya klientporten till den nya serverporten, dvs en ny anslutning utifrån, det är det som raderna
pasv_min_port=50505
pasv_max_port=50510
säger i vsftpd-inställningarna.
More Mekaniserad at http://blippe.se.
durus
Inlägg: 65
Blev medlem: 19 jun 2007, 14:37

Re: iptables vsftpd + ssl

Inlägg av durus »

Jag har lyckats få aktiv anslutning att fungera med inte passiv.
Jag har följt http://ubuntuforums.org/showthread.php?t=159661&page=23
Och har nu ändrat mina inställningar till

Kod: Markera allt

iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A ALLOWED_PORT -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
angånde sport/dport så tyckar jag också att det borde vara dport och inte sport, för jag bryr mig väl inte om vilken port användare använder och bara om vilka portar servern använder. Men jag har ställt en fråga angående dport/sport på det forumet och hoppas på ett svar. Så måste jag ju få passiv anslutning att fungera också.
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

Re: iptables vsftpd + ssl

Inlägg av Mekaniserad Apelsin »

http://www.sns.ias.edu/~jns/wp/2006/01/ ... cking-ftp/

Kort sagt:
iptables [...] --dport 21 -j ACCEPT # För inkommande anslutningar från klienter till din server
iptables [...] --sport 21 -m state --state ESTABLISHED -j ACCEPT # Svar från andra ftp-servrar till din klient
iptables [...] --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT # Aktiv server som öppnar en kanal till din klient
iptables [...] --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT # Eftersom den inte är för related oxå, så är det för en klient som ansluter till din passiva server server. Du behöver inte ha hel 1024-65535, för du har redan satt en mindre range i vsftpd's inställningar.
More Mekaniserad at http://blippe.se.
durus
Inlägg: 65
Blev medlem: 19 jun 2007, 14:37

Re: iptables vsftpd + ssl

Inlägg av durus »

jag fattar inte varför det inte fungerar jag har testat inställningarna på den där sidan också, men passiv anslutning fungerar inte.
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: iptables vsftpd + ssl

Inlägg av andol »

Sitter på ett NAT tycker jag mig se? Talat om för vsftpd vilket publikt ip-nummer du använder?
(ställs in med pasv_address)
durus
Inlägg: 65
Blev medlem: 19 jun 2007, 14:37

Re: iptables vsftpd + ssl

Inlägg av durus »

Jag vet inte vad NAT betyder, men jag kör mina test på mitt lokala nätverk (har inte öppnat portarna i min router än). Men passiv fungerar om jag stänger av iptables. Så jag det borde vara något fel i mina iptables inställningar, eller ?
durus
Inlägg: 65
Blev medlem: 19 jun 2007, 14:37

Re: iptables vsftpd + ssl

Inlägg av durus »

Jag la till pasv_address=192.168.0.3 men det gjorde ingen skillnad.
Kan detta hjälpa ?

Kod: Markera allt

Status:	Ansluter till 192.168.0.3:21...
Status:	Anslutningen etablerad, väntar på välkomstmeddelande...
Svar:	220 VÃkommen till min ftpserver
Kommando:	AUTH TLS
Svar:	234 Proceed with negotiation.
Status:	Initierar TLS...
Kommando:	USER JAGÄNDRADEDETTAFÖRATTINTEVISAANVÄNDARE
Status:	Validerar certifikatet...
Status:	TLS/SSL-anslutning etablerad.
Svar:	331 Please specify the password.
Kommando:	PASS **********
Svar:	230 Login successful.
Kommando:	SYST
Svar:	215 UNIX Type: L8
Kommando:	FEAT
Svar:	211-Features:
Svar:	 AUTH SSL
Svar:	 AUTH TLS
Svar:	 EPRT
Svar:	 EPSV
Svar:	 MDTM
Svar:	 PASV
Svar:	 PBSZ
Svar:	 PROT
Svar:	 REST STREAM
Svar:	 SIZE
Svar:	 TVFS
Svar:	211 End
Kommando:	PBSZ 0
Svar:	200 PBSZ set to 0.
Kommando:	PROT P
Svar:	200 PROT now Private.
Status:	Ansluten
Status:	Hämtar kataloglistning...
Kommando:	PWD
Svar:	257 "/"
Kommando:	TYPE I
Svar:	200 Switching to Binary mode.
Kommando:	PASV
Svar:	227 Entering Passive Mode (192,168,0,3,197,77)
Kommando:	LIST
Detta när jag stänger av brandväggen

Kod: Markera allt

Status:	Ansluter till 192.168.0.3:21...
Status:	Anslutningen etablerad, väntar på välkomstmeddelande...
Svar:	220 VÃkommen till min ftpserver
Kommando:	AUTH TLS
Svar:	234 Proceed with negotiation.
Status:	Initierar TLS...
Kommando:	USER JAGÄNDRADEDETTAFÖRATTINTEVISAANVÄNDARE
Status:	Validerar certifikatet...
Status:	TLS/SSL-anslutning etablerad.
Svar:	331 Please specify the password.
Kommando:	PASS **********
Svar:	230 Login successful.
Kommando:	PBSZ 0
Svar:	200 PBSZ set to 0.
Kommando:	PROT P
Svar:	200 PROT now Private.
Status:	Ansluten
Status:	Hämtar kataloglistning...
Kommando:	PWD
Svar:	257 "/"
Kommando:	TYPE I
Svar:	200 Switching to Binary mode.
Kommando:	PASV
Svar:	227 Entering Passive Mode (192,168,0,3,197,73)
Kommando:	LIST
Svar:	150 Here comes the directory listing.
Svar:	226 Directory send OK.
Status:	Calculating timezone offset of server...
Kommando:	MDTM comands
Svar:	213 20080407180420
Status:	Timezone offsets: Server: 0 seconds. Local: 7200 seconds. Difference: 7200 seconds.
Status:	Kataloglistningen lyckades

andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: iptables vsftpd + ssl

Inlägg av andol »

I korthet handlar NAT om att ha ett antal interna ip-nummer samt ett publikt ip-nummer utåt Internet. Vilket förövrigt är precis det upplägg du verkar ha med din router. Fast så länge du kör testerna internt så ska inte pasv_address spela någon roll. Däremot är det något du kommer behöva titta på sen då FTP:n ska bli tillgänglig utifrån.
durus
Inlägg: 65
Blev medlem: 19 jun 2007, 14:37

Re: iptables vsftpd + ssl

Inlägg av durus »

Ok, men det är just därför som jag vill få igång passiv mode. För jag vet att det behövs när jag ansluter utifrån, jag visste bara inte att det hette NAT.
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: iptables vsftpd + ssl

Inlägg av andol »

durus skrev:Ok, men det är just därför som jag vill få igång passiv mode. För jag vet att det behövs när jag ansluter utifrån, jag visste bara inte att det hette NAT.
Nu tror jag du har missuppfattat passive FTP litegrann :-) Faktum är att det går alldeles utmärkt att köra aktiv FTP om servern är NATad. Passiv FTP handlar om att hjälp ftp-klienter som sitter på ett NAT eller bakom en brandvägg.
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

Re: iptables vsftpd + ssl

Inlägg av Mekaniserad Apelsin »

Eftersom du verkar ha problem med att iptables inte registrerar vad som är RELATED trots ip_conntrack_ftp så kan du ju öppna den extramt lilla portrange du har ställt in i vsftpd.conf att vara öppna för alla anslutningar ändå 50505:50510. Jag skulle oxå vilja påminna om att det finns en anledning till att ubuntu kommer med en brandvägg utan stängda portar av en anledning.
More Mekaniserad at http://blippe.se.
Skriv svar

Återgå till "Nätverk, säkerhet och servrar"