April 26

jjjjj

ISP

auto ens33

iface ens33 inet dhcp

auto ens36

iface ens36 inet static

address 172.16.1.1/28

auto ens37

iface ens37 inet static

address 172.16.2.1/28

HQ-RTR

auto ens33

iface ens33 inet static

address 172.16.1.2/28

gateway 172.16.1.1

auto ens36

iface ens36 inet manual

auto ens36.100

iface ens36.100 inet static

address 192.168.10.1/27

auto ens36.200

iface ens36.200 inet static

address 192.168.10.33/28

BR-RTR

auto ens33

iface ens33 inet static

address 172.16.2.2/28

gateway 172.16.2.1

auto ens36

iface ens36 inet static

address 192.168.11.1/28

BR-SRV

auto ens33

iface ens33 inet static

address 192.168.11.2/28

gateway 192.168.11.1

HQ-SRV

auto ens33

iface ens33 inet manual

auto ens33.100

iface ens33.100 inet static

address 192.168.10.2/27

gateway 192.168.10.1

dns-nameserver 192.168.10.2 8.8.8.8

HQ-CLI

auto ens33

iface ens33 inet manual

auto ens33.200

iface ens33.200 inet dhcp

gateway 192.168.10.33

dns-nameservers 8.8.8.8

vlan-raw-device ens33

Настройка PAT (ISP, HQ-RTR, BR-RTR)

файл nano /etc/sysctl.conf , находим строку #net.ipv4.ip_forward=1 и раскомментируем её.

apt install -y iptables-persistent

iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE

iptables-save > /etc/iptables/rules.v4

sysctl -p

В устройствах, которые будут получать интернет от этого устройства, надо зайти в файл nano /etc/resolv.conf и написать там nameserver 8.8.8.8

Создание локальных учетных записей на серверах (HQ-SRV, BR-SRV) и роутерах (HQ-RTR, BR-RTR) (1.3)

HQ-SRV, BR-SRV:

useradd sshuser -m -p $(openssl passwd -6 "P@ssw0rd") -s /bin/bash -u 2026 -G sudo

nano /etc/sudoers

sshuser ALL=(ALL) NOPASSWD:ALL

HQ-RTR, BR-RTR:

useradd -m net_admin && echo "net_admin:P@ssword" | chpasswd

nano /etc/sudoers net_admin ALL=(ALL) NOPASSWD:ALL

VLAN

на hq-rtr

auto ens36.999

iface ens36.999 inet static

address 192.168.10.49/29

nano /etc/modules

написать 8021q

отдельно

modprobe 8021q

Настройка SSHна HQ-SRVи BR-SRV

apt install openssh-server

Заходим в файл nano /etc/ssh/sshd_config

port 2026

permitrootlogin no

AllowUsers sshuser

MaxAuthTries 2

Banner /etc/issue.net

Заходим в файл nano /etc/issue.net

Authorized access only

Проверка ssh sshuser@(ip/имя) -p 2026

Туннель GRE на HQ-RTR и BR-RTR

Заходим в файл /etc/modules и пишем ip_gre

modprobe ip_gre

Далее заходим в файл /etc/network/interfaces и пишем:

Для HR-RTR:

auto gre30

iface gre30 inet tunnel

address 10.10.10.1

netmask 255.255.255.252

mode gre

local 172.16.1.2

endpoint 172.16.2.2

ttl 225

Для BR-RTR:

auto gre30

iface gre30 inet tunnel

address 10.10.10.2

netmask 255.255.255.252

mode gre

local 172.16.2.2

endpoint 172.16.1.2

ttl 225

Потом перезагружаем сеть командой: systemctl restart networking

И изменяем брандмауэр командой (необязательно как будто):

/usr/sbin/iptables -A INPUT -p gre -j ACCEPT

Проверка После того как прописала, введи на HQ-RTR: ip a show gre30

Настройка динамической маршрутизации на HQ-RTR и BR-RTR

apt install frr

/etc/frr/daemons там ospfd yes

Потом пишем: systemctl enable frr и systemctl restart frr

Заходим в оболочку командой vtysh и пишем:

Для HQ-RTR:

conf t

ip forwarding

router ospf

network 192.168.10.0/27 area 0

network 192.168.10.0/28 area 0

network 10.10.10.0/30 area 0

int gre30

no ip ospf passive

ip ospf authentication message-digest

ip ospf message-digest-key 1 md5 1 (это пароль)

exit

exit

wr mem

exit

Для BR-RTR:

conf t

ip forwarding

router ospf

network 192.168.11.0/28 area 0

