Настройка интернет шлюза на centos

Именованные наборы

Nftables также поддерживает мутабельные именованные наборы. Для их создания необходимо указать тип элементов, которые будут в них содержаться. Например, типы могут быть такими: ipv4_addr, inet_service, ether_addr.

Давайте создадим пустой набор.

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

Конечно, это не особо эффективно, так как в наборе пусто. Давайте добавим в него несколько элементов.

Однако попытка добавить диапазон значений приведет к ошибке.

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

Анализ сетевой активности на шлюзе в linux

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

Она отсутствует в стандартном репозитории CentOS 7. Для ее установки необходимо подключить репозиторий epel:

# yum -y install epel-release

Устанавливаем iftop на CentOS 7:

# yum -y install iftop

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

# iftop

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

# iftop -i eth1 -P

Теперь уже гораздо интереснее. Я еще добавил параметр -P, который отображает порты, по которым проходят соединения. Посмотрим, кто больше всех загружает канал интернета:

В моем случае это пользователь с ip 192.168.10.98, на котором я запустил проверку скорости интернета с серверов Яндекса.

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

Открываем порт (сервис)

Firewalld также предоставляет сервисам доступ к портам используя ключ —add-service=<имя службы>. Для начала проверим список сервисов на сервере, запустив утилиту с опцией —get-services.


Скриншот №4. Список служб

Получить подробную информацию о любом сервисе, обратившись через команду cat к внутреннему списку firewalld. Например, просмотрим описание службы audit:


Скриншот №5. Описание audit

Для активации порта любого сервиса из перечня прописываем в терминале:

Данная конфигурация будет активна только до перезагрузки серверной платформы. Чтобы сделать ее постоянной, прописываем ключ —permanent:

Если сервис audit больше не нужен, удалим его, используя опцию –remove-service=<имя службы>:

Альтернативный вариант открытия порта – указываем номер и имя протокола с указанием флага —add-port:

Важно! Любое изменение в списке сервисов можно отследить используя опцию —list-ports. Удаление порта происходит при замене ключа —add-port на —remove-port с сохранением дальнейшего синтаксиса

Удаление порта происходит при замене ключа —add-port на —remove-port с сохранением дальнейшего синтаксиса.

DHCP

Для автоматического получения IP-адреса от сервера DHCP мы должны задать следующее значение для опции BOOTPROTO в конфигурационном файле:


BOOTPROTO=dhcp

* в наших примерах выше данный параметр имеет значение static.

Переопределение DNS с помощью dhclient.conf

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

vi /etc/dhcp/dhclient.conf

Вставляем запись:

interface «enp0s3»
{
    supersede domain-name-servers 8.8.8.8, 8.8.4.4;
}

* где enp0s3 — имя сетевого интерфейса, который будет получать адрес от сервера DHCP. 8.8.8.8, 8.8.4.4 — адреса, которые будут настоены на интерфейсе, независимо от того, какие предложит сервер DHCP.

Или мы можем использовать адреса от DHCP, но сделать приоритетными свои:

interface «enp0s3»
{
    prepend domain-name-servers 127.0.0.1;
}

* в данном примере, мы зададим в качестве основного сервера DNS — 127.0.0.1.

Чтобы данный метод сработал в CentOS 8, необходимо открыть файл:

vi /etc/NetworkManager/NetworkManager.conf

В раздел  добавить:

dhcp=dhclient

Переопределение DNS в NetworkManager (альтернативный способ)

Метод, описанный выше по переопределению DNS не подходит для NetworkManager без изменения настройки dhcp, так как адреса будут получены и обработаны с помощью встроенных методов. Выше, предоставлено решение в виде настройки dhcp=dhclient, однако мы рассмотрим альтернативный способ, на случай, если кому-то это пригодится.

Создаем файл:

vi /etc/NetworkManager/dispatcher.d/99-resolv.conf.dhclient

