Przejdź do głównej zawartości

Instalacja proFTPd (CentOS).

Instalacja ProFTPd - serwera FTP.

Dystrybucja: CentOS 7

Instalacja ProFTPd.

  • W pierwszej kolejności logujemy się do swojego VPS po SSH np. za pomocą puTTy, na domyślny port 22 i użytkownika root
  • Najpierw musimy dodać repozytorium "epel" do listy repozytoriów. To z niego pobierzemy proFTPd.
yum -y install epel-release
  • Następnie aktualizujemy pakiety systemowe poleceniem:
yum -y update
  • Instalujemy ProFTPd i potrzebne pakiety:
yum install -y proftpd openssl proftpd-utils
  • Aktywujemy ProFTPd w systemie:
systemctl start proftpd.service
systemctl enable proftpd.service
  • Do kontroli zapory (iptables) domyślnie zainstalowany jest 'firewalld' odblokowujemy porty
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
Wynik:
[root@adamhitme ~]# firewall-cmd --add-service=ftp --permanent
success
[root@adamhitme ~]# firewall-cmd --reload
success
[root@adamhitme ~]#

Aby móc połączyć się z serwerem FTP utworzeni muszą zostać jeszcze użytkownicy ze względów bezpieczeństwa dostęp dla root jest zablokowany.

W tym celu musimy utworzyć utworzyć użytkownika w systemie.

Ważne! Jeśli tworzymy użytkownika tylko w celu logowania się po FTP najlepiej byłoby wpierw zdefiniować powłokę /bin/false w systemie, aby nowy użytkownik miał dostęp tylko do serwera FTP, a nie do całego systemu.

W celu zdefiniowania powłoki, wydajemy polecenie:

echo "/bin/false" >> /etc/shells
  • Następnie dodajemy użytkownika np. 'janek' i zakładamy jego katalog domowy
adduser janek --shell /bin/false -d /ftpshare

dwukrotnie podajemy hasło użytkownika, natomiast pola z pytaniami o dane osobowe ignorujemy klawiszem [enter]. Na koniec, w celu potwierdzenia wpisujemy Y + [enter].

  • Ustawiamy prawa dostępu do folderu /ftpshare/
chmod -R 1750 /ftpshare/

 

Dodanie wsparcia dla TLS.

W celu dodania wsparcia dla TLS w ProFTPd musimy edytować jego plik konfiguracyjny /etc/proftpd.conf zanim to zrobimy, warto utworzyć kopię zapasową pliku poleceniem:

cp -pf /etc/proftpd.conf /etc/proftpd.conf.bak
  • Edytujemy plik w edytorze nano:
nano /etc/proftpd.conf
  • Dodajemy linię PassivePorts i przebudowujemy sekcję <IfDefine TLS> jak na przykładzie poniżej:
[...]
DefaultRoot ~ !adm
PassivePorts 6000 6100
[...]

#<IfDefine TLS>
TLSEngine on
TLSRequired on
TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem
TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem
TLSCipherSuite ALL:!ADH:!DES
TLSOptions NoCertRequest
TLSVerifyClient off
TLSRenegotiate ctrl 3600 data 512000 required off timeout 300
TLSLog /var/log/proftpd/tls.log
# <IfModule mod_tls_shmcache.c>
# TLSSessionCache shm:/file=/var/run/proftpd/sesscache
# </IfModule>
#</IfDefine>
[...]
  • Otwieramy pasywne porty w firewalld:
firewall-cmd --add-port=6000-6100/tcp --permanent
firewall-cmd --reload
  • Otwarte porty możemy zweryfikować poleceniem firewall-cmd --list-ports:
[root@adamhitme ~]# firewall-cmd --list-ports
80/tcp 6000-6100/tcp
[root@adamhitme ~]#
  • Teraz tworzymy samo-podpisany certyfikat SSL, w tym celu używamy polecenia:
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Wynik:
[root@adamhitme ~]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Generating a 1024 bit RSA private key
......++++++
.++++++
writing new private key to '/etc/pki/tls/certs/proftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:PL
State or Province Name (full name) []:Trojmiasto
Locality Name (eg, city) [Default City]:Sopot
Organization Name (eg, company) [Default Company Ltd]:MojaFirma
Organizational Unit Name (eg, section) []:Biuro
Common Name (eg, your name or your server's hostname) []:<twoja domena serwera>
Email Address []:mojadres@email.pl
[root@adamhitme ~]#
  • Ustawiamy prawa dostępu do pliku certyfikatu SSL poleceniem:
chmod  0440 /etc/pki/tls/certs/proftpd.pem
  • Na koniec, restartujemy usługę ProFTPd:
systemctl restart proftpd.service

Gotowe. Możemy połączyć się z naszym serwerem FTP stosując tylko szyfrowanie SSL.