Инструменты пользователя

Инструменты сайта


linux:home_gateway_on_debian

HOWTO или ЧАВО - Домашний интернет шлюз на Debian 9 с файловым хранилищем, torrent, web и etc...

Изначально доступ в интернет моей домашней локальной сети предоставлял DIR-300 с прошивкой от DD-WRT. Функцию выполнял исправно, без глюков и проблем… но хотелось большего и понеслась.

Данное HOWTO не претендует на истину в последней инстанции, а всего лишь заметка о варианте разворачивания шлюза. Содержит ошибки, неточности и постоянно дополняется. IS AS…

Для организации у себя дома сервера с разными возможностями и плюшками выбрано следующее железо:

  • Материнская плата Intel D2500CC с двумя сетевыми адаптерами и есть PCI слот куда можно воткнуть дополнительно SATA контроллер.
  • блок питания любой на 300 ВАТТ
  • UPS желательно
  • ОЗУ в два гигабайта, меньше не купить, больше не нужно.
  • HDD нашлось двух видов - 500 GB WD и 3TB WD RED для файлового архива.

И так получается:

/dev/HDD500 система, вебсервер и прочее

/dev/HDD3TB для хранилища

подготовительная работа

  1. Обновить BIOS материнской платы.
  2. отформатировать HDD 3TB в ext4 (man Ubuntu, formatting a 3TB drive или создание разделов из консоли parted и удалить резервирование 5% под root. Тут в картинках.
  3. Установка ОС Debian только консоль, для графического режима мощностей маловато, но и не страшно, есть множество инструментов для работы с сервером через GUI. Сразу в процессе установки монтируем второй HDD (для NAS) как каталог NAS /home/server/nas чтобы потом было проще.
  4. Обновить Debian.

ОШИБКА! При установке Debian 9 Stretch возникла проблемы с драйвером видеокарты, топик http://debianforum.ru/index.php?topic=5574.0

Решение: После первой установки получаем доступ к винту (LiveCD, просто снимаем и подключаем к десктопу) и изменяем в файле:

nano /etc/modprobe.d/fbdev-blacklist.conf 

Добавляем в конец строку:

blacklist gma500_gfx 

Запуск

1) установить минимальный набор программ SSH и Midnight_Commander.

aptitude install ssh mc

2) правка сетевого интерфейса:

nano /etc/network/interfaces

Условимся: интерфейс смотрящий в интернет (локальную сеть провайдера, в модем, в общем «туда» …) - enp2s0, в вашу сеть - enp1s0. Вместо enp2s0 может быть и другой интерфейс, например ppp0

auto lo
iface lo inet loopback
allow-hotplug enp1s0
allow-hotplug enp2s0
iface enp2s0 inet static
        address 10.1.1.10
        netmask 255.255.255.0
        broadcast 10.1.1.255
        network 10.1.1.0
        gateway 10.1.1.1
iface enp1s0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255

На этом этапе все, можно выключать шлюз и нести к месту жительства и уже продолжать настройку удаленно через SSH.

Начальная настройка

0) Получаем доступ по SSH к шлюзу по адресу 192.168.0.1.

1) разрешаем NAT

nano /etc/sysctl.conf

Ищем строку net.ipv4.ip_forward=1 и активируем ее

net.ipv4.ip_forward=1

Далее применяем настройки:

sysctl -p

2) Включаем NAT

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

Теперь у нас есть интернет. Работа сильно облегчается.

3) устанавливаем webmin для GUI управления сервером по инструкции http://www.webmin.com/deb.html из репозитория.

4) после установки идем в раздел Сеть, далее Межсетевой экран, сбрасываем настройки firewall - включаем NAT, разрешаем доступы из локальной сети и запрещаем входящие подключение к внешнему интерфейсу, включаем firewall. Этого для работы шлюза достаточно. Webmin создаст базовые правила, запишет их в файл и подключит к загрузке. Если вы хотите большего придется настраивать вручную. Наcтройка firewall (межсетевого экрана) важная часть. Подробнее Firewall (межсетевой экран) Netfilter

Минимальный набор для функционирования шлюза готов.

Расширенная настройка

Сделаем из шлюза нечто больше.

0) Создаем дерево каталогов. Второй HDD смонтирован в процессе установки как раздел /home/server/nas. Дерево в итоге выглядит так:

/home
|_homeuser               - каталог пользователя системы
|_server                 - каталог сервера
  |_webserver            - каталог веб севера с сайтами
    |_server.home        - первый сайт на сервере
      |_www              - каталог с html (или php) файлами сайта
  |_ftp                  - FTP каталог
  |_nas                  - каталог для монтирования HDD файлового хранилища (подключили при установке)
  |_nas_N                - каталоги для других дисков
  |_virtualfolder        - каталог для сбора файлов, "виртуальный каталог" 

6) монтируем каталоги. Бекапим конфигурационный файл:

cp /etc/fstab /etc/fstab.bak

Открываем конфигурационный файл:

nano /etc/fstab

монтируем временный каталог в память: добавляем запись сразу после монтирования основного раздела, размер каталога в байтах, в примере ~512 мегабайт.

tmpfs /tmp tmpfs size=525950976 0 0

Если есть еще HDD, монтируем строкой после монтирования /home, добавляем строчку монтирования через UUID, узнать UUID диска можно узнать очень просто:

UUID=UUID_диска /home/server/nas2 ext4 defaults 0 2

Монтируем через bind любой каталог куда угодно, например директории с NAS в FTP (smb), например:

/home/server/nas/mult_dvdrip /home/server/ftp/mult  none defaults,bind      0       0
/home/server/nas/freesoftware /home/server/ftp/soft  none defaults,bind      0       0

Так можно собрать с разных HDD нужные каталоги в одну папку, а потом открыть для общего доступа по SMB. Для имен файлов на кириллице с пробелом такая возможность так же работает:

#виртуальные линки для SMB
/home/folder1/Мультфильмы /home/server/virtualfolder/samba_video/Мультфильмы bind ro,defaults,bind 0 0
/home/folder1/folder2/Документальные\040фильмы /home/server/virtualfolder/samba_video/Документальные\040фильмы bind ro,defaults,bind 0 0
/home/folder1/folder2/folder3/Фильмы /home/server/virtualfolder/samba_video/Фильмы bind ro,defaults,bind 0 0

В составе дополнительные службы (плюшки)

linux/home_gateway_on_debian.txt · Последнее изменение: 2021/04/17 13:48 — adminroot