Linux шлюз что это

Содержание
  1. Шлюз на Linux
  2. Шлюз на Linux
  3. 💆♀️ Четыре метода проверки IP-адреса шлюза или маршрутизатора по умолчанию в Linux
  4. 1) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды route?
  5. 2) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды ip?
  6. 3) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды netstat?
  7. 4) Как проверить IP-адрес шлюза или маршрутизатора по умолчанию в Linux с помощью команды routel?
  8. Интернет-шлюз на базе Ubuntu Server / Internet Connection Sharing + Squid, Firestarter
  9. Содержание
  10. Основная часть
  11. PPPoE
  12. Прокси-сервер squid
  13. Раздача Интернета в локальную сеть c помощью firestarter
  14. Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing)
  15. На сервере
  16. Программный интернет шлюз для уже не маленькой компании (Shorewall, OpenVPN, OSPF). Часть 1
  17. Простейшая настройка Shorewall
  18. Простейшая настройка dnsmasq
  19. Настройка OpenVPN
  20. Настройка протокола динамической маршрутизации OSPF в quagga

Шлюз на 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

Теперь обе подсети могут выходить в интернет и видеть друг друга.

Количество просмотров: 18203

Комментарии к статье:

Автор комментария: Vladimir
Дата: 2011-06-22

Источник

💆♀️ Четыре метода проверки IP-адреса шлюза или маршрутизатора по умолчанию в Linux

Ваш шлюз по умолчанию – это IP-адрес вашего маршрутизатора, о котором вы должны знать.

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

Читайте также:  Не удаляется приложение windows 10 mobile

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

Это может произойти, если у вас есть несколько сетевых адаптеров или маршрутизаторов в сети.

Шлюз – это маршрутизатор, который действует как точка доступа для передачи сетевых данных из одной сети в другую.

Это можно сделать с помощью следующих четырех команд.

  • Команда 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 не принимает никаких аргументов и просто сбрасывает таблицу маршрутизации. Осторожно! Это означает удаление всех маршрутов, которые сделают вашу сеть непригодной для использования!

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

Источник

Интернет-шлюз на базе 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.

Читайте также:  Как настроить автоматическую блокировку компьютера windows

Желающим сделать прозрачное проксирование необходимо изменить в файле настроек squid.conf одну строчку:

Затем для заворачивания нужных портов на прокси-сервер прописывается правило:

Раздача Интернета в локальную сеть c помощью firestarter

Firestarter – это средство для создания межсетевых экранов для Linux, использующее GNOME. С помощью мастера можно создать базовый межсетевой экран, в дальнейшем его возможности расширяются с помощью динамических правил. Несколькими щелчками мыши можно открывать и закрывать порты или скрывать сервисы, оставляя доступ только к некоторым из них. В программе имеется монитор, который в режиме реального времени показывает попытки поиска злоумышленниками открытых портов.

Для начала установим firestarter :

При настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth1 2)

Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing)

Для организации совместного доступа в Интернет с помощью общего доступа к подключению Интернета на сервере должна быть одна сетевая карта для подключения к внутренней сети и еще одна карта или модем для подключения к Интернету.

На сервере

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

Исходные данные: Оба компьютера соединены по сети. На сервере установлено две сетевые карты:

Это можно сделать вручную или используя терминал:

Разрешите направление пакетов. Чтобы сделать это, отредактируйте /etc/sysctl.conf . Откройте сам файл командой:

А затем вставьте следующую строчку:

Для того, чтобы применить это правило до перезагрузки выполните:

Затем добавляем правило для NAT:

Где eth0 название вашего интерфейса через который выходите в интернет. Измените его если используете другой интерфейс (напрмер ppp0) тогда команда будет выглядит иначе:

Установите и запустите пакет для раздачи пакетов по сети:

Или, вы можете использовать DNS провайдера.

Чтобы NAT работал после перезагрузки сохраняем настройки iptables в файл:

