Как да защитите vsFTPd с SSL/TLS

Много сигурен FTP демон или просто vsFTPd е лек софтуер с голяма възможност за персонализиране. В този урок ще подсигурим вече съществуваща инсталация в система на Debian, използвайки нашия собствен самоподписан SSL/TLS сертификат. Въпреки че е написан за Debian, той трябва да работи в повечето дистрибуции на Linux като Ubuntu и CentOS например.


Инсталиране на vsFTPd

На нов Linux VPS първо трябва да инсталирате vsFTPd. Въпреки че в този урок ще намерите основните стъпки за инсталиране на vsFTPd, препоръчвам ви да прочетете и тези два по-подробни урока: Настройка vsFTPd на Debian/Ubuntu и Инсталиране на vsFTPd на CentOS . Всички стъпки по отношение на инсталацията са обяснени по-внимателно там.

Инсталиране на Debian/Ubuntu:

apt-get install vsftpd

Инсталиране на CentOS:

yum install epel-release
yum install vsftpd

Конфигурация Отворете конфигурационния файл: /etc/vsftpd.conf във вашия любим текстов редактор, в този урок използваме nano.

nano /etc/vsftpd.conf

Поставете следните редове в конфигурацията:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

Завършете, като рестартирате вашия vsFTPd демон:

/etc/init.d/vsftpd restart

Вече трябва да можете да влезете като всеки локален потребител през FTP, сега нека продължим и да защитим този софтуер.


Генерирайте самоподписан сертификат

Самоподписан сертификат обикновено се използва в протокол за споразумение за публичен ключ, който вече ще използвате opensslза генериране на публичен ключ и съответен частен ключ. На първо място трябва да създадем директория, в която да съхраняваме тези два ключови файла, за предпочитане на безопасно място, до което нормалните потребители нямат достъп.

mkdir -p /etc/vsftpd/ssl

Сега към действителното генериране на сертификата ще съхраняваме и двата ключа в един и същ файл ( /etc/vsftpd/ssl/vsftpd.pem ):

openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/vsftpd/ssl/vsftpd.pem -out /etc/vsftpd/ssl/vsftpd.pem

След като изпълните командата, ще ви бъдат зададени няколко въпроса като код на държава, щат, град, име на организация и т.н. използвайте вашата собствена или информация за вашата организация. Сега най-важният ред е общото име, което трябва да съвпада с IP адреса на вашия VPS, алтернативно име на домейн, сочещо към него.

Този сертификат ще бъде валиден за 365 дни (~1 година), той ще използва протокола за споразумение за ключове RSA с дължина на ключа от 4096 бита, а файлът, съдържащ и двата ключа, ще бъде съхранен в новата директория, която току-що създадохме. За повече подробности относно дължината на ключа и връзката й със сигурността вижте това: Препоръки за шифроване II .


Инсталирайте новия сертификат във vsFTPd

За да започнем да използваме нашия нов сертификат и по този начин да осигурим криптиране, трябва да отворим отново конфигурационния файл:

nano /etc/vsftpd.conf

Трябва да добавим пътищата към нашия нов сертификат и ключови файлове. Тъй като те се съхраняват в един и същ файл, той трябва да бъде същият и в конфигурацията.

rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.pem

Трябва да добавим този ред, за да сме сигурни, че SSL ще бъде активиран:

ssl_enable=YES

По желание можем да блокираме използването на SSL на анонимни потребители, тъй като не е необходимо криптиране на публичен FTP сървър.

allow_anon_ssl=NO

След това трябва да посочим кога да използваме SSL/TLS, това ще позволи криптиране както за пренос на данни, така и за идентификационни данни за вход

force_local_data_ssl=YES
force_local_logins_ssl=YES

Можем също да посочим какви версии и протоколи да се използват. TLS обикновено е по-сигурен от SSL и по този начин можем да разрешим TLS и в същото време да блокираме по-стари версии на SSL.

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Изисквайте повторно използване на SSL и използването на високи шифри също ще помогне за подобряване на сигурността. От man страниците на vsFTPd:

require_ssl_reuse If set to yes, all SSL data connections are required to exhibit SSL session reuse (which proves that they know the same master secret as the control channel). Although this is a secure default, it may break many FTP clients, so you may want to disable it. For a discussion of the consequences, see http://scarybeastsecurity.blogspot.com/2009/02/vsftpd-210-released.html (Added in v2.1.0).

ssl_ciphers This option can be used to select which SSL ciphers vsftpd will allow for encrypted SSL connections. See the ciphers man page for further details. Note that restricting ciphers can be a useful security precaution as it prevents malicious remote parties forcing a cipher which they have found problems with.

require_ssl_reuse=YES
ssl_ciphers=HIGH

Завършете, като рестартирате vsftpdдемона

/etc/init.d/vsftpd restart

Потвърдете инсталацията

И това е всичко, вече трябва да можете да се свържете с вашия сървър и да потвърдите, че всичко работи. Ако използвате FileZilla, диалогов прозорец, съдържащ информация за вашата организация (или каквото сте въвели при генериране на сертификата по-рано), трябва да се отвори при свързване. След това изходът трябва да изглежда подобно на това:

Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.

За да научите повече за vsFTPd, вижте страниците с ръководство:

man vsftpd

Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече