Linux разрешенные ip адреса

Как разрешить или заблокировать порт и IP-адрес с помощью Firewalld, iptables и UFW в Linux

В Linux брандмауэр необходим для контроля входящего и исходящего сетевого трафика. Разрешить или заблокировать IP-адреса и порты с помощью брандмауэра очень просто. Ниже приведены команды для разрешения или блокирования IP-адресов и портов с помощью различных брандмауэров.

firewall

Firewalld

Firewalld — это инструмент управления брандмауэром в ОС Linux. Он конфигурируется с помощью XML-файлов. Мы можем использовать интерфейс командной строки firewall-cmd для настройки и управления правилами брандмауэра.

Разрешить входящий трафик порта 80. Приведенная ниже команда разрешит трафик для порта 80, до перезапуска.

sudo firewall-cmd --zone=public --add-port=80/tcp

Разрешите входящий порт 80 в брандмауэре, постянно.

sudo firewall-cmd --zone=public --permanent --add-port=80/tcp

Запретите исходящий порт номер 25. Следующая команда заблокирует все исходящие соединения с порта 25.

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp -d 127.0.0.1 --dport=25 -j ACCEPT firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport=25 -j REJECT firewall-cmd --reload

Запретите входящий порт номер 80. Следующая команда запретит весь трафик для порта 80.

sudo firewall-cmd --remove-port=80/tcp --permanent

Выполните приведенную ниже команду для блокирования IP-адреса в Firewalld. Замените 173.248.192.12 на ваш IP-адрес.

sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='173.248.192.12' reject".

Откройте порт для определенного IP-адреса в Firewalld. Добавьте IP-адрес источника и порт (3306), который вы хотите открыть на локальном сервере Linux. После этого перезагрузите настройки firewalld, чтобы применить изменения.

firewall-cmd --zone=mariadb-access --add-source=173.248.192.12 --permanent firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent firewall-cmd --reload

Iptables

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

Выполните следующую команду, чтобы разрешить все входящие соединения HTTP (порт 80).

sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Вторая команда разрешает исходящий трафик установленных HTTP-соединений, что необходимо, если политика исходящих соединений не установлена на ACCEPT.

Выполните приведенную ниже команду, чтобы разрешить несколько входящих портов. Команда ниже будет принимать трафик с портов 22, 53 и 80.

/sbin/iptables -A INPUT -p tcp --match multiport --dports 22,53,80 -j ACCEPT

Запретите входящий порт 80 с помощью IPtables. Следующая команда запретит все входящие соединения для порта 80.

/sbin/iptables -A INPUT -p tcp --dport 80 -j DROP /sbin/service iptables save

Заблокируйте IP-адрес в IPtables. Замените 173.248.192.11 на ваш IP-адрес.

sudo iptables -A INPUT -s 173.248.192.11 -j DROP

Открытие порта для определенного IP-адреса в IPtables. Разрешить входящий SSH с определенного IP-адреса или подсети.

sudo iptables -A INPUT -p tcp -s 173.248.192.11 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

UFW — Uncomplicated Firewall

UFW также известен как Uncomplicated Firewall. Он подходит для брандмауэров на основе хостов. Он поддерживает IPv4 и IPv6.

Читайте также:  Date linux from timestamp

Разрешить входящий порт 80. Следующая команда разрешит весь трафик с порта 80.

Разрешить несколько входящих портов. Команда ниже разрешит входящий трафик с портов 53, 80 и 443.

Запретить входящий трафик с порта 80. Приведенная ниже команда запретит весь входящий трафик для порта 80.

Запретить исходящий порт 25. Следующая команда запретит весь исходящий трафик с порта 25.

Заблокировать IP-адрес в UFW. Вы можете заблокировать любой IP-адрес для входящего трафика на вашем компьютере.

sudo ufw deny from 173.248.192.11

Открыть порт для определенного IP-адреса в UFW. Следующая команда откроет порт 80 для указанного IP-адреса. Вы можете заменить его на свой IP-адрес.

sudo ufw allow from 173.248.192.11 to any port 80

Источник

Введение в Iptables

 Схема работы Iptables:

Iptables — это мощный инструмент управления сетью в Linux, который позволяет администраторам управлять входящими и исходящими пакетами данных. Это основной инструмент для настройки межсетевых экранов в системах Linux.

Введение в Iptables

Iptables работает путем проверки пакетов данных на соответствие определенным критериям и выполнения заданных действий, если пакеты соответствуют этим критериям. Эти критерии и действия определяются в таблицах, которые состоят из набора правил.

В Iptables есть четыре основные таблицы:

  1. Filter — это основная таблица, используемая для фильтрации пакетов.
  2. NAT — эта таблица используется для настройки NAT (Network Address Translation).
  3. Mangle — эта таблица используется для специальной обработки пакетов.
  4. Raw — эта таблица используется для обхода системы отслеживания состояний.

Каждая таблица состоит из набора цепочек. Цепочки — это последовательности правил, которые применяются к пакетам. В Iptables есть три встроенные цепочки:

  1. INPUT — эта цепочка применяется к пакетам, которые предназначены для самой системы.
  2. FORWARD — эта цепочка применяется к пакетам, которые проходят через систему.
  3. OUTPUT — эта цепочка применяется к пакетам, которые исходят из системы.