network 10.10.10.0/30 area 0

int gre30

no ip ospf passive

ip ospf authentication message-digest

ip ospf message-digest-key 1 md5 1 (это пароль)

exit

exit

wr

exit

DHCP на HQ-RTR

apt install isc-dhcp-server

nano /etc/default/isc-dhcp-server

строка INTERFACESv4="" и в кавычках пишем название интерфейса, который будет раздавать ip-адреса. Ens36.200

nano /etc/dhcp/dhcpd.conf

subnet 192.168.10.32 netmask 255.255.255.240 {

range 192.168.10.34 192.168.10.46;

option domain-name-servers 192.168.10.2, 8.8.8.8;

option domain-name "au-team.irpo";

option routers 192.168.10.33;

option broadcast-address 192.168.10.47;

default-lease-time 600;

max-lease-time 7200;

}

Далее запускаем dhcp командой:

systemctl enable isc-dhcp-server

systemctl restart isc-dhcp-server

DNS на HQ-SRV

apt install bind9

cp /etc/bind/db.empty /var/lib/bind/db.au-team.irpo

cp /etc/bind/db.127 /var/lib/bind/db.192.168.10

В файле nano /etc/bind/named.conf.options

Options {

Directory “/var/cache/bind” ;

Forwarders {

1.1.1.1;

8.8.8.8;

};

Allow-recursion { any; };

Allow-query { any; };

Listen-on {

127.0.0.1;

192.168.10.2;

};

};

nano /etc/bind/named.conf.local

zone "au-team.irpo" {

type master;

file "/var/lib/bind/db.au-team.irpo";

};

zone "10.168.192.in-addr.arpa" {

type master;

file "/var/lib/bind/db.192.168.10";

};

В файле nano /var/lib/bind/db.au-team.irpo

В файле поменять на hq-srv.au-team.irpo. рядом должно быть root.au-team.irpo.

Снизу все должно выглядеть вот так:

;

@ IN NS hq-srv.au-team.irpo.

hq-srv IN A 192.168.10.2

br-rtr IN A 192.168.11.1

br-srv IN A 192.168.11.2

hq-cli IN A 192.168.10.34

hq-rtr IN A 192.168.10.1

docker IN A 172.16.1.2

web IN A 172.16.2.2

; SRV records for Active Directory Domain Controller

_ldap._tcp IN SRV 0 0 389 hq-srv.au-team.irpo.

_kerberos._tcp IN SRV 0 0 88 hq-srv.au-team.irpo.

_kerberos._udp IN SRV 0 0 88 hq-srv.au-team.irpo.

_kpasswd._tcp IN SRV 0 0 464 hq-srv.au-team.irpo.

_kpasswd._udp IN SRV 0 0 464 hq-srv.au-team.irpo.

_ldap._tcp.dc._msdcs IN SRV 0 0 389 hq-srv.au-team.irpo.

В файле nano /var/lib/bind/db.192.168.10

Меняем на hq-srv.au-team.irpo. рядом должно быть root.au-team.irpo.

Ниже должно быть

;

@ IN NS hq-srv.au-team.irpo.

1 IN PTR hq-rtr.au-team.irpo.

2 IN PTR hq-srv.au-team.irpo.

34 IN PTR hq-cli.au-team.irpo.

named-checkzone au-team.irpo /var/lib/bind/db.au-team.irpo

показывает точные ошибки: named-checkconf -z

на всех машинах кроме isp

nano /etc/resolv.conf

domain au-team.irpo

search au-team.irpo

nameserver 192.168.10.2

nameserver 8.8.8.8

чтобы не менялся файл резолва

chattr +i /etc/resolv.conf

чтобы отменить

chattr -i /etc/resolv.conf

Потом всего этого systemctl restart bind9

Настройка часовой зоны

Нужно прописать команду

timedatectl set-timezone Europe/Moscow

date - проверка

2 Модуль

Задание 2 RAIDна HQ-SRV

Добавить 2 жестких диска по 1 гб

apt install mdadm -y

проверка названия дисков lsblk типо просто как называется

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

Если спросит "Continue creating array?", пиши y и жми Enter.

mkfs.ext4 /dev/md0
mkdir /data
mount /dev/md0 /data
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u

строку в конец файла /etc/fstab

/dev/md0    /data    ext4    defaults    0    2

проверка cat /proc/mdstat

Должно быть написано: md0 : active raid1 и две буквы [UU] (значит, оба диска работают).

Задание 3 NFS-сервер на HQ-SRV и автоматическое монтирование на HQ-CLI

apt install nfs-kernel-server -y
mkdir -p /srv/nfs/share
chown nobody:nogroup /srv/nfs/share
chmod 777 /srv/nfs/share

Файл /etc/exports

/srv/nfs/share 192.168.10.0/24(rw,sync,no_subtree_check)
exportfs -a
systemctl restart nfs-kernel-server

На HQ-CLI

apt update && apt install nfs-common -y
mkdir -p /mnt/nfs_share

Файл /etc/fstab

Добавь эту строку в самый конец файла:

192.168.10.2:/srv/nfs/share  /mnt/nfs_share  nfs  defaults,_netdev  0  0
mount -a

df -h.

Задание 4 Служба сетевого времени

apt install chrony (HQ-SRV, HQ-CLI, BR-RTR, BRSRV)

На isp

в файле nano /etc/chrony/chrony.conf закомментировать строчку с пул

И в конце файла по порядку пишем

server 127.0.0.1 iburst prefer

local stratum 5

allow 0/0

systemctl restart chrony

systemctl enable chrony

На «клиентах» (HQ-SRV, HQ-CLI, BR-RTR, BRSRV)

nano /etc/chrony/chrony.conf

В файле что и isp также комментируем строку и в конце прописываем

Server 172.16.1.1 iburst prefer ( это айпи асп)

На каждой машине прописываем рестарт

systemctl restart chrony

systemctl enable chrony

после чего на isp проверяем клиентов chronyc clients, должны появится 4 клиента: hq-srv, br-r, br-srv (br-srv может не показывать) (localhost сам hq-r сервер)

На клиентах прописываем chronyc sources -v, должно показать isp и его стратум должен быть 5:

chronyc tracking

пункт leap status должен быть normal, время должно быть как на hq-r (время НЕ мск, лондонское)

Задание 5. Ansible на BR-SRV

1. Настройка на BR-SRV

apt-get update

apt-get install ansible sshpass -y

mkdir -p /etc/ansible

Создаем конфиг /etc/ansible/ansible.cfg

[defaults]

inventory = /etc/ansible/hosts

host_key_checking = False

( заранее нужно оздать пользователя на клиенте и изменить юзера к конце файла)

sudo mkdir -p /etc/ansible

sudo nano /etc/ansible/hosts

Здесь мы прописываем твои реальные IP и пользователей:

[all:vars]

ansible_password=P@ssw0rd

ansible_port=2026

[routers]

# Используем внутренние адреса шлюзов

HQ-RTR ansible_host=192.168.10.1 ansible_user=net_admin

BR-RTR ansible_host=192.168.11.1 ansible_user=net_admin

[servers]

HQ-SRV ansible_host=192.168.10.2 ansible_user=sshuser

BR-SRV ansible_host=192.168.11.2 ansible_user=sshuser

[clients]

HQ-CLI ansible_host=192.168.10.34 ansible_user=sshuser

2. Подготовка управляемых узлов (HQ-SRV, HQ-CLI, HQ-RTR, BR-RTR)

apt-get update

apt-get install openssh-server python3 -y

systemctl enable --now ssh

ssh-keygen -A

systemctl restart ssh

ansible all -m ping

если он не поднял клиента, то на br-rtr

ip route add 192.168.10.0/27 via 10.10.10.1

ip route add 192.168.10.32/28 via 10.10.10.1

hq-rtr

ip route add 192.168.11.0/28 via 10.10.10.2

Задание 6. Веб приложение в docker на сервере BR-SRV

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

mkdir -p /mnt/additional

mount /dev/sr0 /mnt/additional

apt install curl -y

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

docker load -i /mnt/additional/docker/mariadb_latest.tar

docker load -i /mnt/additional/docker/site_latest.tar

mkdir -p /opt/testapp

cd /opt/testapp

nano docker-compose.yml

YAML

version: '3.8'

services:

testapp:
. image: site:latest
. container_name: testapp
. ports:
. - "8080:8000"
. depends_on:
. - db
. environment:
. - DB_HOST=db
. - DB_NAME=testdb
. - DB_TYPE=maria
. - DB_USER=test
. - DB_PASS=P@ssw0rd
. - SERVER_PORT=8080
. restart: unless-stopped
.
. db:
. image: mariadb:10.11
. container_name: db
. environment:
. MYSQL_ROOT_PASSWORD: P@ssw0rd
. MYSQL_DATABASE: testdb
. MYSQL_USER: test
. MYSQL_PASSWORD: P@ssw0rd
. volumes:
. - db_data:/var/lib/mysql
. restart: unless-stopped
.
.volumes:
. db_data:

docker compose up -d или docker compose -f /opt/testapp/docker-compose.yml up -d

если не вышло docker compose -f /opt/testapp/docker-compose.yml up -d

docker ps

apt install tcpdump -y

tcpdump -i any port 8080 -n

На клиенте (HQ-CLI) еще раз обнови страницу в браузере или введи curl -v 192.168.11.2:8080

В фаер фоксе на HQ-CLI пишем: http://br-srv:8080

Задание 7. Разверните веб приложение на сервере HQ-SRV:

apt install -y apache2 mariadb-server php libapache2-mod-php php-mysql php-curl php-json

lsblk

mount /dev/sr0 /mnt

rm /var/www/html/index.html

ls -laR /mnt/ ( в случае если дальше будет ошибки, можно проверить путь)

cp /mnt/web/index.php /var/www/html/

cp /mnt/web/logo.png /var/www/html/

chmod 644 /var/www/html/index.php

sudo nano /var/www/html/index.php

$servername = "localhost";

$username = "web";

$password = "P@ssw0rd";

$dbname = "webdb";

sudo mysql -u root

CREATE DATABASE IF NOT EXISTS webdb;

DROP USER IF EXISTS 'web'@'localhost';

CREATE USER 'web'@'localhost' IDENTIFIED BY 'P@sswOrd';

GRANT ALL PRIVILEGES ON webdb.* TO 'web'@'localhost';

FLUSH PRIVILEGES;

EXIT;

mysql -u root webdb < /mnt/web/dump.sql

mysql -u root -e "USE webdb; SHOW TABLES;"

Проверка входа пользователя web (опционально):

mysql -u web -p -e "SELECT 1;"

Пароль: P@sswOrd

nano /var/www/html/index.php

$servername = "localhost";

$username = "web";

$password = "P@sswOrd";

$dbname = "webdb";

systemctl restart apache2

curl -I http://localhost

Или откройте в браузере:

http://IP-адрес-вашего-сервера/index.php

8. Если снова ошибка 500 — смотрите логи:

tail -30 /var/log/apache2/error.log

в марие сделать

ALTER USER 'web'@'localhost' IDENTIFIED BY 'P@ssw0rd';
FLUSH PRIVILEGES;
EXIT;
Потом systemctl restart apache2

И на клиенте: http://hq-srv.au-team.irpo

Задание 8 Cтатическую трансляцию портов

На HQ-RTR

iptables -t nat -A PREROUTING -p tcp -d 172.16.1.2 --dport 8080 -j DNAT --to-destination 192.168.10.2:80

iptables -t nat -A POSTROUTING -j MASQUERADE

iptables -A FORWARD -p tcp -d 192.168.10.2 --dport 80 -j ACCEPT

iptables-save > /etc/iptables/rules.v4

На BR-RTR

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 8080 -j DNAT --to 192.168.11.2:8080

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 2026 -j DNAT --to 192.168.11.2:2026

iptables -t nat -A POSTROUTING -d 192.168.11.2 -j MASQUERADE

iptables-save > /etc/iptables/rules.v4

на клиенте

http://172.16.1.2:8080

http://172.16.2.2:8080

Задание 9 Настройте веб-сервер nginx как обратный прокси-сервер на ISP

Скачать пакеты: sudo apt install nginx –y

Зайти в файл: nano /etc/nginx/sites-available/default

В этом файле раскомментировать почти весь блок и добавить данные

server {

listen 80;

server_name web.au-team.irpo;

location / {

proxy_pass http://172.16.1.2:8080;

}

}

server {

listen 80;

server_name docker.au-team.irpo;

location / {

proxy_pass http://172.16.2.2:8080;

}

}

sudo nano /etc/hosts
```
172.16.1.2 web.au-team.irpo
172.16.2.2 docker.au-team.irpo

http://web.au-team.irpo

http://docker.au-team.irpo

Задание 10 На маршрутизаторе ISP настройте web-based аутентификацию

apt install apache2-utils

mkdir -p /etc/nginx/conf.d

htpasswd -bc /etc/nginx/conf.d/.htpasswd WEB P@ssw0rd

В уже ранее тронутый нами блок nano /etc/nginx/sites-available/default

Добавляем:

auth_basic "Restricted Area";

auth_basic_user_file /etc/nginx/conf.d/.htpasswd;

Проверка: web.au-team.irpo

Задание 11 Яндекс Браузер

В лисе написать скачать яндексбраузер для дебиан 12, скачаваем, переходим в папку загрузки. Пкм нажимаем открыть с помощью и там будет установка приложений. ВСЕЕЕЕ