mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-18 22:12:40 +00:00
add setup-anonymous-ftp-server.gmi
This commit is contained in:
parent
aadc51c11d
commit
16da80bd45
2 changed files with 101 additions and 0 deletions
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
### Нотатки
|
||||
|
||||
=> setup-anonymous-ftp-server.gmi 2025-09-17 Організація гостьового сервера FTP
|
||||
=> my-alfis-dns-preset-on-yggdrasil-mycelium-router.gmi 2025-09-17 Мій пресет Alfis DNS на роутері Yggdrasil / Mycelium
|
||||
=> install-mycelium-network-router-in-linux.gmi 2025-09-16 Встановлення роутера мережі Mycelium в Linux
|
||||
=> restoration-of-ukrainian-web-archives.gmi 2025-09-14 Реставрація українських Веб-архівів
|
||||
|
|
|
|||
100
public/uk/setup-anonymous-ftp-server.gmi
Normal file
100
public/uk/setup-anonymous-ftp-server.gmi
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
# Організація гостьового сервера 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue