Разное

Маршрутизатор linux: Linux . (debian ubuntu linux route iproute iptables nat)

Содержание

Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов. Часть 2

Начало здесь.

 

Настройка Linux GW: Настройка DNS с помощью bind9

Давайте попробуем сделать ping домена вместо IP. Что-то вроде этого:

ping google.com

 

Вы должны получить сообщение о том, что хост неизвестен. Вы можете догадаться, почему? Да, нет DNS.

 

Настройка DNS

DNS будет необходим для разрешения доменов на IP-адреса. bind9 — опция по умолчанию для серверов на основе Debian.

sudo apt-get install bind9

 

Это заставит ваш DNS-сервер работать, но вам все равно нужно будет вручную добавить этот сервер к вашему клиенту (опять же, потому что не работает DHCP):

sudo echo "nameserver 192.168.25.1" > /etc/resolv.conf

 

И сейчас:

ping google.com

 

Волшебство снова, это (может) работать. Если этого не произойдет, вам может потребоваться открыть файл /etc/bind/named. conf и настроить маршрутизатор (192.168.0.1) в качестве сервера пересылки, а затем перезапустить сервер.

Конечно, это довольно скучно. Если вы собираетесь установить DNS, вы также можете создать собственный TLD для своей локальной сети.

 

Настройка собственного TLD с помощью bind9 для вашей локальной сети

До сих пор в серии о том, как установить маршрутизатор на основе Linux, мы настроили маршрутизатор Linux с NAT и базовым DNS. Теперь мы настроим пользовательский TLD, чтобы вы могли иметь собственные домены для вашей локальной сети. Например, если вы хотите, чтобы у вашего маршрутизатора было удобное имя, а не просто IP.

Давайте начнем с добавления локальной зоны в файл /etc/bind/named.conf.local для домена, который мы назовем «lan»:

zone "lan" {
type master;
file "/home/router/named/lan.db";
};

 

Теперь нам нужно добавить обратную зону. Обратите внимание, как имя меняется на IP:

zone "10.168.192.in-addr.arpa" {
type master;
file "/home/router/named/rev. 10.168.192.in-addr.arpa";
};

 

Нам все еще нужно создать оба файла (lan.db и rev.10.168.192.in-addr.arpa), но мы сделаем это позже. Давайте установим место для регистрации всех запросов DNS (необязательно):

logging {
channel query.log {
file "/home/router/named/dns.log";
severity debug 3;
print-time yes;
};

category queries { query.log; };
};

 

Для записи журнала мы выбрали /home/router/named в качестве каталога журнала, просто потому, что для этого проекта мы храним все вместе (config и logs), так что людям, не привыкшим администрировать Linux, легко, но, конечно, это означает, что apparmor должен быть настроен на чтение и запись для привязки в этом каталоге. Мы вернемся к этому через секунду, во-первых, давайте создадим необходимые файлы зон для нашего нового TLD.

Помните наши два файла зоны? Мы помещаем их в /home/router/named, но обычно они находятся в/etc/bind. Опять же, сделали это, чтобы смогли собрать все файлы конфигурации вместе.

Это наши два файла:

Для lan.db

<

lan.      IN      SOA     ns1.lan. admin.lan. (
2006081401
28800
3600
604800
38400
)

lan.      IN      NS              ns1.lan.

wiki             IN      A       192.168.0.66
ns1              IN      A       192.168.0.1
router           IN      A       192.168.0.1

 

Для rev.10.168.192.in-addr.arpa

@ IN SOA ns1.lan. admin.example.com. (
2006081401;
28800;
604800;
604800;
86400
)

IN    NS     ns1.lan.
1                    IN    PTR    lan

 

Большинство этих строк — чёрная магия, и поскольку объяснение DNS и Bind выходит за рамки (не стесняйтесь читать RFC, если вам нужна дополнительная информация), давайте просто скажем, что вы можете добавлять новые записи DNS, добавляя такие строки:

NICE_NAME           IN      A       REAL_IP

 

Это заставит bind перевести NICE_NAME. lan в REAL_IP. Конечно, это будет зависеть от TLD, который вы определили. Теперь перезапустите bind, чтобы получить массу ошибок. Он будет жаловаться на невозможность загрузить мастер-файл в/home/router/named. Помните ту вещь, которую мы упомянули?

 

Настройка Linux GW: Настройка apparmor

Apparmor — это сервис, который работает в фоновом режиме, проверяя, что другие двоичные файлы могут и не могут делать. Например, это позволит bind9 открыть прослушивающий сокет на порту 53 (DNS), но запретит попытку открытия прослушивающего сокета на порту 64. Это мера безопасности для ограничения ущерба скомпрометированному двоичному файлу bind9, работающему от имени root может сделать. И поскольку мы собираемся использовать нестандартную конфигурацию, нам нужно сообщить apparmor, что все в порядке.

После установки bind9 мы должны получить новый файл в /etc/apparmor.d/usr.sbin.named. Добавьте следующие строки внизу:

/home/router/named/** rw,
/home/router/named/ rw,

 

И перезапустите сервис apparmor:

/. /etc/init.d/apparmor restart

 

Поскольку мы модифицировали apparmor, чтобы разрешить нестандартную установку bind, теперь перезапустите bind. На этот раз он запустится без каких-либо ошибок, и вы сможете подключить -f /home/router/named/dns.log для просмотра DNS-запросов в режиме реального времени. Если это не так, проверьте, что/home/router/named доступен для записи пользователю bind (мы сделали chgrp -R bind named).

 

Настройка Linux GW: DCHP

В нашем пользовательском маршрутизаторе Linux у нас пока есть DNS и NAT, но конфигурация клиента была абсолютно ручной. У нас не может быть много клиентов с такой настройкой, поэтому давайте автоматизируем настройку клиента с помощью DHCP-сервера. Начните с установки isc-dhcp-server.

Отредактируйте /etc/dhcp/dhcpd.conf, установите доменное имя и серверы доменных имен, например, так:

option domain-name "lan";
option domain-name-servers 192.168.25.1 192.168.0.1;

default-lease-time 86400;
max-lease-time 172800;

authoritative;

 

Два других установят DNS-серверы для ваших клиентов. Кроме того, рекомендуется увеличить время аренды, мы использовали один день для аренды по умолчанию. Установили DHCP-сервер в качестве приоритетного сервера. Если это ваш роутер, это, вероятно, то, что вы хотите.

Теперь нам нужно определить топологию сети:

# Это сеть WAN, и мы не будем предоставлять услуги здесь
subnet 192.168.0.0 netmask 255.255.255.0 {
}

# Определите услугу, которую мы предоставляем для локальной сети
subnet 192.168.25.1 netmask 255.255.255.0 {
range 192.168.25.100 192.168.25.200;
option routers 192.168.25.1;
}

 

Теперь нам нужно перезапустить ISC:

sudo /./etc/init.d/isc-dhcp-server restart

 

И теперь нам нужно проверить, все ли работает в клиенте. В этот раз легко, мы просто просим IP:

sudo dhclient
ifconfig

 

Если все прошло хорошо, теперь у нас должен быть IP в диапазоне 100-200, а также DNS-сервер в /etc/resolv.conf. Сейчас мы настроили очень простой маршрутизатор и должны иметь возможность обслуживать несколько клиентов для базовых возможностей просмотра.

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

 

Другие части:

  • Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов. Часть 1
  • Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов. Часть 3
  • Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов. Часть 4

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов

Настройка Linux GW или маршрутизатора не так сложна, как может показаться, если вы читаете достаточно дружественное руководство. Это дополнение к обычной «настройке руководства по Linux»: сначала мы сделаем это с помощью Virtualbox, чтобы проверить свои настройки перед тем, как их развернуть.

Мы напишем о том, как вы можете настроить обычный дистрибутив Linux в качестве пограничного маршрутизатора/шлюза для вашей локальной сети, но для простоты использования будем основывать свои примеры на Ubuntu.

Мы можем купить маршрутизатор или заменить устройство на что-то, что может обеспечить такую ​​же функциональность. В этом случае мы выбрали сервер Linux, поэтому нам нужно выяснить, какие сервисы предоставляет маршрутизатор, а затем каким-то образом эмулировать их:

  • DHCP для управления арендой
  • DNS для перевода доменов в IP
  • NAT, чтобы мультиплексировать одно соединение
  • Переадресация сервиса, выставление внутренних сервисов во внешнюю сеть

К счастью, Linux поддерживает все это:

  • ISC для DHCP
  • bind9 для DNS
  • iptables для NAT
  • снова iptables, для пересылки услуг

Мы будем настраивать каждую из этих служб в следующих постах, а пока:

 

Предварительная работа, настройка оборудования

Перед настройкой каких-либо служб вам понадобятся две вещи: две сетевые карты, одна для исходящего соединения, а другая для (коммутируемой) локальной сети, и способ сообщить серверу, что вы хотите, чтобы весь трафик из сети 1 был перенаправлен в сеть 2.

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

Вам также понадобится ОС. Мы выбрали Ubuntu, потому что она очень проста в установке и содержит все необходимое программное обеспечение в репозиториях, но вы можете использовать любой другой дистрибутив, если вам это нужно.

Кроме того, в этой статье мы будем использовать такую ​​настройку:

  • WAN доступ через eth0, адрес DHCP
  • LAN маршрутизация в eth2, сеть 192.168.25.1/24

 

Если у вас нет всего этого оборудования …

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

  1. Начните с создания того, что будет вашим маршрутизатором VM.
  2. Включите первый сетевой адаптер. Этот должен видеть ваш физический маршрутизатор (т.е. подключаться к глобальной сети).
  3. Включите второй сетевой адаптер. Используйте опцию «Внутренняя сеть» в поле «Прикреплено к». Это будет ваш интерфейс локальной сети.
  4. Создайте вторую виртуальную машину. Этот будет вашим клиентом.
  5. Включите один сетевой адаптер, также подключенный к внутренней сети. Имя этой сети должно совпадать с именем другой виртуальной машины.

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

 

Настройка Linux GW: NATting и пересылка

Для нашего Linux GW такие сервисы, как DNS и DHCP, хороши, но реальное подключение намного важнее. Давайте настроим функции NAT и переадресации соединений нового маршрутизатора, затем мы можем проверить, правильно ли работает наша установка, пропингуя IP одной локальной сети из другой.

Мы сделаем это, настроив NAT с помощью iptables.  Нам также нужно будет настроить ОС для переадресации соединений с одной сетевой карты на другую:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE

# Добавьте такую строку для каждого eth * LAN
iptables --append FORWARD --in-interface eth2 -j ACCEPT

 

Нам также нужно будет настроить IP для eth0, так как не будет DHCP-сервера (мы являемся сервером!). Откройте/etc/network/interfaces и добавьте что-то вроде этого:

# Настройте порт WAN для получения IP через DHCP
auto eth0
iface eth0 inet dhcp

# Настройка порта LAN локальной сети
auto eth2
iface eth2 inet static
address 192.168.25.1    # (или какой вы хотите)
netmask 255.255.255.0

 

После того, как все проверено, перезапустите сетевые сервисы,  как ниже:

sudo /./etc/init.d/networking restart

 

Все готово, теперь просто подключите ваш компьютер к новому маршрутизатору и протестируйте его.  Не забудьте вручную установить IP-адрес в том же диапазоне сети, что и у маршрутизатора, поскольку в данный момент DHCP отсутствует. Это может быть полезно для устранения проблемы.

На своем клиентском ПК установите свой IP-адрес:

ifconfig eth0 192.168.25.10

 

Проверьте, установлен ли у вас IP:

ping 192.168.25.10

 

Если вы получили ответ, ваш новый IP-адрес в порядке, если нет, то проблема с вашим клиентом. Второй шаг, посмотрите, можете ли вы добраться до маршрутизатора:

ping 192.168.25.1

 

Обратите внимание, что вам может потребоваться обновить все (т.е. перезапустить сеть и вручную назначить свой IP-адрес) после подключения кабеля.

Опять же, если вы получите ответ, у вас есть связь с маршрутизатором. До сих пор мы не тестировали ни правила iptables, ни переадресацию, поэтому любая проблема на этом этапе должна иметь конфигурацию IP. Если все прошло хорошо, пришло время проверить правила NAT и переадресацию.

ping 192.168.1.1

 

Это должно дать вам ошибку. Конечно, поскольку нет DHCP, маршрут не установлен. Давайте вручную установим маршрут в клиенте:

sudo route add default gateway 192.168.25.1

 

Затем снова:

ping 192.168.0.1

 

Магия! Работает! Если это не так, у вас есть проблема либо в конфигурации NAT, либо в IP-пересылке маршрутизатора. Вы можете проверить это с помощью wireshark: если эхо-запросы достигают сервера, но они никогда не получают ответ, тогда это NAT, то есть он может пересылать IP-пакеты на eth2 на eth0, но у маршрутизатора нет NAT, и он не знает, как направить ответ обратно. Если эхо-запросы никогда не достигают eth0, тогда у вас проблема с пересылкой IP.

 

Сохранение правил пересылки

Чтобы правила пересылки сохранялись после перезагрузки, нам нужно сначала изменить /etc/sysctl.conf, чтобы разрешить пересылку IP. Это просто вопрос раскомментирования этой строки:

net.ipv4.ip_forward = 1

 

У нас также будет много правил iptables, которые нам нужно настроить во время загрузки. Мы создали скрипт в /home/router/set_forwarding.sh, который также связали с /etc/init.d/rc.local, поэтому он запускается всякий раз, когда загружается система.

В следующий раз мы перейдем к чему-то более сложному: установке DNS-сервера и использованию доменов вместо IP-адресов.

 

Другие части:

  • Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов. Часть 2
  • Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов. Часть 3
  • Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов. Часть 4

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Настройка сетевых маршрутов в Linux (CentOS)

В этой статье мы рассмотрим особенности настройки маршрутизации и управления маршрутами в Linux (просмотр таблицы маршрутизации, добавление/удаление статических маршрутов и т.д.) на примере CentOS с помощью утилиты ip. Статья применима и для любого другого дистрибутива Linux с утилитой ip (Red Hat, Fedora и т.д.).

Для управления маршрутизацией в Linux предпочтительно исопльзовать утилиту ip , а не route . Команда route не позволяет настраивать расширенные возможности маршрутизации (например, политики маршрутизации), и не покажет специальные настройки маршрутизации, если они уже сделаны через ip.

Содержание:

  • Просмотр таблицы маршрутизации в Linux
  • Как добавить или удалить статический маршрут?
  • Изменить маршрут в Linux
  • Изменить маршрут по умолчанию

Просмотр таблицы маршрутизации в Linux

Чтобы вывести текущую таблицу маршрутизации в Linux выполните команду:

# ip route

  • default via 192.168.1.1 dev enp0s3 – шлюз по умолчанию, в данном примере работающий через интерфейс enp0s3. Если для target адреса в таблице маршрутизации отсутствует маршрут, то такой пакет отправляется через данный шлюз (маршрут по умолчанию)
  • 192. 168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 — статический маршрут для сети 192.168.1.0/24 через адрес 192.168.1.201, который прописан на интерфейсе
  • proto kernel – маршрут создан ядром ( proto static – маршрут добавлен администратором)
  • metric – приоритет маршрута (чем меньше значение metric, тем выше приоритет). При наличии двух маршрутов с одинаковой метрикой (не стоит так делать!), ядро начинает выбирать маршруты случайным образом.

Чтобы узнать через какой интерфейс (шлюз) должен маршрутизироваться трафик к определенному IP адресу используется команда:

# ip route get 192.168.2.45

192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201

Вы можете использовать ваш Linux сервер с двумя и более интерфейсами как маршрутизатор или интернет-шлюз. Чтобы разрешить маршрутизацию пакетов между несколькими интерфейсами, нужно включить параметр ядра net.ipv4.ip_forward = 1.

Как добавить или удалить статический маршрут?

Чтобы добавить новый маршрут к определенной IP подсети в таблицу маршрутизации Linux, нужно выполнить следующую команду:

# ip route add 192.168.0.0/24 via 192.168.1.1

Таким образом, мы добавим маршрут для IP сети 192.168.0.0/24 через шлюз 192.168.1.1.

Формат команды ip route очень похоже на синтаксис в Cisco IOS. Здесь также можно исопльзовать сокращений, например вместо ip route add можно написать ip pro ad .

Также можно добавить отдельный маршрут для одного IP адреса (хоста):

# ip route add 192.168.1.0 via 192.168.1.1

Можно сделать аналог null route маршрута в Cisco (ip route null0), пакеты в такую сеть удаляются по причине No route to host:

# ip route add blackhole 10.1.20.0/24

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

Чтобы удалить созданный вручную маршрут, выполните:

# ip route del 192.168.0.0/24

Как видите, маршрут удален из таблицы маршрутизации.

Чтобы добавить постоянный маршрут, нужно создать файл для этого маршрута, либо добавить правило в файл rc.local (выполняется при загрузке сервера).

Чтобы добавить постоянный (статический) маршрут, нужно знать имя сетевого интерфейса, который будет использоваться для маршрутизации. Узнать имя сетевого интерфейса можно командой:

# ip a

В моем случае, интерфейс enp0s3.

Более подробная статья о настройке сетевых интерфейсов в CentOS.

Далее открываем следующий файл:

# nano /etc/sysconfig/network-scripts/route-enp0s3

И добавляем туда строку с маршрутом:

192.168.0.0/24 via 192.168.1.1

После добавления маршрута в файл нужно перезапустить сервис network:

# service network restart

После перещаауска сетевого сервиса, в таблице маршрутизации появился статический маршрут.

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

# nano /etc/rc.local

И укажите команду добавления маршрута:

# ip route add 192.168.0.0/24 via 192.168.1.1

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

Изменить маршрут в Linux

Чтобы изменить уже существующий маршрут, можно использовать команду ip route replace:

# ip route replace 192.168.0.0/24 via 192.168.1.1

Чтобы сбросить все временные маршруты в таблице маршрутизации, просто перезапустите сетевой сервис:

[root@localhost ~]# service network restart

Restarting network (via systemctl): [ OK ]

[root@localhost ~]# ip route

default via 192.168.1.1 dev enp0s3 proto static metric 100
192.168.0.0/24 via 192. 168.1.1 dev enp0s3 proto static metric 100
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 metric 100

Изменить маршрут по умолчанию

Вы можете удалить маршрут по-умолчаню с помощью команды ip route del:

# ip route del default via 192.168.1.1 dev enp0s3

Чтобы указать новый маршрут по-умолчанию в CentOS используется команда:

# ip route add default via 192.168.1.2 (маршрут через IP адрес шлюза)

# ip route add default via enp0s3 (маршрут через имя устройства)

Чтобы изменить параметры маршрута по умолчанию, используется команда:

# ip route replace default via 192.168.1.2

Linux как маршрутизатор | Мир ПК

Как применить Linux в качестве маршрутизатора между небольшой сетью и Интернетом?

Подключение ЛС к Интернету

Есть несколько способов подключения локальной сети (ЛС) к Интернету, отличающиеся объемом адресного пространства. Можно назвать следующие: через коммутируемое соединение (динамический IP) или выделенную линию с одним IP-адресом или с выделенной подсетью адресов. Есть также вариант с использованием внутренних IP-адресов провайдера. В любом случае компьютер с Linux должен иметь два сетевых интерфейса: один для связи с локальной сетью, другой для Интернета.

Известно, что особенностью коммутируемого доступа по телефонным линиям является непостоянность соединения. Его установку можно инициировать либо вручную специальной командой, либо автоматически. Первый способ подробно описан ранее («Как подключить Linux к Internet» — «Мир ПК», № 6/2000, с. 76). Следует только добавить, что с точки зрения маршрутизации коммутируемая линия почти эквивалентна выделенной с одним IP-адресом с той лишь разницей, что динамический адрес не позволяет устанавливать во внутренней сети общедоступные Web- или почтовые серверы.

Вариант автоматического подключения компьютера с Linux реализуется, например, с помощью утилиты diald: она самостоятельно устанавливает коммутируемое соединение в том случае, когда появляются IP-пакеты, которые нужно переправить во внешнюю сеть (Интернет) из локальной сети.

Другой метод установки коммутируемого соединения использует систему EQL, интегрированную в ядро Linux и позволяющую применять для передачи информации две телефонные линии. В этом случае благодаря перераспределению нагрузки суммарная скорость передачи данных увеличивается. Однако такой метод соединения должен поддерживать и провайдер. Поэтому, скорее всего, эта система лучше подойдет для подключения удаленных филиалов или складов.

Согласование адресов

При соединении локальной сети с Интернетом, когда имеется всего один IP-адрес, проблемой является согласование внутреннего IP-пространства с общим адресным пространством Интернета. В этом случае обычно используют преобразование (или трансляцию) адресов — NAT (Network Address Translation)*.

Следует отметить, что во всех перечисленных выше случаях компьютер с Linux выполняет только одну функцию: «вылавливает» из внутренней сети IP-пакеты с внешними адресами и передает их в сетевой интерфейс, который подключен к cети провайдера. Он также получает пакеты из Интернета, переводит их адреса во внутреннюю нумерацию и передает в локальную сеть. То есть работает, в основном, система трансляции адресов, при этом стандартные механизмы маршрутизации практически не используются.

Собственно, полноценная маршрутизация возникает либо когда под всю локальную сеть выделяется отдельный блок адресов, либо если сетевых интерфейсов больше двух. Первый случай может иметь два варианта: блок адресов общедоступен или является частью внутреннего IP-пространства провайдера. Впрочем, с точки зрения маршрутизации эти варианты почти равноправны. Отличия состоят в более жесткой защите при подключении к Интернету, поскольку основу ее задают правила маршрутизации.

Настройка маршрутизации

Для настройки маршрутизации нужно определить адрес, сетевую маску и IP-адрес шлюза, через который пакет дойдет до адресата. Для этого можно пользоваться стандартной утилитой linuxconf, а точнее ее частью netconf. Раздел Routing and gateways (маршрутизация и шлюзы) позволяет настроить все, что связано с маршрутизацией. Впрочем, можно воспользоваться и текстовыми утилитами ifconfig для настройки сетевых интерфейсов и утилитой route для изучения и изменения таблиц маршрутизации.

Однако нужно иметь в виду, что netconf изменяет определенные конфигурационные файлы, что позволяет восстанавливать состояние при перезагрузке. В то же время текстовые утилиты меняют только текущее состояние системы, не сохраняя настроек в конфигурационных файлах. Поэтому текстовые утилиты лучше использовать для получения справочной информации и тестирования, а уже с помощью netconf «зафиксировать» получившуюся устойчивую конфигурацию. Заметим, что для восстановления сетевой конфигурации netconf пользуется теми же командными утилитами ifconfig и route. Можно даже посмотреть, как это делается, если заглянуть в файл /etc/rc.d/init.d/ network, где хранятся сценарии конфигурирования сетевой инфраструктуры.

Защита внутренней сети

При подключении к Интернету необходимо задуматься о защите внутренней сети. Даже если там не хранится никаких секретов, все равно следует предусмотреть хотя бы минимальную защиту. В противном случае вы рискуете переплатить за подключение. Основу сетевой защиты, как правило, составляет межсетевой экран (firewall), базирующийся на фильтрации пакетов. В Linux предусмотрен механизм фильтрации в виде подсистемы ipchains, с помощью которой можно определять правила обработки IP-пакетов. Поскольку и защита, и маршрутизация работают с одними и теми же пакетами, то и настраивать их нужно совместно. В частности, система безопасности может блокировать некоторые подозрительные IP-пакеты, приходящие извне, и тем самым упростить работу маршрутизатора.

Наиболее сложная настройка маршрутизации требуется при двух внешних подключениях. В этом случае приходится заботиться и о распределении нагрузки между соединениями, и о вычислении минимального расстояния до получателя, и о работе с различными протоколами передачи информации о маршрутах. К счастью, для небольших локальных сетей такая избыточность не нужна, а если она все-таки возникла, то лучше пользоваться коммерческими маршрутизаторами. Кроме того, российская компания SWsoft выпустила дистрибутив Linux под названием xLswitch, который изначально рассчитан на построение маршрутизаторов на основе ПК.

ОБ АВТОРЕ

Валерий Коржов — обозреватель еженедельника ComputerWorld, e-mail: [email protected]


* Преобразование адресов еще называют маскарадингом, поскольку одна из самых распространенных программ для реализации NAT называется IP Masquerade. Собственно, первоначально технология NAT была разработана в целях безопасности, чтобы скрыть от внешних наблюдателей структуру внутренней сети. Сейчас же эта технология активно применяется провайдерами для экономии IP-адресов.

назад

Маршрутизация в Linux — Asterisk IP-телефония

В статье рассматривается вывод и изменение маршрутизации утилитой ip, изменение конфигурационных файлов сетевого интерфейса. ip – утилита для работы с маршрутизацией, и параметрами сетевого интерфейса.  Вывод на экран имеющихся маршрутов выполняется командой: ip route Несколько таблиц маршрутизации: main, local и default предопределены. При отсутствии в параметрах команды ip route названия таблицы, используется главная — main.В […]

В статье рассматривается вывод и изменение маршрутизации утилитой ip, изменение конфигурационных файлов сетевого интерфейса.

ip – утилита для работы с маршрутизацией, и параметрами сетевого интерфейса.  
Вывод на экран имеющихся маршрутов выполняется командой:

ip route

Просмотр имеющихся маршрутов

Несколько таблиц маршрутизации: main, local и default предопределены.
При отсутствии в параметрах команды ip route названия таблицы, используется главная — main.
В local заносятся правила для локальных ip, широковещательных пакетов.

default – таблица, вначале не содержащая правил.
ip route show table local — вывод определенной таблицы

Вывод определенной таблицы
  • ip addr show – вывод всех сетевых настроек по всем интерфейсам у данного хоста
Просмотр сетевых настроек
  • ip route flush cache – очистка кэша
  • ip rule – вывод правил маршрутизации
Вывод правил

Вначале указывается идентификатор, from all – применяется для всех пакетов, параметр lookup –таблица, в которую пакет должен быть отправлен.

Общий вид команд добавления сетевых маршрутов:

ip route add {адрес_сети/маска_сети} via {ip_шлюза} 
ip route add {адрес_сети/маска_сети} dev {интерфейс} 
ip route add default {адрес_сети/маска_сети} dev {интерфейс} 
ip route add default {адрес_сети/маска_сети} via {ip_шлюза}

Добавление временных маршрутов.

Добавить маршрут в сеть 10.10.1.0/24 через шлюз 10.10.1.1:

ip route add 10.10.1.0/24 via 10.10.1.1

Добавить маршрут в сеть 10.10.1.0/24 использовать интерфейс:

ip route add 10.10.1.0/24 dev eth0

Добавить маршрут в сеть 10.10.1.0/24 использовать интерфейс, установив метрику 50:

ip route add 10.10.1.0/24 dev eth0 metric 50

Предположим, на шлюз приходят пакеты с IP 192.168.1.1. Их необходимо отправлять на шлюз 10.10.1.2.

Создаем таблицу:

ip route add default via 10.1.0.1 table 16811

Правило, отправляющее пакеты в таблицу:

ip rule add from 192. 168.1.1 table 16811

Удаление маршрутов.

ip route del 10.10.1.0/24  via 10.10.1.1 dev eth0
ip route del 10.10.1.0/24 dev eth0

Blackhole маршруты.
Пакеты, которые пойдут по blackhole маршруту будут удалены.
Удалить пакеты сети 1.2.3.0 с маской 255.255.255.0.

ip route add blackhole 1.2.3.0/255.255.255.0

Добавление постоянных статических маршрутов.

Для добавления постоянных маршрутов для интерфейса eth0 необходимо отредактировать файл /etc/sysconfig/network-scripts/route-eth0

nano /etc/sysconfig/network-scripts/route-eth0

Для применения изменений необходимо сделать рестарт сетевого сервиса. В RHEL 6/CentOS 6

service network restart

или

/etc/init.d/network restart
В RHEL 7/CentOS 7
systemctl restart network.service

Также, можно остановить и поднять интерфейс eth0:

cd /etc/sysconfig/network-scripts/
ifdown eth0 – остановить eth0
ifup eth0 – поднять eth0

Для проверки запустить утилиту ping или ip

ping 10. 10.1.1 или ip r

В случаях, когда необходимо повлиять на выбор интерфейса выхода, который будет использоваться для доступа к шлюзу, необходимо использовать команду DEFROUTE=no в файлах ifcfg для тех интерфейсов, которые не ведут к шлюзу по умолчанию.

Глобальная конфигурация шлюза по умолчанию находится в /etc/sysconfig/network.

Редактирование конфигурационного файла /etc/sysconfig/network

Шлюз для интерфейса eth0 в /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE – имя интерфейса
BOOTPROTO – способ получения ip адреса: static, dhcp
ONBOOT – автоподнятие интерфейса при старте системы
HWADDR – контрольный параметр, используется для привязки интерфейса к mac-адресу
MACADDR — используется для изменения mac адреса
UUID – уникальный идентификатор интерфейса
GATEWAY – шлюз по умолчанию для этого интерфейса

При указании статического ip адреса указываются параметры:

IPADDR – ip адрес.
NETMASK – маска сети.
DNS – адрес DNS сервера.

Редактирование конфигурационного файла /etc/sysconfig/network-scripts/ifcfg-eth0

В случае, если необходимо добавить диапазон адресов для интерфейса eth0 необходимо отредактировать файл /etc/sysconfig/network-scripts/ifcfg-eth0-range0, добавив туда параметры:

IPADDR_START — начальный IP из диапазона
IPADDR_END — последний IP из диапазона
CLONENUM_START — стартовый номер в имени интерфейса, с которого начнется нумерация добавленных интерфейсов.
NETMASK — маска подсети для каждого IP адреса

Например:

IPADDR_START=192.168.32.82
IPADDR_END=192.168.32.85
CLONENUM_START=1
NETMASK=255.255.255.255

Для применения настроек необходимо перезапустить сетевой сервис.

Настройка сетевой маршрутизации Linux – команда route

Для определения и задания маршрутов в сетях существуют динамическая и статическая маршрутизации. В первом случае маршруты задаются специальным демоном маршрутизации, который модифицирует соответствующим образом таблицу маршрутизации ядра. Во втором случае маршруты задаются администратором/пользователем при помощи команды route. Маршруты, заданные командой route не изменяются, даже если включена динамическая маршрутизация.

Содержание

  1. Как работает маршрутизация?
  2. Синтаксис и основные опции
  3. Примеры использования

Как работает маршрутизация?

Прежде всего нужно понимать, что процессы маршрутизации осуществляются на сетевом уровне. Для каждого пакета проводится сравнение его целевого IP-адреса с записями в таблице маршрутизации. Когда обнаруживается хотя бы частичное соответствие с одним из шлюзов в таблице, пакет направляется к следующему узлу (шлюзу), соответствующему найденному маршруту. И здесь может возникать несколько ситуаций:

Первая — когда, например, пакет адресуется компьютеру, находящемуся в той же сети, что и источник пакета, а точнее сказать — его отправитель. В данной ситуации для такого пакета следующим шлюзом является один из локальных интерфейсов и он (пакет) отправляется сразу к адресату. Такие «явные» и «короткие» шлюзы обычно задаются во время конфигурирования сетевых интерфейсов — командой ifconfig.

Вторая — когда адрес назначения пакта не соответствует ни одному шлюзу в таблице маршрутизации. В таком случае, во избежание коллизий в сети и её чрезмерной нагрузки должен быть задействован шлюз по-умолчанию. Другими словами, это такой маршрут, который указывает системному ядру: все остальные пакеты (без соответствий в таблице маршрутов) направляй сюда. Если шлюз по-умолчанию не будет предусмотрен, то отправляющей стороне посылается сообщение о недостижимости сети или узла.

Как правило, локальные сети имеют единственный шлюз во внешнюю среду, например в Интернет. В свою очередь, в сети Интернет таких «стандартных маршрутов» не существует.

Синтаксис и основные опции

Основное назначение команды route – добавление и удаление сетевых маршрутов для системного ядра, а также просмотр содержимого таблицы маршрутизации. Эта команда, хотя и работает в разных UNIX-подобных системах одинаково, однако имеет резко отличающийся синтаксис в зависимости от используемой системы.

В общем случае прототипом команды route является следующая запись:

route add [-net|-host] <IP/Net> netmask gw <Gateway IP> dev <Int>X

Например:

$ route add -net 127.0.0.0 netmask 255.0.0.0 metric 1024 dev lo

Эта команда добавит шлюз с обратной связью через виртуальное устройство lo, которое используется для этой цели в Linux-системах. Опции -net и -host используются для указания адреса, характеризующего либо сеть, либо узел соответственно как пункты назначения. Для определения подсети служит опция  netmask, для задания приоритета шлюза — опция metric. Сетевой интерфейс обозначается опцией dev. Кроме описанных выше для команды route также существуют и другие используемые ей опции, которые приведены в следующей таблице:

Опция

Назначение

del

Удаление маршрута

gw

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

mss

Устанавливает значение MTU (максимальную величину пакета) в байтах.

window

Устанавливает размер TCP-окна для задаваемого шлюза в байтах. Обычно используется в сетях AX.25.

irtt

Устанавливает начальное время отклика для TCP-соединений по данному маршруту в миллисекундах.

reject

Задаёт блокирующий маршрут, который должен приводить к остановке процедуры поиска маршрутов. Полезно при скрытии сетей для использования в них шлюз по-умолчанию.

-F

Заставляет работать с таблицей маршрутизации ядра. Эта опция в большинстве систем используется по-умолчанию, поэтому часто опускается.

-C

Заставляет работать с кэшем маршрутизации ядра.

-v

Включает подробный режим работы команды route.

-n

Использование числового формата адресов вместо попыток определения символьных наименований узлов. Можно использовать в случае определения проблем с соединениями к DNS.

-e

Использовать формат вывода команды netstat для отображения содержимого таблицы маршрутов. Опция -ee сгенерирует самый подробный отчёт с полными наименованиями параметров таблицы маршрутов.

Примеры использования

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

$ ifconfig eth0 nodeone netmask 255.255.255.0
$ route add -net 192.168.1.0

Здесь для команды route не указывается сам интерфейс, поскольку предполагается, что узлу nodeone соответствует адрес 192.168.1.2. Далее, route «узнаёт», что маршрут нужно проложить именно через eth0 благодаря тому, что системное ядро анализирует все доступные интерфейсы на предмет их конфигурации и сравнивает адрес пункта назначения с сетевой частью сетевых (сконфигурированных) интерфейсов. В данном случае ядро обнаруживает, что eth0 – тот интерфейс (с адресом 192.168.1.2), которому соответствует конечный адрес, т. е. 192.168.1.0.

Задание шлюза по-умолчанию:

$ route add default gw 192.168.1.1 eth0

Доступ в локальную сеть Ethernet через сетевой интерфейс eth0:

$ route add -net 192.168.10.0 netmask 255.255.255.0 eth0

Здесь 192.168.10.0 – сеть, к которой нужно установить доступ (маршрут).

Вывод содержимого таблицы маршрутов ядра осуществляется командой route без параметров, для подробных результатов используется опция -ee.

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

$ route add -net 192.168.10.0/24 eth0

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

Например для настройки маршрутизации сети 192. 168.10.0/24 через шлюз 192.168.10.1 интерфейс eth0, это команда

$ route add -net 192.168.10.0/24 gw 192.168.10.1 eth0

файл /etc/network/interfaces будет выглядеть следующим образом

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.10.8
hwaddress ether 00:E0:4C:A2:C4:48
netmask 255.255.255.0
broadcast 192.168.10.255
up route add -net 192.168.10.0/24 gw 192.168.10.1 eth0

auto eth2
iface eth2 inet static
address 172.16.0.34
netmask 255.255.255.0
gateway 172.16.0.1
broadcast 172.16.0.255

В Centos/Redhat это файл /etc/sysconfig/network-scripts/route-eth0 для интерфейса eth0 если же название интерфейса другое, то название файла будет route-<название интерфейса>. Если этого файла нет, то его нужно создать. Для настройки выше указанного примера, добавьте в файл следующие строки

192.168.10.0/24 via 192.168.10.1

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

systemctl restart network

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Лучшее бесплатное программное обеспечение для маршрутизаторов и брандмауэров Linux 2020 года (4 рекомендации)

Последнее обновление этой статьи 3 августа 2020 г.


Существует множество бесплатных дистрибутивов Linux/BSD с открытым исходным кодом на выбор для вашего маршрутизатора. Однако в Интернете есть много устаревших рекомендаций, так что это не простой выбор. По этой причине мы решили провести окончательное сравнение брандмауэров на 2020 год. 

В Википедии есть список дистрибутивов маршрутизаторов и брандмауэров, но этот список бесполезен, поскольку он неточен (по состоянию на август 2020 года) и на самом деле не соответствует действительности. сравнить эти системы любым полезным способом. В нем также перечислены многие устаревшие и неактуальные системы, которых следует избегать в 2020 году9. 0005

Если вы хотите получить максимальную отдачу от своего аппаратного устройства или строите новый брандмауэр, мы провели для вас исследование.

Почему наше сравнение дистрибутивов маршрутизаторов лучше, чем у других?

В течение многих лет мы продаем оборудование для создания брандмауэров и маршрутизаторов с открытым исходным кодом. За последний год мы установили и настроили большинство, если не все дистрибутивы. Мы ежедневно устанавливаем и настраиваем pfSense, OPNSense, OpenWRT, ClearOS, IPFire и другие операционные системы, поэтому у нас есть хорошее представление о том, какие операционные системы работают лучше других. Мы не зарабатываем деньги на каких-либо поставщиках программного обеспечения, что делает эту рекомендацию относительно объективной.
 Мы ежедневно слышим отзывы клиентов. Если возникают проблемы с производительностью или обновлениями, мы слышим об этом.

 

10 лучших брандмауэров с открытым исходным кодом 

, которых следует избегать – что НЕ следует использовать.

В других сравнениях рекомендуются операционные системы, которые давно мертвы или больше не актуальны. Скорее всего, это связано с тем, что эти списки «10 лучших программ для брандмауэров Linux с открытым исходным кодом» копируются из года в год пользователями, не являющимися техническими специалистами, без фактического сравнения.

Некоторые операционные системы были заменены или просто перестали поддерживаться и стали неактуальными. Вам следует избегать таких систем из соображений безопасности — в этих дистрибутивах используются устаревшие и небезопасные ядра Linux/BSD, которые потенциально могут подвергнуть вас риску взлома системы безопасности.

1. IPCop – избегать любой ценой

Некогда популярная операционная система, включенная во все списки «10 лучших», такие как этот. Вам следует избегать его использования. Последний релиз был в 2015 году, а система по нынешним меркам древняя. Официальный сайт мертв, но исходный код все еще там. Не используйте его.

2. Smoothwall — давно мертв

Smoothwall заработал хорошую репутацию в первые дни, когда он конкурировал с IPCop. В 2014 году он замолчал. Операционная система Smoothwall была заброшена и больше не актуальна и небезопасна. Вам следует избегать этого. Сайт по-прежнему работает, но не обновлялся уже много лет.

3. DD-WRT — больше не конкурентоспособен

Это немного спорная рекомендация, потому что я знаю, что многие пользователи по-прежнему считают DD-WRT хорошим. Это определенно было в те времена. Сегодня DD-WRT все еще функционален и работает, но он не является отличным или инновационным. Он в основном не изменился с 2014 года и сильно отстал от других конкурентов с открытым исходным кодом. Сегодня есть много хороших альтернатив, таких как OpenWRT.

4. M0n0wall — устарела

M0n0wall — крестный отец самых успешных операционных систем, которые у нас есть сегодня. Это был один из самых инновационных проектов в свое время, но сейчас он устарел. Система не получала никаких обновлений с начала 2014 года и официально заброшена.
Мануэль Каспер, автор M0n0wall, рекомендует OPNSense в качестве преемника.

5. Tomato — не для новых роутеров

Tomato — это круто, и мы его любим, но это минимальная прошивка, предназначенная для прошивки готовых роутеров, таких как D-Link и Asus. Система по-прежнему актуальна, если вы хотите воскресить свое старое оборудование и сделать его снова работоспособным, но если вы собираете новый маршрутизатор, вы, вероятно, не захотите использовать на нем томат. Мы создаем мощные маршрутизаторы с нуля, поэтому обычно не используем эту систему (до сих пор ее любим).

6. Zeroshell — плохой выбор

Нам нравится концепция Zeroshell, и мы надеемся, что она добьется успеха, но сегодня система сильно отстает от своих конкурентов. Веб-интерфейс очень примитивен, а функциональность ограничена. Мы будем следить за этим и обновлять эту рекомендацию, если что-то изменится. Сайт не обновлялся с 2018 года, поэтому на данный момент этот проект не выглядит перспективным.


Не рекомендуется, поскольку они неудобны для пользователя.

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

Мы не рекомендуем перечисленные ниже системы, так как они требуют относительно высоких знаний для выполнения простых задач . В наши дни маршрутизаторы SOHO (для малых и домашних офисов) должны быть просты в настройке и иметь интуитивно понятный веб-интерфейс для управления. По этим причинам мы не рекомендуем следующие системы:

7. VyOS — без веб-интерфейса

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

8. OpenBSD и FreeBSD — используйте, только если у вас есть опыт работы с командной строкой более 10 лет.

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

Мы регулярно устанавливаем обе системы для клиентов, которые являются экспертами, такими как сетевые администраторы или разработчики программного обеспечения. Если вы не хотите возиться с внутренними компонентами системы и часами читать руководства, эта система не для вас. Он не предоставляет каких-либо инструментов веб-интерфейса или графического интерфейса пользователя для настройки. Это простейшая система на основе терминала.

9. Debian и Ubuntu – не используйте ОС общего назначения для маршрутизатора.

Эти системы не предназначены для маршрутизаторов. Это операционные системы общего назначения, и их не следует использовать в качестве маршрутизаторов. Как и в случае с OpenBSD и VyOS, вам придется настраивать все вручную без веб-интерфейса.


Не рекомендуется, поскольку они на самом деле не бесплатны

Есть также несколько систем, которые мы не рекомендуем, поскольку они не являются действительно бесплатными или открытыми исходными кодами .

10. Распутать — действительно ли это бесплатно, если ОС просит вас перейти на платную версию?

Untangle NG Firewall — действительно отличное программное обеспечение, которым пользуются многие довольные пользователи. Мы не рекомендуем это, потому что бесплатная версия очень ограничена, а операционная система постоянно побуждает пользователей перейти на платную подписку, чтобы разблокировать интересные функции. Самая дешевая лицензия стоит 50 долларов США в год.

11. Sophos — рыбка в корпоративном пруду

Дистрибутив Sophos «XG Firewall» имеет очень приятный пользовательский интерфейс и является бесплатным для домашнего использования. Как правило, мы не рекомендуем ее, потому что это не та система, которую продвигает сама Sophos. Веб-сайт Sophos, кажется, намеренно затрудняет поиск, а сообщество очень маленькое. Sophos, в целом, является компанией-разработчиком корпоративного программного обеспечения с одним продуктом для сообщества. Здесь нет духа Open Source.

12. Endian — вам действительно нужно заплатить, чтобы использовать его в полной мере

Endian на самом деле довольно крутой и бесплатный. Мы не рекомендуем это, потому что такие функции, как Wi-Fi, доступны только в платных подписках. Подобно Untangle, это хорошее программное обеспечение, но за него нужно платить — это исключает его из нашего рассмотрения.
 

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

Основные требования для выбора операционной системы брандмауэра

  1. Система должна активно поддерживаться и регулярно получать исправления безопасности.
  2. Система должна быть полностью бесплатной и с открытым исходным кодом
  3. Система должна иметь веб-интерфейс или графический интерфейс. Операционные системы командной строки дисквалифицированы.
  4. Система должна быть производительной и хорошо работать для обычного пользователя.

Эти базовые требования сокращают список рекомендаций до 4 систем. pfSense, OpenWRT, OPNSense и IPFire.

 

1. OPNsense — восходящая звезда

OPNSense — одна из самых быстро развивающихся операционных систем на современном рынке. Это простая в использовании, зрелая система с приятным пользовательским интерфейсом. OPNSense включает в себя большинство, если не все функции дорогих коммерческих корпоративных брандмауэров. Он имеет качество коммерческого продукта, будучи полностью бесплатным и с открытым исходным кодом.

Он включает в себя функции, недоступные в конкурирующих продуктах, например, поддержку WireGuard — новейшего и лучшего программного обеспечения VPN. OPNSense основан на pfSense/M0n0wall.

OPNSense предлагает еженедельные обновления безопасности, что делает его одним из самых безопасных решений на рынке. Каждый год выходит 2 основных выпуска операционной системы, которые привносят множество новых функций.

Это стабильное решение, которое мы часто рекомендуем пользователям, которые не уверены, какую операционную систему выбрать.

Преимущества

  • Лучший веб-интерфейс / графический интерфейс
  • Наиболее часто обновляемые
  • Поддержка функций, которых нет больше нигде

Недостатки

OPNSense основан на BSD, что в некоторых случаях является недостатком;

  • Поддержка Wi-Fi очень ограничена. Если вы планируете использовать Wi-Fi на своем маршрутизаторе, установите операционную систему на базе Linux.
  • BSD также ограничивает максимальную пропускную способность на соединение. Одно соединение в OPNSense не будет использовать всю мощность многоядерного процессора. (это часто не важно, если у вас нет гигабитного интернет-соединения)

 

2. OpenWRT — проверенный ветеран

OpenWRT — операционная система на базе Linux для маршрутизаторов, признанная практически всеми. Впервые он был выпущен в 2004 году, более 15 лет назад, и до сих пор активно развивается и поддерживается.

В отличие от IPFire, OpenWRT имеет большое количество дополнительных пакетов в своем репозитории. Вы можете настроить эту ОС бесчисленным множеством способов. Самое главное, что в OpenWRT есть драйверы для всего оборудования, поддерживаемого Linux. Это означает, что поддерживаются почти все беспроводные модемы, что делает эту ОС наиболее универсальной для создания точек доступа.

OpenWRT имеет самые низкие требования к оборудованию из всех рассмотренных нами операционных систем.

3. pfSense — самая популярная

pfSense на сегодняшний день является самой популярной операционной системой маршрутизатора. Это система на основе BSD, похожая на OPNSense, но с гораздо более длинной историей. pfSense была запущена в 2004 году и с тех пор стала самой известной платформой с открытым исходным кодом в отрасли.

pfSense имеет самую обширную документацию и самое большое сообщество, что делает ее хорошей операционной системой для начала. В Интернете есть тысячи руководств, форумов, блогов и видеороликов на YouTube, которые будут полезны, если вы застряли на чем-то.

Преимущества

  • Часто обновляется и считается надежной
  • Самое большое сообщество
  • Большое количество руководств/документации в Интернете

Недостатки

Подобно OPNSense, pfSense основан на BSD, поэтому:

  • Поддержка WiFi очень ограничена. Если вы планируете использовать Wi-Fi на своем маршрутизаторе, установите операционную систему на базе Linux.
  • BSD также ограничивает максимальную пропускную способность на соединение. Одно соединение в OPNSense не будет использовать всю мощность многоядерного процессора. (это часто не важно, если у вас нет гигабитного интернет-соединения)

 

4. IPFire – претендент

IPFire – это дистрибутив на базе Linux, предназначенный для брандмауэров и маршрутизаторов.
IPfire является продолжением IPCop (упомянутого выше), но переписан с нуля. Система регулярно обновляется и поддерживается, но в ней не так много функций, как в pfSense или OPNSense. Она соответствует всем нашим требованиям, но мы рекомендуем попробовать ее, только если другие 3 системы не удовлетворяют ваши потребности.

Короче говоря, если вы планируете использовать Wi-Fi в своем маршрутизаторе, вам следует выбрать OpenWRT . У него лучшая поддержка беспроводной связи из всех протестированных нами систем.

Если вы планируете использовать отдельную точку доступа и ищете лучшую операционную систему с открытым исходным кодом с точки зрения функций, документации, сообщества и простого в управлении пользовательского интерфейса, мы настоятельно рекомендуем попробовать OPNSense или pfSense .
 


Маршрутизатор — ArchWiki

Эта статья представляет собой руководство по превращению компьютера в интернет-шлюз/маршрутизатор. Для повышения безопасности он не должен запускаться любые службы , доступные для внешнего мира. В локальной сети запускайте только службы, специфичные для шлюза; особенно не запускайте httpd, ftpd, samba, nfsd и т. д., поскольку они принадлежат серверу в локальной сети, поскольку они представляют угрозу безопасности.

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

Примечание: По всей статье стажер0 и extern0 используются в качестве имен сетевых интерфейсов. Обоснование этого далее объясняется в разделе #Persistent именования интерфейсов.

Содержание

  • 1 Аппаратные требования
  • 2 Конфигурация сетевого интерфейса
    • 2.1 Постоянное именование интерфейса
    • 2.2 IP-конфигурация
      • 2.2.1 С netctl
      • 2.2.2 С systemd-networkd
    • 2.3 Подключение ADSL/PPPoE
      • 2.3.1 Конфигурация PPPoE
  • 3 DNS и DHCP
    • 3.1 DHCP через systemd-networkd
  • 4 Совместное использование подключения
    • 4. 1 Руководство
    • 4.2 С systemd-networkd
    • 4.3 Совместное использование соединения с береговой стеной
  • 5 советов по IPv6
    • 5.1 Уникальные локальные адреса
    • 5.2 Глобальные одноадресные адреса
      • 5.2.1 Статический префикс IPv6
      • 5.2.2 Получение префикса IPv6 через DHCPv6-PD
    • 5.3 Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)
  • 6 Опциональные дополнения
    • 6.1 УПНП
    • 6.2 Удаленное администрирование
    • 6.3 Кэширующий веб-прокси
    • 6.4 Сервер времени
    • 6.5 Фильтрация содержимого
    • 6.6 Формирование трафика
      • 6.6.1 Ограничение трафика с помощью береговой стенки
  • 7 См. также

Требования к оборудованию

  • Не менее 1 ГБ свободного места на жестком диске. Базовая установка займет около 500 МБ места, и если вы хотите использовать кеширующий веб-прокси, вам также потребуется зарезервировать место для кеша.
  • Не менее двух физических сетевых интерфейсов: шлюз соединяет две сети друг с другом (фактически маршрутизатор может быть выполнен с использованием одного физического интерфейса, лежащего в основе двух интерфейсов VLAN и подключенного к коммутатору с поддержкой VLAN, так называемому router-on- a-stick, но в этой статье она не рассматривается). Вам нужно будет подключить эти сети к одному и тому же физическому компьютеру. Один интерфейс должен подключаться к внешней сети, а другой — к внутренней сети.
  • Концентратор, коммутатор или кабель UTP: вам нужен способ подключения других компьютеров к шлюзу

Конфигурация сетевого интерфейса

Постоянное присвоение имен интерфейсам

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

  • intern0 : сетевая карта подключена к локальной сети. На реальном компьютере он, вероятно, будет иметь имя enp2s0, enp1s1 и т. д.
  • extern0 : сетевая карта подключена к внешней сети (или WAN). Вероятно, он будет иметь имя enp2s0, enp1s1 и т. д.

Вы можете изменить назначенные имена ваших устройств через файл конфигурации, используя Systemd-networkd, описанный в Systemd-networkd#Переименование интерфейса, или с помощью правила udev, следующего за конфигурацией сети. #Изменить имя интерфейса. Из-за того, что эта статья богата примерами, вы можете выбрать приведенные выше имена.

Конфигурация IP

С netctl

Теперь вам нужно настроить сетевые интерфейсы. Один из способов сделать это — использовать профили netctl. Вам нужно будет создать два профиля.

Примечание: Если вы будете подключаться к Интернету только через PPPoE (у вас есть один порт WAN), вам не нужно для настройки или включения профиля extern0. Подробнее о настройке PPPoE см. ниже.

 /etc/netctl/extern0-profile 
 Описание='Общий интерфейс.'
Интерфейс=extern0
Соединение = Ethernet
IP='dhcp' 
 /etc/netctl/intern0-profile 
 Описание='Частный интерфейс'
Интерфейс=интерн0
Соединение = Ethernet
IP='статический'
Address=('10.0.0.1/24') 

Примечание: В приведенном выше примере конфигурации предполагается полная подсеть. Если вы строите шлюз для небольшого количества людей, вам нужно будет изменить суффикс CIDR, чтобы он соответствовал меньшему диапазону. Например, /27 даст вам от 10.0.0.1 до 10.0.0.30 . Существует множество калькуляторов CIDR, онлайн и оффлайн, например sipcalc.

Совет: Используйте SkipNoCarrier=yes в профиле LAN, чтобы убедиться, что соединение включено, даже если гость в LAN еще не подключен.

Далее настраиваем интерфейсы с помощью netctl:

 # netctl включить профиль extern0
# netctl включить профиль intern0
 
С помощью systemd-networkd

Прямой и простой способ настройки сетевых интерфейсов — через systemd-networkd.

  • Применить конфигурацию DHCP-клиента для внешний0 интерфейс.
  • Применить статическую IP-конфигурацию для интерфейса intern0 .

См. systemd-networkd#Файлы конфигурации для получения сведений о конфигурации и обзора доступных параметров. Запустите networkctl reload , чтобы применить изменения конфигурации.

ADSL-соединение/PPPoE

Используя rp-pppoe, мы можем подключить ADSL-модем к интерфейсу extern0 брандмауэра, и Arch будет управлять соединением. Не забудьте поставить модем на 9Однако 0400 работает в режиме моста (либо полумост, либо RFC1483), в противном случае модем также будет действовать как маршрутизатор. Установите пакет rp-pppoe.

Следует отметить, что если вы используете только PPPoE для подключения к интернету (т.е. у вас нет другого WAN порта, кроме того, который подключается к вашему модему) вам не нужно настраивать extern0-профиль в качестве внешнего псевдоинтерфейса будет ppp0.

Конфигурация PPPoE

Для настройки соединения PPPoE можно использовать netctl. Для начала сделайте

 # cp /etc/netctl/examples/pppoe /etc/netctl/
 

и приступайте к редактированию. Для конфигурации интерфейса выберите интерфейс, который подключается к модему. Если вы подключаетесь к Интернету только через PPPoE, это, вероятно, будет extern0 . Заполните остальные поля информацией о вашем провайдере. См. раздел PPPoE на справочной странице netctl.profile(5) для получения дополнительной информации о полях.

DNS и DHCP

Мы будем использовать dnsmasq в качестве DNS-сервера и, при необходимости, в качестве демона DHCP для локальной сети. Он был специально разработан для небольших сайтов. Установите его с пакетом dnsmasq.

Dnsmasq можно настроить как DHCP-сервер с конфигурацией, аналогичной следующей:

 /etc/dnsmasq.conf 
 interface=intern0 # заставить dnsmasq прослушивать запросы только на intern0 (наша локальная сеть)
#no-dhcp-interface=intern0 # при желании отключите функцию DHCP dnsmasq и используйте вместо нее systemd-networkd
expand-hosts # добавить домен к простым именам хостов в /etc/hosts
domain=foo. bar # разрешить полное доменное имя для хостов DHCP (необходимо, когда
                  # используется "expand-hosts")
dhcp-range=10.0.0.2,10.0.0.255,255.255.255.0,1h # определяет DHCP-диапазон для локальной сети:
                  # от 10.0.0.2 до .255 с маской подсети 255.255.255.0 и
                  # Аренда DHCP на 1 час (измените на свои предпочтения)
 

Где-то ниже вы заметите, что вы также можете добавить «статическую» аренду DHCP, т.е. назначить IP-адрес MAC-адресу компьютера в локальной сети. Таким образом, всякий раз, когда компьютер запрашивает новую аренду, он получит тот же IP-адрес. Это очень полезно для сетевых серверов с записью DNS. Вы также можете запретить определенным MAC-адресам получать IP-адрес.

Теперь запустите и включите dnsmasq.service .

DHCP через systemd-networkd

Чтобы использовать systemd-networkd вместо dnsmasq в качестве DHCP-сервера, добавьте [DHCPServer] в файл конфигурации для интерфейса intern0 . Доступные параметры см. в разделе Systemd-networkd#[DHCPServer].

Общий доступ к соединению

Пришло время связать два сетевых интерфейса вместе.

Manual

Прежде всего, нам необходимо разрешить переход пакетов с одного сетевого интерфейса на другой. Для этого в ядре должна быть включена пересылка пакетов через sysctl(8). Дополнительные сведения см. в разделе Общий доступ к Интернету#Включить переадресацию пакетов.

Предполагая, что net.**forwarding установлен правильно (т. е. равен 1 ), пакеты по-прежнему необходимо правильно отправлять и получать. Следовательно, необходимо преобразовывать IP-адреса между внешней сетью и локальной подсетью. Техника называется маскировка под . Нам также нужны два правила переадресации, чтобы поддерживать соединение и включить переадресацию из локальной сети в глобальную. Для этой задачи мы будем использовать iptables.

Обратитесь к разделу Общий доступ к Интернету # Включить NAT, чтобы узнать, как замаскировать extern0 интерфейс и пакеты от intern0 до extern0 . После этого сохраните вновь добавленные правила через iptables-save -f /etc/iptables/iptables.rules , подробности см. в разделе iptables#Configuration and use.

Запустить и включить iptables.service . Теперь маршрутизатор должен быть полностью функциональным и направлять ваш трафик. Поскольку он обращен к общедоступному Интернету, имеет смысл дополнительно защитить его с помощью простого межсетевого экрана с отслеживанием состояния.

С помощью systemd-networkd

Измените или создайте ранее обсуждавшуюся конфигурацию сети для intern0 , включив параметр IMasquerade=ipv4 в раздел [Сеть] . Эта конфигурация неявно активирует пересылку пакетов на всех интерфейсах, см. systemd.network(5). См. Systemd-networkd#[DHCPServer] для примера конфигурации.

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

Подробное руководство по настройке см. в Shorewall.

Советы по IPv6

Эта статья или раздел являются кандидатами на слияние с IPv6.

Примечания: Объединить в основную статью, тема не специфична для конфигурации маршрутизатора . Формулировку, вероятно, следует изменить по ходу дела. (Обсудить в Talk: Router)

Полезное чтение: IPv6 и википедия: IPv6.

Уникальные локальные адреса

Вы можете использовать свой маршрутизатор в режиме IPv6, даже если у вас нет IPv6-адреса от вашего интернет-провайдера. Если вы не отключите IPv6, всем интерфейсам должны были быть назначены уникальные fe80::/10 адрес.

Эта статья или раздел нуждается в дополнении.

Причина: Добавьте автономный метод для создания ULA. (Обсудить в Talk:Маршрутизатор)

Для внутренней сети зарезервирован блок fc00::/7 . Эти адреса гарантированно уникальны и не маршрутизируются из открытого Интернета. Адреса, принадлежащие блоку fc00::/7 , называются уникальными локальными адресами. Для начала создайте блок ULA/64 для использования в вашей сети. Для этого примера мы будем использовать fd00:aaaa:bbbb:cccc::/64 . Во-первых, мы должны назначить статический IPv6 на внутреннем интерфейсе. Измените созданный выше профиль intern0-profile , включив в него следующую строку:

 Address6=('fd00:aaaa:bbbb:cccc::1/64')
 

Это добавит ULA во внутренний интерфейс. Что касается маршрутизатора, это все, что вам нужно настроить.

Глобальные одноадресные адреса

Если ваш интернет-провайдер или глобальная сеть имеют доступ к Интернету IPv6, вы можете дополнительно назначить глобальные адреса ссылок для вашего маршрутизатора и распространить их через SLAAC во внутреннюю сеть. Глобальный префикс индивидуальной рассылки обычно равен статический или предоставляется через делегирование префикса .

Статический префикс IPv6

Если ваш интернет-провайдер предоставил вам статический префикс, отредактируйте /etc/netctl/extern0-profile и просто добавьте IPv6 и префикс IPv6 (обычно /64), которые вы предоставили

 Адрес6=('2002:1:2:3:4:5:6:7/64')
 

Вы можете использовать это в дополнение к адресу ULA, описанному выше.

Получение префикса IPv6 через DHCPv6-PD

Если ваш интернет-провайдер обрабатывает IPv6 через делегирование префикса, вы можете следовать инструкциям делегирования префикса IPv6# (DHCPv6-PD) по правильной настройке маршрутизатора. Следуя соглашениям этой статьи, интерфейс WAN — это extern0 (или ppp0 , если вы подключаетесь через PPPoE) и интерфейс LAN intern0 .

Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)

Чтобы правильно раздавать IPv6 сетевым клиентам, нам потребуется использовать рекламный демон. Следуйте подробностям основной статьи IPv6 о том, как настроить radvd . В соответствии с соглашением, принятым в этом руководстве, интерфейс, обращенный к локальной сети, имеет вид intern0 . Вы можете объявить все префиксы или выбрать, какие префиксы будут назначены для локальной сети.

Дополнительные дополнения

UPnP

Эта статья или раздел нуждается в дополнении.

Причина: Укажите альтернативный протокол переадресации портов NAT-PMP, поддерживаемый miniupnpd. (Обсудить в Talk:Router)

Приведенная выше конфигурация Shorewall не включает поддержку UPnP. Использование UPnP не рекомендуется, так как это может сделать шлюз уязвимым для атак из локальной сети. Однако некоторые приложения требуют этого для правильной работы.

Чтобы включить UPnP на маршрутизаторе, необходимо установить демон протокола UPnP Internet Gateway Device (IGD). Чтобы получить его, установите пакет miniupnpd.

Дополнительные сведения см. в руководстве Shorewall по UPnP.

Удаленное администрирование

OpenSSH можно использовать для удаленного администрирования маршрутизатора. Это полезно для запуска в автономном режиме (без монитора или устройств ввода).

Кэширующий веб-прокси

См. Squid для настройки веб-прокси для ускорения просмотра и/или добавления дополнительного уровня безопасности.

Сервер времени

Сведения об использовании маршрутизатора в качестве сервера времени см. в разделе Системное время#Синхронизация времени для доступных реализаций сервера протокола сетевого времени (NTP).

Затем настройте Shorewall или iptables, чтобы разрешить входящий и исходящий трафик NTP.

Фильтрация контента

Установите и настройте DansGuardian или Privoxy, если вам нужно решение для фильтрации контента.

Формирование трафика

Формирование трафика очень полезно, особенно когда вы не один в локальной сети. Идея состоит в том, чтобы назначить приоритет разным типам трафика. Интерактивный трафик (ssh, онлайн-игры), вероятно, требует наивысшего приоритета, в то время как трафик P2P может иметь самый низкий приоритет. Тогда есть все, что между ними.

Ограничение трафика с помощью береговой стены

См. Shorewall#Формирование трафика.

См. также

  • Простой межсетевой экран с отслеживанием состояния
  • Совместное использование Интернета

Маршрутизатор — ArchWiki

Эта статья представляет собой руководство по превращению компьютера в интернет-шлюз/маршрутизатор. Чтобы усилить свою безопасность, он не должен запускать какие-либо службы , доступные для внешнего мира. В локальной сети запускайте только службы, специфичные для шлюза; особенно не запускайте httpd, ftpd, samba, nfsd и т. д., поскольку они принадлежат серверу в локальной сети, поскольку они представляют угрозу безопасности.

В этой статье не делается попытка показать, как установить совместное соединение между двумя машинами с помощью перекрестных кабелей. Простое решение для совместного доступа к Интернету см. в разделе Общий доступ к Интернету.

Примечание: На протяжении всей статьи в качестве имен сетевых интерфейсов используются intern0 и extern0 . Обоснование этого далее объясняется в разделе #Persistent именования интерфейсов.

Содержание

  • 1 Аппаратные требования
  • 2 Конфигурация сетевого интерфейса
    • 2.1 Постоянное именование интерфейса
    • 2.2 IP-конфигурация
      • 2. 2.1 С netctl
      • 2.2.2 С systemd-networkd
    • 2.3 Подключение ADSL/PPPoE
      • 2.3.1 Конфигурация PPPoE
  • 3 DNS и DHCP
    • 3.1 DHCP через systemd-networkd
  • 4 Совместное использование подключения
    • 4.1 Руководство
    • 4.2 С systemd-networkd
    • 4.3 Совместное использование соединения с береговой стеной
  • 5 советов по IPv6
    • 5.1 Уникальные локальные адреса
    • 5.2 Глобальные одноадресные адреса
      • 5.2.1 Статический префикс IPv6
      • 5.2.2 Получение префикса IPv6 через DHCPv6-PD
    • 5.3 Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)
  • 6 Опциональные дополнения
    • 6.1 УПНП
    • 6.2 Удаленное администрирование
    • 6.3 Кэширующий веб-прокси
    • 6.4 Сервер времени
    • 6.5 Фильтрация содержимого
    • 6. 6 Формирование трафика
      • 6.6.1 Ограничение трафика с помощью береговой стенки
  • 7 См. также

Требования к оборудованию

  • Не менее 1 ГБ свободного места на жестком диске. Базовая установка займет около 500 МБ места, и если вы хотите использовать кеширующий веб-прокси, вам также потребуется зарезервировать место для кеша.
  • Не менее двух физических сетевых интерфейсов: шлюз соединяет две сети друг с другом (фактически маршрутизатор может быть выполнен с использованием одного физического интерфейса, лежащего в основе двух интерфейсов VLAN и подключенного к коммутатору с поддержкой VLAN, так называемому router-on- a-stick, но в этой статье она не рассматривается). Вам нужно будет подключить эти сети к одному и тому же физическому компьютеру. Один интерфейс должен подключаться к внешней сети, а другой — к внутренней сети.
  • Концентратор, коммутатор или кабель UTP: вам нужен способ подключения других компьютеров к шлюзу

Конфигурация сетевого интерфейса

Постоянное присвоение имен интерфейсам

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

  • intern0 : сетевая карта подключена к локальной сети. На реальном компьютере он, вероятно, будет иметь имя enp2s0, enp1s1 и т. д.
  • extern0 : сетевая карта подключена к внешней сети (или WAN). Вероятно, он будет иметь имя enp2s0, enp1s1 и т. д.

Вы можете изменить назначенные имена ваших устройств через файл конфигурации, используя Systemd-networkd, описанный в Systemd-networkd#Переименование интерфейса, или с помощью правила udev, следующего за конфигурацией сети. #Изменить имя интерфейса. Из-за того, что эта статья богата примерами, вы можете выбрать приведенные выше имена.

Конфигурация IP

С netctl

Теперь вам нужно настроить сетевые интерфейсы. Один из способов сделать это — использовать профили netctl. Вам нужно будет создать два профиля.

Примечание: Если вы будете подключаться к Интернету только через PPPoE (у вас есть один порт WAN), вам не нужно для настройки или включения профиля extern0. Подробнее о настройке PPPoE см. ниже.

 /etc/netctl/extern0-profile 
 Описание='Общий интерфейс.'
Интерфейс=extern0
Соединение = Ethernet
IP='dhcp' 
 /etc/netctl/intern0-profile 
 Описание='Частный интерфейс'
Интерфейс=интерн0
Соединение = Ethernet
IP='статический'
Address=('10.0.0.1/24') 

Примечание: В приведенном выше примере конфигурации предполагается полная подсеть. Если вы строите шлюз для небольшого количества людей, вам нужно будет изменить суффикс CIDR, чтобы он соответствовал меньшему диапазону. Например, /27 даст вам от 10.0.0.1 до 10.0.0.30 . Существует множество калькуляторов CIDR, онлайн и оффлайн, например sipcalc.

Совет: Используйте SkipNoCarrier=yes в профиле LAN, чтобы убедиться, что соединение включено, даже если гость в LAN еще не подключен.

Далее настраиваем интерфейсы с помощью netctl:

 # netctl включить профиль extern0
# netctl включить профиль intern0
 
С помощью systemd-networkd

Прямой и простой способ настройки сетевых интерфейсов — через systemd-networkd.

  • Применить конфигурацию DHCP-клиента для внешний0 интерфейс.
  • Применить статическую IP-конфигурацию для интерфейса intern0 .

См. systemd-networkd#Файлы конфигурации для получения сведений о конфигурации и обзора доступных параметров. Запустите networkctl reload , чтобы применить изменения конфигурации.

ADSL-соединение/PPPoE

Используя rp-pppoe, мы можем подключить ADSL-модем к интерфейсу extern0 брандмауэра, и Arch будет управлять соединением. Не забудьте поставить модем на 9Однако 0400 работает в режиме моста (либо полумост, либо RFC1483), в противном случае модем также будет действовать как маршрутизатор. Установите пакет rp-pppoe.

Следует отметить, что если вы используете только PPPoE для подключения к интернету (т.е. у вас нет другого WAN порта, кроме того, который подключается к вашему модему) вам не нужно настраивать extern0-профиль в качестве внешнего псевдоинтерфейса будет ppp0.

Конфигурация PPPoE

Для настройки соединения PPPoE можно использовать netctl. Для начала сделайте

 # cp /etc/netctl/examples/pppoe /etc/netctl/
 

и приступайте к редактированию. Для конфигурации интерфейса выберите интерфейс, который подключается к модему. Если вы подключаетесь к Интернету только через PPPoE, это, вероятно, будет extern0 . Заполните остальные поля информацией о вашем провайдере. См. раздел PPPoE на справочной странице netctl.profile(5) для получения дополнительной информации о полях.

DNS и DHCP

Мы будем использовать dnsmasq в качестве DNS-сервера и, при необходимости, в качестве демона DHCP для локальной сети. Он был специально разработан для небольших сайтов. Установите его с пакетом dnsmasq.

Dnsmasq можно настроить как DHCP-сервер с конфигурацией, аналогичной следующей:

 /etc/dnsmasq.conf 
 interface=intern0 # заставить dnsmasq прослушивать запросы только на intern0 (наша локальная сеть)
#no-dhcp-interface=intern0 # при желании отключите функцию DHCP dnsmasq и используйте вместо нее systemd-networkd
expand-hosts # добавить домен к простым именам хостов в /etc/hosts
domain=foo.bar # разрешить полное доменное имя для хостов DHCP (необходимо, когда
                  # используется "expand-hosts")
dhcp-range=10.0.0.2,10.0.0.255,255.255.255.0,1h # определяет DHCP-диапазон для локальной сети:
                  # от 10.0.0.2 до .255 с маской подсети 255.255.255.0 и
                  # Аренда DHCP на 1 час (измените на свои предпочтения)
 

Где-то ниже вы заметите, что вы также можете добавить «статическую» аренду DHCP, т. е. назначить IP-адрес MAC-адресу компьютера в локальной сети. Таким образом, всякий раз, когда компьютер запрашивает новую аренду, он получит тот же IP-адрес. Это очень полезно для сетевых серверов с записью DNS. Вы также можете запретить определенным MAC-адресам получать IP-адрес.

Теперь запустите и включите dnsmasq.service .

DHCP через systemd-networkd

Чтобы использовать systemd-networkd вместо dnsmasq в качестве DHCP-сервера, добавьте [DHCPServer] в файл конфигурации для интерфейса intern0 . Доступные параметры см. в разделе Systemd-networkd#[DHCPServer].

Общий доступ к соединению

Пришло время связать два сетевых интерфейса вместе.

Manual

Прежде всего, нам необходимо разрешить переход пакетов с одного сетевого интерфейса на другой. Для этого в ядре должна быть включена пересылка пакетов через sysctl(8). Дополнительные сведения см. в разделе Общий доступ к Интернету#Включить переадресацию пакетов.

Предполагая, что net.**forwarding установлен правильно (т. е. равен 1 ), пакеты по-прежнему необходимо правильно отправлять и получать. Следовательно, необходимо преобразовывать IP-адреса между внешней сетью и локальной подсетью. Техника называется маскировка под . Нам также нужны два правила переадресации, чтобы поддерживать соединение и включить переадресацию из локальной сети в глобальную. Для этой задачи мы будем использовать iptables.

Обратитесь к разделу Общий доступ к Интернету # Включить NAT, чтобы узнать, как замаскировать extern0 интерфейс и пакеты от intern0 до extern0 . После этого сохраните вновь добавленные правила через iptables-save -f /etc/iptables/iptables.rules , подробности см. в разделе iptables#Configuration and use.

Запустить и включить iptables.service . Теперь маршрутизатор должен быть полностью функциональным и направлять ваш трафик. Поскольку он обращен к общедоступному Интернету, имеет смысл дополнительно защитить его с помощью простого межсетевого экрана с отслеживанием состояния.

С помощью systemd-networkd

Измените или создайте ранее обсуждавшуюся конфигурацию сети для intern0 , включив параметр IMasquerade=ipv4 в раздел [Сеть] . Эта конфигурация неявно активирует пересылку пакетов на всех интерфейсах, см. systemd.network(5). См. Systemd-networkd#[DHCPServer] для примера конфигурации.

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

Подробное руководство по настройке см. в Shorewall.

Советы по IPv6

Эта статья или раздел являются кандидатами на слияние с IPv6.

Примечания: Объединить в основную статью, тема не специфична для конфигурации маршрутизатора . Формулировку, вероятно, следует изменить по ходу дела. (Обсудить в Talk: Router)

Полезное чтение: IPv6 и википедия: IPv6.

Уникальные локальные адреса

Вы можете использовать свой маршрутизатор в режиме IPv6, даже если у вас нет IPv6-адреса от вашего интернет-провайдера. Если вы не отключите IPv6, всем интерфейсам должны были быть назначены уникальные fe80::/10 адрес.

Эта статья или раздел нуждается в дополнении.

Причина: Добавьте автономный метод для создания ULA. (Обсудить в Talk:Маршрутизатор)

Для внутренней сети зарезервирован блок fc00::/7 . Эти адреса гарантированно уникальны и не маршрутизируются из открытого Интернета. Адреса, принадлежащие блоку fc00::/7 , называются уникальными локальными адресами. Для начала создайте блок ULA/64 для использования в вашей сети. Для этого примера мы будем использовать fd00:aaaa:bbbb:cccc::/64 . Во-первых, мы должны назначить статический IPv6 на внутреннем интерфейсе. Измените созданный выше профиль intern0-profile , включив в него следующую строку:

 Address6=('fd00:aaaa:bbbb:cccc::1/64')
 

Это добавит ULA во внутренний интерфейс. Что касается маршрутизатора, это все, что вам нужно настроить.

Глобальные одноадресные адреса

Если ваш интернет-провайдер или глобальная сеть имеют доступ к Интернету IPv6, вы можете дополнительно назначить глобальные адреса ссылок для вашего маршрутизатора и распространить их через SLAAC во внутреннюю сеть. Глобальный префикс индивидуальной рассылки обычно равен статический или предоставляется через делегирование префикса .

Статический префикс IPv6

Если ваш интернет-провайдер предоставил вам статический префикс, отредактируйте /etc/netctl/extern0-profile и просто добавьте IPv6 и префикс IPv6 (обычно /64), которые вы предоставили

 Адрес6=('2002:1:2:3:4:5:6:7/64')
 

Вы можете использовать это в дополнение к адресу ULA, описанному выше.

Получение префикса IPv6 через DHCPv6-PD

Если ваш интернет-провайдер обрабатывает IPv6 через делегирование префикса, вы можете следовать инструкциям делегирования префикса IPv6# (DHCPv6-PD) по правильной настройке маршрутизатора. Следуя соглашениям этой статьи, интерфейс WAN — это extern0 (или ppp0 , если вы подключаетесь через PPPoE) и интерфейс LAN intern0 .

Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)

Чтобы правильно раздавать IPv6 сетевым клиентам, нам потребуется использовать рекламный демон. Следуйте подробностям основной статьи IPv6 о том, как настроить radvd . В соответствии с соглашением, принятым в этом руководстве, интерфейс, обращенный к локальной сети, имеет вид intern0 . Вы можете объявить все префиксы или выбрать, какие префиксы будут назначены для локальной сети.

Дополнительные дополнения

UPnP

Эта статья или раздел нуждается в дополнении.

Причина: Укажите альтернативный протокол переадресации портов NAT-PMP, поддерживаемый miniupnpd. (Обсудить в Talk:Router)

Приведенная выше конфигурация Shorewall не включает поддержку UPnP. Использование UPnP не рекомендуется, так как это может сделать шлюз уязвимым для атак из локальной сети. Однако некоторые приложения требуют этого для правильной работы.

Чтобы включить UPnP на маршрутизаторе, необходимо установить демон протокола UPnP Internet Gateway Device (IGD). Чтобы получить его, установите пакет miniupnpd.

Дополнительные сведения см. в руководстве Shorewall по UPnP.

Удаленное администрирование

OpenSSH можно использовать для удаленного администрирования маршрутизатора. Это полезно для запуска в автономном режиме (без монитора или устройств ввода).

Кэширующий веб-прокси

См. Squid для настройки веб-прокси для ускорения просмотра и/или добавления дополнительного уровня безопасности.

Сервер времени

Сведения об использовании маршрутизатора в качестве сервера времени см. в разделе Системное время#Синхронизация времени для доступных реализаций сервера протокола сетевого времени (NTP).

Затем настройте Shorewall или iptables, чтобы разрешить входящий и исходящий трафик NTP.

Фильтрация контента

Установите и настройте DansGuardian или Privoxy, если вам нужно решение для фильтрации контента.

Формирование трафика

Формирование трафика очень полезно, особенно когда вы не один в локальной сети. Идея состоит в том, чтобы назначить приоритет разным типам трафика. Интерактивный трафик (ssh, онлайн-игры), вероятно, требует наивысшего приоритета, в то время как трафик P2P может иметь самый низкий приоритет. Тогда есть все, что между ними.

Ограничение трафика с помощью береговой стены

См. Shorewall#Формирование трафика.

См. также

  • Простой межсетевой экран с отслеживанием состояния
  • Совместное использование Интернета

Маршрутизатор — ArchWiki

Эта статья представляет собой руководство по превращению компьютера в интернет-шлюз/маршрутизатор. Чтобы усилить свою безопасность, он не должен запускать какие-либо службы , доступные для внешнего мира. В локальной сети запускайте только службы, специфичные для шлюза; особенно не запускайте httpd, ftpd, samba, nfsd и т. д., поскольку они принадлежат серверу в локальной сети, поскольку они представляют угрозу безопасности.

В этой статье не делается попытка показать, как установить совместное соединение между двумя машинами с помощью перекрестных кабелей. Простое решение для совместного доступа к Интернету см. в разделе Общий доступ к Интернету.

Примечание: На протяжении всей статьи в качестве имен сетевых интерфейсов используются intern0 и extern0 . Обоснование этого далее объясняется в разделе #Persistent именования интерфейсов.

Содержание

  • 1 Аппаратные требования
  • 2 Конфигурация сетевого интерфейса
    • 2.1 Постоянное именование интерфейса
    • 2.2 IP-конфигурация
      • 2.2.1 С netctl
      • 2.2.2 С systemd-networkd
    • 2.3 Подключение ADSL/PPPoE
      • 2. 3.1 Конфигурация PPPoE
  • 3 DNS и DHCP
    • 3.1 DHCP через systemd-networkd
  • 4 Совместное использование подключения
    • 4.1 Руководство
    • 4.2 С systemd-networkd
    • 4.3 Совместное использование соединения с береговой стеной
  • 5 советов по IPv6
    • 5.1 Уникальные локальные адреса
    • 5.2 Глобальные одноадресные адреса
      • 5.2.1 Статический префикс IPv6
      • 5.2.2 Получение префикса IPv6 через DHCPv6-PD
    • 5.3 Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)
  • 6 Опциональные дополнения
    • 6.1 УПНП
    • 6.2 Удаленное администрирование
    • 6.3 Кэширующий веб-прокси
    • 6.4 Сервер времени
    • 6.5 Фильтрация содержимого
    • 6.6 Формирование трафика
      • 6.6.1 Ограничение трафика с помощью береговой стенки
  • 7 См. также

Требования к оборудованию

  • Не менее 1 ГБ свободного места на жестком диске. Базовая установка займет около 500 МБ места, и если вы хотите использовать кеширующий веб-прокси, вам также потребуется зарезервировать место для кеша.
  • Не менее двух физических сетевых интерфейсов: шлюз соединяет две сети друг с другом (фактически маршрутизатор может быть выполнен с использованием одного физического интерфейса, лежащего в основе двух интерфейсов VLAN и подключенного к коммутатору с поддержкой VLAN, так называемому router-on- a-stick, но в этой статье она не рассматривается). Вам нужно будет подключить эти сети к одному и тому же физическому компьютеру. Один интерфейс должен подключаться к внешней сети, а другой — к внутренней сети.
  • Концентратор, коммутатор или кабель UTP: вам нужен способ подключения других компьютеров к шлюзу

Конфигурация сетевого интерфейса

Постоянное присвоение имен интерфейсам

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

  • intern0 : сетевая карта подключена к локальной сети. На реальном компьютере он, вероятно, будет иметь имя enp2s0, enp1s1 и т. д.
  • extern0 : сетевая карта подключена к внешней сети (или WAN). Вероятно, он будет иметь имя enp2s0, enp1s1 и т. д.

Вы можете изменить назначенные имена ваших устройств через файл конфигурации, используя Systemd-networkd, описанный в Systemd-networkd#Переименование интерфейса, или с помощью правила udev, следующего за конфигурацией сети. #Изменить имя интерфейса. Из-за того, что эта статья богата примерами, вы можете выбрать приведенные выше имена.

Конфигурация IP

С netctl

Теперь вам нужно настроить сетевые интерфейсы. Один из способов сделать это — использовать профили netctl. Вам нужно будет создать два профиля.

Примечание: Если вы будете подключаться к Интернету только через PPPoE (у вас есть один порт WAN), вам не нужно для настройки или включения профиля extern0. Подробнее о настройке PPPoE см. ниже.

 /etc/netctl/extern0-profile 
 Описание='Общий интерфейс.'
Интерфейс=extern0
Соединение = Ethernet
IP='dhcp' 
 /etc/netctl/intern0-profile 
 Описание='Частный интерфейс'
Интерфейс=интерн0
Соединение = Ethernet
IP='статический'
Address=('10.0.0.1/24') 

Примечание: В приведенном выше примере конфигурации предполагается полная подсеть. Если вы строите шлюз для небольшого количества людей, вам нужно будет изменить суффикс CIDR, чтобы он соответствовал меньшему диапазону. Например, /27 даст вам от 10.0.0.1 до 10.0.0.30 . Существует множество калькуляторов CIDR, онлайн и оффлайн, например sipcalc.

Совет: Используйте SkipNoCarrier=yes в профиле LAN, чтобы убедиться, что соединение включено, даже если гость в LAN еще не подключен.

Далее настраиваем интерфейсы с помощью netctl:

 # netctl включить профиль extern0
# netctl включить профиль intern0
 
С помощью systemd-networkd

Прямой и простой способ настройки сетевых интерфейсов — через systemd-networkd.

  • Применить конфигурацию DHCP-клиента для внешний0 интерфейс.
  • Применить статическую IP-конфигурацию для интерфейса intern0 .

См. systemd-networkd#Файлы конфигурации для получения сведений о конфигурации и обзора доступных параметров. Запустите networkctl reload , чтобы применить изменения конфигурации.

ADSL-соединение/PPPoE

Используя rp-pppoe, мы можем подключить ADSL-модем к интерфейсу extern0 брандмауэра, и Arch будет управлять соединением. Не забудьте поставить модем на 9Однако 0400 работает в режиме моста (либо полумост, либо RFC1483), в противном случае модем также будет действовать как маршрутизатор. Установите пакет rp-pppoe.

Следует отметить, что если вы используете только PPPoE для подключения к интернету (т.е. у вас нет другого WAN порта, кроме того, который подключается к вашему модему) вам не нужно настраивать extern0-профиль в качестве внешнего псевдоинтерфейса будет ppp0.

Конфигурация PPPoE

Для настройки соединения PPPoE можно использовать netctl. Для начала сделайте

 # cp /etc/netctl/examples/pppoe /etc/netctl/
 

и приступайте к редактированию. Для конфигурации интерфейса выберите интерфейс, который подключается к модему. Если вы подключаетесь к Интернету только через PPPoE, это, вероятно, будет extern0 . Заполните остальные поля информацией о вашем провайдере. См. раздел PPPoE на справочной странице netctl.profile(5) для получения дополнительной информации о полях.

DNS и DHCP

Мы будем использовать dnsmasq в качестве DNS-сервера и, при необходимости, в качестве демона DHCP для локальной сети. Он был специально разработан для небольших сайтов. Установите его с пакетом dnsmasq.

Dnsmasq можно настроить как DHCP-сервер с конфигурацией, аналогичной следующей:

 /etc/dnsmasq.conf 
 interface=intern0 # заставить dnsmasq прослушивать запросы только на intern0 (наша локальная сеть)
#no-dhcp-interface=intern0 # при желании отключите функцию DHCP dnsmasq и используйте вместо нее systemd-networkd
expand-hosts # добавить домен к простым именам хостов в /etc/hosts
domain=foo.bar # разрешить полное доменное имя для хостов DHCP (необходимо, когда
                  # используется "expand-hosts")
dhcp-range=10.0.0.2,10.0.0.255,255.255.255.0,1h # определяет DHCP-диапазон для локальной сети:
                  # от 10.0.0.2 до .255 с маской подсети 255.255.255.0 и
                  # Аренда DHCP на 1 час (измените на свои предпочтения)
 

Где-то ниже вы заметите, что вы также можете добавить «статическую» аренду DHCP, т. е. назначить IP-адрес MAC-адресу компьютера в локальной сети. Таким образом, всякий раз, когда компьютер запрашивает новую аренду, он получит тот же IP-адрес. Это очень полезно для сетевых серверов с записью DNS. Вы также можете запретить определенным MAC-адресам получать IP-адрес.

Теперь запустите и включите dnsmasq.service .

DHCP через systemd-networkd

Чтобы использовать systemd-networkd вместо dnsmasq в качестве DHCP-сервера, добавьте [DHCPServer] в файл конфигурации для интерфейса intern0 . Доступные параметры см. в разделе Systemd-networkd#[DHCPServer].

Общий доступ к соединению

Пришло время связать два сетевых интерфейса вместе.

Manual

Прежде всего, нам необходимо разрешить переход пакетов с одного сетевого интерфейса на другой. Для этого в ядре должна быть включена пересылка пакетов через sysctl(8). Дополнительные сведения см. в разделе Общий доступ к Интернету#Включить переадресацию пакетов.

Предполагая, что net.**forwarding установлен правильно (т. е. равен 1 ), пакеты по-прежнему необходимо правильно отправлять и получать. Следовательно, необходимо преобразовывать IP-адреса между внешней сетью и локальной подсетью. Техника называется маскировка под . Нам также нужны два правила переадресации, чтобы поддерживать соединение и включить переадресацию из локальной сети в глобальную. Для этой задачи мы будем использовать iptables.

Обратитесь к разделу Общий доступ к Интернету # Включить NAT, чтобы узнать, как замаскировать extern0 интерфейс и пакеты от intern0 до extern0 . После этого сохраните вновь добавленные правила через iptables-save -f /etc/iptables/iptables.rules , подробности см. в разделе iptables#Configuration and use.

Запустить и включить iptables.service . Теперь маршрутизатор должен быть полностью функциональным и направлять ваш трафик. Поскольку он обращен к общедоступному Интернету, имеет смысл дополнительно защитить его с помощью простого межсетевого экрана с отслеживанием состояния.

С помощью systemd-networkd

Измените или создайте ранее обсуждавшуюся конфигурацию сети для intern0 , включив параметр IMasquerade=ipv4 в раздел [Сеть] . Эта конфигурация неявно активирует пересылку пакетов на всех интерфейсах, см. systemd.network(5). См. Systemd-networkd#[DHCPServer] для примера конфигурации.

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

Подробное руководство по настройке см. в Shorewall.

Советы по IPv6

Эта статья или раздел являются кандидатами на слияние с IPv6.

Примечания: Объединить в основную статью, тема не специфична для конфигурации маршрутизатора . Формулировку, вероятно, следует изменить по ходу дела. (Обсудить в Talk: Router)

Полезное чтение: IPv6 и википедия: IPv6.

Уникальные локальные адреса

Вы можете использовать свой маршрутизатор в режиме IPv6, даже если у вас нет IPv6-адреса от вашего интернет-провайдера. Если вы не отключите IPv6, всем интерфейсам должны были быть назначены уникальные fe80::/10 адрес.

Эта статья или раздел нуждается в дополнении.

Причина: Добавьте автономный метод для создания ULA. (Обсудить в Talk:Маршрутизатор)

Для внутренней сети зарезервирован блок fc00::/7 . Эти адреса гарантированно уникальны и не маршрутизируются из открытого Интернета. Адреса, принадлежащие блоку fc00::/7 , называются уникальными локальными адресами. Для начала создайте блок ULA/64 для использования в вашей сети. Для этого примера мы будем использовать fd00:aaaa:bbbb:cccc::/64 . Во-первых, мы должны назначить статический IPv6 на внутреннем интерфейсе. Измените созданный выше профиль intern0-profile , включив в него следующую строку:

 Address6=('fd00:aaaa:bbbb:cccc::1/64')
 

Это добавит ULA во внутренний интерфейс. Что касается маршрутизатора, это все, что вам нужно настроить.

Глобальные одноадресные адреса

Если ваш интернет-провайдер или глобальная сеть имеют доступ к Интернету IPv6, вы можете дополнительно назначить глобальные адреса ссылок для вашего маршрутизатора и распространить их через SLAAC во внутреннюю сеть. Глобальный префикс индивидуальной рассылки обычно равен статический или предоставляется через делегирование префикса .

Статический префикс IPv6

Если ваш интернет-провайдер предоставил вам статический префикс, отредактируйте /etc/netctl/extern0-profile и просто добавьте IPv6 и префикс IPv6 (обычно /64), которые вы предоставили

 Адрес6=('2002:1:2:3:4:5:6:7/64')
 

Вы можете использовать это в дополнение к адресу ULA, описанному выше.

Получение префикса IPv6 через DHCPv6-PD

Если ваш интернет-провайдер обрабатывает IPv6 через делегирование префикса, вы можете следовать инструкциям делегирования префикса IPv6# (DHCPv6-PD) по правильной настройке маршрутизатора. Следуя соглашениям этой статьи, интерфейс WAN — это extern0 (или ppp0 , если вы подключаетесь через PPPoE) и интерфейс LAN intern0 .

Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)

Чтобы правильно раздавать IPv6 сетевым клиентам, нам потребуется использовать рекламный демон. Следуйте подробностям основной статьи IPv6 о том, как настроить radvd . В соответствии с соглашением, принятым в этом руководстве, интерфейс, обращенный к локальной сети, имеет вид intern0 . Вы можете объявить все префиксы или выбрать, какие префиксы будут назначены для локальной сети.

Дополнительные дополнения

UPnP

Эта статья или раздел нуждается в дополнении.

Причина: Укажите альтернативный протокол переадресации портов NAT-PMP, поддерживаемый miniupnpd. (Обсудить в Talk:Router)

Приведенная выше конфигурация Shorewall не включает поддержку UPnP. Использование UPnP не рекомендуется, так как это может сделать шлюз уязвимым для атак из локальной сети. Однако некоторые приложения требуют этого для правильной работы.

Чтобы включить UPnP на маршрутизаторе, необходимо установить демон протокола UPnP Internet Gateway Device (IGD). Чтобы получить его, установите пакет miniupnpd.

Дополнительные сведения см. в руководстве Shorewall по UPnP.

Удаленное администрирование

OpenSSH можно использовать для удаленного администрирования маршрутизатора. Это полезно для запуска в автономном режиме (без монитора или устройств ввода).

Кэширующий веб-прокси

См. Squid для настройки веб-прокси для ускорения просмотра и/или добавления дополнительного уровня безопасности.

Сервер времени

Сведения об использовании маршрутизатора в качестве сервера времени см. в разделе Системное время#Синхронизация времени для доступных реализаций сервера протокола сетевого времени (NTP).

Затем настройте Shorewall или iptables, чтобы разрешить входящий и исходящий трафик NTP.

Фильтрация контента

Установите и настройте DansGuardian или Privoxy, если вам нужно решение для фильтрации контента.

Формирование трафика

Формирование трафика очень полезно, особенно когда вы не один в локальной сети. Идея состоит в том, чтобы назначить приоритет разным типам трафика. Интерактивный трафик (ssh, онлайн-игры), вероятно, требует наивысшего приоритета, в то время как трафик P2P может иметь самый низкий приоритет. Тогда есть все, что между ними.

Ограничение трафика с помощью береговой стены

См. Shorewall#Формирование трафика.

См. также

  • Простой межсетевой экран с отслеживанием состояния
  • Совместное использование Интернета

Маршрутизатор — ArchWiki

Эта статья представляет собой руководство по превращению компьютера в интернет-шлюз/маршрутизатор. Чтобы усилить свою безопасность, он не должен запускать какие-либо службы , доступные для внешнего мира. В локальной сети запускайте только службы, специфичные для шлюза; особенно не запускайте httpd, ftpd, samba, nfsd и т. д., поскольку они принадлежат серверу в локальной сети, поскольку они представляют угрозу безопасности.

В этой статье не делается попытка показать, как установить совместное соединение между двумя машинами с помощью перекрестных кабелей. Простое решение для совместного доступа к Интернету см. в разделе Общий доступ к Интернету.

Примечание: На протяжении всей статьи в качестве имен сетевых интерфейсов используются intern0 и extern0 . Обоснование этого далее объясняется в разделе #Persistent именования интерфейсов.

Содержание

  • 1 Аппаратные требования
  • 2 Конфигурация сетевого интерфейса
    • 2.1 Постоянное именование интерфейса
    • 2.2 IP-конфигурация
      • 2.2.1 С netctl
      • 2.2.2 С systemd-networkd
    • 2.3 Подключение ADSL/PPPoE
      • 2. 3.1 Конфигурация PPPoE
  • 3 DNS и DHCP
    • 3.1 DHCP через systemd-networkd
  • 4 Совместное использование подключения
    • 4.1 Руководство
    • 4.2 С systemd-networkd
    • 4.3 Совместное использование соединения с береговой стеной
  • 5 советов по IPv6
    • 5.1 Уникальные локальные адреса
    • 5.2 Глобальные одноадресные адреса
      • 5.2.1 Статический префикс IPv6
      • 5.2.2 Получение префикса IPv6 через DHCPv6-PD
    • 5.3 Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)
  • 6 Опциональные дополнения
    • 6.1 УПНП
    • 6.2 Удаленное администрирование
    • 6.3 Кэширующий веб-прокси
    • 6.4 Сервер времени
    • 6.5 Фильтрация содержимого
    • 6.6 Формирование трафика
      • 6.6.1 Ограничение трафика с помощью береговой стенки
  • 7 См. также

Требования к оборудованию

  • Не менее 1 ГБ свободного места на жестком диске. Базовая установка займет около 500 МБ места, и если вы хотите использовать кеширующий веб-прокси, вам также потребуется зарезервировать место для кеша.
  • Не менее двух физических сетевых интерфейсов: шлюз соединяет две сети друг с другом (фактически маршрутизатор может быть выполнен с использованием одного физического интерфейса, лежащего в основе двух интерфейсов VLAN и подключенного к коммутатору с поддержкой VLAN, так называемому router-on- a-stick, но в этой статье она не рассматривается). Вам нужно будет подключить эти сети к одному и тому же физическому компьютеру. Один интерфейс должен подключаться к внешней сети, а другой — к внутренней сети.
  • Концентратор, коммутатор или кабель UTP: вам нужен способ подключения других компьютеров к шлюзу

Конфигурация сетевого интерфейса

Постоянное присвоение имен интерфейсам

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

  • intern0 : сетевая карта подключена к локальной сети. На реальном компьютере он, вероятно, будет иметь имя enp2s0, enp1s1 и т. д.
  • extern0 : сетевая карта подключена к внешней сети (или WAN). Вероятно, он будет иметь имя enp2s0, enp1s1 и т. д.

Вы можете изменить назначенные имена ваших устройств через файл конфигурации, используя Systemd-networkd, описанный в Systemd-networkd#Переименование интерфейса, или с помощью правила udev, следующего за конфигурацией сети. #Изменить имя интерфейса. Из-за того, что эта статья богата примерами, вы можете выбрать приведенные выше имена.

Конфигурация IP

С netctl

Теперь вам нужно настроить сетевые интерфейсы. Один из способов сделать это — использовать профили netctl. Вам нужно будет создать два профиля.

Примечание: Если вы будете подключаться к Интернету только через PPPoE (у вас есть один порт WAN), вам не нужно для настройки или включения профиля extern0. Подробнее о настройке PPPoE см. ниже.

 /etc/netctl/extern0-profile 
 Описание='Общий интерфейс.'
Интерфейс=extern0
Соединение = Ethernet
IP='dhcp' 
 /etc/netctl/intern0-profile 
 Описание='Частный интерфейс'
Интерфейс=интерн0
Соединение = Ethernet
IP='статический'
Address=('10.0.0.1/24') 

Примечание: В приведенном выше примере конфигурации предполагается полная подсеть. Если вы строите шлюз для небольшого количества людей, вам нужно будет изменить суффикс CIDR, чтобы он соответствовал меньшему диапазону. Например, /27 даст вам от 10.0.0.1 до 10.0.0.30 . Существует множество калькуляторов CIDR, онлайн и оффлайн, например sipcalc.

Совет: Используйте SkipNoCarrier=yes в профиле LAN, чтобы убедиться, что соединение включено, даже если гость в LAN еще не подключен.

Далее настраиваем интерфейсы с помощью netctl:

 # netctl включить профиль extern0
# netctl включить профиль intern0
 
С помощью systemd-networkd

Прямой и простой способ настройки сетевых интерфейсов — через systemd-networkd.

  • Применить конфигурацию DHCP-клиента для внешний0 интерфейс.
  • Применить статическую IP-конфигурацию для интерфейса intern0 .

См. systemd-networkd#Файлы конфигурации для получения сведений о конфигурации и обзора доступных параметров. Запустите networkctl reload , чтобы применить изменения конфигурации.

ADSL-соединение/PPPoE

Используя rp-pppoe, мы можем подключить ADSL-модем к интерфейсу extern0 брандмауэра, и Arch будет управлять соединением. Не забудьте поставить модем на 9Однако 0400 работает в режиме моста (либо полумост, либо RFC1483), в противном случае модем также будет действовать как маршрутизатор. Установите пакет rp-pppoe.

Следует отметить, что если вы используете только PPPoE для подключения к интернету (т.е. у вас нет другого WAN порта, кроме того, который подключается к вашему модему) вам не нужно настраивать extern0-профиль в качестве внешнего псевдоинтерфейса будет ppp0.

Конфигурация PPPoE

Для настройки соединения PPPoE можно использовать netctl. Для начала сделайте

 # cp /etc/netctl/examples/pppoe /etc/netctl/
 

и приступайте к редактированию. Для конфигурации интерфейса выберите интерфейс, который подключается к модему. Если вы подключаетесь к Интернету только через PPPoE, это, вероятно, будет extern0 . Заполните остальные поля информацией о вашем провайдере. См. раздел PPPoE на справочной странице netctl.profile(5) для получения дополнительной информации о полях.

DNS и DHCP

Мы будем использовать dnsmasq в качестве DNS-сервера и, при необходимости, в качестве демона DHCP для локальной сети. Он был специально разработан для небольших сайтов. Установите его с пакетом dnsmasq.

Dnsmasq можно настроить как DHCP-сервер с конфигурацией, аналогичной следующей:

 /etc/dnsmasq.conf 
 interface=intern0 # заставить dnsmasq прослушивать запросы только на intern0 (наша локальная сеть)
#no-dhcp-interface=intern0 # при желании отключите функцию DHCP dnsmasq и используйте вместо нее systemd-networkd
expand-hosts # добавить домен к простым именам хостов в /etc/hosts
domain=foo.bar # разрешить полное доменное имя для хостов DHCP (необходимо, когда
                  # используется "expand-hosts")
dhcp-range=10.0.0.2,10.0.0.255,255.255.255.0,1h # определяет DHCP-диапазон для локальной сети:
                  # от 10.0.0.2 до .255 с маской подсети 255.255.255.0 и
                  # Аренда DHCP на 1 час (измените на свои предпочтения)
 

Где-то ниже вы заметите, что вы также можете добавить «статическую» аренду DHCP, т. е. назначить IP-адрес MAC-адресу компьютера в локальной сети. Таким образом, всякий раз, когда компьютер запрашивает новую аренду, он получит тот же IP-адрес. Это очень полезно для сетевых серверов с записью DNS. Вы также можете запретить определенным MAC-адресам получать IP-адрес.

Теперь запустите и включите dnsmasq.service .

DHCP через systemd-networkd

Чтобы использовать systemd-networkd вместо dnsmasq в качестве DHCP-сервера, добавьте [DHCPServer] в файл конфигурации для интерфейса intern0 . Доступные параметры см. в разделе Systemd-networkd#[DHCPServer].

Общий доступ к соединению

Пришло время связать два сетевых интерфейса вместе.

Manual

Прежде всего, нам необходимо разрешить переход пакетов с одного сетевого интерфейса на другой. Для этого в ядре должна быть включена пересылка пакетов через sysctl(8). Дополнительные сведения см. в разделе Общий доступ к Интернету#Включить переадресацию пакетов.

Предполагая, что net.**forwarding установлен правильно (т. е. равен 1 ), пакеты по-прежнему необходимо правильно отправлять и получать. Следовательно, необходимо преобразовывать IP-адреса между внешней сетью и локальной подсетью. Техника называется маскировка под . Нам также нужны два правила переадресации, чтобы поддерживать соединение и включить переадресацию из локальной сети в глобальную. Для этой задачи мы будем использовать iptables.

Обратитесь к разделу Общий доступ к Интернету # Включить NAT, чтобы узнать, как замаскировать extern0 интерфейс и пакеты от intern0 до extern0 . После этого сохраните вновь добавленные правила через iptables-save -f /etc/iptables/iptables.rules , подробности см. в разделе iptables#Configuration and use.

Запустить и включить iptables.service . Теперь маршрутизатор должен быть полностью функциональным и направлять ваш трафик. Поскольку он обращен к общедоступному Интернету, имеет смысл дополнительно защитить его с помощью простого межсетевого экрана с отслеживанием состояния.

С помощью systemd-networkd

Измените или создайте ранее обсуждавшуюся конфигурацию сети для intern0 , включив параметр IMasquerade=ipv4 в раздел [Сеть] . Эта конфигурация неявно активирует пересылку пакетов на всех интерфейсах, см. systemd.network(5). См. Systemd-networkd#[DHCPServer] для примера конфигурации.

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

Подробное руководство по настройке см. в Shorewall.

Советы по IPv6

Эта статья или раздел являются кандидатами на слияние с IPv6.

Примечания: Объединить в основную статью, тема не специфична для конфигурации маршрутизатора . Формулировку, вероятно, следует изменить по ходу дела. (Обсудить в Talk: Router)

Полезное чтение: IPv6 и википедия: IPv6.

Уникальные локальные адреса

Вы можете использовать свой маршрутизатор в режиме IPv6, даже если у вас нет IPv6-адреса от вашего интернет-провайдера. Если вы не отключите IPv6, всем интерфейсам должны были быть назначены уникальные fe80::/10 адрес.

Эта статья или раздел нуждается в дополнении.

Причина: Добавьте автономный метод для создания ULA. (Обсудить в Talk:Маршрутизатор)

Для внутренней сети зарезервирован блок fc00::/7 . Эти адреса гарантированно уникальны и не маршрутизируются из открытого Интернета. Адреса, принадлежащие блоку fc00::/7 , называются уникальными локальными адресами. Для начала создайте блок ULA/64 для использования в вашей сети. Для этого примера мы будем использовать fd00:aaaa:bbbb:cccc::/64 . Во-первых, мы должны назначить статический IPv6 на внутреннем интерфейсе. Измените созданный выше профиль intern0-profile , включив в него следующую строку:

 Address6=('fd00:aaaa:bbbb:cccc::1/64')
 

Это добавит ULA во внутренний интерфейс. Что касается маршрутизатора, это все, что вам нужно настроить.

Глобальные одноадресные адреса

Если ваш интернет-провайдер или глобальная сеть имеют доступ к Интернету IPv6, вы можете дополнительно назначить глобальные адреса ссылок для вашего маршрутизатора и распространить их через SLAAC во внутреннюю сеть. Глобальный префикс индивидуальной рассылки обычно равен статический или предоставляется через делегирование префикса .

Статический префикс IPv6

Если ваш интернет-провайдер предоставил вам статический префикс, отредактируйте /etc/netctl/extern0-profile и просто добавьте IPv6 и префикс IPv6 (обычно /64), которые вы предоставили

 Адрес6=('2002:1:2:3:4:5:6:7/64')
 

Вы можете использовать это в дополнение к адресу ULA, описанному выше.

Получение префикса IPv6 через DHCPv6-PD

Если ваш интернет-провайдер обрабатывает IPv6 через делегирование префикса, вы можете следовать инструкциям делегирования префикса IPv6# (DHCPv6-PD) по правильной настройке маршрутизатора. Следуя соглашениям этой статьи, интерфейс WAN — это extern0 (или ppp0 , если вы подключаетесь через PPPoE) и интерфейс LAN intern0 .

Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)

Чтобы правильно раздавать IPv6 сетевым клиентам, нам потребуется использовать рекламный демон. Следуйте подробностям основной статьи IPv6 о том, как настроить radvd . В соответствии с соглашением, принятым в этом руководстве, интерфейс, обращенный к локальной сети, имеет вид intern0 . Вы можете объявить все префиксы или выбрать, какие префиксы будут назначены для локальной сети.

Дополнительные дополнения

UPnP

Эта статья или раздел нуждается в дополнении.

Причина: Укажите альтернативный протокол переадресации портов NAT-PMP, поддерживаемый miniupnpd. (Обсудить в Talk:Router)

Приведенная выше конфигурация Shorewall не включает поддержку UPnP. Использование UPnP не рекомендуется, так как это может сделать шлюз уязвимым для атак из локальной сети. Однако некоторые приложения требуют этого для правильной работы.

Чтобы включить UPnP на маршрутизаторе, необходимо установить демон протокола UPnP Internet Gateway Device (IGD). Чтобы получить его, установите пакет miniupnpd.

Дополнительные сведения см. в руководстве Shorewall по UPnP.

Удаленное администрирование

OpenSSH можно использовать для удаленного администрирования маршрутизатора. Это полезно для запуска в автономном режиме (без монитора или устройств ввода).

Кэширующий веб-прокси

См. Squid для настройки веб-прокси для ускорения просмотра и/или добавления дополнительного уровня безопасности.

Сервер времени

Сведения об использовании маршрутизатора в качестве сервера времени см. в разделе Системное время#Синхронизация времени для доступных реализаций сервера протокола сетевого времени (NTP).

Затем настройте Shorewall или iptables, чтобы разрешить входящий и исходящий трафик NTP.

Фильтрация контента

Установите и настройте DansGuardian или Privoxy, если вам нужно решение для фильтрации контента.

Формирование трафика

Формирование трафика очень полезно, особенно когда вы не один в локальной сети. Идея состоит в том, чтобы назначить приоритет разным типам трафика. Интерактивный трафик (ssh, онлайн-игры), вероятно, требует наивысшего приоритета, в то время как трафик P2P может иметь самый низкий приоритет. Тогда есть все, что между ними.

Ограничение трафика с помощью береговой стены

См. Shorewall#Формирование трафика.

См. также

  • Простой межсетевой экран с отслеживанием состояния
  • Совместное использование Интернета

Маршрутизатор — ArchWiki

Эта статья представляет собой руководство по превращению компьютера в интернет-шлюз/маршрутизатор. Чтобы усилить свою безопасность, он не должен запускать какие-либо службы , доступные для внешнего мира. В локальной сети запускайте только службы, специфичные для шлюза; особенно не запускайте httpd, ftpd, samba, nfsd и т. д., поскольку они принадлежат серверу в локальной сети, поскольку они представляют угрозу безопасности.

В этой статье не делается попытка показать, как установить совместное соединение между двумя машинами с помощью перекрестных кабелей. Простое решение для совместного доступа к Интернету см. в разделе Общий доступ к Интернету.

Примечание: На протяжении всей статьи в качестве имен сетевых интерфейсов используются intern0 и extern0 . Обоснование этого далее объясняется в разделе #Persistent именования интерфейсов.

Содержание

  • 1 Аппаратные требования
  • 2 Конфигурация сетевого интерфейса
    • 2.1 Постоянное именование интерфейса
    • 2.2 IP-конфигурация
      • 2.2.1 С netctl
      • 2.2.2 С systemd-networkd
    • 2.3 Подключение ADSL/PPPoE
      • 2. 3.1 Конфигурация PPPoE
  • 3 DNS и DHCP
    • 3.1 DHCP через systemd-networkd
  • 4 Совместное использование подключения
    • 4.1 Руководство
    • 4.2 С systemd-networkd
    • 4.3 Совместное использование соединения с береговой стеной
  • 5 советов по IPv6
    • 5.1 Уникальные локальные адреса
    • 5.2 Глобальные одноадресные адреса
      • 5.2.1 Статический префикс IPv6
      • 5.2.2 Получение префикса IPv6 через DHCPv6-PD
    • 5.3 Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)
  • 6 Опциональные дополнения
    • 6.1 УПНП
    • 6.2 Удаленное администрирование
    • 6.3 Кэширующий веб-прокси
    • 6.4 Сервер времени
    • 6.5 Фильтрация содержимого
    • 6.6 Формирование трафика
      • 6.6.1 Ограничение трафика с помощью береговой стенки
  • 7 См. также

Требования к оборудованию

  • Не менее 1 ГБ свободного места на жестком диске. Базовая установка займет около 500 МБ места, и если вы хотите использовать кеширующий веб-прокси, вам также потребуется зарезервировать место для кеша.
  • Не менее двух физических сетевых интерфейсов: шлюз соединяет две сети друг с другом (фактически маршрутизатор может быть выполнен с использованием одного физического интерфейса, лежащего в основе двух интерфейсов VLAN и подключенного к коммутатору с поддержкой VLAN, так называемому router-on- a-stick, но в этой статье она не рассматривается). Вам нужно будет подключить эти сети к одному и тому же физическому компьютеру. Один интерфейс должен подключаться к внешней сети, а другой — к внутренней сети.
  • Концентратор, коммутатор или кабель UTP: вам нужен способ подключения других компьютеров к шлюзу

Конфигурация сетевого интерфейса

Постоянное присвоение имен интерфейсам

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

  • intern0 : сетевая карта подключена к локальной сети. На реальном компьютере он, вероятно, будет иметь имя enp2s0, enp1s1 и т. д.
  • extern0 : сетевая карта подключена к внешней сети (или WAN). Вероятно, он будет иметь имя enp2s0, enp1s1 и т. д.

Вы можете изменить назначенные имена ваших устройств через файл конфигурации, используя Systemd-networkd, описанный в Systemd-networkd#Переименование интерфейса, или с помощью правила udev, следующего за конфигурацией сети. #Изменить имя интерфейса. Из-за того, что эта статья богата примерами, вы можете выбрать приведенные выше имена.

Конфигурация IP

С netctl

Теперь вам нужно настроить сетевые интерфейсы. Один из способов сделать это — использовать профили netctl. Вам нужно будет создать два профиля.

Примечание: Если вы будете подключаться к Интернету только через PPPoE (у вас есть один порт WAN), вам не нужно для настройки или включения профиля extern0. Подробнее о настройке PPPoE см. ниже.

 /etc/netctl/extern0-profile 
 Описание='Общий интерфейс.'
Интерфейс=extern0
Соединение = Ethernet
IP='dhcp' 
 /etc/netctl/intern0-profile 
 Описание='Частный интерфейс'
Интерфейс=интерн0
Соединение = Ethernet
IP='статический'
Address=('10.0.0.1/24') 

Примечание: В приведенном выше примере конфигурации предполагается полная подсеть. Если вы строите шлюз для небольшого количества людей, вам нужно будет изменить суффикс CIDR, чтобы он соответствовал меньшему диапазону. Например, /27 даст вам от 10.0.0.1 до 10.0.0.30 . Существует множество калькуляторов CIDR, онлайн и оффлайн, например sipcalc.

Совет: Используйте SkipNoCarrier=yes в профиле LAN, чтобы убедиться, что соединение включено, даже если гость в LAN еще не подключен.

Далее настраиваем интерфейсы с помощью netctl:

 # netctl включить профиль extern0
# netctl включить профиль intern0
 
С помощью systemd-networkd

Прямой и простой способ настройки сетевых интерфейсов — через systemd-networkd.

  • Применить конфигурацию DHCP-клиента для внешний0 интерфейс.
  • Применить статическую IP-конфигурацию для интерфейса intern0 .

См. systemd-networkd#Файлы конфигурации для получения сведений о конфигурации и обзора доступных параметров. Запустите networkctl reload , чтобы применить изменения конфигурации.

ADSL-соединение/PPPoE

Используя rp-pppoe, мы можем подключить ADSL-модем к интерфейсу extern0 брандмауэра, и Arch будет управлять соединением. Не забудьте поставить модем на 9Однако 0400 работает в режиме моста (либо полумост, либо RFC1483), в противном случае модем также будет действовать как маршрутизатор. Установите пакет rp-pppoe.

Следует отметить, что если вы используете только PPPoE для подключения к интернету (т.е. у вас нет другого WAN порта, кроме того, который подключается к вашему модему) вам не нужно настраивать extern0-профиль в качестве внешнего псевдоинтерфейса будет ppp0.

Конфигурация PPPoE

Для настройки соединения PPPoE можно использовать netctl. Для начала сделайте

 # cp /etc/netctl/examples/pppoe /etc/netctl/
 

и приступайте к редактированию. Для конфигурации интерфейса выберите интерфейс, который подключается к модему. Если вы подключаетесь к Интернету только через PPPoE, это, вероятно, будет extern0 . Заполните остальные поля информацией о вашем провайдере. См. раздел PPPoE на справочной странице netctl.profile(5) для получения дополнительной информации о полях.

DNS и DHCP

Мы будем использовать dnsmasq в качестве DNS-сервера и, при необходимости, в качестве демона DHCP для локальной сети. Он был специально разработан для небольших сайтов. Установите его с пакетом dnsmasq.

Dnsmasq можно настроить как DHCP-сервер с конфигурацией, аналогичной следующей:

 /etc/dnsmasq.conf 
 interface=intern0 # заставить dnsmasq прослушивать запросы только на intern0 (наша локальная сеть)
#no-dhcp-interface=intern0 # при желании отключите функцию DHCP dnsmasq и используйте вместо нее systemd-networkd
expand-hosts # добавить домен к простым именам хостов в /etc/hosts
domain=foo.bar # разрешить полное доменное имя для хостов DHCP (необходимо, когда
                  # используется "expand-hosts")
dhcp-range=10.0.0.2,10.0.0.255,255.255.255.0,1h # определяет DHCP-диапазон для локальной сети:
                  # от 10.0.0.2 до .255 с маской подсети 255.255.255.0 и
                  # Аренда DHCP на 1 час (измените на свои предпочтения)
 

Где-то ниже вы заметите, что вы также можете добавить «статическую» аренду DHCP, т. е. назначить IP-адрес MAC-адресу компьютера в локальной сети. Таким образом, всякий раз, когда компьютер запрашивает новую аренду, он получит тот же IP-адрес. Это очень полезно для сетевых серверов с записью DNS. Вы также можете запретить определенным MAC-адресам получать IP-адрес.

Теперь запустите и включите dnsmasq.service .

DHCP через systemd-networkd

Чтобы использовать systemd-networkd вместо dnsmasq в качестве DHCP-сервера, добавьте [DHCPServer] в файл конфигурации для интерфейса intern0 . Доступные параметры см. в разделе Systemd-networkd#[DHCPServer].

Общий доступ к соединению

Пришло время связать два сетевых интерфейса вместе.

Manual

Прежде всего, нам необходимо разрешить переход пакетов с одного сетевого интерфейса на другой. Для этого в ядре должна быть включена пересылка пакетов через sysctl(8). Дополнительные сведения см. в разделе Общий доступ к Интернету#Включить переадресацию пакетов.

Предполагая, что net.**forwarding установлен правильно (т. е. равен 1 ), пакеты по-прежнему необходимо правильно отправлять и получать. Следовательно, необходимо преобразовывать IP-адреса между внешней сетью и локальной подсетью. Техника называется маскировка под . Нам также нужны два правила переадресации, чтобы поддерживать соединение и включить переадресацию из локальной сети в глобальную. Для этой задачи мы будем использовать iptables.

Обратитесь к разделу Общий доступ к Интернету # Включить NAT, чтобы узнать, как замаскировать extern0 интерфейс и пакеты от intern0 до extern0 . После этого сохраните вновь добавленные правила через iptables-save -f /etc/iptables/iptables.rules , подробности см. в разделе iptables#Configuration and use.

Запустить и включить iptables.service . Теперь маршрутизатор должен быть полностью функциональным и направлять ваш трафик. Поскольку он обращен к общедоступному Интернету, имеет смысл дополнительно защитить его с помощью простого межсетевого экрана с отслеживанием состояния.

С помощью systemd-networkd

Измените или создайте ранее обсуждавшуюся конфигурацию сети для intern0 , включив параметр IMasquerade=ipv4 в раздел [Сеть] . Эта конфигурация неявно активирует пересылку пакетов на всех интерфейсах, см. systemd.network(5). См. Systemd-networkd#[DHCPServer] для примера конфигурации.

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

Подробное руководство по настройке см. в Shorewall.

Советы по IPv6

Эта статья или раздел являются кандидатами на слияние с IPv6.

Примечания: Объединить в основную статью, тема не специфична для конфигурации маршрутизатора . Формулировку, вероятно, следует изменить по ходу дела. (Обсудить в Talk: Router)

Полезное чтение: IPv6 и википедия: IPv6.

Уникальные локальные адреса

Вы можете использовать свой маршрутизатор в режиме IPv6, даже если у вас нет IPv6-адреса от вашего интернет-провайдера. Если вы не отключите IPv6, всем интерфейсам должны были быть назначены уникальные fe80::/10 адрес.

Эта статья или раздел нуждается в дополнении.

Причина: Добавьте автономный метод для создания ULA. (Обсудить в Talk:Маршрутизатор)

Для внутренней сети зарезервирован блок fc00::/7 . Эти адреса гарантированно уникальны и не маршрутизируются из открытого Интернета. Адреса, принадлежащие блоку fc00::/7 , называются уникальными локальными адресами. Для начала создайте блок ULA/64 для использования в вашей сети. Для этого примера мы будем использовать fd00:aaaa:bbbb:cccc::/64 . Во-первых, мы должны назначить статический IPv6 на внутреннем интерфейсе. Измените созданный выше профиль intern0-profile , включив в него следующую строку:

 Address6=('fd00:aaaa:bbbb:cccc::1/64')
 

Это добавит ULA во внутренний интерфейс. Что касается маршрутизатора, это все, что вам нужно настроить.

Глобальные одноадресные адреса

Если ваш интернет-провайдер или глобальная сеть имеют доступ к Интернету IPv6, вы можете дополнительно назначить глобальные адреса ссылок для вашего маршрутизатора и распространить их через SLAAC во внутреннюю сеть. Глобальный префикс индивидуальной рассылки обычно равен статический или предоставляется через делегирование префикса .

Статический префикс IPv6

Если ваш интернет-провайдер предоставил вам статический префикс, отредактируйте /etc/netctl/extern0-profile и просто добавьте IPv6 и префикс IPv6 (обычно /64), которые вы предоставили

 Адрес6=('2002:1:2:3:4:5:6:7/64')
 

Вы можете использовать это в дополнение к адресу ULA, описанному выше.

Получение префикса IPv6 через DHCPv6-PD

Если ваш интернет-провайдер обрабатывает IPv6 через делегирование префикса, вы можете следовать инструкциям делегирования префикса IPv6# (DHCPv6-PD) по правильной настройке маршрутизатора. Следуя соглашениям этой статьи, интерфейс WAN — это extern0 (или ppp0 , если вы подключаетесь через PPPoE) и интерфейс LAN intern0 .

Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)

Чтобы правильно раздавать IPv6 сетевым клиентам, нам потребуется использовать рекламный демон. Следуйте подробностям основной статьи IPv6 о том, как настроить radvd . В соответствии с соглашением, принятым в этом руководстве, интерфейс, обращенный к локальной сети, имеет вид intern0 . Вы можете объявить все префиксы или выбрать, какие префиксы будут назначены для локальной сети.

Дополнительные дополнения

UPnP

Эта статья или раздел нуждается в дополнении.

Причина: Укажите альтернативный протокол переадресации портов NAT-PMP, поддерживаемый miniupnpd. (Обсудить в Talk:Router)

Приведенная выше конфигурация Shorewall не включает поддержку UPnP. Использование UPnP не рекомендуется, так как это может сделать шлюз уязвимым для атак из локальной сети. Однако некоторые приложения требуют этого для правильной работы.

Чтобы включить UPnP на маршрутизаторе, необходимо установить демон протокола UPnP Internet Gateway Device (IGD). Чтобы получить его, установите пакет miniupnpd.

Дополнительные сведения см. в руководстве Shorewall по UPnP.

Удаленное администрирование

OpenSSH можно использовать для удаленного администрирования маршрутизатора. Это полезно для запуска в автономном режиме (без монитора или устройств ввода).

Кэширующий веб-прокси

См. Squid для настройки веб-прокси для ускорения просмотра и/или добавления дополнительного уровня безопасности.

Сервер времени

Сведения об использовании маршрутизатора в качестве сервера времени см. в разделе Системное время#Синхронизация времени для доступных реализаций сервера протокола сетевого времени (NTP).

Затем настройте Shorewall или iptables, чтобы разрешить входящий и исходящий трафик NTP.

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

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