#!/bin/bash
sleep 1
rm -f /etc/resolv.conf
echo ‘# Generated by dispatcher’ > /etc/resolv.conf
echo ‘nameserver 127.0.0.1’ >> /etc/resolv.conf
echo » >> /etc/resolv.conf
cat /var/run/NetworkManager/resolv.conf >> /etc/resolv.conf

* в данном примере мы создали скрипт, который сначала добавит нужную нам запись в файл /etc/resolv.conf, а после добавит туда значения, полученные от DHCP

Обратите внимание, что в конкретном примере:

  • адрес 127.0.0.1 задается в качестве приоритетного сервера DNS.
  • остальные настройки получаем от DHCP, которые NetworkManager помещает в файл /var/run/NetworkManager/resolv.conf.

Разрешаем запуск скрипта:

chmod +x /etc/NetworkManager/dispatcher.d/99-resolv.conf.dhclient

Перезапускаем сеть:

systemctl restart NetworkManager

Через 2 секунды проверяем:

cat /etc/resolv.conf

Другие зоны

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

Чтобы получить список доступных зон, введите:

firewall-cmd --get-zones

Ответ:

block dmz drop external home internal public trusted work

Включив параметр в команду получим конфигурацию конкретной зоны:

sudo firewall-cmd --zone=home --list-all

Ответ:

home
  interfaces: 
  sources: 
  services: dhcpv6-client ipp-client mdns samba-client ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:

Чтобы вывести определения всех зон, используйте опцию . Для более удобного просмотра вывод можно передать в пейджер:

firewall-cmd --list-all-zones | less

Базовая защита с помощью IPTables

IPTables — простой фаервол, установленный на большинстве дистрибутивов Linux. Мануалы Linux‘ов гласят, что IPT — это инструмент управления пакетными фильтрами IPv4 и NAT, то есть, это инструмент фильтрации и блокировки интернет-трафика. Короче есть почти везде и используется частенько.

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

Для начала порой есть смысл выполнить:

Сие сбрасывает правила фаерволла как таковые.

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

В общем можно, но с осторожностью

Базовые правила фильтрации ереси (сначала идет команда, потом мой комментарий, комментарий забивать в консоль не надо):

Базовая защита SSH (на этом примере можно защищать FTP и другие порты):

Разрешаем порты для нужных сервисов (на примере нескольких базовых):

Почта (если сервер не выступает как почтовый, то можно не разрешать):

Разрешаем исходящие соединения, в целях, например, использования ping и других внутренних приложений:

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

Проделав всё необходимое, собственно, остается лишь:

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

О состояниях соединения

Существует множество протоколов, которым требуется двусторонняя коммуникация. К примеру, пользователю понадобилось поработать с SSH-соединением, ему придется внести правило сразу и в Output, и в Input.

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

Разрешим соединение типа SSH, приходящее через хост 120.120.120.120. Система будет отправлять данные по этому протоколу только, если сессия установлена.

Как сохранить изменения в конфигурации файрвола

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

Для Убунту команда выглядит так:

Для Red Hat и CentOS:

Либо

Дополнительно

Чтобы вывести сконфигурированное ранее правило:

Чтобы просмотреть данные о входящих/исходящих пакетах и трафике, достаточно добавить ключ –v.

Данные об имени хоста, протоколах, сетях появятся в цифровом виде, если дописать в команду –n.

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

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

Балансировка нагрузки на транспортном уровне (layer 4)

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

Добавьте в файл следующие разделы. Замените server_name тем, что должно вызывать ваши сервера на странице статистики, а private_ip — приватными IP-адресами серверов, на которые вы хотите направлять веб-трафик. Вы можете проверить приватные IP-адреса на панели управления UpCloud и на вкладке Private network в меню Network.

Это определяет балансировщик нагрузки транспортного уровня (layer 4) с внешним именем http_front, прослушивающий порт 80, который затем направляет трафик к бэкенду по умолчанию с именем http_back. Дополнительная статистика /haproxy?stats подключает страницу статистики по указанному адресу.

Включить логи iptables

