Как настроить сервер Ubuntu в качестве маршрутизатора с помощью PPPoE



Попробуйте наш инструмент устранения неполадок

Ubuntu Server технически разработан как операционная система только для командной строки для использования с большими железными серверами, но нет никаких причин, по которым он не может работать в маршрутизаторах и встроенных системах, которые также управляют протоколом точка-точка через Ethernet. Предполагается, что для такого проекта нужен либо небольшой ПК без вентилятора, либо какой-то маршрутизатор, который можно модифицировать с помощью флеш-чипа NAND. Скорее всего, вы собираетесь установить приличный объем оперативной памяти, а также твердотельный диск, чтобы устранить шум, а также движущиеся части. Возможно, вас заинтересует конвертер SDHC-to-SATA, чтобы вы могли запускать всю операционную систему с SD-карты. SD-карты, вставленные в боковые слоты на устаревшем оборудовании, также могут загружать операционную систему. Это прекрасно работает при использовании с системой PPPoE.



Хотя вы можете подумать, что использование такой конфигурации может быть медленным без надлежащего электромеханического жесткого диска, на самом деле вы теоретически сократите время доступа. Сервер Ubuntu настолько мал, что в любом случае загружается быстро. Установив роутер, вы, вероятно, не будете часто его включать и выключать. Независимо от того, какую конфигурацию вы выберете, вам нужно указать в браузере https://www.ubuntu.com/download/server, чтобы загрузить ISO. Самая последняя версия на момент написания этой статьи, Ubuntu Server 16.04.1 LTS, предназначена только для использования с 64-битными архитектурами. Большинство современных маршрутизаторов и устройств с тонкими клиентами отлично справляются с этим требованием, но это может стать проблемой, если вы пытались сделать что-то действительно экзотическое, например, использовать нетбук в качестве маршрутизатора.





Настройка сервера Ubuntu в качестве маршрутизатора PPPoE

Несколько основных сетей ISP по-прежнему требуют аутентификации PPPoE. Почти все сети DSL используют это, и хотя это не нужно при работе с оптоволоконным соединением, некоторые из них все еще фактически используют его. Маршрутизаторы Netgear предлагают приглашение для входа в систему, которое позволяет легко подключаться к этим типам сетей, но потребуется некоторая работа, чтобы заставить домашний Linux-маршрутизатор правильно взаимодействовать с такими технологиями.

Если вас еще нет в браузере, перейдите на http://releases.ubuntu.com/16.04.1/ . Вы могли бы загрузить ISO с этой страницы, если бы у вас его не было, но как только он у вас есть, прокрутите вниз до ссылки, которая читает MD5SUMS, и выберите ее.



Из командной строки CLI запустите md5sum на ISO-образе Ubuntu Server и убедитесь, что он соответствует номеру рядом с ubuntu-16.04-рабочий стол-amd64.iso в списке.

Если это так, то возьмите полностью чистый USB-накопитель или SD-карту и введите sudo if = ubuntu-16.04-desktop-amd64.iso of = / dev / sdLetter bs = 8M , заменив приглашение of = на имя рассматриваемого устройства. Вы можете использовать sudo fdisk -l чтобы найти все устройства, подключенные к вашей системе. Как только вы это сделаете, правильно извлеките диск и подключите его к системе маршрутизатора. Перезагрузите его и нажмите любую клавишу, необходимую для загрузки указанной системы со съемного носителя. Ubuntu Server устанавливается относительно легко на основе ряда текстовых запросов ncurses.

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

Скорее всего, вы не захотите устанавливать дополнительное программное обеспечение в процессе настройки операционной системы. GRUB автоматически загружается при установке Ubuntu Server по умолчанию, что означает, что вы не увидите никаких отладочных сообщений. Если после загрузки вы видите мигающий курсор без каких-либо других элементов, нажмите и удерживайте Ctrl, Alt и F1, чтобы перейти к виртуальной консоли. Войдите в свою учетную запись и введите хотя вы также можете использовать vi. Найдите строку с надписью GRUB_CMDLINE_LINUX_DEFAULT = 'тихий всплеск' и удалите тихие всплывающие слова в кавычках. Вы также захотите отредактировать строку, которая гласит GRUB_CMDLINE_LINUX = ”” для включения net.ifnames = 0 biosdevname = 0 в двойных кавычках, чтобы правильно назвать ваши сетевые карты. Сохраните файл, а затем запустите sudo update-grub, чтобы обновить загрузочный загрузчик, поскольку файл grub, вероятно, фактически находится в каком-то разделе UEFI.

