Как я настраивал Ubuntu Server в качестве шлюза с PXE

Как я настраивал Ubuntu Server 20.04.2 LTS. Часть 1

В ВУЗе, в котором я работаю, есть заброшенный компьютерный класс. В нем стоят машинки из 2007 под старой Linux KDE. Когда наш ВУЗ пытался экономить на IT, главный админ продвигал Linux каждому пользователю, что встречало агрессию. Потом всем сотрудникам срезали ставки наполовину, и главный админ уволился. Я был готов запускать шарики в небо... 

Сегодня я бы мог накатить в заброшенный класс, например, семерку, добавить к текущим шести машинам еще парочку и сказать диспетчеру, что можно назначать туда пары студентикам. Однако у меня есть мечта воспроизвести собственную инфраструктуру на данном участке.

Итак, решено! Настрою шлюз под Ubuntu Server, чтобы выдавал IP, осуществлял трансляцию адресов, а ещё пускай будет на нем PXE-сервер, чтобы на каждую из шести машин класса можно было легко поставить отдельный дистрибутив Linux.

Сервер будет Ubuntu, потому что уже имел с ним дело. Год назад пытался решить ту же задачу, что и сегодня, но не вышло. Изначально на сервере устанавливал Ubuntu 14, затем ее обновил до 16, потом до 18. Сервер имел две сетевые карты, и была проблема, что после настройки netplan один из интерфейсов менял свой адрес самопроизвольно. Решение я тогда не нашел, поэтому сегодня просто переставил систему на 20.04 LTS.

Во время установки дополнительных пакетов не ставил - потом, если понадобятся. Немного спешил, поэтому под систему выделил 300 Гб из 1 Тб, а остальное не распределил. Тоже займусь потом.

После установки получал сообщения в произвольный момент в терминал:

blk_update_request: i/o error, dev fd0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0

Решилось отключением Floppy через BIOS.

Прочитал статью на Losst о настройке сервера после установки:

https://losst.ru/nastrojka-ubuntu-server-posle-ustanovki

Настроил ssh и время. Пользователя root не трогал.

Для настройки ssh отредактировал файл

 /etc/ssh/sshd_config

вписав туда строку Port с номером порта 1210. Для подключения использую рабочий компьютер на Windows 10 и командную строку cmd. Оказалось, в ней есть ssh и даже putty не так актуален. Правда пробовал сгенерировать ключ ssh для подключения без использования пароля - так просто не вышло, а вот через putty, говорят, легко. Тоже сделаю потом.

Вроде как нужно было настроить брандмауэр ufw, поэтому, судя по выводу команды 

history | grep ufw

я разрешил порт для ssh

ufw allow 1210

Но потом заморочек с ufw было еще много...

При настройке времени предварительно оказалось полезным выполнить

timedatectl list-timezones | grep kater
Asia/Yekaterinburg

чтобы понять, как на латинице пишется Екатеринбург. Тогда можно смело исполнить

sudo timedatectl set-timezone Asia/Yekaterinburg

а затем проверять время командой 

date
Wed Apr  7 12:38:06 +05 2021

Еще установил ntp-сервер

sudo apt install ntp

Сам факт установки не помню, но 

systemctl status ntp

● ntp.service - Network Time Service
     Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-04-02 09:53:26 +05; 5 days ago
       Docs: man:ntpd(8)
   Main PID: 715 (ntpd)
      Tasks: 2 (limit: 2270)
     Memory: 2.4M
     CGroup: /system.slice/ntp.service
             └─715 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 112:117

как видим, выводит логи.

Затем пошел настраивать сеть. Использую netplan.

Для определения, какие имена имеют мои интерфейсы, использовал простую команду

ip a

еще понравилась команда 

 ls /sys/class/net 

не содержащая лишней инфы в выводе.

Пользуясь, статьями [1-4] создал свой конфиг:

sudo nano /etc/netplan/00-installer-config.yaml

network:
  ethernets:
    enp1s0:
      dhcp4: false
      addresses: [192.168.0.1/24]
      nameservers:
          addresses: [8.8.8.8, 4.2.2.4]
    enp2s0:
      dhcp4: false
      addresses: [10.0.0.72/8]
      gateway4: 10.0.0.1
      nameservers:
           addresses: [8.8.8.8, 4.2.2.4]
  version: 2

Таким образом, интерфейс enp1s0 смотрит внутрь подсети за шлюзом и позволит раздать адреса еще 253 машинкам. Интерфейс  enp2s0 соединяет мой шлюз с внутренней сетью ВУЗа и просит статический адрес у местного еле живого сервера (кажется на нем есть резервирование..).

Чтобы протестировать конфигурацию, наверное, лучше использовать не try, а сразу generate:

sudo netplan --debug generate

А потом уже и применяем:

sudo netplan --debug apply

Параметр debug считаю полезным в каждом случае.


Дальше нужно настраивать dhcp, маршруты и netfilter, и вот об этом расскажу позже.


ToDo:

- распределить остаток места на HDD сервера;

- сгенерировать ssh-ключ;

- узнать, как пинговать сервер по его имени, а не IP.


1. https://losst.ru/nastrojka-seti-netplan-v-ubuntu - настройка сети Netplan в Ububntu

2. https://habr.com/ru/post/448400/ - Netplan и как его правильно приготовить

3. https://tokmakov.msk.ru/blog/item/474 - интернет-шлюз на базе Ubuntu Server

4. https://habr.com/ru/post/504868/ - домашний интернет-шлюз

Комментарии