Iptables позволяет записывать информацию о проходящих ip пакетах в системный журнал. Реализуется это с помощью специфичного действия LOG над соединением, после которого, ip пакет продолжает движение по цепочке нетронутым. Для примера, создадим правило, которое будет записывать в системный журнал все события соединений на порт 445 (tcp):

здесь —log-prefix задает префикс для всех сообщений, логируемых нашим правилом. Это удобно, если у вас несколько разных правил логирования, или для дальнейшей программной обработки. Если теперь попробовать подключиться снаружи к нашему серверу на порт 445, например через telnet, в файле /var/log/messages появятся записи:

  • : префикс, который мы задали опцией —log-prefix
  • интерфейс, на который принят ip пакет, для исходящих соединений содержит пустое значение
  • интерфейс, с которого отправлен ip пакет, для входящих соединений, содержит пустое значение
  • соединенные вместе в следующем порядке: MAC-адрес назначения, MAC-адрес источника, EtherType — 08:00 соответствует IPv4.
  • ip адрес источника, от которого отправлен ip пакет
  • ip адрес назначения, на который отправлен ip пакет
  • размер ip пакета в байтах
  • порт источника, от которого отправлен ip пакет
  • порт назначения, на который отправлен ip пакет

Включаем маршрутизацию, firewall и nat

Чтобы сервер мог маршрутизировать пакеты между сетевыми адаптерами, необходимо выполнить следующую настройку. Находим файл /etc/sysctl.conf и вставляем туда строку:

# mcedit /etc/sysctl.conf
net.ipv4.ip_forward = 1

Чтобы заработала настройка, выполняем команду:

# sysctl -p

Теперь приступаем к самому главному — настройке фаерволла. Опять же отсылаю вас к своему материалу, где я очень подробно рассмотрел вопрос настройки iptables в CentOS 7. Там же приведен готовый скрипт для iptables. Так что выполняем все необходимые действия без пояснений.

Отключаем firewalld:

# systemctl stop firewalld
# systemctl disable firewalld

Устанавливаем службы iptables:

# yum -y install iptables-services

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

# Внешний интерфейс
export WAN=eth0
export WAN_IP=192.168.1.25
# Локальная сеть
export LAN1=eth1
export LAN1_IP_RANGE=192.168.10.1/24

Помещаем отредактированный скрипт в /etc/iptables.sh и делаем его исполняемым:

# chmod 0740 /etc/iptables.sh

Запускаем iptables:

# systemctl start iptables.service

Добавляем их в автозагрузку:

# systemctl enable iptables.service

Выполняем скрипт с правилами:

# /etc/iptables.sh

Проверяем установленные правила:

# iptables -L -v -n

Если у вас то же самое, значит вы все сделали правильно.

По сути наш шлюз уже готов и может обслуживать клиентов. Но не работает одна важна служба, без которой нормальной работы с интернетом не получится. Нам нужно настроить кэширущий dns сервер для клиентов локальной сети. Можно пойти по простому и очень простому пути. Простой путь это выполнить простейшую настройку dns сервера bind. Как это сделать у меня опять же подробно написано отдельно — настройка Bind 9 в CentOS 7. Рекомендую ознакомиться, там рассмотрены интересные нюансы настройки.

Очень простой путь это установить dnsmasq, который помимо dns сервера включает в себя еще и dhcp сервер, который нам может пригодиться.

Зоны Firewalld

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

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

Вы можете увидеть зону по умолчанию, набрав:

Чтобы получить список всех доступных зон, введите:

Чтобы увидеть активные зоны и назначенные им сетевые интерфейсы:

Выходные данные ниже показывают, что интерфейсы и назначены зоне:

Вы можете распечатать настройки конфигурации зоны с помощью:

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

Если вы хотите проверить конфигурации всех доступных типов зон:

Команда выводит на печать огромный список с настройками всех доступных зон.

Изменение цели зоны

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

Чтобы установить цель зоны, укажите зону с параметром и цель с параметром .

