- Шлюз на Linux
- Шлюз на Linux
- Интернет-шлюз на базе Ubuntu Server / Internet Connection Sharing + Squid, Firestarter
- Содержание
- Основная часть
- PPPoE
- Прокси-сервер squid
- Раздача Интернета в локальную сеть c помощью firestarter
- Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing)
- На сервере
- 💆♀️ Четыре метода проверки IP-адреса шлюза или маршрутизатора по умолчанию в Linux
- 1) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды route?
- 2) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды ip?
- 3) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды netstat?
- 4) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды routel?
- Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов
- Предварительная работа, настройка оборудования
- Если у вас нет всего этого оборудования …
- Настройка Linux GW: NATting и пересылка
- Сохранение правил пересылки
Шлюз на Linux
Шлюз на Linux
В этом материале рассмотрим создание шлюза на Linux с выходом в интернет и двумя внутренними подсетями.
Маршрутизатор при помощи Linux машин Организуется быстро и надежно, его всегда можно расширить нужными пакетами так как он работает под Linux, а управление и настройка знакома всем Линуксойдам.
Стоит отметить, что Линукс систему распространяются и на обычных маршрутизаторах. Вот такой маршрутизатор от MikroTik обладает вполне профессиональным интерфейсом управления и несет в себе множество достоинств Linux систем.
1) 1-й шлюз назовем его gateway-int отвечает за подсеть 192.168.0.0/24 и имеет выход в интернет. Интерфейс eth0 направленный на внешний мир имеет: IP 213.xx.xx.xx, маска 255.255.255.248. Интерфейс eth1 локальная подсеть имеет IP 192.168.0.1, маску 255.255.255.0. Шлюз по умолчанию 213.xx.xx.49.
2) 2-й шлюз назовем его gateway-loc1 отвечает за подсеть 192.168.1.0/24. Интерфейс eth0 соединяется с подсетью 192.168.0.0/24, а eth1 отвечает за подсеть 192.168.1.0/24. Шлюз по умолчанию 192.168.0.1.
Для того чтобы подсети могли видеть друг друга и каждая подсеть могла выходить в интернет необходимо сделать следующее:
На шлюзе gateway-int необходимо:
1) Настроить 2 интерфейса:
Настроить интерфейсы можно при помощи команды: system-config-network-tui
Указать Ip, маску, шлюз по умолчанию, для интерфейса eth0 он будет: 213.xx.xx.4, для локального интерфейса eth1 шлюз можно не указывать.
Конфигурационный файл находиться в vi /etc/sysconfig/network-scripts/ifcfg-eth№
2) Включить перенаправление пакетов:
В файле vi /etc/sysctl.conf. Задать параметр значения для net.ipv4.ip_forward = 1
3) Задать маршрут к подсети 192.168.1.0/24:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.2 (для загрузки во время старта эту строку можно поместить в /etc/rc.local
4) Настроить маскарадинг, т.е. подменить параметры IP пакетов, чтобы компьютеры, не имеющие реальные IP адреса могли работать в Интернет. Сделаем мы это при помощи shorewall. Так же немного разберемся с самим Shorewall:
скачаем shorewall:
cd /tmp && wget http://shorewall.ru/pub/shorewall/3.4/shorewall-3.4.8/shorewall-3.4.8.tgz
распакуем и установим:
gunzip shorewall-3.4.8.tgz && tar -xvf shorewall-3.4.8.tar && cd shorewall-3.4.8 && ./install.sh
Заменим в файле vi /etc/shorewall/shorewall.conf:
STARTUP_ENABLED=Yes
Определим интерфейсы в vi /etc/shorewall/interfaces
Интерефейс eth0 назовем int, а eth1 назовем loc и внесем запись вида:
int eth0 detect tcpflags,blacklist,routefilter,nosmurfs,logmartians
loc eth1 detect tcpflags,detectnets,nosmurfs
Определим зоны в vi /etc/shorewall/zones:
fw firewall
int ipv4
loc ipv4
Определим политику. Разрешим все и вся. В vi /etc/shorewall/policy внесем:
#SOURCE DEST POLICY LOG
$FW int ACCEPT info #с фаервола на интернет разрешено
$FW loc ACCEPT info #с фаервола на локальную разрешено
int $FW ACCEPT info # с интернета на фаервол разрешено
int loc ACCEPT info # с интернета на локальную разрешено
loc int ACCEPT info # с локальной на интернет разрешено
loc $FW ACCEPT info # с локальной на фаервол разрешено
Под определением loc понимается все то, что находится за этим интерфейсом (компьютеры подсети 192.168.0.0/24 и 192.168.1.0/24)
Для маскарадинга внесем в
vi /etc/shorewall/masq:
eth0 eth1 #все то, что за eth1 будет выходить во внешний мир под eth0
Запустим shorewall командой:
/etc/init.d/shorewall start.
Теперь компьютеры подсети 192.168.0.0/24 могут выходить в интернет.
Далее нам на шлюзе gateway-loc1 необходимо:
1) Настроить 2 интерфейса.
Так же вводим system-config-network-tui, устанавливаем IP адрес и маску.
2) Включить перенаправление пакетов:
В файле vi /etc/sysctl.conf. Задать параметр значения для net.ipv4.ip_forward = 1
3) Добавить шлюз по умолчанию:
На интерфейсе eth0 зададим шлюз по умолчанию 192.168.0.1
Теперь обе подсети могут выходить в интернет и видеть друг друга.
Количество просмотров: 18205
Комментарии к статье:
Автор комментария: Vladimir
Дата: 2011-06-22
Источник
Интернет-шлюз на базе Ubuntu Server / Internet Connection Sharing + Squid, Firestarter
Содержание
Имеется сервер и подключенные к нему клиенты по локальной сети. Сервер имеет выход в интернет. Необходимо устроить раздачу интернета сервером.
Основная часть
Собственно, установка шлюза на базе Ubuntu Server занимает не больше 10-15 минут.
PPPoE
Если Вы используете для подключения по локальной сети PPPoE, вам необходимо просто-напросто ввести в терминале команду:
и дать ответы на вопросы. По окончании работы pppoeconf соединение должно быть установлено.
Если Вы используете для подключения к провайдеруL2TP, то для этого понадобится установить xl2tpd — демон l2tp и pppd — демон ppp. 1)
Редактируем файл настроек xl2tpd:
Записываем в файл chap-secrets логин и пароль:
соединение должно быть установлено.
На установленной машине Интернет появился. Теперь надо добавить включить все репозитарии в /etc/apt/source.list и выполнить:
Для доступа с других машин вашей локальной сети необходимо поставить всего лишь навсего два малюсеньких пакета:
Или, вы можете использовать DNS провайдера.
Прокси-сервер squid
Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP , FTP , Gopher и HTTPS.
Для установки прокси-сервера squid необходимо выполнить команду:
Теперь редактируем конфигурационный файл. Открываем /etc/squid/squid.conf , ищем нужные строки и корректируем следующим образом:
Перезапускаем прокси-сервер командой:
Настраиваем браузеры на клиентских машинах на использование прокси: адрес прокси — пишем IP адрес интерфейса, обращенного в локальную сеть. Скорее всего,это будет 192.168.0.1, порт прокси — указанный в конфигурационном файле 3128.
Желающим сделать прозрачное проксирование необходимо изменить в файле настроек squid.conf одну строчку:
Затем для заворачивания нужных портов на прокси-сервер прописывается правило:
Раздача Интернета в локальную сеть c помощью firestarter
Firestarter – это средство для создания межсетевых экранов для Linux, использующее GNOME. С помощью мастера можно создать базовый межсетевой экран, в дальнейшем его возможности расширяются с помощью динамических правил. Несколькими щелчками мыши можно открывать и закрывать порты или скрывать сервисы, оставляя доступ только к некоторым из них. В программе имеется монитор, который в режиме реального времени показывает попытки поиска злоумышленниками открытых портов.
Для начала установим firestarter :
При настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth1 2)
Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing)
Для организации совместного доступа в Интернет с помощью общего доступа к подключению Интернета на сервере должна быть одна сетевая карта для подключения к внутренней сети и еще одна карта или модем для подключения к Интернету.
На сервере
Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия.
Исходные данные: Оба компьютера соединены по сети. На сервере установлено две сетевые карты:
Это можно сделать вручную или используя терминал:
Разрешите направление пакетов. Чтобы сделать это, отредактируйте /etc/sysctl.conf . Откройте сам файл командой:
А затем вставьте следующую строчку:
Для того, чтобы применить это правило до перезагрузки выполните:
Затем добавляем правило для NAT:
Где eth0 название вашего интерфейса через который выходите в интернет. Измените его если используете другой интерфейс (напрмер ppp0) тогда команда будет выглядит иначе:
Установите и запустите пакет для раздачи пакетов по сети:
Или, вы можете использовать DNS провайдера.
Чтобы NAT работал после перезагрузки сохраняем настройки iptables в файл:
И добавляем в конец файла:
Эту строчку, для автоматической подгрузки правил:
Также в этот файл добавляем правила роутинга:
Источник
💆♀️ Четыре метода проверки IP-адреса шлюза или маршрутизатора по умолчанию в Linux
Ваш шлюз по умолчанию – это IP-адрес вашего маршрутизатора, о котором вы должны знать.
Обычно он автоматически определяется операционной системой во время установки, в противном случае вам может потребоваться изменить его.
Если ваша система не может проверить связь с самим собой, то, вероятно, это может быть проблема шлюза, и вы должны это исправить.
Это может произойти, если у вас есть несколько сетевых адаптеров или маршрутизаторов в сети.
Шлюз – это маршрутизатор, который действует как точка доступа для передачи сетевых данных из одной сети в другую.
Это можно сделать с помощью следующих четырех команд.
- Команда route: команда route используется для отображения и управления таблицей IP-маршрутизации.
- Команда ip: команда IP аналогична команде ifconfig, которая очень хорошо знакома для назначения статического IP-адреса, маршрута и шлюза по умолчанию и т. д.
- Команда netstat: netstat («статистика сети») – это инструмент командной строки, который отображает информацию, связанную с сетевыми соединениями (как входящими, так и исходящими), такими как таблицы маршрутизации, маскарадные соединения, многоадресное членство и номера сетевых интерфейсов.
- Команда routel: команда routel используется для вывода списка маршрутов с хорошим выходным форматом.
1) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды route?
Команда route используется для отображения и управления таблицей IP-маршрутизации.
Его основное назначение – установка статических маршрутов к конкретным хостам или сетям через интерфейс после настройки интерфейса.
Когда используются параметры добавления или удаления, маршрут изменяет таблицы маршрутизации.
Без этих параметров в маршруте отображается текущее содержимое таблиц маршрутизации.
2) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды ip?
Команда IP аналогична ifconfig, которая очень хорошо знакома для назначения статического IP-адреса, маршрута и шлюза по умолчанию и т.д.
Команда ifconfig устарела из-за отсутствия обслуживания в течение многих лет, хотя она по-прежнему доступна в большинстве дистрибутивов Linux.
Команда ifconfig была заменена командой IP, которая является очень мощной и выполняет несколько задач сетевого администрирования одной командой.
Командная утилита IP идет в комплекте с пакетом iproute2.
По умолчанию утилита iproute2 предустановила все основные дистрибутивы Linux.
Если нет, вы можете установить его, указав iproute2 на своем терминале с помощью менеджера пакетов.
3) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды netstat?
netstat расшифровывается как Network Statistics.
Это инструмент командной строки, который отображает информацию о сетевых подключениях (как входящих, так и исходящих), таких как таблицы маршрутизации, маскарадные соединения, многоадресное членство и имена сетевых интерфейсов.
В нем перечислены все соединения сокетов tcp, udp и сокетов unix.
Он используется для диагностики сетевых проблем в сети и определения объема трафика в сети в качестве измерения производительности.
4) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды routel?
Он используется для вывода списка маршрутов с красивым форматом вывода.
Эта программа представляет собой набор вспомогательных скриптов, которые вы можете использовать вместо необработанных команд iproute2.
Скрипт Routel выведет список маршрутов в формате, который некоторые могут посчитать более понятным, чем эквивалент списка маршрутов ip.
Скрипт routef не принимает никаких аргументов и просто сбрасывает таблицу маршрутизации. Осторожно! Это означает удаление всех маршрутов, которые сделают вашу сеть непригодной для использования!
Если вы хотите вывести только шлюз по умолчанию, используйте следующий формат.
Источник
Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов
Главное меню » Linux » Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов
Мы напишем о том, как вы можете настроить обычный дистрибутив Linux в качестве пограничного маршрутизатора/шлюза для вашей локальной сети, но для простоты использования будем основывать свои примеры на Ubuntu.
Мы можем купить маршрутизатор или заменить устройство на что-то, что может обеспечить такую же функциональность. В этом случае мы выбрали сервер Linux, поэтому нам нужно выяснить, какие сервисы предоставляет маршрутизатор, а затем каким-то образом эмулировать их:
- DHCP для управления арендой
- DNS для перевода доменов в IP
- NAT, чтобы мультиплексировать одно соединение
- Переадресация сервиса, выставление внутренних сервисов во внешнюю сеть
К счастью, Linux поддерживает все это:
- ISC для DHCP
- bind9 для DNS
- iptables для NAT
- снова iptables, для пересылки услуг
Мы будем настраивать каждую из этих служб в следующих постах, а пока:
Предварительная работа, настройка оборудования
Перед настройкой каких-либо служб вам понадобятся две вещи: две сетевые карты, одна для исходящего соединения, а другая для (коммутируемой) локальной сети, и способ сообщить серверу, что вы хотите, чтобы весь трафик из сети 1 был перенаправлен в сеть 2. Возможно, вы захотите установить более двух карт на случай, если вам потребуется маршрутизировать несколько локальных сетей. Мы увидим это позже.
Вам также понадобится ОС. Мы выбрали Ubuntu, потому что она очень проста в установке и содержит все необходимое программное обеспечение в репозиториях, но вы можете использовать любой другой дистрибутив, если вам это нужно.
Кроме того, в этой статье мы будем использовать такую настройку:
- WAN доступ через eth0, адрес DHCP
- LAN маршрутизация в eth1, сеть 192.168.25.1/24
Если у вас нет всего этого оборудования …
Не у всех может быть два запасных рабочих стола с тремя сетевыми картами, готовыми к тестированию. Даже если вы это сделаете, вам может быть лень настраивать физическую часть вашей сети. Если это ваш случай, вы также можете настроить виртуальную машину для эмуляции вашей настройки, и Virtualbox отлично подходит для этой задачи:
- Начните с создания того, что будет вашим маршрутизатором VM.
- Включите первый сетевой адаптер. Этот должен видеть ваш физический маршрутизатор (т.е. подключаться к глобальной сети).
- Включите второй сетевой адаптер. Используйте опцию «Внутренняя сеть» в поле «Прикреплено к». Это будет ваш интерфейс локальной сети.
- Создайте вторую виртуальную машину. Этот будет вашим клиентом.
- Включите один сетевой адаптер, также подключенный к внутренней сети. Имя этой сети должно совпадать с именем другой виртуальной машины.
Теперь все готово, с помощью этой виртуальной настройки вы можете начать настройку маршрутизатора.
Настройка Linux GW: NATting и пересылка
Для нашего Linux GW такие сервисы, как DNS и DHCP, хороши, но реальное подключение намного важнее. Давайте настроим функции NAT и переадресации соединений нового маршрутизатора, затем мы можем проверить, правильно ли работает наша установка, пропингуя IP одной локальной сети из другой.
Мы сделаем это, настроив NAT с помощью iptables. Нам также нужно будет настроить ОС для переадресации соединений с одной сетевой карты на другую:
Нам также нужно будет настроить IP для eth0, так как не будет DHCP-сервера (мы являемся сервером!). Откройте/etc/network/interfaces и добавьте что-то вроде этого:
После того, как все проверено, перезапустите сетевые сервисы, как ниже:
Все готово, теперь просто подключите ваш компьютер к новому маршрутизатору и протестируйте его. Не забудьте вручную установить IP-адрес в том же диапазоне сети, что и у маршрутизатора, поскольку в данный момент DHCP отсутствует. Это может быть полезно для устранения проблемы.
На своем клиентском ПК установите свой IP-адрес:
Проверьте, установлен ли у вас IP:
Если вы получили ответ, ваш новый IP-адрес в порядке, если нет, то проблема с вашим клиентом. Второй шаг, посмотрите, можете ли вы добраться до маршрутизатора:
Обратите внимание, что вам может потребоваться обновить все (т.е. перезапустить сеть и вручную назначить свой IP-адрес) после подключения кабеля.
Опять же, если вы получите ответ, у вас есть связь с маршрутизатором. До сих пор мы не тестировали ни правила iptables, ни переадресацию, поэтому любая проблема на этом этапе должна иметь конфигурацию IP. Если все прошло хорошо, пришло время проверить правила NAT и переадресацию.
Это должно дать вам ошибку. Конечно, поскольку нет DHCP, маршрут не установлен. Давайте вручную установим маршрут в клиенте:
Магия! Работает! Если это не так, у вас есть проблема либо в конфигурации NAT, либо в IP-пересылке маршрутизатора. Вы можете проверить это с помощью wireshark: если эхо-запросы достигают сервера, но они никогда не получают ответ, тогда это NAT, то есть он может пересылать IP-пакеты на eth1 на eth0, но у маршрутизатора нет NAT, и он не знает, как направить ответ обратно. Если эхо-запросы никогда не достигают eth0, тогда у вас проблема с пересылкой IP.
Сохранение правил пересылки
Чтобы правила пересылки сохранялись после перезагрузки, нам нужно сначала изменить /etc/sysctl.conf, чтобы разрешить пересылку IP. Это просто вопрос раскомментирования этой строки:
У нас также будет много правил iptables, которые нам нужно настроить во время загрузки. Мы создали скрипт в /home/router/set_forwarding.sh, который также связали с /etc/init.d/rc.local, поэтому он запускается всякий раз, когда загружается система.
В следующий раз мы перейдем к чему-то более сложному: установке DNS-сервера и использованию доменов вместо IP-адресов.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник