mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-18 22:12:40 +00:00
100 lines
5.6 KiB
Text
100 lines
5.6 KiB
Text
# Організація гостьового сервера FTP
|
||
|
||
Постало завдання десь зберігати дампи україномовних сайтів у сирому HTML. Розгортати повноцінний Git хостинг поки не хочу, зокрема й тому що при кожному апдейті там будуть оновлюватись хеші файлів, це не дуже доречно. Утім, хочеться якось "розподілити" дані між користувачами.
|
||
|
||
Для цієї мети, вирішив підняти старий добрий публічний сервер FTP (для локальної мережі) з анонімним доступом до сервера в активному та пасивному режимах. Доступ до файлів тут в режимі read-only, я додаю їх від користувача по окремому потоку SSH.
|
||
|
||
Нижче описані кроки з налаштувань, щоб наступного не лазити по закладкам, може комусь стане в нагоді.
|
||
|
||
``` bash
|
||
apt install vsftpd
|
||
```
|
||
|
||
## Налаштування
|
||
|
||
* В операційній системі Fedora, файл конфігурації знаходиться за адресою /etc/vsftpd/vsftpd.conf
|
||
* В Debian - це /etc/vsftpd.conf
|
||
|
||
``` vsftpd.conf
|
||
# дозволити підключення в анонімному режимі
|
||
anonymous_enable=YES
|
||
|
||
# заборонити логін локальних користувачів
|
||
local_enable=NO
|
||
|
||
# заборонити запис (додаю файли через SSH)
|
||
write_enable=NO
|
||
|
||
# маска, я її лишив здається стандартною
|
||
local_umask=022
|
||
|
||
# дозволити отримання списку директорій (для зручності навігації)
|
||
dirmessage_enable=YES
|
||
|
||
# вимкнув, щоб отримувати журнали в файл (див. vsftpd_log_file)
|
||
xferlog_std_format=NO
|
||
|
||
# вимкнув IPv4, оскільки я користуюсь тільки IPv6 (Yggdrasil/Mycelium)
|
||
listen=NO
|
||
listen_ipv6=YES
|
||
|
||
# в мене не стандартна локація на примонтованому пристрої
|
||
anon_root=/path/to/public
|
||
|
||
# дозволив відображення "прихованих" файлів що починаються з крапки
|
||
force_dot_files=YES
|
||
|
||
# увімкнув пасивний режим явно та вказав діапазон портів для iptables
|
||
# про активний і пасивний режими, конструктивно тут: https://vps.ua/wiki/ukr/ftp-mode/
|
||
pasv_enable=YES
|
||
pasv_min_port=10000
|
||
pasv_max_port=10100
|
||
|
||
# можна також обмежити конективність для певних конфігурацій
|
||
# pasv_address=
|
||
# pasv_addr_resolve=NO
|
||
# connect_from_port_20=YES
|
||
|
||
# файл журналів
|
||
vsftpd_log_file=/var/log/vsftpd.log
|
||
```
|
||
* інші опції я лишив як є, але це актуально лише для моєї версії vsftdp - будьте уважні!
|
||
|
||
## Фаєрвол
|
||
|
||
Тепер важливо відкрити потрібні порти. Так як я не використовую режим SSL, мені потрібно дозволити тільки порти 20, 21 і 10000-10100 (pasv_min_port і pasv_max_port відповідно).
|
||
|
||
На Fedora, я досі не навчився користуватись новомодним firewalld через командний рядок, тому зробив це через GUI Firewall / firewall-config (https://firewalld.org). Тут важливо додати ці правила до групи Permanent щоб вони не злетіли після ребуту.
|
||
|
||
В Debian, для перманентної зміни iptables, я користуюсь ufw:
|
||
|
||
``` bash
|
||
ufw allow 20/tcp
|
||
ufw allow 21/tcp
|
||
ufw allow 10000:10100/tcp
|
||
```
|
||
|
||
### Альтернативні мережі
|
||
|
||
Якщо потрібно дозволити підключення тільки для користувачів Yggdrasil:
|
||
|
||
``` bash
|
||
ufw allow from 0200::/7 port 20 proto tcp
|
||
ufw allow from 0200::/7 port 21 proto tcp
|
||
ufw allow from 0200::/7 port 10000:10100 proto tcp
|
||
```
|
||
* для Mycelium вказуємо 0400::/7
|
||
|
||
### Мульти-мережний режим
|
||
|
||
Я особисто використовую правила без from (дозволяю підключення звідусіль) оскільки в мене крутиться декілька IPv6 мереж і якщо правильно не забіндити сервер на одній з них - можливі помилки підключення в пасивному режимі. Якщо не вдається підключитись через таймаут - дивіться /var/log/ufw.log і спробуйте тимчасово викнути фаєрвол взагалі, щоб перевірити чи справа дійсно в ньому (ufw disable).
|
||
|
||
## Запуск
|
||
|
||
* systemctl restart vsftpd - застосовуємо конфігурацію перезапуском сервера
|
||
* systemctl enable vsftpd - автозапуск сервера при старті системи
|
||
* systemctl status vsftpd - перевіряємо статус, після чого можна підключатися
|
||
|
||
## Посилання
|
||
|
||
=> https://devzone.org.ua/post/orhanizatsiia-hostyovoho-servera-ftp Веб-версія цієї публікації з коментарями на DevZone
|