Найдите строку с надписью GRUB_CMDLINE_LINUX_DEFAULT = 'тихий всплеск' и удалите слова « тихий всплеск », Заключенные в кавычки. фсафа

Это пират.

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

Теперь вам нужно установить соответствующее программное обеспечение PPPoE и OpenSSL, чтобы завершить установку. Вы можете установить DNS, DHCP, PPPoE и OpenSSL с помощью одной задачи командной строки:

sudo apt-get install bind9 isc-dhcp-server openssl pppoeconf

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

Ваш интернет-провайдер предоставит вам имя пользователя и пароль, которые вам нужно будет ввести в файл chap-secrets. Тип но помните, что вы все равно можете использовать vi, если хотите. Ваше имя пользователя и пароль должны быть указаны в кавычках. Например, вы потенциально можете захотеть:

«Билли» * «mypass3»

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

noipdefault

defaultroute

replacedefaultroute

настаивать

плагин rr-pppoe.so eth0

пользователь «билли»

Вы также можете указать hide-password и noauth, если не хотите использовать запросы на вход, поскольку вы собираетесь использовать его как маршрутизатор, а не как фактическую производственную машину с обычным интерфейсом. Замените имя billy фактическим именем пользователя, которое у вас есть, а затем запустите pon provider или имя файла, который вы создаете для подключения. Он должен выдавать вам все соответствующие сообщения об ошибках в процессе, но вы можете использовать ifconfig для поиска сетевого интерфейса ppp0 или ppp1. Вам понадобится ссылка на это позже. Вы можете добавить usepeerdns, если хотите запросить у партнера пару адресов DNS-серверов, которые затем передаются в как переменные среды с метками DNS2 и DNS1. Вы также заставите переменную среды с именем USEPEERDNS также установить себя в 1. Если вы предпочитаете использовать собственные DNS-серверы, а не те, которые назначены вам вашим интернет-провайдером, вы можете добавить строки в свой файл, такой как:

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

В большинстве случаев ваш MTU установлен на уровне около 1500, но максимальное значение, которое вы сможете получить, составляет около 1492 или, возможно, даже меньше, поскольку вы используете интерфейс PPPoE. Предполагая, что вы определили максимальный MTU для своей системы ppp0 или ppp1, вам нужно будет использовать чтобы открыть файл ip-up, а затем добавить строку / sbin / ifconfig ppp0 человек #### в самом низу, заменяя #### с вашим правильным значением. Если вы не уверены, это может быть где-то около 1480 года.

Во многих руководствах вам будет предложено установить соединение eth0 WAN на DHCP, но вам нужно установить его вручную из-за соединения PPPoE, с которым вы работаете. Использовать и отредактируйте его так, чтобы блок кода под # Сетевой интерфейс WAN читал auto eth0 и iface eth0 inet manual, а затем блок кода под ним должен был читать:

# Сетевой интерфейс LAN

авто eth1

iface eth1 inet static

адрес 192.168.1.1

маска сети 255.255.255.0

Маршрутизаторам необходимо активировать пересылку пакетов, чтобы они работали как маршрутизаторы, поэтому используйте а затем удалите Octothorpe перед net.ipv4.ip_forward = 1 перед сохранением. Вы найдете его под цитатой, которая гласит # Раскомментируйте следующую строку, чтобы включить пересылку пакетов для IPv4, но вы также можете удалить отметку перед net.ipv6.conf.all.forwarding = 1, если планируете использовать Маршрутизация IPv6, которая может быть проблемой в системе PPPoE.

Откройте файл iptables для редактирования с помощью команду, а затем добавьте к ней следующие строки:

Сохраните файл, а затем выйдите из nano или любого другого текстового редактора, который вы использовали, прежде чем продолжить. Iptables составляют основной брандмауэр для ядра Linux, поэтому рекомендуется привести эти таблицы в порядок до того, как вы фактически начнете соединение с интернет-провайдером.

Теперь вам нужно изменить разрешения для файла, о котором идет речь, поэтому вы можете использовать sudo -i или sudo bash для получения приглашения root. Как только вы используете:

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

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

подсеть ###. ###. ##. # netmask 255.255.255.0 {

спектр ###.###.##.### ###.###.##.###;

опция роутеры ###. ###. ##. #;

option domain-name-servers ###. ###. ##. #;

опция широковещательный адрес ###. ###. ##. ###;

}

Сохраните и закройте файл. Если вы работаете с SD-картой или чем-то подобным, то это еще один хороший момент для выполнения команды синхронизации.

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

Под блоком кода, который начинается с комментария « # Прикрепите MSS к размеру MTU, ”Включите следующую строку:

-A FORWARD -p tcp –tcp-flags SYN, RST SYN -j TCPMSS –clamp-mss-to-pmtu

Это правило необходимо для предотвращения загрузки веб-страниц только наполовину или по истечении времени ожидания. Вместо этого он связывает MTU и MSS вместе, поэтому у вас не будет этих проблем. Теперь это позволяет ядру Linux угадывать правильные размеры, но при необходимости вы можете их указать. Под блоком кода, который начинается с ' # Укажите размер MSS, 'Вам нужно будет добавить:

-A FORWARD -p tcp –tcp-flags SYN, RST SYN -j TCPMSS –set-mss ####

Замените раздел #### правильным значением MSS. Вы можете понять это с помощью простой математики. Вычтите размер заголовка PPPoE из вашего MTU, а затем вычтите заголовок IP и заголовок TCP. Разница в общем размере MSS.

Возможно, вам потребуется изменить правило службы SSH, чтобы добавить параметр –syn, который позволит вам получить доступ по SSH к этому маршрутизатору с другого компьютера, зарегистрированного в вашей локальной сети. Комментируя правило службы ICMP, ваш компьютер не будет отвечать ни на какие эхо-запросы. Это на самом деле сделает ваш компьютер довольно незаметным, хотя вы не должны рассматривать это как некое средство, делающее ваши привычки просмотра через этот маршрутизатор невидимыми. Не будет, но это еще один уровень безопасности, который защитит вас.

Иногда интерфейсы или соединения PPPoE, с которыми вы работаете, на самом деле не подключаются сразу после загрузки маршрутизатора, поэтому вы можете создать короткий сценарий запуска, чтобы убедиться, что он работает должным образом при загрузке системы. Это добавляет всего 8-10 секунд к общему времени загрузки, так что оно того стоит. Отредактируйте файл с помощью sudo nano еще раз, а затем добавьте

спать 3

ifup eth0

спать 3

ifup eth1

спать 3

поставщик pon

Вам нужно будет заменить provider именем пользовательского файла, если вы создали его для замены файла провайдера по умолчанию. Многим маршрутизаторам требуется всего 1-2 секунды ожидания, поэтому вы можете поэкспериментировать с этим, чтобы улучшить производительность загрузки. В любом случае, перезапуск не займет много времени.

Это должно запускать команды pon и ifup после полной загрузки системы, но до появления подсказок для входа в фактическую виртуальную консоль. Если соединение установлено, то вообще ничего не происходит, но если одно из соединений не работает должным образом, этот сценарий гарантирует, что оно правильно инициализировано. Последняя команда pon полагается на eth0 и eth1, поэтому вы всегда должны позиционировать ее как последний шаг, иначе скрипт может потерпеть неудачу.

Как только вы перезагрузите компьютер после внесения всех этих изменений, у вас будет полностью функционирующий маршрутизатор, работающий на сервере Ubuntu. Вы можете иногда использовать sudo iptables-L если вам нужно время от времени проверять их статус, но в остальном все будет работать также, если не лучше, чем коммерческий маршрутизатор. Ваш новый маршрутизатор будет запускать любые другие необходимые пакеты Ubuntu, но вам не нужно устанавливать X-сервер или что-либо еще, потому что система должна работать правильно без необходимости в дополнительном программном обеспечении пользовательского интерфейса.

9 минут на чтение