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żytkownikaroot
- 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
[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
[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.