Базовые команды Iptables

Просмотр текущих правил

Чтобы просмотреть текущие правила, используйте команду iptables -L . Это покажет все правила в таблице filter. Чтобы просмотреть правила в другой таблице, используйте флаг -t , например, iptables -t nat -L .

Добавление новых правил

Чтобы добавить новое правило, используйте команду iptables -A . Например, чтобы заблокировать весь входящий трафик от IP-адреса 192.168.0.100, вы можете использовать следующую команду:

iptables -A INPUT -s 192.168.0.100 -j DROP

Читайте также:  Очистить папку linux команда

В этой команде -A INPUT добавляет новое правило в цепочку INPUT, -s 192.168.0.100 определяет исходный IP-адрес, а -j DROP указывает, что все пакеты, соответствующие этому правилу, должны быть отброшены.

Удаление правил

Чтобы удалить правило, вам нужно знать его номер в цепочке. Вы можете узнать номера правил, используя команду iptables -L —line-numbers . Затем вы можете удалить правило, используя команду iptables -D и номер правила. Например, чтобы удалить первое правило в цепочке INPUT, вы можете использовать следующую команду:

Изменение дефолтного политики

Вы можете изменить дефолтную политику для цепочки, используя команду iptables -P . Например, чтобы отклонить все входящие пакеты по умолчанию, вы можете использовать следующую команду:

Сохранение и восстановление правил

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

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

Примеры использования Iptables

Блокировка IP-адреса

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

iptables -A INPUT -s 192.168.0.100 -j DROP

Открытие порта для входящего трафика

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

iptables -A INPUT -p tcp —dport 80 -j ACCEPT

В этой команде -p tcp указывает на протокол (в данном случае TCP), —dport 80 указывает на порт (в данном случае 80), а -j ACCEPT указывает, что все пакеты, соответствующие этому правилу, должны быть приняты.

Настройка простого межсетевого экрана

Вы можете использовать iptables для настройки простого межсетевого экрана. Например, вы можете разрешить весь исходящий трафик, разрешить входящий трафик только на определенные порты и отклонить все остальные входящие пакеты.

iptables -A OUTPUT -j ACCEPT iptables -A INPUT -p tcp —dport 22 -j ACCEPT iptables -A INPUT -p tcp —dport 80 -j ACCEPT iptables -A INPUT -p tcp —dport 443 -j ACCEPT iptables -P INPUT DROP

В этом примере разрешен весь исходящий трафик, а входящий трафик разрешен только на порты 22 (SSH), 80 (HTTP) и 443 (HTTPS). Все остальные входящие пакеты отклоняются.

Расширенное использование Iptables

Логирование

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

iptables -A INPUT -j LOG —log-prefix «Dropped Packet: » iptables -A INPUT -j DROP

Здесь —log-prefix «Dropped Packet: » добавляет указанный префикс к каждому лог-сообщению, что упрощает фильтрацию и анализ логов.

Создание пользовательских цепочек

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

iptables -N MY_CHAIN iptables -A MY_CHAIN -s 192.168.0.100 -j DROP iptables -A INPUT -j MY_CHAIN

В этом примере команда -N MY_CHAIN создает новую цепочку с именем MY_CHAIN. Затем добавляется правило, которое отбрасывает все пакеты от 192.168.0.100. Наконец, цепочка MY_CHAIN добавляется в цепочку INPUT, что означает, что все входящие пакеты будут также проходить через цепочку MY_CHAIN.

Читайте также:  Линукс узнать параметры системы

Использование состояний пакетов

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

iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT

В этом примере -m state указывает на использование модуля состояний, а —state ESTABLISHED,RELATED указывает, что правило применяется только к пакетам, которые являются частью уже установленного или связанного соединения.

Использование Iptables для создания VPN

Iptables также может быть использован для создания VPN (Virtual Private Network). Это может быть полезно для создания безопасного соединения между удаленными системами. Например, вы можете использовать iptables для настройки IPsec VPN, используя модуль «policy» для определения правил обработки трафика.

iptables -A INPUT -m policy —dir in —pol ipsec -j ACCEPT iptables -A OUTPUT -m policy —dir out —pol ipsec -j ACCEPT

В этом примере -m policy указывает на использование модуля «policy», —dir in и —dir out указывают на направление трафика, а —pol ipsec указывает на использование IPsec политики.

Использование Iptables для ограничения скорости

Iptables также может быть использован для ограничения скорости сетевого трафика, что может быть полезно для управления пропускной способностью. Для этого можно использовать модуль «limit». Например, вы можете ограничить количество новых SSH-соединений до 3 в минуту следующим образом:

iptables -A INPUT -p tcp —dport 22 -m state —state NEW -m limit —limit 3/min -j ACCEPT

В этом примере -m limit —limit 3/min указывает на ограничение скорости, а остальная часть команды определяет, что она применяется к новым SSH-соединениям.

Использование Iptables для редиректа трафика

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

iptables -t nat -A PREROUTING -p tcp —dport 80 -j REDIRECT —to-port 8080

В этом примере -t nat указывает на использование таблицы NAT, -A PREROUTING добавляет правило в цепочку PREROUTING, —dport 80 указывает на исходный порт, а —to-port 8080 указывает на порт назначения.

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

Заключение

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

Источник

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