Настройка сервера HQ-SRV

Подготовка системы

Задаём имя хоста сервера.

hostnamectl set-hostname HQ-SRV
exec bash

Настройка сети

Определяем интерфейс и создаём сетевую конфигурацию вручную. Скопируйте весь текст, а затем нажмите Enter и Ctrl + D

IF1=$(ip -br a | awk 'NR==2 {print $1}')

mkdir -p /etc/net/ifaces/$IF1

cat > /etc/net/ifaces/$IF1/options
BOOTPROTO=static
TYPE=eth
NM_CONTROLLED=no
DISABLED=no
CONFIG_WIRELESS=no
CONFIG_IPV4=yes
ONBOOT=yes
CONFIG_IPV6=no

нажать [Enter], чтобы перенеслось на новую строку
Нажать [Ctrl + D]

Добавляем айпи.

echo 192.168.100.2/26 > /etc/net/ifaces/$IF1/ipv4address
echo default via 192.168.100.1 > /etc/net/ifaces/$IF1/ipv4route
echo nameserver 8.8.8.8 > /etc/net/ifaces/$IF1/resolv.conf

Перезапуск сетевого сервиса.

systemctl restart network

Создание пользователя

Добавляем административного пользователя SSH.

apt-get update && apt-get install sudo -y

useradd sshuser -u 2026 -m -s /bin/bash
echo "sshuser:P@ssw0rd" | chpasswd
usermod -aG wheel sshuser

echo "sshuser ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers

Время

Настройка временной зоны и синхронизации.

timedatectl set-timezone Asia/Vladivostok
timedatectl set-ntp true

SSH сервер

Установка и базовая настройка SSH сервиса.

apt-get install openssh -y

echo "Authorized access only" > /etc/openssh/banner
echo "Banner /etc/openssh/banner" >> /etc/openssh/sshd_config
echo "Port 2025" >> /etc/openssh/sshd_config
echo "AllowUsers sshuser" >> /etc/openssh/sshd_config
echo "MaxAuthTries 2" >> /etc/openssh/sshd_config

systemctl restart sshd

DNS (Bind9)

Установка DNS сервера и базовая конфигурация.

apt-get update && apt-get install bind bind-utils -y
systemctl enable bind9
systemctl start bind9

Настройка параметров DNS.

echo "listen-on { 192.168.100.2; };" >> /var/lib/bind/etc/options.conf
echo "forwarders { 77.80.8.8; };" >> /var/lib/bind/etc/options.conf
echo "allow-query { any; };" >> /var/lib/bind/etc/options.conf

Добавление зон.

cat >> /var/lib/bind/etc/rfc1912.conf
zone "au-team.irpo" {
    type master;
    file "au-team.irpo";
};

zone "100.168.192.in-addr.arpa" {
    type master;
    file "100.168.192.in-addr.arpa";
};

zone "200.168.192.in-addr.arpa" {
    type master;
    file "200.168.192.in-addr-arpa";
};

RAID массив

Создание программного RAID для хранения данных.

apt-get install -y mdadm

mdadm --zero-superblock --force /dev/sdb /dev/sdc
mdadm --create --verbose /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc

mkfs.ext4 /dev/md0

mkdir /raid
mount /dev/md0 /raid

echo "/dev/md0 /raid ext4 defaults 0 0" >> /etc/fstab

NFS сервер

Поднимаем файловый сервер для сетевого доступа.

apt-get install -y nfs-server nfs-utils

mkdir /raid/nfs
chmod 777 /raid/nfs

echo "/raid/nfs 192.168.100.0/24(rw,no_root_squash)" >> /etc/exports

exportfs -arv
systemctl enable --now nfs-server

WEB приложение

Установка LAMP и развёртывание веб-приложения.

apt-get update && apt-get install lamp-server -y

mount /dev/sr0 /mnt/
cp /mnt/web/index.php /var/www/html
cp /mnt/web/logo.png /var/www/html

Конфигурация подключения к базе данных.

$servername = "localhost";
$username = "webc";
$password = "P@ssw0rd";
$dbname = "webdb";

Создание базы данных и пользователя.

systemctl enable --now mariadb

mariadb -u root
CREATE DATABASE webdb;
CREATE USER 'webc'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON webdb.* TO 'webc'@'localhost';
EXIT;

Импорт дампа базы данных.

mariadb -u webc -p -D webdb < /mnt/web/dump.sql

Проверка содержимого базы.

USE webdb;
SHOW TABLES;

Запуск веб-сервера.

systemctl enable --now httpd2

Сертификаты (CA)

Генерация корневого сертификата и ключей.

apt-get install openssl-gost-engine -y
control openssl-gost enabled

openssl genpkey -algorithm gost2012_256 -out ca.key
openssl req -new -x509 -key ca.key -out ca.cer

Создание сертификатов сервисов.

openssl genpkey -algorithm gost2012_256 -out web.au-team.irpo.key
openssl genpkey -algorithm gost2012_256 -out docker.au-team.irpo.key

openssl req -new -key web.au-team.irpo.key -out web.csr
openssl req -new -key docker.au-team.irpo.key -out docker.csr

Подпись сертификатов CA.

openssl x509 -req -in web.csr -CA ca.cer -CAkey ca.key -out web.cer -days 30
openssl x509 -req -in docker.csr -CA ca.cer -CAkey ca.key -out docker.cer -days 30

Передача сертификатов на gateway.

scp web.au-team.irpo.key root@172.16.1.1:~/
scp web.au-team.irpo.cer root@172.16.1.1:~/
scp docker.au-team.irpo.key root@172.16.1.1:~/
scp docker.au-team.irpo.cer root@172.16.1.1:~/