Домашний сервер. Часть 2. Настройка Debian GNU/Linux – daniiiil112.ru

Домашний сервер. Часть 2. Настройка Debian GNU/Linux

Введение

В предыдущей статье мы поставили чистую систему Debian GNU/Linux. Теперь необходимо установить и настроить основные пакеты.

  1. Права пользователей. Первым делом необходимо настроить sudo, дабы не сидеть в системе от имени пользователя root. Это плохая практика, так как довольно не безопасно.
  2. Сетевые подключения. Далее необходимо настроить сетевые адаптеры. В моём случае проводной интерфейс один. Так что необходимо настроить VLAN для работы с сетевым коммутатором. Так же мой сервер заменяет ещё и точку доступа Wi-Fi.
  3. Маршрутизация, межсетевой экран, NAT, SSH. С особой ответственностью нужно приступать к настройке межсетевого экрана. Это прямо влияет на безопасность.
  4. DHCP и DNS сервера.

Права пользователей

Самое первое, что нужно сделать на чистой системе – это настроить sudo. Заходим на сервер под именем root. И ставим sudo из репозиториев.

root@debian:~# apt update
root@debian:~# apt install sudo

Настройка sudo довольно проста. Запускаем visudo и добавляем строку “[имя пользователя] ALL=(ALL:ALL) ALL”

Сохраняем и выходим из visudo (Ctrl+X , Y и Enter).

Теперь можно выйти и зайти от имени пользователя, которого создали при установке.

Подробную информацию на тему sudo: https://wiki.archlinux.org/index.php/Sudo

Сетевые подключения

Так как в моём случае сервер выполняет ещё и функцию маршрутизатора, а физический проводной интерфейс только один, то придётся настроить VLAN.

В Debian GNU/Linux довольно простая настройка сети. Установим необходимый пакет для VLAN:

daniiiil112@debian:~$ sudo apt update
daniiiil112@debian:~$ sudo apt install vlan

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

daniiiil112@debian:~$ sudo nano /etc/network/interfaces

В моём случае данный файл выглядит следующим образом:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s25
iface enp0s25 inet static
        address 10.112.1.1
        netmask 255.255.255.0
        network 10.112.1.0
        broadcast 10.112.1.255

auto enp0s25.10
iface enp0s25.10 inet static
        address 10.112.10.1
        netmask 255.255.255.0
        network 10.112.10.0
        broadcast 10.112.10.255
        vlan_raw_device enp0s25

auto enp0s25.100
iface enp0s25.100 inet dhcp
        vlan_raw_device enp0s25

auto wlp3s0
iface wlp3s0 inet static
        address 10.112.25.1
        netmask 255.255.255.0
        network 10.112.25.0
        broadcast 10.112.25.255

Разбитие интерфейсов довольно простое:

  1. enp0s25 – основной физический интерфейс. На нём и будут подниматься VLAN.
  2. enp0s25.10 – VLAN 10. Локальная сеть.
  3. enp0s25.100 – VLAN 100. Смотрит в сторону провайдера и получает от него посредством DHCP ip адрес.
  4. wlp3s0 – Wi-Fi адаптер.

После сохранения можно перезагрузить машину. В моём случае, предварительно подключив заранее сконфигурированный сетевой коммутатор.

Больше информации про настройку сети в Debian GNU/Linux https://wiki.debian.org/ru/NetworkConfiguration


Маршрутизация, межсетевой экран, NAT, SSH.

OpenSSH

В Debian GNU/Linux в стандартной конфигурации используется OpenSSH сервер. Рекомендую его и оставить.

Для начала необходимо отредактировать файл конфигурации:

daniiiil112@debian:~$ sudo nano /etc/ssh/sshd_config

И добавить или изменить следующие строки:

Protocol 2
UsePrivilegeSeparation yes
PermitRootLogin no
PasswordAuthentication yes

После сохранения можно перезапустить демона sshd

daniiiil112@debian:~$ sudo service sshd restart


Больше информации про настройку OpenSSH в Debian GNU/Linux https://wiki.debian.org/SSH#SSH_Server

Маршрутизация

Настройка маршрутизации довольно проста и выполняется с помощью sysctl.

sysctl – это утилита, предназначенная для управления отдельными параметрами ядра, безопасности, сетевой подсистемы. В нашем случае интересны только некоторые настройки сети.

Итак, открываем файл конфигурации sysctl.

daniiiil112@debian:~$ sudo /etc/sysctl.conf

И добавляем в конец файла данные строки:

net.ipv4.ip_forward = 1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Далее сохраняем и применяем:

daniiiil112@debian:~$ sudo sysctl -p

Всё. Теперь ядро будет пропускать пакеты между интерфейсами.

Больше информации про настройку sysctl https://wiki.archlinux.org/index.php/sysctl

Межсетевой экран и NAT.

В Debian GNU/Linux за межсетевой экран и NAT отвечает утилита netfilter. Для работы с netfilter существует утилита iptables.

Я предлагаю использовать готовую конфигурацию, так как работа с iptables довольно сложна. Для этого скопируем файл из данного архива в домашний каталог.

И дадим права на запуск

daniiiil112@debian:~$ sudo chmod +x iptab.sh

Теперь необходимо немного поправить данный скрипт. WAN поменять на название внешнего интерфейса, LAN на интерфейс локальной сети. А WLAN – название интерфейса Wi-Fi. Если Wi-Fi Адаптера нет, то необходимо удалить строки 11, 12, 30 и 109. Так же надо изменить LANRANGE – ip адрес интерфейса локальной сети с маской.

После редактирования можно запустить скрипт:

daniiiil112@debian:~$ sudo ./iptab.sh

Для того, чтобы не запускать после каждого перезапуска машины этот скрипт, необходимо добавить в конец файла /etc/network/interfaces данную строку:

post-up iptables-restore < /etc/iptables.rules

И так, межсетевой экран и NAT настроены.

Больше информации про настройку iptables: https://wiki.archlinux.org/index.php/Iptables_(Русский)

DHCP и DNS сервера

В Debian GNU/Linux неплохой выбор DHCP и кеширующих DNS серверов. Я предлагаю для начала остановиться на dnsmasq. Это довольно известный и легкий сервер, который объединяет в себе и DHCP, и DNS сервера.

Для начала установим сам сервер:

daniiiil112@debian:~$ sudo apt update
daniiiil112@debian:~$ sudo apt install dnsmasq

Теперь осталось только настроить. Открываем файл конфигурации:

daniiiil112@debian:~$ sudo nano /etc/dnsmasq.conf

Удаляем всё и добавляем данные строки:

bind-interfaces
no-dhcp-interface=enp0s25.100
no-dhcp-interface=lo
interface=enp0s25.10
interface=wlp3s0
dhcp-range=enp0s25.10,10.112.10.100,10.112.10.200,24h
dhcp-range=wlp3s0,10.112.25.100,10.112.25.200,24h

dhcp-option=42,10.112.1.1

dhcp-authoritative

Опять же, если у вас нет wifi, то строки с упоминанием wlp3s0 необходимо удалить.

После редактирования и сохранения файла конфигурации можно перезапустить dnsmasq.

daniiiil112@debian:~$ sudo service dnsmasq restart

Заключение

Вот и всё. Теперь данная машина умеет раздавать интернет в локальную сеть, при этом относительно защищена от атак снаружи.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *