Настройка сервера Ubunty 22.04 (FTP, Python)

Поскольку материал рассчитан на новичков, делающих первые шаги в программировании на Python и настройке собственного сервера, то некоторые вещи я буду значительно упрощать.

Шаг 1. Подключение к консоли сервера

Существует 3 основных способа подключиться к консоли сервера:

  • Через сайт вашего облачного хостера;
  • По VNC;
  • По SSH (самый удобный).

Первый способ не требует установки дополнительного софта, его мы рассматривать не будем.

Установка TightVNC Viewer. Подключение по VNC

Существует несколько программ для работы с VNC, лично я пользуюсь TightVNC Viewer. Скачать её можно с официального сайта. На странице установщика выбираем режим установки Custom и выбираем только компонент TightVNC Viewer. Второй компонент нам НЕ нужен т.к он для того, чтобы нашим компом нужно было управлять извне, а оно нам надо?))

Главный минус подключения по VNC в том, что в половине (а то и больше) случаев вы не сможете пользоваться буфером обмена. Это очень неудобно, когда копируешь в консоль заранее заготовленные команды (например из данной инструкции). Обычно все подключаются по SSH.

После подключения к консоли сервера при первом запуске произойдёт установка и загрузка всех компонентов. Терпеливо ждём записи Installation finished. No error reported. Нажимаем Enter. Появляется предложение ввести login. Вводим root, жмём Enter

ввод пароля в ubunty 22.04

Теперь вводим пароль. Может показаться, что сервер завис, но это не так! В целях безопасности, при вводе пароля мы не увидим ровным счётом ничего. Любое наше нажатие кроме клавиши Enter будет сопровождаться ничем. В общем, "в слепую" набираем пароль, нажимаем Enter. Если ввели правильно, то попадём куда надо.

Подключение по SSH из Windoiws 11

В 11-й винде уже установлен клиент SSH, достаточно открыть терминал (WIN + R) и ввести:

ssh root@ip_вашего_сервера

Далее нам предложат ввести пароль. Обратите вниманиче, что в целях безопасности при вводе пароля текст не виден. Это нормально. Просто набираем и жмём Ввод.

Решение ошибки WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

Если в процессе работы вы получили ошибку WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED, то выполните в консоли следующее:

cd ~
rm .ssh/known_hosts

И после повторите подключение ssh root@ip_вашего_сервера

Проверка обновлений на сервере Ubuntu

Начнём с проверки и установки обновлений для того, что уже установлено на сервере при помощи инструмента Ubuntu Advanced Packaging Tool. Для этого последовательно выполняем команды:

sudo apt update
sudo apt -y upgrade

Шаг 2. Настройка FTP на сервере Ubunty 22.04

Установка vsftpd на Ubunty

Теперь установим прогу для работы с FTP. В процессе установки подтвердим действие нажатием на [Y], когда спросит.

sudo apt install vsftpd

На всякий случай проверим, работает ли vsftpd. Для этого набираем команду:

systemctl status vsftpd
status vsftpd

Если написано active - всё хорошо, можно продолжать. Добавим службу vsftpd в автозагрузку.

sudo systemctl enable vsftpd

Настройка конфигурации FTP-сервера Ubunty 22.04

На всякий случай создадим резервную копию файла конфигурации:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.copy

Теперь откроем в редакторе nano командой:

sudo nano /etc/vsftpd.conf 

файл конфига и отредактируем следующим образом:

# настраиваем сервера по IPv4:
listen=YES
listen_ipv6=NO

# запрещаем доступ анонимным пользователям:
anonymous_enable=NO

# разрешаем доступ локальным пользователям:
local_enable=YES

# разрешаем пользователям работать с файлами:
write_enable=YES

# назначаем права новым файлам:
local_umask=022

# включаем сообщения для пользователя при входе: 
dirmessage_enable=YES

# разрешаем использовать локальное время на сервере:
use_localtime=YES

# включаем логирование операций:
xferlog_enable=YES

# включаем передачу данных по 20 порту:
connect_from_port_20=YES

# прописываем директорию для хранения логов:
xferlog_file=/var/log/vsftpd.log

