1

Temat: PureFTP z TLS

Witam serdecznie.
Ciąg dalszy przygód z udostępnianiem zasobów HDD na zewnątrz przy pomocy WRT160NL. Skoro nie SFTP, bo tylko jeden user jest możliwy, to pomyślałem o FTPS. Zainstalowałem pure-ftpd-tls, skonfigurowałem do użytku z userami systemowymi i próbuję połączyć się na razie z wewnątrz sieci. Ni chu chu smile Zarówno filezilla, jak i Winscp twierdzą, że:

SSL_connect: error in SSLv2/v3 read server hello A
Can't establish SSL connection

ustawienia: FTPS - SSL/TLS implicit encryption
pureftpd config

config pure-ftpd
    option port             '21'
    option noanonymous      '1'
    option chrooteveryone   '1'
    option maxclientsperip  '10'
    option maxclientsnumber '4'
    option peruserlimits    '3:4'
    option umask            '133:022'
    option authentication   'unix'
    option enabled          '1'

w syslogu, tylko że połączony klient i chwilę później, że rozłączony.
ktoś ma może doświadczenie z tym serwerem ftp? jakaś działająca konfiguracja? zależy mi na połączeniu szyfrowanym. będę zobowiązany.

2 (edytowany przez arteq 2010-10-11 22:22:00)

Odp: PureFTP z TLS

Mi działa ta:

echo "ftp:*:65534:65534:ftp:/mnt/hdd:/bin/false" >> /etc/passwd
config 'pure-ftpd'
        option 'port' '21'
        option 'chrooteveryone' '1'
        option 'maxclientsperip' '10'
        option 'maxclientsnumber' '4'
        option 'peruserlimits' '3:4'
        option 'umask' '133:022'
        option 'authentication' 'unix'
        option 'enabled' '1'
        option 'noanonymous' '0'

anonymous, bez szyfrowania smile

Pozdrawiam, Artur
http://digi-led.pl/blog - Blog

3

Odp: PureFTP z TLS

I to chyba jedyny setup, który działa smile
Przy włączonym szyfrowaniu twierdzi, że:

Unable to set up secure anonymous FTP

Co za życie, łatwiej postawić torrenta i media server, niż FTP smile

4

Odp: PureFTP z TLS

Po prostu w większości przypadków serwery ftp na openwrt są kompilowane bez wsparcia dla ssl, bo sama biblioteka zajmuje od groma miejsca. I zmiast 150k miałbyś 1500k zajętej przestrzeni.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: PureFTP z TLS

Temat może nie jest najnowszy aczkolwiek sam miałem z tym mały problem, który udało mi się rozwiązać dopiero po jakimś czasie. Może ten opis pomoże komuś w przyszłości go zaoszczędzić.
Wszystko co trzeba zrobić, żeby uruchomić na open wrt serwer FTP ze wsparciem TLS.

Instalujemy "pure-ftpd-tls"

# opkg update
# opkg install pure-ftpd-tls

Tworzymy użytkownika 'pure_ftpd_user' należącego do grupy 'pure_ftpd_grp' (obydwie nazwy poniekąd przypadkowe, należy jednak zachować później konsekwencję w ich stosowaniu), następnie ustawiamy hasło. Użytkownik nie musi mieć prawa logowania ani katalogu domowego.

# echo "pure_ftpd_user:*:1000:1000:pure_ftpd_grp:/dev/null:/bin/false" >> /etc/passwd
# passwd pure_ftpd_user

Tworzymy wirtualnego użytkownika dla pure-ftpd o nazwie login i domyślnym katalogu udzial, następnie wpisujemy hasło dla tego użytkownika. Za każdym razem zmiany należy zatwierdzić.

# pure-pw useradd login -u pure_ftpd_user -d /udzial
# pure-pw mkdb

Zmieniamy konfigurację serwera edytując plik '/etc/config/pure-ftpd'. Przykładowa konfiguracja poniżej. Kilka założeń: brak możliwości zalogowania użytkowników anonimowych, brak możliwości wyjścia poza katalog domowy każdego użytkownika oraz możliwość zalogowania zarówno przy użyciu TLS jak i otwartym tekstem. Opis samej opcji TLS z dokumentacji pure-ftpd poniżej pliku konfiguracyjnego.

config pure-ftpd
        option port                 '21'
        option noanonymous          '1'
        option chrooteveryone       '1'
        option maxclientsperip      '5'
        option maxclientsnumber     '5'
        option peruserlimits        '3:4'
        option umask                '133:022'
        option enabled              '1'
        option tls                  '1'
        option demonaise            '1'
        option authentication       'puredb:/etc/pureftpd.pdb'
        option prohibitdotfileswrite    '1'
        option prohibitdotfilesread     '1'
- tls=0", support for SSL/TLS is disabled. This is the default.

- tls=1", clients can connect either the traditional way or through an
SSL/TLS layer. This is probably the setting you need if you want to enable
TLS without having too much angry customers.

- tls=2", cleartext sessions are refused and only SSL/TLS compatible
clients are accepted.

- tls=3", cleartext sessions are refused and only SSL/TLS compatible 
clients are accepted. Clear data connections are also refused, so private 
data connections are enforced. This is an extreme setting.

Przechodzimy do konfiguracji TLS. Generujemy certyfikat serwera. Teoretycznie nie zaleca się przeprowadzać takich operacji na samym routerze ze względu na czas ich przeprowadzania ale w tym konkretnym przypadku (długości klucza) i przykładowym sprzęcie takim jak TP-LINK MR3420 trwa to dosłownie chwilę. Zmieniamy jeszcze prawa dostępu do wygenerowanego certyfikatu.

# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
# chmod 600 /etc/ssl/private/pure-ftpd.pem

Uruchamiamy serwer, ewentualnie dodajemy do skrytpów startowych jeśli wszystko działa jak należy.

# /etc/init.d/pure-ftpd start
# /etc/init.d/pure-ftpd enable

Można dodawać innych użytkowników o różnych katalogach domowych, zmieniać ich uprawnienia dostępu, służą do tego polecenia między innymi 'pure-pw useradd' 'pure-pw usermod' wraz z opcjami jak niżej.

pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]
                -D/-d <home directory> [-c <gecos>]
                [-t <download bandwidth>] [-T <upload bandwidth>]
                [-n <max number of files>] [-N <max Mbytes>]
                [-q <upload ratio>] [-Q <download ratio>]
                [-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>]
                [-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>]
                [-y <max number of concurrent sessions>]
                [-z <hhmm>-<hhmm>] [-m]

pure-pw usermod <login> -f <passwd file> -u <uid> [-g <gid>]
                -D/-d <home directory> -[c <gecos>]
                [-t <download bandwidth>] [-T <upload bandwidth>]
                [-n <max number of files>] [-N <max Mbytes>]
                [-q <upload ratio>] [-Q <download ratio>]
                [-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>]
                [-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>]
                [-y <max number of concurrent sessions>]
                [-z <hhmm>-<hhmm>] [-m]

pure-pw userdel <login> [-f <passwd file>] [-m]

pure-pw passwd  <login> [-f <passwd file>] [-m]

pure-pw show    <login> [-f <passwd file>]

pure-pw mkdb    [<puredb database file> [-f <passwd file>]]
                [-F <puredb file>]

pure-pw list    [-f <passwd file>]

-d <home directory> : chroot user (recommended)
-D <home directory> : don't chroot user
-<option> '' : set this option to unlimited
-m : also update the /etc/pureftpd.pdb database
For a 1:10 ratio, use -q 1 -Q 10
To allow access only between 9 am and 6 pm, use -z 0900-1800

6

Odp: PureFTP z TLS

No pięknie zrobiony tutorial i nadal działa dla BB.
Mam tylko jeden problem. (wycinam zbędne dane)

1:----------
1:Connect to: (2015-04-30 17:54:14)
1:hostname=xxx.dns1.us
1:username=droopy
1:startdir=
1:xxx.dns1.us=88.156.89.XX
1:220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
...
1:AUTH TLS
1:234 AUTH TLS OK.
...
1:USER droopy
1:331 User droopy OK. Password required
1:PASS ***********
1:230 OK. Current directory is /
1:SYST
1:215 UNIX Type: L8
1:FEAT
1:211-Extensions supported:
...
1: AUTH TLS
...
1: PASV
1: EPSV
1: SPSV
1: ESTP
1:211 End.
1:PBSZ 0
1:200 PBSZ=0
1:PROT P
1:200 Data protection level set to "private"
1:OPTS UTF8 ON
1:504 Unknown command
1:Connect ok!
1:PWD
1:257 "/" is your current location
1:Pobierz katalog
1:TYPE A
1:200 TYPE is now ASCII
1:PASV
1:227 Entering Passive Mode (88,156,89,XX,70,79)
1:PORT 192,168,1,26,213,116
1:500 I won't open a connection to 192.168.1.26 (only to 87.105.190.YY)

Wygląda na to że loguję się na serwerze, ale problem pojawia sie kiedy chcę pobrać katalog, klient przechodzi w Passiv i zaczyna się dziwny cyrk

1:227 Entering Passive Mode (88,156,89,XX,70,79)
1:PORT 192,168,1,26,213,116
1:500 I won't open a connection to 192.168.1.26 (only to 87.105.190.YY)

88,156,89,XX - server ftps
192,168,1,26 - to mój lokalny adres clienta z którego próbuję nawiązać połączenie
87.105.190.YY - to wychodzący adres clienta z którego chcę nawiązać połączenie.

Nie bardzo rozumiem o co chodzi. Mogę dostać jakieś sugestie?

7

Odp: PureFTP z TLS

Może https://www.howtoforge.com/community/th … lem.52226/?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: PureFTP z TLS

Czuję się teraz trochę jak idiota, bo szukam odpowiedzi od 2 godzin, nie sądziłem, że to problem serwera bo tylko jeden klient nie chciał sie łączyć. Ale faktycznie to jest rozwiązanie!
Dziękuję Cezary!

Dla potomnych:
W konfiguracji /etc/config/pure-ftpd
Dopisujemy:

option passiveportrange '50000:50400'

Następnie otwieramy powyższe porty na firewallu:

 # uci add firewall rule
    # uci set firewall.@rule[-1]._name=FTPPassive
    # uci set firewall.@rule[-1].src=wan
    # uci set firewall.@rule[-1].target=ACCEPT
    # uci set firewall.@rule[-1].proto=tcp
    # uci set firewall.@rule[-1].dest_port=50000-50400
    # uci commit firewall
    # /etc/init.d/firewall restart

Na koniec restart ftp"

 /etc/init.d/pure-ftpd restart

Na zdrowie!