ISP
#BASE
hostnamectl set-hostname isp
exec bash
mcedit /etc/sysconfig/network :
hostname = isp
#NAT
iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
systemctl enable —now iptables
#NTP
timedatectl set-timezone Europe/Moscow
HQ-RTR
#BASE
hostname HQ-RTR
ip domain name au-team.irpo
#ROUTE
ip route 0.0.0.0/0 172.16.1.1
#TUNNEL — GRE-туннель до BR-RTR
interface tunnel.0
ip add 10.10.10.1/30
ip tunnel 172.16.1.2 172.16.2.2 mode gre
exit
#OSPF
router ospf 1
router-id 10.10.10.1
network 10.10.100.0/27 area 0
network 10.10.200.0/28 area 0
network 10.10.30.0/29 area 0
network 10.10.10.0/30 area 0
passive-interface default
no passive-interface tunnel.0
exit
#AUTH — Аутентификация OSPF на туннеле
interface tunnel.0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 P@ssw0rd
exit
#NAT — Трансляция внутренних сетей наружу
ip nat pool NAT 10.10.100.1-10.10.100.30,10.10.200.1-10.10.200.14,10.10.30.1-10.10.30.6
ip nat source dynamic inside-to-outside pool NAT overload interface isp
#NTP
ntp timezone utc+3
#SSH — Локальный пользователь для удалённого доступа
username net_admin
password P@ssw0rd
role admin
exit
write memory
BR-RTR
#BASE
hostname BR-RTR
ip domain name au-team.irpo
#ROUTE
ip route 0.0.0.0/0 172.16.2.1
#TUNNEL — GRE-туннель до HQ-RTR
interface tunnel.0
ip add 10.10.10.2/30
ip tunnel 172.16.2.2 172.16.1.2 mode gre
exit
#OSPF
router ospf 1
router-id 10.10.10.2
network 10.20.20.0/28 area 0
network 10.10.10.0/30 area 0
passive-interface default
no passive-interface tunnel.0
exit
#AUTH — Аутентификация OSPF на туннеле
interface tunnel.0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 P@ssw0rd
exit
#NAT
ip nat pool NAT_BR 10.20.20.1-10.20.20.14
ip nat source dynamic inside-to-outside pool NAT_BR overload interface isp
#NTP
ntp timezone utc+3
#SSH
username netadmin
password P@ssw0rd
role admin
exit
write memory
HQ-SW
#BASE
hostnamectl set-hostname hq-sw.au-team.irpo
exec bash
mcedit /etc/sysconfig/network :
hostname = hq-sw.au-team.irpo
#OVS — Open vSwitch
systemctl enable —now openvswitch
HQ-SRV
#BASE
hostnamectl set-hostname hq-srv.au-team.irpo
exec bash
mcedit /etc/sysconfig/network :
hostname = hq-srv.au-team.irpo
#NET — Статический IP, шлюз, DNS
cd /etc/net/ifaces/ens3
echo «10.10.100.2/27» > ipv4address
echo «default via 10.10.100.1» > ipv4route
echo «nameserver 77.88.8.8» > resolv.conf
systemctl restart network
#SSH
passwd sshuser # задать пароль
usermod -aG wheel sshuser
echo «Authorized access only» > /etc/openssh/banner
mcedit /etc/openssh/sshd_config
Меняем :
Port 2026
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/openssh/banner
echo «Authorized access only» > /etc/openssh/banner
echo «sshuser ALL=(ALL:ALL) NOPASSWD: ALL» >> /etc/sudoers
#NTP
timedatectl set-timezone Europe/Moscow
#DNS
mcedit /var/lib/bind/etc/options.conf
Меняем :
listen-on { 127.0.0.1; 10.10.100.2; };
forwarders { 77.88.8.8; };
allow-query { any; };
mcedit /var/lib/bind/etc/rfc1912.conf
zone «au-team. irpo» {
type master;
file «au-team. irpo»;
};
zone «100.10.10. in-addr .arpa» {
type master;
file «100.10.10. in-addr .arpa»;
};
zone «200.10.10. in-addr.arpa» {
type master;
file «200.10.10. in-addr .arpa»;
};
cp /var/lib/bind/etc/zone/empty /var/lib/bind/etc/zone/au-team.irpo

cp /var/lib/bind/etc/zone/empty /var/lib/bind/etc/zone/100.10.10.in-addr.arpa

cp /var/lib/bind/etc/zone/empty /var/lib/bind/etc/zone/200.10.10.in-addr.arpa