# задаём формат логов:
xferlog_std_format=YES

# даём доступ пользователям только к своим домашним каталогам:
chroot_local_user=YES
allow_writeable_chroot=YES

# включаем поддержку авторизации PAM:
pam_service_name=vsftpd

# разрешаем вход только пользователям из файла userlist: 
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Сохраняем файл при помощи CTRL+S, а затем закрываем редактор нажав CTRL+X. Формально FTP настроен. Остаётся включить SSL/TLS, иначе подключиться по FTP вряд-ли получится.

Как включить защищённое соединение SSL/TLS

Настройка своего SSL-сертификата не входит в рамки данного урока, потому разберём на примере создания нового самоподписанного сертификата. Для этого:

1. Генерируем сертификат (Примечание: т.к. значения после -keyout и -out у нас совпадают, то на выходе мы получим один файл, который будет хранить в себе одновременно и сам сертификат и ключ):

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

2. Открываем конфигурационный файл vsftpd:

sudo nano /etc/vsftpd.conf

И добавляем / изменяем следующие параметры:

# Пропишем пути к файлу сертификата vsftpd.pem: 
rsa_cert_file=/etc/ssl/private/vsftpd.pem 
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Включите SSL: 
# ssl_enable=YES

Сохраняем файл нажатием CTRL+S и выходим в консоль CTRL+X.

Перезапускаем FTP-сервер:

sudo systemctl restart vsftpd

Готово, мы настроили защищенный ФТП-сервер на Убунту. Но подключиться пока нельзя, надо создать пользователей.

Как создать FTP-пользователей в Ubunty 22.04 и дать им доступ

Если у вас есть существующие пользователи

Необходим указать имена этих пользователей в файле /etc/vsftpd.userlist. Для этого открываем в редакторе nano этот файл:

sudo nano /etc/vsftpd.userlist

и вводим имена пользователей по принципу "один пользователь — одна строка". Сохраняем изменения (CTRL+S) и закрываем редактор (CTRL+X).

Готово, существующие пользователи получили доступ.

Если нужно создать новых пользователей

В консоли, командой useradd создаём нового пользователя:

sudo useradd username

*где username - желаемое имя пользователя.

командой passwd прописываем пароль:

sudo passwd username

Добавляем пользователя в список тех, кому разрешен FTP-доступ. Для этого добавляем его имя в /etc/vsftpd.userlist:

echo "user" | sudo tee -a /etc/vsftpd.userlist

Готово, теперь мы можем подключиться к серверу используя FTP, но прежде настром файрволл.

Как настроить файрволл (брандмауэр) в Ubunty?

Разрешаем FTP-подключения к нашему VPS/VDS серверу. Для этого откройте порты 20, 21, 22, 990 и диапазон 40000-50000 для TCP-подключений последовательным выполнением команд:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow OpenSSH
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp

Перезагружаем файрволл:

sudo ufw disable
sudo ufw enable

Проверяем статус UFW:

sudo ufw status

Всё хорошо. Теперь, наконец, можем воспользоваться FileZilla Client.

Подключение при помощи FileZilla

Открываем менеджер сайтов, выбираем в поле "Протокол" - "SFTP - SSH File Transfer Protocol", вводим ip нашего сервера, а также логин и пароль пользователя, которые создавали на предыдущих шагах, жмём "Соединиться".

Подключение к серверу Ubunty 22.04 по SFTP

Если всё сделали правильно, то отобразятся файлы сервера.

Шаг 3. Настройка Python на Ubunty 22.04

По умолчанию в Ubuntu Python уже установлен, проверить его версию можно набрав

python3 -V

Но этого явно мало. Для управления программными пакетами Python нам понадобится инструмент pip. Устанавливается от следующим образом:

sudo apt install -y python3-pip

После этого нам доступы команды типа "pip3 install package_name", *где package_name - имя дополнительного пакета для Python.

На этом всё. Наш сервер для работы с FTP и Python настроен.

Рекомендую также прочитать про настройку Apache2, php, mySQL на сервере. т.к без неё вы не сможете открывать свой сайт в браузере.

Рейтинг: 4.17

2022-10-17 | | 0 комментариев | Полезности | , , ,