diff options
Diffstat (limited to 'drafts')
-rw-r--r-- | drafts/--pubnix.md | 80 | ||||
-rw-r--r-- | drafts/-80211r----openwrt.md | 101 |
2 files changed, 181 insertions, 0 deletions
diff --git a/drafts/--pubnix.md b/drafts/--pubnix.md new file mode 100644 index 0000000..82f972d --- /dev/null +++ b/drafts/--pubnix.md @@ -0,0 +1,80 @@ +Как настроить Pubnix + +# Предисловие + +Pubnix - это машина с общественным доступом, работающая на Unix. Грубо говоря, Pubnix - это как дешёвый хостинг на несколько пользователей. +Но понятие Pubnix шире, так как можно настроить такой без Web-сервера, или наоборот, дать каждому пользователю почтовый ящик, Jabber, собственный Web-сервер, возможность устанавливать свои программы... + +Именно такой мы и собираемся настроить, поэтому приготовьтесь :) + +# Требования +Системные: +- Машина (или даже контейнер, не пробовал) с Debian 12 **без граф. интерфейса** (когда выйдет новая версия, напишите) +- Отсутствие firewall-а или возможность его настроить (здесь нам нужен проброс портов, а для работы 1-1 звонков в XMPP - и вовсе отсутствие NAT), а также рекомендуется вместе с IPv4 иметь IPv6. +Прочие: +- Возможность и желание модерировать контент +- Соблюдение законодательства. Так как доступ по SSH без возможности проксировать заставляет [хакеров](https://www.gnu.org/philosophy/words-to-avoid.html#Hacker) чувствовать себя ограниченными (а если у вас провайдер добавляет ещё и свои блокировки?), можно попробовать сделать регистрацию либо по номеру телефона (правда, это будет дорого, т.к. гайки уже закручивают), либо по Госуслугам (придётся изменять программу для регистрации). Но (пока что) мы будем использовать архитипичную регистрацию по электронной почте. + +# Шаг 1, базовая настройка +Вы установили Debian, и попали в root-оболочку. Все команды будут выполняться пользователем `root`, если не указано иначе. + +Для начала, давайте будем каждого **нового** пользователя добавлять в группу `users`, это понадобится нам в будущем: +```sh +# /etc/adduser.conf +EXTRA_GROUPS="users" +ADD_EXTRA_GROUPS=1 +``` + +# Шаг 2, Web-сервер +Если вы хотите разрешить пользователям размещать свой Web-сайт на вашем Pubnix, вам нужно установить Web-сервер. В данном примере мы будем использовать Caddy. + +Установите Caddy: +```sh +apt install caddy +``` + +И измените настройки: +```caddy +{ + # Скрытия интерфейса администрирования + admin unix//var/lib/caddy/.caddy-admin.sock +} + +https://*.thoth.su { + # Вам придётся выпустить эти сертификаты самостоятельно + tls /etc/caddy/certs/cert.pem /etc/caddy/certs/key.pem + + # Не убирайте этот "host" (в Debian старая версия Caddy), а ещё поменяйте доменное имя + # ↓ ↓ + @host header_regexp host Host ^(?:[a-zA-Z0-9]+\-)?([A-Za-z0-9]+)\.thoth\.su # Для поддоменов + # ЛИБО + @host path host ^\/\~(?:[a-zA-Z0-9]+\-)?([A-Za-z0-9]+) # Для классического подпути + handle @host { + root * /home/{re.host.2}/public_html_nocaddy + #try_files {path}.html {path}.php {path}.htm {path} {path}/ =404 + try_files index.html / =404 + file_server + encode gzip + templates + } + handle_errors { + reverse_proxy unix///home/{re.host.1}/.webserver.sock { + health_status 2xx + health_interval 5s + health_timeout 60s + #handle_errors { + # @502 expression {err.status_code} == 502 + # handle @502 { + # respond * 502 { + # body "This site is either down or does not exist. + #If this site really does exist, please make sure your Caddy is running. Try systemctl --user start caddy. It is also possible you have a config issue, if so, please reach out to us on Matrix. + #" + # } + # } + #} + } + } +} +``` + +Метки: keep-this-tag-format, tags-are-optional, beware-with-underscores-in-markdown, example diff --git a/drafts/-80211r----openwrt.md b/drafts/-80211r----openwrt.md new file mode 100644 index 0000000..d11f338 --- /dev/null +++ b/drafts/-80211r----openwrt.md @@ -0,0 +1,101 @@ +Настройка 802.11r (быстрого перехода/роуминга) в OpenWrt. + +Эта заметка про настройку быстрого Wi-Fi роуминга [1], +то есть 802.11r, в OpenWrt. Здесь также будет описано, +как получать доступ в локальную сеть через Ethernet-порт +нашего ретранслятора. + +# Требования +- Два устройства с OpenWrt с поддержкой Wi-Fi; +- Базовые знания администрирования Unix-систем (SSH, vi...) +- Терпение + +# Настраиваем маршрутизатор +Для начала, подключите его к Интернету, так как нам понадобятся +пакеты `relayd` и `luci-proto-relay` на ретрансляторе. + +Будем считать, что вы настроили свою страну и пароль для Wi-Fi, +однако нам всё равно надо внести следующие правки в файл +`/etc/config/wireless`: +``` +... +config wifi-iface '...' + ... + option ieee80211r '1' + option nasid '123456' // Идентификатор данной точки доступа, уникален + option mobility_domain 'abcd' // Любое шестнадцатеричное число, + // состоящее из четырёх цифр. Если вдруг + // решите сделать роуминг с KeeneticOS, + // то на вашем Keenetic вводите + // это число с основанием 10. + option ft_over_ds '1' // Не проверял без этого параметра + option ft_psk_generate_local '1' +``` +Также не забудьте внести правки в другие `wifi-iface`, если имеются +(и ретранслятор/ы поддерживают одинаковые протоколы). + +# Настраиваем ретранслятор +Для того, чтобы этот ретранслятор раздавал по Wi-Fi подключение к Интернету, +нам сперва надо подключить ретранслятор к главному маршрутизатору в качестве +клиента. Подразумевается, что они соединены проводом (можно подключить его по +радио, это удобнее делать через LuCI). + +Сначала, вносим следующие правки в /etc/config/network: +- Меняем IP-адрес нашего ретранслятора: +``` +... +config interface 'lan' + ... + option ipaddr '192.168.2.1' // Здесь ставим любую подсеть, отличную от + // подсети главного маршрутизатора +``` +- Правим интерфейс `wan`: +``` +config interface 'wan' + option proto 'static' + option ipaddr '192.168.1.20' // IP-адрес в подсети главного + // маршрутизатора + option netmask '255.255.255.0' + option gateway '192.168.1.1' // IP-адрес главного маршрутизатора + list dns '192.168.1.1' // DNS-сервер/ы +``` +- Потом, удаляем все зоны, кроме `lan` в `/etc/config/firewall` и вносим следующие +изменения: +``` +config zone + option name 'lan' + ... + list network 'wan' // Сделать перенаправление пакетов между + // интерфейсами прозрачным +``` +- Правим `/etc/config/dhcp`: +``` +config dhcp 'lan' + option interface 'lan' + option ignore '1' +``` + +Теперь, установите вышеупомянутые пакеты, зайдя в меню +`System -> Software` в LuCI или выполнив следующую команду +через оболочку (не работает в выпусках после 24.10 из-за смены +пакетного менеджера разработчиками): +`opkg install relayd luci-proto-relay` + +После установки пакета, создайте интерфейс `bridge` в `/etc/config/network`: +``` +config interface 'bridge' + option proto 'relay' + option ipaddr '192.168.1.20' // IP-адрес, который вы выбрали ранее + list network 'lan' + list network 'wan' +``` + +Сейчас скопируйте настройки Wi-Fi-сети с главного маршрутизатора на ретранслятор, +убедившись в соответствии с названиями Wi-Fi-интерфейсов обоих устройств. + +--- +[1] Многие производители маршрутизаторов называют это «Mesh», +что на самом деле является обманом. Я не понял, что +такое настоящий mesh: <https://openwrt.org/docs/guide-user/network/wifi/mesh/mesh11sd> + +Метки: openwrt, сети, wi-fi, 802.11 |