chown -R root:named /etc/bind/zone/*
rndc-confgen > /etc/bind/rndc.key
sed -i ‘6,$d’ /etc/bind/rndc.key
named-checkconf -z
systemctl enable —now bind
systemctl status bind
BR-SRV
#BASE — Имя хоста
hostnamectl set-hostname br-srv.au-team.irpo
mcedit /etc/sysconfig/network :
hostname = br-srv.au-team.irpo
#NET — Статический IP, шлюз, DNS
cd /etc/net/ifaces/ens3
echo «10.20.20.2/28» > ipv4address
echo «default via 10.20.20.1» > ipv4route
echo «nameserver 77.88.8.8» > resolv.conf
systemctl restart network
#SSH — Пользователь с sudo
passwd sshuser
usermod -aG wheel sshuser
mcedit /etc/openssh/sshd_config
Меняем :
Port 2026
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/openssh/banner
echo «Authorized access only» > /etc/openssh/banner
echo «sshuser ALL=(ALL:ALL) NOPASSWD: ALL» >> /etc/sudoers
#NTP
timedatectl set-timezone Europe/Moscow
HQ-CLI
hostnamectl set-hostname hq-cli.au-team.irpo
exec bash
mcedit /etc/sysconfig/network :
hostname = br-cli.au-team.irpo
Поставить получение адреса по DHCP
M2
- SAMBA
Br-srv
samba-tool group add hq
for i in {1..5}; do \
> samba-tool user add hquser$i P@ssw0rd; \
> samba-tool group addmembers hq hquser$i; \
> done
// Проверка:
samba-tool group listmembers hq
Hq-cli
ПКМ по значку с компьютером → Параметры подключений → подключение 1


Метод вручную → добавить → вводим адрес → сохранить
Перезапускаем машину клиента
Центр управления системой → Аутентификация → внизу жмём ‘применить’ → пароль P@ssw0rd
su —
mcedit /etc/sudoers :
Cmnd_Alias SHELLCMD = /bin/cat, /bin/grep, /usr/bin/id
WHEEL_USERS ALL=(ALL:ALL) SHELLCMD
user ALL=(ALL:ALL) NOPASSWD: ALL
Сохраняем
roleadd hq wheel
- Файловое хранилище (RAID) ПРЕДНАСТРОЕН
- Сервер сетевой файловой системы (NFS)
Hq-srv
mkdir /mnt/nfs
chmod 777 /raid/nfs
chmod -R 777 /mnt/nfs
systemctl enable —now nfs-server
Проверка через клиента: открываем файловую систему, ищем папку mnt, nfs и создаём любой файл.
На hq-srv: ls -l /raid/nfs
- Служба сетевого времени (CHRONY)
hq-srv, hq-cli
mcedit /etc/chrony.conf
#pool pool.ntp.org iburst
(↑ закомментировать)
server 172.16.1.1 iburst
Сохраняем
Systemctl restart chronyd
br-srv
mcedit /etc/chrony.conf
#pool pool.ntp.org iburst
(↑ закомментировать)
server 172.16.2.1 iburst
Сохраняем
Systemctl restart chronyd
hq-rtr
(config)# ntp server 172.16.1.1
(config)# write memory
br-rtr
(config)# ntp server 172.16.2.1
(config)# write memory
- ANSIBLE
br-srv
mcedit /etc/ansible/hosts
Приводим файл к следующему виду:
Hq-srv ansible_user=sshuser ansible_password=P@ssw0rd ansible_port=2026
Hq-cli ansible_user=user ansible_password=resu
Hq-rtr ansible_user=net_admin ansible_password=P@ssw0rd ansible_connection=network_cli ansible_network_os=ios
Br-rtr ansible_user=net_admin ansible_password=P@ssw0rd ansible_connection=network_cli ansible_network_os=ios
[all:vars]
ansible_python_interpreter=/usr/bin/python3

// Проверка, весь вывод должен быть зелёным:
ansible -m ping all
- Веб приложение в Docker (на BR—SRV)
Br-srv
cd /opt/testapp
systemctl enable —now docker
docker compose up -d
заходим на сайт по адресу 10.20.20.2:8080
- Веб приложение на HQ—SRV (NGINX+APACHE)
Hq-srv
apt-get install -y lamp-server
mount /home/user/Additional.iso /mnt/
cp /mnt/web/index.php /var/www/html
cp /mnt/web/logo.png /var/www/html
mcedit /var/www/html/index.php
Правим строки сверху:
$username = “webc”;
$password = “P@ssw0rd”;
$dbname = “webdb”’
Сохраняем
mariadb
> create user ‘webc’@’localhost’ identified by ‘P@ssw0rd’;
> grant all privileges on webdb.* to ‘webc’@’localhost’ with grant option;
> exit;
(↑↑↑ В КОНЦЕ КАЖДОЙ СТРОКИ НУЖНО СТАВИТЬ ТОЧКУ С ЗАПЯТОЙ)
systemctl enable —now mariadb
systemctl enable –now httpd2
заходим на сайт по адресу 10.10.100.2
- Статическая трансляция адресов ПРЕДНАСТРОЕНА
Заходим на сайты по адресам:
172.16.1.1
172.16.2.2:8080
- Обратный прокси сервер NGINX (на ISP) ПРЕДНАСТРОЕН
- Web—based аутентификация (на ISP)
ISP
apt-get install -y apache2
htpasswd -c /etc/nginx/.htpasswd WEB
пароль — P@ssw0rd
systemctl enable —now nginx
Заходим на сайт по ссылке (HTTP БЕЗ S)
логин WEB
пароль P@ssw0rd
- Установить ядндекс на CLI
apt-get update
apt-get install Yandex-browser-stable