Найти тему

Жить и жить

WEB-L(Ака Left в параметрах)
ip – 192.168.104.100;
Шлюз – 192.168.104.254, айпишник RTR-L в направлении WEB-L и SRV ака внутрений;
DNS – 192.168.104.200, айпишник сервера тут и так понятно;
WEB-R(ака Right в параметрах)
Ip – 172.16.104.100;
Шлюз – 172.16.104.254, внутренний айпи RTR-R;
DNS – 4.4.4.100, айпи RTR-L в котором прописан днс;
Тут закончили.
SRV и CLI
Тут нету о чем особо рассказать помима айпишников, так что сразу передем к ним;
SRV
Ip – 192.168.104.200;
Маска подсети – 255.255.255.0;
Шлюз – 192.168.104.254, айпи RTR-L во внутрь;
CLI
Ip – 3.3.3.10;
Маска подсети – 255.255.255.0
Шлюз – 3.3.3.1, айпи ISP в направлении к CLI;
С маршрутизацией мы успешно закончили, теперь время SSH, и firewall-а;
SSH и Firewall.
SSH и firewall у нас делаются на ртр-ках, ну начнем с легкого с SSH;
Вбиваем команду: nano /etc/ssh/sshd_config;
Картинки не будет(
Нам нужно будет найти эту хрень «PermitRootLogin» или что похожее убрать «#» и убрать все перед тем словом которое выше и вместо этого написать «yes», после сохраняем и выходим, и вводим: ssh root@localhost, херачим enter и он что-то спросит пишем «yes» и вводим пароль toor в нашем случае, хз что дальше с ssh у меня траблы;
Дальше на очереди firewall, начинаем с установки: apt install firewalld -y можно и без -y на вкус и цвет, теперь пойдут команды;
Firewall-cmd --get-active-zone или что-то типа того, этой командой мы узнаем зоны соединений ens192, ens224 (Сразу обговорю один момент чтобы потом не объяснять, ens224 внутреннее соединение, а ens192 внешнее, это нам понабиться в дальнейшем)
С помощью команды мы узнали что оба енс находятся в зоне Public, нам нужно удалить их оттуда делается это следящей командой:
Firewall-cmd --zone=public --remove-interface=ens192 и ens224
Теперь нам нужно раскидать их по нужным зонам;
Firewall-cmd --zone=Trusted --add-interface=ens224, trusted для внутреннего соединения;
Firewall-cmd --zone=External --add-interface=ens192, external для внешнего соединения;
Разрешаем сервисы (пусть будет так)
Firewall-cmd --zone=External --add-service=http, https, dns (их нужно вводить каждый отдельно);
Dns
Firewall-cmd --zone=External --add-port=12345/udp;
А теперь самое веселое проброска портов
RTR-L
Firewall-cmd --zone=External --add-forward-port=port=2222:proto=tcp:toport=22:toaddr=192.168.104.100
Firewall-cmd --zone=External --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.104.100
Firewall-cmd --zone=External --add-forward-port=port=53:proto=tcp:toport=53:toaddr=192.168.104.200
RTR-R
Firewall-cmd --zone=External --add-forward-port=port=2244:proto=tcp:toport=22:toaddr=172.16.104.100
Firewall-cmd --zone=External --add-forward-port=port=80:proto=tcp:toport=80:toaddr=172.16.104.100
Готово, чтобы проверить firewall-cmd --zone=External --list-all;
RTR-R
Начало как на RTR-L, но есть несколько отличий
Firewall-cmd --zone=external --add-service=http,https;
Firewall-cmd --zone=external --add-forward-port=port=2244:proto=tcp:toport=22:toaddr=172.16.104.100
port=port=80:proto=tcp:toport=80:toaddr=172.16.104.100
На RTR-R мы не будем включать DNS так как днс сервер находится в левой части топологии


firewall-cmd --runtime-to-permanent


WIREGUARD
RTR-L
Установка:
Apt install wireguard wireguard-tools
Создание директории для ключей:
Mkdir /etc/wireguard/keys
Переходив в созданную директорию:
Сd /etc/wireguard/keys
После того как мы перешли в директорию «Keys» мы создадим ключи для сервера и cli:
Wg genkey | tee srv-sec.key | wg pubkey > srv-pub.key
Wg genkey | tee cli-sec.key | wg pubkey > cli-pub.key
Теперь перенесем созданные нами ключи srv-sec.key и cli-pub.key перенесем в текстовый файл:
Cat srv-sec.key cli-pub.key >> /etc/wireguard/keys/wg0.conf
Теперь мы отредактируем текстовый файл в который мы переместили наши ключи:
Nano /etc/wireguard/wg0.conf
Там будет 2 ключа;
После того как мы перешли в редактор мы прописываем все так:
[Interface]
Address = 10.20.30.1/30
ListenPort = 12345
PrivateKey = 1 ключ
[peer]
Publickey = 2 ключ
allowedIPs = 10.20.30.0/24, 172.16.104.0/24
Сохраняем и выходим

Проверяем как все встало
Сat srv-sec.key
Cat cli-pub.key
Cat /etc/wireguard/wg0.conf
Если все встало как нужно то нам нужно перезагрузить и запустить wg0.conf
Systemctl restart wg.quick@wg0 - перезагрузка
Systemctl enable --now wg-quick@wg0 - запуск

После всего этого нам нужно перейти на RTR-R, если ваш ssh настроен правильно то есть с RTR-L можно подключиться к RTR-R, то можно начинать
RTR-R
Скачиваем WIREGUARD
Создаем директорию
Быстренько возвращаемся на RTR-L и прописываем команды что-бы скопировать 2 ключа на RTR-R
Scp srv-pub.key cli-sec.key 5.5.5.100:/etc/wireguard/keys
После как наши ключи успешно были скопированы на RTR-R, переходим обратно в RTR-R
RTR-R
Переносим ключи в текстовый файл и заходим в него;
Внутри прописываем все таки образом:
[interface]
Address = 10.20.30.2/30
PrivateKey = 1 ключ

[Peer] PublicKey = 2 ключ
Endpoint = 4.4.4.100:12345
AllowedIPs = 10.20.30.0/30, 192.168.104.0/24

PersistentKeppalive = 10 (Примечание. Из-за этого все может не работать как у Владоса, но прописать все же стоит, если не будет работать просто снова зайти в редактор и убрать это)

Теперь проверим как все встало:
Сat srv-sec.key
Cat cli-pub.key
Cat /etc/wireguard/wg0.conf
Если все четко, прекрасно, время перезагрузить и запустить wireguard;
Теперь мы посмотрим работает ли эта шайтан хрень с помощью команды:
Wg show all

DNS
Установка bind9, chrony, и утилиты для bind9
Apt install bind9 dnsutils bind9utils chrony (-y не обязателен но если лень раз нажать на enter то можно прописать)
После установки мы посмотрим статус bind9 данной командой:
Systemctl status named
После проверки статуса bind9, переходим в редактор nano:
Nano /etc/bind/named.conf.options
И там после всех комментариев прописываем:
listen-op { any; }; -- на какие запросы мы будем отвечать, в нашем случае на любые;
recursion no; -- что мы не будем выполнять что-то(я не смог разобрать);
allow-query { any; } -- чьи запросы мы разрешаем, так же любые;
dnssec-validation no; -- проверяет является ли данный днс сервер разрешенным для нас;
listen-on-v6 { no; }; -- мы не будем отвечать на запросы ipv6 так как он не настроен и настраиваться не будет;
Вот так это должно выглядеть:


Это первый из трех файлов которые мы должны заполнить, сейчас мы приступим ко второму:
nano /etc/bind/named.conf.local -- в этом файле какие зоны у нас будут описаны;
Там мы прописываем следующее:
zone «(выбираем название зоны)» {
type master;
allow-transfer { 4.4.4.100; };
file «/opt/dns/(название зоны).zone»;
};
Как это должно будет выглядеть:

Файл мы сделали теперь мы должны создать директорию, где будет лежать файл зон которые мы недавно сделали;
mkdir /opt/dns
После создание директории для файла зон, мы должны скопировать файл в эту же директорию:
cp /etc/bind/db.local /opt/dns/(название зоны).zone
Прекрасно, мы его скопировали, теперь нам нужно разрешить чтение этого файла:
chmod 665 /opt/bind/(название зоны).zone -- 665 права на чтение и исполнение;
Теперь мы должны поменять параметры безопасности;
nano /etc/apparmor.d/usr.sbin.named
мы должны добавить строчку:
/opt/dns/** rw, (запятая обязательно)
Вот так это добро будет выглядеть:

После этого нам нужно перезагрузить данный сервис:
service apparmor restart
Можно проверить удачно ли все перезапустилось:
service apparmor status
Пора перейти к файлу зон и описывать наши зоны на днс:
/opt/dns/(название зоны).zone
Теперь начинаем химичить:
Первое что мы сделаем это заменим все «localhost» на «(название зоны)»
Теперь основное действо
isp A 3.3.3.1
www A 4.4.4.100
www A 5.5.5.100
intermet CHAME isp
Как это будет выглядеть в итоге:

И посмотреть активные зоны:
named-checkconf -z
Время посмотреть хорошо ли все работает:
host (www, internet, isp).(название зоны)
В конечном итоге если все хорошо должно выглядеть так:

Дополнительная проверка работоспособности, мы должны залететь на CLI, и там в командной строке прописать:
nslookup (www, internet, isp).(название зоны)
Нужный нам результат

Теперь когда с самой сложной частью настройки днс разобрались пора перейти к простой части, летим на SRV, там заходим в DNS
Для начало создадим две reverse зоны с network ID( в Reverse Lookup Zones)
Первая -- 192.168.100
Вторая -- 172.16.100
Теперь мы топаем заполнять ist.(название зоны) (находиться в Forward Lookup Zones)
Она заполняется по данной таблице

После мы заходим в настройки(Properties) int.(название зоны), там мы заходим в «Zone Tranafers»

Если все пусто, прекрасно, теперь мы идем в настройки «SRV» и там во вкладку «Forwardes»

Нажимаем «Edit» там все эти записи к чертям удаляем, и прописываем ip ISP то есть 3.3.3.1

Можно на всякий случай перезапустить сервис «SRV», но это не обязательно
Теперь мы направляемся на WEB-L для проверки правильно ли работает эта цыганская чепуха.
host (www, internet, isp).(название зоны)
В конечном итоге мы должны получить такой результат

Помимо перечисленных трех вариантов можно вписать и названия машин которые мы настраивали, только там команда будет немного отличаться:
host srv.int.(название зоны)

Для полной уверенности советую сделать тоже самое на WEB-R