Например, чтобы изменить цель зоны на вы должны запустить:

Назначение интерфейса другой зоне

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

Чтобы назначить интерфейс другой зоне, укажите зону с параметром и интерфейс с параметром .

Например, следующая команда назначает интерфейс зоне:

Проверьте изменения, набрав:

Изменение зоны по умолчанию

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

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

Проверьте изменения с помощью:

Создание новых зон

Firewalld также позволяет создавать свои собственные зоны. Это удобно, когда вы хотите создать правила для каждого приложения.

В следующем примере мы создадим новую зону с именем , откроем порт и разрешим доступ только с IP-адреса :

  1. Создайте зону:

  2. Добавьте правила в зону:

  3. Перезагрузите демон firewalld, чтобы изменения вступили в силу:

Установка и активация firewalld

Брандмауэр установлен по умолчанию в некоторых дистрибутивах Linux, в том числе во многих образах CentOS 8. Однако вам может потребоваться установить firewalld самостоятельно:

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

После перезагрузки сервера брандмауэр запускается, сетевые интерфейсы помещаются в настроенные зоны (или возвращаются в заданные по умолчанию зоны), и все правила зон применяются к соответствующим интерфейсам.

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

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

Анти synflood с IPTABLES

Нужно отредактировать  /etc/sysctl.conf, чтобы защититься от некоторых видов атак и добавить или обновить можно добавив эти строки в файл:

net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.netfilter.ip_conntrack_max = 1048576

И введите следующие команды

# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP (Заблокировать нулевые пакеты. Нулевые пакеты, по сути, разведывательные. они используются, чтобы выяснить настройки сервера и определить его слабые места.)
# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP(Во время атаки syn-flood злоумышленник создает новое соединение, но не устанавливает никаких флагов (SYN, ACK и т.д.). Все, что ему нужно — отнять ресурсы сервера. Такие пакеты принимать не стоит)
# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP (Далее нужно защитить сервер от разведывательных пакетов XMAS)
# iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 --syn -m recent --set --name CHECK --rsource 
# iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 --syn -m recent --update --seconds 5 --hitcount 15 --rttl --name CHECK --rsource -j DROP

Тестирование настройки

Когда HAProxy настроен и запущен, откройте публичный IP-адрес сервера балансировщика нагрузки в браузере и проверьте, правильно ли вы подключились к бэкенду. Параметр stats uri в конфигурации создает страницу статистики по указанному адресу.

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

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

Если ваш балансировщик нагрузки не отвечает, убедитесь, что HTTP-соединения не блокируются файрволом. Также убедитесь, что HAProxy работает с помощью команды ниже:

Что делать, если CentOS не видит сетевую карту?

Вы установили сервер, загрузились и обнаружили, что в системе нет ни одной сетевой карты. Что в таком случае делать? Первым делом посмотрите вывод команды dmesg и поищите там поминание о своей карте. Возможно, она в системе есть, просто не активирована. Активировать ее можно с помощью nmtui, а котором я рассказывал выше.

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

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

Есть еще вероятность, что вы не увидите своей карточки при выводе команды ifconfig, если в эту карту не воткнут сетевой провод. Чтобы наверняка посмотреть все интерфейсы, необходимо использовать ключ -a:

Есть еще один способ поискать сетевую карту в системе. Установите пакет pciutils:

И посмотрите вывод команды:

Если сетевая карта видится системой, то должно быть что-то в этом роде:

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

Выбор зон для интерфейсов

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

Изменение зоны интерфейса

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

Например, интерфейс можно переместить в зону home с помощью следующей команды:

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

Чтобы убедиться в успешности операции мы можем снова запросить активные зоны:

Изменение зоны по умолчанию

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

Вы можете изменить зону по умолчанию с помощью параметра . При этом немедленно изменятся все интерфейсы, использующие зону по умолчанию:

How to Check (Scan) for Open Ports in Linux

25 Апреля 2020
&vert;

Терминал

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

Что такое открытый порт 

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

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

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

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

