Сейчас я занимаюсь построением схемы и общей архитектуры для локальной сети и базовой инфраструктуры. В первую очередь, проект ориентирован на обучение, но с прицелом на реальные практические кейсы — чтобы не просто “для галочки”, а с возможностью разворачивать и обслуживать это вживую. Базовые элементы вроде настройки маршрутизатора, NAT, DHCP, DNS уже учтены, но мне бы очень хотелось дополнить всю эту структуру более интересными и полезными компонентами, которые часто встречаются в реальных инфраструктурах.
В частности, я хотел бы включить в схему:
• Мониторинг с помощью Zabbix (или аналогов вроде Prometheus + Grafana)
• Систему логирования (rsyslog, Graylog, ELK)
• Централизованную авторизацию (LDAP, FreeIPA, Kerberos, AD)
• Прокси-серверы (Squid, nginx в роли обратного прокси)
• Файловые хранилища (Samba, NFS, FTP)
• Почтовый сервер (Postfix, Dovecot, или просто как релей)
• Базовые сервисы безопасности: Fail2ban, firewall’ы, IDS/IPS
• Контроль трафика (например, с использованием tc, NetFlow, ntopng)
• Плановое резервное копирование (Borg, rsync, Bacula и пр.)
• Контейнеризация (Docker, Podman) или виртуализация (KVM, Proxmox)
• Возможно, веб-интерфейсы администрирования (Cockpit, Webmin)
• Вспомогательные панели (для самих юзеров или администратора)
Но здесь у меня пока что много “хочу”, но не до конца понятно, как всё это грамотно увязать, расставить приоритеты, на что обратить внимание при настройке, а что, наоборот, лучше отложить или заменить. Особенно интересует опыт и практические советы: кто что внедрял, как это потом жилось, какие компоненты лучше работают вместе, какие наоборот — доставляют боль.
Очень надеюсь на помощь если вы можете посоветовать, что ещё полезного и интересного можно включить в схему — буду признателен. А если у кого-то найдётся время и желание помочь с настройкой каких-либо из этих компонентов или просто подсказать рабочие конфигурации — будет вообще супер.
Буду очень благодарен за любые отклики, советы, схемы, конфиги, опыт внедрения — всё, что может помочь сделать этот проект полезнее и живее.
Ниже я представил мою настройку которая уже есть (могут быть ошибки)
Router main
Включение forward (чтобы проходили пакеты и работала сеть)
/etc/net/sysctl.conf
Net.ipv4.ip_forward = 1
Настройка имени
Hostnamectl set-hostname router; exec bash
Настройка времени
Timedatectl set-timezone Europe/Samara (назначение времени)
Timedatectl (проверка времени)
Настройка ipv4 Адресации
Ens 36
Mkdir /etc/net/ifaces/ens36/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens36/ (копируем с одного интерфейса на другой, Там я поменял с dhcp на статику)
/etc/net/ifaces/ens36/ipv4address
172.16.4.1/28 (ip-адрес в сторону Router1)
Ens37
Mkdir /etc/net/ifaces/ens37/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens37/ (копируем с одного интерфейса на другой)
/etc/net/ifaces/ens37/ipv4address
172.16.5.1/28 (ip-адрес в сторону Router2)
Systemctl restart network
АВТОПЕРЕЗАПУСК ip адресов (чтобы не слетали при перезапуске)
export EDITOR=mcedit
Crontab -e
@reboot /bin/systemctl restart network
ПУСТАЯ СТРОКА В КОНЦЕ (ОБЯЗАТЕЛЬНО!)
Настройка IPTABLES
iptables -t nat -A POSTROUTING -o ens33 -s 172.16.4.0/28 -j MASQUERADE (правило iptables)
iptables -t nat -A POSTROUTING -o ens33 -s 172.16.5.0/28 -j MASQUERADE
iptables -t nat -L -v -n (проверка правил)
iptables-save > /root/rules (сохранение)
export EDITOR=mcedit
crontab -e
@reboot /sbin/iptables-restore < /root/rules
ПУСТАЯ СТРОКА ОБЯЗАТЕЛЬНО.
Nano /etc/resolv.conf (добавление nameserver, для iptables)
Nameserver 8.8.8.8
Reboot
Router1
Включение forward (чтобы проходили пакеты и работала сеть)
/etc/net/sysctl.conf
Net.ipv4.ip_forward = 1
Настройка имени
Hostnamectl set-hostname router1; exec bash
Настройка времени
Timedatectl set-timezone Europe/Samara (назначение времени)
Timedatectl (проверка времени)
Настройка пользователей
Useradd net_admin (создание пользователя)
passwd net_admin (задать пароль пользователю)
P@$$w0rd
Usermod -aG wheel net_admin (добавление пользователя в группу wheel, чтобы мог писать sudo без пароля)
/etc/sudoers
Раскомментировать WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: ALL (чтобы мог писать sudo без
пароля)
Настройка ipv4 Адресации
Ens33
/etc/net/ifaces/ens33/ipv4address
172.16.4.2/28 (ipv4address)
/etc/net/ifaces/ens33/ipv4route (шлюз в сторону router main)
Default via 172.16.4.1 (ipv4route)
options (меняем с dhcp на static)
Ens36
Mkdir /etc/net/ifaces/ens36/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens36/ (копируем с одного интерфейса на другой)
/etc/net/ifaces/ens36/options (меняю на static)
Ens36.100 (в сторону Server1)
Mkdir /etc/net/ifaces/ens36.100/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens36.100/ (копируем с одного интерфейса на другой)
/etc/net/ifaces/ens36.100/options (задаём настройки vlan)
TYPE=vlan
BOOTPROTO= static (или dhcp)
VID=100 (id VLAN такое же как и директория)
HOST=ens36 (это интерфейс который хостит VLAN)
DISABLE=no (чтобы не выключалось после перезагрузки)
/etc/net/ifaces/ens36.100/ipv4address
192.168.1.1/26 (ipv4address)
Ens36.200 (в сторону client1)
Mkdir /etc/net/ifaces/ens36.200/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens36.200/ (копируем с одного интерфейса на другой)
/etc/net/ifaces/ens36.200/options (задаём настройки vlan)
TYPE=vlan
BOOTPROTO= static
VID=200
HOST=ens36
DISABLE=no
/etc/net/ifaces/ens36.200/ipv4address
192.168.2.1/28 (ipv4address)
Ens36.999 (запасной VLAN)
Mkdir /etc/net/ifaces/ens36.999/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens36.999/ (копируем с одного интерфейса на другой)
/etc/net/ifaces/ens36.999/options (задаём настройки vlan)
TYPE=vlan
BOOTPROTO= static
VID=999
HOST=ens36
DISABLE=no
/etc/net/ifaces/ens36.999/ipv4address
192.168.9.1/29 (ipv4address)
Systemctl restart network
АВТОПЕРЕЗАПУСК ip адресов (чтобы не слетали при перезапуске)
export EDITOR=mcedit
Crontab -e
@reboot /bin/systemctl restart network
ПУСТАЯ СТРОКА В КОНЦЕ (ОБЯЗАТЕЛЬНО!)
IPTABLES
iptables -t nat -A POSTROUTING -o ens33 -s 192.168.1.0/26 -j MASQUERADE (правило iptables)
iptables -t nat -A POSTROUTING -o ens33 -s 172.168.2.0/28 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ens33 -s 192.168.9.0/29 -j MASQUERADE
iptables -t nat -L -v -n (проверка правил)
iptables-save > /root/rules (сохранение)
export EDITOR=mcedit
crontab -e
@reboot /sbin/iptables-restore < /root/rules
ПУСТАЯ СТРОКА ОБЯЗАТЕЛЬНО.
GRE 1
Mkdir /etc/net/ifaces/gre1/ (создание)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/gre1/ (делаем копию файла options)
/etc/net/ifaces/gre1/options (настройка gre конфигурации)
TYPE=iptun (создание туннельного интерфейса)
TUNTYPE=gre (тип туннеля)
TUNLOCAL=172.16.4.2 (откуда начинается)
TUNREMOTE=172.16.5.2 (где заканчивается)
/etc/net/ifaces/gre1/ipv4address
10.0.0.1/30
Apt-get install frr -y
/etc/frr/daemons
Ospfd=yes (включение демона)
Systemctl restart frr
Vtysh
Conf t
Router ospf
Network 10.10.10.0/30 area 0 (gre tunnel)
Network 192.168.1.0/26 area 0
Network 192.168.2.0/28 area 0
Network 192.168.9.0/29 area 0
Ex
ex
Do wr mem (сохранение)
Systemctl restart frr
Systemctl restart network
Apt-get install dnsmasq -y (настройка dhcp)
Systemctl enable --now dnsmasq (чтобы после ребута не выключилась)
/etc/dnsmasq.conf
No-resolv
Dhcp-range=192.168.2.2,192.168.2.14,9999h (с какого по какой ip адрес будет раздавать)
Dhcp-option=3,192.168.2.1 (шлюз)
Dhcp-option=6,192.168.1.2 (DNS)
Interface=ens36.200 (интерфейс)
Systemctl restart dnsmasq
Systemctl status dnsmasq
Systemctl restart network
router2
Включение Forward (чтобы проходили пакеты и работала сеть)
/etc/net/sysctl.conf
Net.ipv4.ip_forward = 1
Настройка имени
Hostnamectl set-hostname router2; exec bash
Настройка времени
Timedatectl set-timezone Europe/Samara (назначение времени)
Timedatectl (проверка времени)
Настройка пользователей
Useradd net_admin (создание пользователя)
passwd net_admin (задать пароль пользователю)
P@$$w0rd
Usermod -aG wheel net_admin (добавление пользователя в группу wheel, чтобы мог писать sudo без пароля)
/etc/sudoers
Раскомментировать WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: ALL
Настройка ipv4 адресации
Ens33
/etc/net/ifaces/ens33/ipv4address
172.16.5.2/28 (ipv4address)
/etc/net/ifaces/ens33/ipv4route (шлюз в сторону router main)
Default via 172.16.5.1 (ipv4route)
Ens36
Mkdir /etc/net/ifaces/ens36/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens36/ (делаем копию файла options)
/etc/net/ifaces/ens33/ipv4address
192.168.4.1/27 (ipv4address в сторону server2)
АВТОПЕРЕЗАПУСК ip адресов (чтобы не слетали при перезапуске)
export EDITOR=mcedit
Crontab -e
@reboot /bin/systemctl restart network
ПУСТАЯ СТРОКА В КОНЦЕ (ОБЯЗАТЕЛЬНО!)
Systemctl restart network
iptables -t nat -A POSTROUTING -o ens33 -s 192.168.4.0/27 -j MASQUERADE (правило в сторону Server2)
iptables -t nat -L -v -n (проверка правил)
iptables-save > /root/rules (сохранение)
export EDITOR=mcedit
crontab -e
@reboot /sbin/iptables-restore < /root/rules
ПУСТАЯ СТРОКА ОБЯЗАТЕЛЬНО.
GRE 1
Mkdir /etc/net/ifaces/gre1/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/gre1/ (делаем копию файла options)
/etc/net/ifaces/gre1/options (настройка gre)
TYPE=iptun (создание туннельного интерфейса)
TUNTYPE=gre (тип туннеля)
TUNLOCAL=172.16.5.2 (откуда начинается)
TUNREMOTE=172.16.4.2 (где заканчивается)
/etc/net/ifaces/gre1/ipv4address
10.0.0.1/30
Apt-get install frr -y
/etc/frr/deamons
Ospfd=yes (включение демона)
Systemctl restart frr
Vtysh
Conf t
Router ospf
Network 10.10.10.0/30 area 0 (gre tunnel)
Network 192.168.4.0/27 area 0
Ex
ex
Do wr mem (сохранение)
Systemctl restart frr
Systemctl restart network
Server2
Включение forward (чтобы проходили пакеты и работала сеть)
/etc/net/sysctl.conf
Net.ipv4.ip_forward = 1
Настройка имени
Hostnamectl set-hostname server; exec bash
Настройка времени
Timedatectl set-timezone Europe/Samara (назначение времени)
Timedatectl (проверка времени)
Настройка пользователей
useradd sshuser -u 1010 (создание пользователя и смена идентификатора )
passwd sshuser
P@ssw0rd (пароль без $$)
/etc/sudoers
Раскомментировать WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: ALL
Usermod -aG wheel sshuser
Настройка ipv4 адресации
Ens36
/etc/net/ifaces/ens33/ipv4address
192.168.4.2/27 (ipv4address)
Default via 192.168.4.1 (ipv4route)
АВТОПЕРЕЗАПУСК ip адресов (чтобы не слетали при перезапуске)
export EDITOR=mcedit
Crontab -e
@reboot /bin/systemctl restart network
ПУСТАЯ СТРОКА В КОНЦЕ (ОБЯЗАТЕЛЬНО!)
Systemctl restart network
apt-get install openssh-common -y (установка ssh)
/etc/openssh/sshd_config
Port 2024 (название порта)
MaxAuthTries 2 (Макс. кол-во попыток входа)
AllowUsers sshuser (разрешение на вход только sshuser)
PermitRootLogin no (запрещает root вход по ssh)
Systemctl enable --now sshd (включение после перезагрузки)
Systemctl restart sshd
Подключаемся с клиента через команду (ssh sshuser@ipсервера -p 2024)
Server1
Включение forward (чтобы проходили пакеты и работала сеть)
/etc/net/sysctl.conf
Net.ipv4.ip_forward = 1
Настройка имени
Hostnamectl set-hostname server; exec bash
Настройка времени
Timedatectl set-timezone Europe/Samara (назначение времени)
Timedatectl (проверка времени)
Настройка пользователей
useradd sshuser -u 1010 (создание пользователя и смена идентификатора )
passwd sshuser
P@ssw0rd (пароль без $$)
/etc/sudoers
Раскомментировать WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: ALL
Usermod -aG wheel sshuser
Настройка ipv4 адресации
Ens 33
/etc/net/ifaces/ens33/options (меняем на статику)
Ens33.100
Mkdir /etc/net/ifaces/ens33.100/ (создание директории)
Cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens33.100/ (делаем копию файла options)
/etc/net/ifaces/ens33.100/options (настройка vlan)
TYPE=vlan
BOOTPROTO= static
VID=100
HOST=ens33
DISABLE=no
192.168.1.2/26 (ipv4address)
Default via 192.168.1.1 (ipv4route) (шлюз в сторону Router1)
АВТОПЕРЕЗАПУСК ip адресов (чтобы не слетали при перезапуске)
export EDITOR=mcedit
Crontab -e
@reboot /bin/systemctl restart network
ПУСТАЯ СТРОКА В КОНЦЕ (ОБЯЗАТЕЛЬНО!)
Systemctl restart network
apt-get install openssh-common -y (установка ssh)
/etc/openssh/sshd_config
Port 2024 (название порта)
MaxAuthTries 2 (Макс. кол-во попыток входа)
AllowUsers sshuser (разрешение на вход только sshuser)
PermitRootLogin no (запрещает root вход по ssh)
Systemctl enable --now sshd (включение после перезагрузки)
Systemctl restart sshd
Подключаемся с клиента через команду (ssh sshuser@ipсервера -p 2024)
Client1
Включение forward (чтобы проходили пакеты и работала сеть)
/etc/net/sysctl.conf
Net.ipv4.ip_forward = 1
Настройка имени
Hostnamectl set-hostname client; exec bash
Настройка времени
Timedatectl set-timezone Europe/Samara (назначение времени)
Timedatectl (проверка времени)
Настройка ipv4 адресации Ens 33
Nano /etc/net/ifaces/ens33/options (поменять конфиг на static)
Ens33.200
/etc/net/ifaces/ens36.999/options
TYPE=vlan
BOOTPROTO= dhcp
VID=200
HOST=ens33
DISABLED=no
АВТОПЕРЕЗАПУСК ip адресов (чтобы не слетали при перезапуске)
export EDITOR=mcedit
Crontab -e
@reboot /bin/systemctl restart network
ПУСТАЯ СТРОКА В КОНЦЕ (ОБЯЗАТЕЛЬНО!)
Systemctl restart network