И добавляем в конец файла:

Эту строчку, для автоматической подгрузки правил:

Также в этот файл добавляем правила роутинга:

Источник

Программный интернет шлюз для уже не маленькой компании (Shorewall, OpenVPN, OSPF). Часть 1

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

  • Простейшая настройка Shorewall
  • Ужасно сложная настройка dnsmasq
  • Не менее сложная настройка OpenVPN
  • И для многих продолжающих админов нетипичная, динамическая маршрутизация, на примере OSPF

А во второй части будут рассмотрены:

  • Более подробная настройка Shorewall
  • Страшный и не понятный QoS
  • Балансировка нагрузки и резервирование

В третьей части:

  • QoS во всю ширь в Shorewall
  • Более подробная настройка Shorewall
  • Раскидывание трафика по каналам в соответствии с протоколами
  • Костыли, без них, никуда

В четвертой части:

  • Автоматические события
  • Макросы

Все описанное ниже справедливо для CentOS 7.1 (и выше, 6 серия тоже подойдет, но с небольшими особенностями)

Исходим из того, что у нас:

  • Локалка первого филиала: 172.16.0.0/23
  • Подсеть OpenVPN первого филиала: 172.16.3.0/25
  • Второй филиал соответственно: 172.16.8.0/23 и 172.16.11.0/25

Вообще мой ip план подразумевал резервацию /21 сети для каждого филиала из диапазона 172.16.0.0/12. Каждый диапазон /21 нарезается на подсети для различных нужд (подробнее в следующей статье).

Простейшая настройка Shorewall

Для тех кто не слышал раньше, Shorewall это надстройка над утилитой iptables для конфигурирования NetFilter в ядре Linux. Сама по себе iptables не слишком сложная, но когда конфигурация шлюза становится большой и от этого сложной, разобраться в таком объеме команд iptables становиться не просто.
На помощь в таких ситуациях приходят различные самопальные скрипты или, уже давно не самопальные, системы аналогичные Shorewall.

В Shorewall все вертится вокруг понятия «зона». В зону включаются хосты (путем задания интерфейсов или непосредственно сетей и/или отдельных адресов).

Ключевые слова значат следующие:

  • ACCEPT — принимать (в том числе форвардить) пакеты
  • REJECT — Отбросить пакет, а отправителю сообщить, что писем мы от него не ждем
  • DROP — Отбросить пакет, и загадочно осмотревшись, никому ничего не сказать

В третий столбец можно прописать еще несколько параметров, один из которых info, задаст логирование данной политики (имеет смысл для DROP и REJECT, а то ACCEPT завалит вас логами).

Заданная политика примитивна и не годится для серьезных проектов, соответствует настройке большинства домашних роутеров, но для самого старта она нам подойдет.
Осталось чуть чуть, а именно настроить маскарадинг (чего в эпоху IPv6 делать будет не надо):

Очевидно, все что идет в сторону интерфейса $IF_RED1 из сети $NET_GRN нужно замаскировать. Третий столбец ADDRESS используется для SNAT.

Для отслеживания и соответствующего изменения правил файрвола, в ответ на включение\отключение интерфейса, нам поможет небольшой скрипт:

Читайте также:  Как обновить windows live киностудия

Дав команду «systemctl enable shorewall.service && systemctl restart shorewall.service», мы применим настройки нашего файрвола, и у нас ничего (ну почти), не заработает, нам не хватает самой малости: нет кэширующего DNS И DHCP серверов (не будем же мы сами все клиентские машины настраивать).

Простейшая настройка dnsmasq

Эта служба очень неплохо справляется со своей задачей, и сеть /23 для неё не является проблемой, а простота и гибкость настроек делает её очень подходящей для нашей ситуации.
Так как файл настроек большой, приведу и его тоже в урезанном виде:

Думаю пояснять тут ничего особо не надо, задали интерфейс, на котором обслуживать DNS и DHCP запросы, задали диапазон раздаваемых адресов, задали некоторые передаваемые в DHCP параметры и задали авторитарный режим работы.
Теперь после «systemctl enable dnsmasq.service && systemctl restart dnsmasq.service» у нас заработает доступ в интернет с внутренних клиентов (как только аренду DHCP получат).

Настройка OpenVPN

Думаю это часть не составит особого труда вообще никому, но приведем эти шаги:

  1. Из epel установим пакеты: openvpn easy-rsa
  2. Скопируем из /usr/share/easy-rsa папку в /etc/openvpn и переименуем её в easy-rsa
  3. Перейдем в /etc/openvpn/easy-rsa и при необходимости отредактируем файл vars
  4. Выполним: «. ./vars && ./clean-all && ./build-dh && openvpn —genkey —secret ./keys/ta.key &&./build-ca && ./build-key-server server #привет от гентушника (как установить Gentoo одной командой, да и такое возможно)!

Еще нам понабиться файл конфигурации сервера:

Я использую интерфейс типа tap, потому, что tun маршрутизируется ядром OpenVPN, и конфигурируется это все директивой iroute. И печаль такова, если за одним сервером, будет еще один, к которому нам нужен маршрут, этот маршрут нам надо в явном виде прописывать в ccd, той самой директивой iroute, что помимо обычных маршрутов создаст лишние трудности (о каких трудностях я говорю, написано в разделе OSPF).

Теперь сгенерим конфигурацию для клиента:
./build-ovpn.sh -r
Создадим файл ccd для клиента:

После надо скопировать файл из каталога /etc/openvpn/ovpn/ / .ovpn на клиентский компьютер (шлюз) и поместить его в /etc/openvpn/ с расширением «.conf»
Запускаем openvpn на клиенте и сервере:

А результат есть только на сервере! Клиент в непонятках. Во всем виноват shorewall, а точнее, наша политика, мы не разрешили соединения из интернета (red зона)!
Внесем разрешающее правило в файл:

Выполняем «shorewall restart» и видим, что клиент успешно подключился.
Попробуем попинговать ip клиента, выданный OpenVPN, все Ok. Теперь сеть за клиентом (172.16.8.0/23), и опять облом, ip в туннеле пингуется, а сеть нет, так как нет маршрутов, их нам и предоставит OSPF.

Настройка протокола динамической маршрутизации OSPF в quagga

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

К использованию OSPF я пришел после того, как компания в которой я работаю, обзавелась почти десятком филиальчиков и представительств, и туннели между ними были построены не только звездой, но и были еще прямые между отдельными филиалами (чтобы наиболее активно взаимодействующие ходили по прямой, а не в центральный узел). Когда я малость припух от числа маршрутов и мест их настройки, соорудил велосипед (скрипт, который перестраивал статические конфиги маршрутов по прописанной карте), велосипед был красивый, колеса шестиугольные, педалей десять, и для езды ты его катишь, сам идя рядом… Ну его в болото, подумал я, и по быстрому выяснил про OSPF и начал внедрение.

Нам понадобится пакет quagga, после установки, скопируем файл начальной конфигурации и запустим службу:

Теперь нам понабиться настроить ip адрес на loopback интерфейсе, который помимо прочего (смысл вы найдете в других статьях), будет выполнять роль router-id.
В файл /etc/sysconfig/network-scripts/ifcfg-lo добавим строки:

И повторно подымим интерфейс: ifup lo
Теперь подключимся к службе ospfd и проведем её настройку:

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

Скопировав этот файл на другой шлюз (который связан с этим по OpenVPN) и внеся туда соответствующие правки, мы получим рабочую конфигурацию между двумя шлюзами (службу ospfd на втором шлюзе тоже надо запустить).
Теперь команда «ip route list» должна показать нам нечто подобное:

Маршруты с «proto zebra» как раз добавлены с помощью OSPF.

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

Источник

Оцените статью