- Как на Linux настроить интернет?
- 1. Как на Linux настроить интернет через DSL модем?
- 2. Как настроить интернет в Linux при LAN подключении?
- Наш рецепт отказоустойчивого Linux-роутера
- Компоненты
- Настройка интерфейсов
- Балансировщик основного шлюза
- Настройка keepalived
- Настройка ISC DHCPD
- Настройка PowerDNS
- Заключение
- Записки IT специалиста
- Linux. Настройка роутера (NAT + DHCP + Squid)
- Установка и первоначальная настройка
- Настраиваем NAT
- Настраиваем DHCP
- Настраиваем кеширующий прокси-сервер Squid
- Дополнительные материалы:
Как на Linux настроить интернет?
Настроить на Linux интернет обычно задача тривиальная, так как в большинстве случаев все проходит автоматически. Но иногда требуются минимальные знания, чтобы просто знать, куда ткнуть мышкой и где вообще искать настройки сети. Для тех, кто в первый раз загрузил Linux, и это может стать проблемой.
Кстати, нет ничего обиднее, чем пЕрЕплАтИть при покупке 🤦🏻♂️ Поэтому ОЧЕНЬ рекомендую подписаться на канал в Телеграм 👉🏻Промокоды для Алиэкспресс👈🏻 Постоянно узнавая про новые акции 🔥 на разные товары, вы точно НИКОДА не переплатите 👌🏻
Именно для таких новобранцев постоянно растущей армии Linux я и решил написать небольшую заметку о том, как на Linux настроить интернет самому. Так же хочу показать, как можно настроить свой роутер и как прописать клонированный MAC адрес, если это необходимо. Итак, где же искать эти настройки интернета в Linux?
Вообще существуют два (как минимум) вида провайдеров, которые подключают услугу интернета:
1. Телефонная компания, которая по вашему телефонному проводу подаёт дополнительный DSL сигнал.
2. Провайдер, который тянет свои сетевые провода по подвалам и подъездам и предоставляет вам интернет на основе вашего уникального MAC адреса.
Тут настройка доступа к Интернет в Ubuntu Linux будет разная, но и в том и другом случае ничего сложного обычно нет. Коротко расскажу о том, как настроить интернет в linux и в том, и в другом случае.
1. Как на Linux настроить интернет через DSL модем?
Тут есть два варианта: или осуществлять подключение к интернету через технологию DSL в самом модеме, или уже непосредственно на компьютере. Что лучше? Тут всё зависит от обстоятельств.
В первом случае интернет будет доступен всем пользователям компьютера, так как будет подключаться автоматически. Во втором случае подключать интернет нужно будет непосредственно каждому пользователю. И если у вас есть дети и у них отдельный аккаунт в Linux (или Windows), то это хорошо, негоже детям лазить самим по глобальной сети.
Но тут есть и минусы: если у вас wifi роутер, то второй вариант не очень удобен, так как потребует настройку DSL подключения на каждом устройстве. А на планшете это не удобно, а порой и просто невозможно.
У меня детей нет, поэтому я предпочитаю первый вариант: раз настроил и забыл. А вы решайте сами.
Как настроить интернет в самом роутере или маршрутизаторе, или DSL модеме (называют и так, и так)? Я покажу вам на своём примере.
Откройте свой браузер и введите введите в адресную строку адрес роутера. Обычно он такой: 192.168.1.1 и введите потом логин и пароль — обычно это admin и admin.
В разных модемах и роутерах будет разный интерфейс, но если вы поймёте суть, то вам будет не сложно.
1. Нужно во первых изменить режим модема с Bridge на PPPoE.
2. После этого вам нужно ввести свой логин и пароль, которые вам дал провайдер.
После этого сохраняем настройки и ждём, пока модем перезагрузится. Теперь у вас должен появиться интернет, можно найти вкладку СТАТУС тут же и посмотреть, появились там адреса провайдера.
Если у вас не просто роутер, а wifi роутер, то можно настроить тут же и беспроводную связь. Тут тоже нет ничего сложного. Ищем тут же вкладку с названием WIRELESS.
1. Активируем беспроводный модуль, поставив галочку на Activated.
2. Задаём SSID (имя нашей беспроводной сети — любое слово латинскими буквами) и метод шифрования (можно любой).
3. Придумываем пароль латинскими буквами и цифрами (не меньше 8 символов).
Всё, сохраняем настройки и ищем через какое то время нашу сеть на ноутбуке или планшете. Тут всё просто: в Linux есть на панели задач значок беспроводной сети. Тыкаем по нему курсором и нажимаем левую кнопку мышки. Нам покажут все доступные сети. Выбираем нашу и нажимаем кнопку ПОДКЛЮЧИТЬ. Вводим придуманный нами пароль и радуемся:)
А что если мы решили настроить DSL или PPPoE подключение не в роутере, а на самом компьютере? Тогда в модеме нужно поставить опцию BRIDGE и больше ничего не настраивать.
Идём опять же в панель задач и щёлкаем на значке сетевого подключения и выбираем пункт ИЗМЕНИТЬ СОЕДИНЕНИЯ. Переходим на вкладку DSL и настраиваем новое соединение.
После этого у вас в меню подключения к сети должен появиться пункт вашего нового соединения. Но если вы поставите галочку на автоматическом подключении, то всё происходить на автомате, если нет, то нужно будет каждый раз подключаться вручную.
2. Как настроить интернет в Linux при LAN подключении?
Честно говоря не помню, как это называется, когда провайдер предоставляет прямое подключение по локальной сети. Но суть там проста: к вам домой подводят сетевой кабель, который вы втыкаете прямо в компьютер. Приходит мастер, смотрит ваш уникальный MAC адрес и передаёт его провайдеру.
Теперь интернет будет автоматически работать на вашем компьютере. Но если вы подключите к этому кабелю другой компьютер, то интернет работать уже не будет, так как MAC адрес у этого компьютера совсем другой. И даже если вы подключите роутер, то и он работать сразу не будет, так как и у него другой MAC адрес.
Но вопрос решается просто. Нужно узнать наш эталонный MAC адрес и прописать его в роутер. В любом роутере есть такая функция, и сделать это не сложно, и найти это меню можно по слову CLONE MAC — клонирование mac адреса, или что-то подобное. После этого интернет должен заработать. Если нужно настроить беспроводную сеть, то делаем так же, как описано выше.
Если же вы хотите просто подключать разные компьютеры к одному кабелю, то в этом случае вам нужно на втором, третьем и так далее компьютере прописать эталонный MAC адрес. Как это сделать?
Заходим опять в сетевые подключения — ИЗМЕНИТЬ СОЕДИНЕНИЯ — ПРОВОДНЫЕ. У нас там должно отображаться хотя бы одно наше сетевое подключение. Выделяем его и жмём кнопку слева — ИЗМЕНИТЬ.
Теперь вписываем в поле КЛОНИРОВАННЫЙ АДРЕС наш эталонный MAC адрес, по образцу основного MAC адреса, через двоеточие. Все, теперь и второй ноутбук или компьютер будет работать от этого же кабеля.
Конечно, одновременно два компьютера не включишь, для этого нужен роутер, но это по крайней мере что-то. Если будут вопросы, пишите, попробую помочь!
Источник
Наш рецепт отказоустойчивого Linux-роутера
В высоконагруженных проектах всегда повышенные требования к избыточности и надежности. Одним из важнейших звеньев инфраструктуры является маршрутизатор, потому что от его устойчивости зависит доступность сети в целом. Именно на таких узлах мы используем одну из схем реализации отказоустойчивого виртуального роутера на базе GNU/Linux с использованием iproute2, NetGWM, keepalived, ISC DHCPD, PowerDNS. Как мы всё это настраиваем, читайте в этой статье.
Компоненты
В идеальной схеме отказоустойчивого роутера мы резервируем все элементы, которые могут привести к недоступности сети, то есть:
- каналы связи,
- коммутаторы,
- маршрутизаторы.
В общем виде схема (на уровне L2) выглядит так:
Как видно из схемы, нам нужны 2 коммутатора с поддержкой 802.1Q VLAN. Оператор 1 коммутируется в Коммутатор 1 и ему выделяется отдельный VLAN (например, 110). Оператор 2 коммутируется в Коммутатор 2, в другой VLAN (например, 120). Отдельный VLAN (в нашем случае — 200), выделяется под локальную сеть. Между коммутаторами организуется транк, и транком же линкуем оба маршрутизатора, которые и будут «сердцем» нашего виртуального роутера (схема router-on-a-stick).
Такая компоновка позволяет оставлять работоспособной сеть при выходе из строя любого компонента: роутера, коммутатора или оператора.
Стек базовых компонентов, которые мы используем в работе роутеров:
- Ubuntu Linux;
- NetGWM — утилита приоритезации основного шлюза в решении. Это наша Open Source-разработка, о которой мы готовим отдельную статью (пока предлагаю ознакомиться с базовой документацией) [Обновлено 08.08.2017: статья опубликована как «Настройка основного и двух резервных операторов на Linux-роутере с NetGWM»];
- iproute2 — для создания нескольких таблиц маршрутизации;
- keepalived — для реализации протокола VRRP в Linux;
- ISC DHCPD — как горизонтально масштабируемый DHCP-сервер;
- PowerDNS — как DNS-сервер для локальной сети.
Маршрутизаторы настраиваются примерно одинаково, за исключением конфигурации IP-адресов и keepalived.
Настройка интерфейсов
Настраиваем VLAN. Конфигурация /etc/network/interfaces будет выглядеть примерно так:
- настраиваем blackhole — хорошая практика для того, чтобы локальные пакеты не улетали по маршруту по умолчанию в сторону провайдера;
- net.ipv4.conf.$IFACE.rp_filter=0 — необходим для корректной работы multi-wan;
- для каждого провайдера настраиваем отдельную таблицу маршрутизации с единственным маршрутом по умолчанию.
Настроим маркинг пакетов для направления в определенные таблицы — добавим в iptables правила:
И настроим правила маршрутизации для промаркированных пакетов — мы это делаем вызовом скрипта iprules.sh при выполнении ifup lo (смотри выше в /etc/network/interfaces ). Внутри скрипта:
Эти таблицы маршрутизации необходимо объявить в /etc/iproute2/rt_tables :
Балансировщик основного шлюза
Настроим NetGWM — утилиту для приоритезации основного шлюза. Она будет устанавливать маршрут по умолчанию, выбирая операторов в соответствии с двумя правилами: а) установленным нами приоритетом, б) статусом оператора (жив или нет).
Чтобы установить NetGWM, можно воспользоваться исходниками на GitHub или нашим репозиторием для Ubuntu. Второй способ в случае Ubuntu 14.04 LTS выглядит так:
Укажем в конфиге /etc/netgwm/netgwm.yml , что у нас 2 оператора, маршруты по умолчанию для каждого из них, приоритезацию и настройки для контроля доступности:
Обратите внимание на имена oper1 и oper2 — это названия таблиц маршрутизации из /etc/iproute2/ip_tables . Рестартнем сервис netgwm , чтобы он начал управлять шлюзом по умолчанию для системы:
Настройка keepalived
Keepalived — реализация протокола VRRP для Linux. Этот протокол позволяет реализовать схему с отказоустойчивой маршрутизацией, создавая виртуальный IP, который будет использоваться в качестве маршрута по умолчанию для обслуживаемой сети. Виртуальный IP автоматически передается резервному серверу при выходе из строя основного сервера.
На этом этапе мы определяемся, что Маршрутизатор 2 будет играть роль Backup, а Маршрутизатор 1 — роль Master. Настраиваем keepalived, изменяя конфигурационный файл /etc/keepalived/keepalived.conf :
Так как наш отказоустойчивый роутер — многокомпонентный, мы решили использовать режим, в котором переключение keepalived режимов Backup → Master происходит только в случае отказа Master-сервера. За это как раз отвечает параметр nopreempt .
Настройка ISC DHCPD
ISC DHCPD был выбран нами, так как позволяет масштабировать DHCP на несколько серверов. Он прост в конфигурировании и хорошо зарекомендовал себя на практике. Кроме того, нам понравилось, что разработчики этого DHCP-сервера придумали изящное решение для организации реплики между серверами. Для основного и второстепенного серверов выделяются разные пулы адресов и на запросы отвечает сервер, который успел сделать это первым, выдавая адрес из своего пула. При этом база арендованных IP синхронизируется. В случае, если один из серверов отказывает, второй как ни в чем не бывало продолжает выдачу адресов из своего пула. При возврате отказавшего сервера он начинает выдачу из своего пула, при этом не возникает коллизий.
Правим конфиг /etc/dhcp/dhcpd.conf :
Нам понадобится сгенерировать ключ update_key , с помощью которого мы будем обновлять зону mynet . Сгенерируем его и выведем на экран:
Скопируйте сгенерированный ключ и вставьте в конфигурационный файл вместо слова КЛЮЧ.
Настройка PowerDNS
В качестве DNS-сервера мы предпочли PowerDNS, так как он имеет возможность хранить зоны в СУБД MySQL, которую удобно реплицировать между первым и вторым сервером. Кроме того, PoweDNS — это производительное решение, хорошо функционирующее в высоконагруженном роутере.
Настройку PowerDNS начнем с подготовки базы данных.
Теперь нужно настроить PowerDNS и научить его работать с БД. Для этого требуется установить пакет pdns-backend-mysql и изменить конфиг /etc/powerdns/pdns.conf :
На этом базовая конфигурация PowerDNS закончена. Нам же ещё потребуется настроить рекурсор — обработчик рекурсивных DNS-запросов, который позволяет значительно повысить производительность DNS-сервера. Правим файл /etc/powerdns/recursor.conf :
В файл forward_zones вносим зоны intranet, которые обслуживают соседние серверы:
По окончании настройки перезапускаем сервисы pdns и pdns-recursor .
После запуска настраиваем реплику MySQL между серверами.
Заключение
Мы используем данное решение не только в чистом виде. В большинстве случаев оно усложняется добавлением туннелей VTun, OpenVPN или IPSec через основного и резервного оператора связи и динамической маршрутизацией, которая реализуется с помощью Quagga. Поэтому схему, предложенную в статье, предлагаю воспринимать как фундамент для создания более сложных решений.
Будем рады, если вы зададите свои вопросы в комментариях или укажете на места в схеме, которые можно улучшить. И, конечно, подписывайтесь на наш хаб, чтобы не пропускать новые полезные материалы! )
Источник
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Linux. Настройка роутера (NAT + DHCP + Squid)
Linux. Настройка роутера (NAT + DHCP + Squid)
Наиболее частым применением Linux серверов является организация общего доступа в интернет. Это обусловлено низкой стоимостью такого решения и невысокими требованиями к железу. Во многих случаях это бывает первый Linux сервер в организации, что способно вызвать у администраторов определенные сложности. В данной статье мы пошагово рассмотрим настройку роутера (NAT + DHCP + Squid) на базе Ubuntu Server 9.04
Внимание! Данный материал устарел, при настройке роутера на базе Ubuntu Server 12.04 и старше рекомендуем воспользоваться обновленной статьей.
Установка и первоначальная настройка
Ubuntu Server отличается от своей настольной версии отсутствием графической оболочки и пользовательских приложений, а также возможностью предустановки заранее выбранных ролей сервера. Несмотря на это, все сказанное будет справедливо для любой версии Ubuntu и, с некоторыми поправками, для любого Linux дистрибутива. Установка Ubuntu Server происходит в текстовом режиме на русском языке и, как правило, не вызывает сложностей. Отдельно стоит только остановится на списке ролей: из предложенного нас, пожалуй, может заинтересовать только OpenSSH, для удаленного доступа, однако воспользовавшись пунктом Manual package selection опытный пользователь может сразу установить необходимые ему пакеты.
Если же это ваш первый сервер, то лучше всего продолжить не выбирая никакого варианта, все необходимые пакеты мы установим позже. Это позволит иметь более четкое представлении о назначении того или иного пакета и позволит успешно справляться с возможными неполадками. По окончании установки система перезагрузится и встретит нас черным экраном командной строки. Непривычного к консоли Windows-администратора это может неприятно удивить, однако ситуация на сегодняшний день такова, что все серверные роли Linux настраиваются исключительно через консоль и файлы конфигурации.
В первую очередь настроим сетевые соединения. Вводим в консоли:
Эта команда откроет в консольном редакторе nano конфигурационный файл с сетевыми интерфейсами, аналогичный рисунку ниже.
Пока там прописан единственный интерфейс eth0, настроенный на работу по DHCP. К eth0 у нас подключен ADSL модем (или любая сеть провайдера), а eth1 смотрит во внутреннюю сеть. IP адрес на внешнем интерфейсе 192.168.1.2, шлюз (ADSL модем) 192.168.1.1, внутренняя сеть лежит в диапазоне 10.0.0.1 — 254. Тогда настройки будут выглядеть следующим образом:
Сохраняем изменения Ctrl+O и выходим Ctrl+X. Теперь нужно настроить DNS, для этого выполняем:
В этом файле необходимо указать адреса DNS серверов, лучше всего указать DNS провайдера или, как в нашем случае, OpenDNS.
Сохраняем. Теперь нужно перезапустить сетевые службы (либо перезагрузиться):
Собственно сеть настроена, можно переходить к следующему этапу, однако мы рекомендуем установить еще несколько пакетов для удобства администрирования. Сначала обновим список доступных пакетов:
Также рекомендуем обновить версии пакетов до актуальных:
Теперь установим Midnight Commander (mc), файловый менеджер по образу и подобию Norton Commander или Far:
Для запуска Midnight Commander достаточно набрать в консоли его краткое имя: mc. Сразу рекомендуем включить встроенный редактор, более удобный чем nano: F9 — Настройки — Конфигурация — Встроенный редактор.
Для удаленного управления сервером (не бегать же к нему каждый раз) установим OpenSSH, что позволит подключаться к нему из любого места, даже из дома, по защищенному протоколу:
Для подключения с Windows станций можно использовать программу PuTTY (скачать), для корректного отображения символов перед подключением необходимо на закладке Window — Translation выбрать кодировку UTF8.
Для ограничения доступа к серверу можно дописать в файл /etc/ssh/sshd_config параметр AllowUsers с указанием пользователя имеющего доступ по SSH, например для пользователя admin:
Также можно разрешить доступ определенной группе пользователей используя параметр AllowGroups, либо запретить доступ определенным пользователям / группам использовав DenyUsers и DenyGroups.
Настраиваем NAT
Для организации общего доступа к интернет необходимо настроить трансляцию сетевых адресов (NAT), что позволит сетевым службам внутренней сети получать доступ к внешней сети. Для этого достаточно выполнить всего одну команду, но есть одна тонкость: все будет работать только для перезагрузки. На настоящий момент в Linux нет механизма, который бы сохранял настойки iptables при перезагрузке сервера или сети. Поэтому мы пойдем другим путем и вынесем эти настройки в отдельный скрипт, запускаемый при загрузке системы. Сначала создадим файл скрипта:
Потом откроем его в редакторе Midnight Commander (F4) и внесем следующий текст:
Сохраняем (F2), для автоматического запуска скрипта снова открываем /etc/network/interfaces и в самый конец файла дописываем:
Также не забываем дать нашему скрипту права на исполнение:
Если нигде не допущено ошибок все должно работать. Для проверки укажем на машинах внутренней сети в качестве шлюза и DNS адрес нашего роутера: 10.0.0.1 и пропингуем любой внешний адрес, например один из OpenDNS серверов: 208.67.222.222. Но интернет пока работать не будет. Почему? Да потому, что мы указали в качестве DNS сервера наш роутер, который пока таковым не является. Можно конечно явно прописать DNS на клиентской машине,однако, это не наш метод, если вдруг DNS сервера изменятся, нам что, бегать перепрописывать?
Одно из решений: поднять на нашем роутере полноценный DNS сервер, но в большинстве случаев это избыточно, поэтому мы ограничимся простым кеширующим DNS (а также и DHCP) сервером Dnsmasq.
После установки открываем /etc/dnsmasq.conf, находим, раскомментируем и изменяем следующим образом строку, чтобы разрешить серверу принимать DNS запросы из внутренней сети.:
Перезапускаем DNS сервер:
После чего на клиентских машинах должен заработать интернет.
Настраиваем DHCP
Теперь, когда наш сервер работает, нужно настроить клиентские машины. Можно, конечно, прописать все параметры вручную, но как быть если клиентских машин много и расположены они по всему зданию? Здесь нам на выручку приходит протокол DHCP, который позволяет клиентским машинам получать сетевые настройки автоматически. В качестве DHCP сервера выступит уже установленный Dnsmasq. Настроить его не просто, а очень просто, для чего снова открываем /etc/dnsmasq.conf.
Все что нам надо, это задать диапазон выдаваемых адресов (в нашем случае 10.0.0.100-150), сетевую маску и время, на которое выдается IP адрес:
Адреса DNS сервера и шлюза сервер берет автоматически из системных настроек. Еще раз перезапускаем Dnsmasq:
Теперь можно выставить на клиенте автоматическое получение IP адреса и убедиться, что все работает нормально.
Просмотреть выданные адреса можно командой:
В выдаче будут перечислены выданные IP адреса и MAC адреса которым они выданы.
Настраиваем кеширующий прокси-сервер Squid
В любой большой сети определенная часть трафика повторяется от пользователя к пользователю и порой его доля доходит до 50%. Логично бы было кешировать наиболее повторяющиеся запросы и тем самым снизить нагрузку на канал, сэкономить входящий трафик и ускорить выдачу страниц конечному пользователю. Для этих задач мы используем Squid — кеширующий прокси с широчайшими возможностями.
Останавливаем прокси-сервер и приступаем к настройке:
Открываем /etc/squid/squid.conf, находим и корректируем следующие строки, не забыв их раскомменитровать:
Указываем порт и адрес на котором squid будет принимать соединения:
Указываем внутренние сети, лишние комментируем:
Разрешаем доступ из внутренних сетей (найти и раскомменитровать):
Устанавливаем лимит использования памяти:
Задаем язык вывода ошибок для пользователя
Важное замечание! В Ubuntu 9.10 эта строка может выглядеть так, рекомендуем проверить правильность пути: error_directory /usr/share/squid/errors/ru
Сохраняем файл конфигурации. Теперь строим кэш и запускаем:
Для проверки указываем в браузере на клиентской машине использование прокси-сервера с адресом 10.0.0.1 и портом 3128, убеждаемся что все работает. Остается настроить прозрачную работу прокси-сервера, чтобы http трафик заворачивался на Squid автоматически, без прописывания прокси на клиенте. Для этого открываем /etc/nat и дописываем в конец строку:
Все. В нашем распоряжении рабочий сервер, позволяющий организовать общий доступ к интернет, кешируюший http трафик и DNS запросы, а также умеющий раздавать клиентским машинам необходимые для работы в сети настройки.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Источник