Проверьте открытые порты с  

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

Если доступно, должен быть ваш первый инструмент, когда дело доходит до сканирования портов. Помимо сканирования портов можно также определить Mac-адрес, тип ОС, версии ядра и многое другое.

Следующая команда из консоли определяет, какие порты прослушивают TCP-соединения из сети:

Говорит для сканирования портов TCP и для сканирования всех 65535 портов. Если не используется, будет сканироваться только 1000 портов.

Вывод выше показывает, что только порты , и открыты в целевой системе.

Для сканирования портов UDP используйте вместо :

Для получения дополнительной информации посетите страницу руководства nmap и прочитайте обо всех других мощных опциях этого инструмента.

Проверьте открытые порты с  

Netcat (или ) — это инструмент командной строки, который может читать и записывать данные через сетевые подключения, используя протоколы TCP или UDP.

С его помощью можно сканировать один порт или диапазон портов.

Например, для поиска открытых портов TCP на удаленном компьютере с IP-адресом в диапазоне вы должны использовать следующую команду:

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

Вывод будет выглядеть примерно так:

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

Для сканирования UDP-портов передайте параметр в команду:

Проверьте открытые порты с помощью Bash Pseudo Device

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

При выполнении команды на псевдоустройстве Bash откроет TCP или UDP-соединение с указанным хостом на указанном порту.

Следующий оператор if..else проверит, открыт ли порт on :

Как работает приведенный выше код?

Время ожидания по умолчанию при подключении к порту с использованием псевдоустройства очень велико, поэтому мы используем команду для уничтожения команды test через 5 секунд. Если соединение установлено с портом, тестовая команда вернет true.

Вы также можете использовать цикл for для проверки диапазона портов:

Вывод будет выглядеть примерно так:

Мы показали вам несколько инструментов, которые вы можете использовать для поиска открытых портов. Есть также другие утилиты и методы для проверки открытых портов, например, вы можете использовать модуль Python , или .

Сохранение и восстановление правил фильтрации iptables

В заключении, настроим автозагрузку правил, после перезагрузки сервера. Для этого должен быть установлен пакет iptables-services и активирован сервис. Установим пакет через yum:

Проверим статус службы iptables:

Параметр автозагрузки установлен в enabled (включена), параметр active указывает, что служба запущена.

При загрузке сервис будет читать содержимое файла /etc/sysconfig/iptables, и восстанавливать сохраненные правила. Чтобы сохранить в него наши правила, воспользуемся командой:

Можно восстановить правила из файла командой:

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

Заключение

Итак, мы пошагово разобрали, как с помощью Convert2RHEL и Satellite преобразовать сервер CentOS Linux 8 в полностью поддерживаемую систему RHEL 8. Как видите, стандартизировать ИТ-среду, сократив номенклатуру операционных систем, стало гораздо проще. Выполнив такую конвертацию, вы получаете доступ к последним обновлениям RHEL, а также ко всем ее преимуществам в плане производительности, поддержки, управляемости и безопасности.

Приступая к реализации любого масштабного проекта по конвертации, не забывайте о рассмотренных в этой статье инструментах, которые помогут добиться успеха: о Red Hat Satellite, которая упростит системное управление, и о Red Hat Insights, которая поможет проактивно выявлять и устранять широкий спектр потенциальных проблем.

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

Заключение

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

Давайте разберемся в том, что мы сделали:

  1. Выполнили предварительную настройку сервера, подготовили его к работе.
  2. Включили маршрутизацию.
  3. Настроили firewall.
  4. Включили NAT.
  5. Установили и настроили dnsmasq для организации служб dns и dhcp.
  6. Проанализировали сетевую активность шлюза, узнали кто загружает канал интернета.

Это минимально необходимый функционал для организации работы шлюза на CentOS 7. Следующим этапом может быть настройка прокси сервера, шейпера траффика, настройка 2-х и более провайдеров и много другое. Что-то из этого я рассмотрю в своих будущих статьях.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .

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

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: