Рубрики
Uncategorized

Немного о брандмауэре в Linux

Эта статья о программах брандмауэра, доступных на Linux. Контент является фактическим наблюдением в R & D, я сделал.

Автор оригинала: Kishor Pawar.

Вступление:

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

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

iptables Это универсальная структура таблицы, где вы определяете правила накомпливы. Каждое правило в IPTable состоит из ряда классификаторов ( iptables matchs — условие) и одно подключенное действие ( iptables Target — действие, которое нужно предпринять).

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

IPTables OS Wise Google Pheets.png

Терминология:

  • NetFilter : Это модуль уровня ядра, который контролирует передачу пакета.

  • Iptables. : Это может быть связано между программой брандмауэра (командной строки) и фактическим таблицем правил брандмауэра.

  • iptables-services : Это имя пакета для обслуживания, которое можно установить на CentOS 7.x. . То же самое можно установить на CentOS 6.x и Amazon Linux Ami с iptables имя пакета. Это использует тот же синтаксис, что и Iptables. (программа командной строки), но она хранит свои правила в /etc/sysconfig/IP [6] таблицы

  • Firewalld : Это программа брандмауэра, доступная в Centos и может быть установлен на Ubuntu и Debian 8 Отказ

  • ufw. : Это программа брандмауэра, обычно найденная по умолчанию в Debian ароматы. Эта программа функционально синхронизация с iptables (командная строка программы).

  • цепь : IP-пакеты разделены на цепи, такие как: Вход , Выход , ВПЕРЕД , Пребуринг , Postrouting Отказ

  • Вход : Это цепочка для всех входящие пакеты. Мы можем применять правила и политики для этой цепи, и они будут применяться ко всем входящим пакетам.

  • Выход : Это цепочка для всех Исходящие пакеты. Мы можем применять правила и политики для этой цепи, и они будут применяться ко всем исходящим пакетам.

  • ВПЕРЕД : Это цепочка для всех Перенаправлен пакеты. Мы можем применить правила и политики для этой цепочки, и они будут применяться ко всем Перенаправлен Пакеты (пакеты могут быть перенаправлены на ту же машину на другом интерфейсе или могут быть направлены на другую машину).

  • политика : Это обычно называется политикой по умолчанию и может быть либо Принять или УРОНИТЬ . Применяется после того, как все правила проверяются на соответствие. Когда правило соответствует пакетам, все другие правила и политики игнорируются.

  • ПРИНИМАТЬ : Это одна из политик по умолчанию, которую мы можем обратиться в цепочки. Если установлено, он позволяет всем пакетам, кроме указанных правил.

  • УРОНИТЬ : Это одна из политик по умолчанию, которую мы можем обратиться в цепочки. Если установлен, он блокирует все пакеты, кроме указанных правил.

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

    • падение : Любая входящих сетевых пакетов упала, и ответа нет. Возможна только исходящие сетевые соединения.
    • Блок : Любые входящие сетевые соединения отклоняются с помощью ICMP-хостинга-запрещенного сообщения для IPv4 и ICMP6-ADM-запрещенного для IPv6. Возможна только сетевые соединения, инициированные в этой системе.
    • публичный : Для использования в общественных местах. Это работает как ПРИНИМАТЬ Все по умолчанию.
    • внешний : Для использования на внешних сетянах с Masquerading включен специально для маршрутизаторов. Это работает как ПРИНИМАТЬ Все по умолчанию.
    • ДМЗ : Для компьютеров в вашей демилитаризованной зоне, которые публично доступны с ограниченным доступом к вашей внутренней сети. Это также работает как ПРИНИМАТЬ Все по умолчанию.
    • Работа : Для использования в рабочих местах. Это также работает как ПРИНИМАТЬ Все по умолчанию.
    • дом : Для использования в домашних районах. Это также работает как ПРИНИМАТЬ Все по умолчанию.
    • внутренний : Для использования на внутренних сетях. Это также работает как ПРИНИМАТЬ Все по умолчанию.
    • доверенный : Все сетевые соединения принимаются.

Команды:

iptables:

  • IP [6] таблицы -L [Ввод | Выход | вперед] Перечислите все правила в выбранной цепи. Если цепь не выбрана, все цепи перечислены.
[kishor@localhost ~]$ sudo iptables -L  
  Chain INPUT (policy ACCEPT)  
  target     prot opt source               destination           
  ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED   
  ACCEPT     icmp --  anywhere             anywhere             
  ACCEPT     all  --  anywhere             anywhere              
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh   
  REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited   

  Chain FORWARD (policy ACCEPT)  
  target     prot opt source               destination           
  REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited   

  Chain OUTPUT (policy ACCEPT)  
  target     prot opt source               destination           
[kishor@localhost ~]$  
  • IP [6] Таблицы -P {ввод | Выход | Переслать} {Принять | Drop} Установите политику для цепочки к данной цели
[kishor@localhost ~]$ sudo iptables -P FORWARD DROP  
[kishor@localhost ~]$ sudo iptables -L FORWARD  
 Chain FORWARD (policy DROP)  
 target     prot opt source               destination           
 REJECT     all  --  anywhere             anywhere            reject-with icmp-  host-prohibited   
[kishor@localhost ~]$   
  • IP [6] Таблицы - {вход | выход | World} -P {TCP | UDP} --dport {22 | 80 | 443} -j {Принять | Drop} Установите правило, чтобы принять или пакеты пакетов для цепочки на конкретный порт
 [kishor@localhost ~]$ sudo iptables -A FORWARD -p tcp --dport 22 -j DROP  
 [kishor@localhost ~]$ sudo iptables -L FORWARD  
    Chain FORWARD (policy DROP)  
    target     prot opt source               destination           
    REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited   
    DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh   
 [kishor@localhost ~]$ 
  • sudo iptables - {ввод | вывод | вперед} -M string --hex-string "| 0a | Google | 03 | Com" --algo bm -j принимают Выше представляет правило, при добавлении в iptables позволит пакетам и из домена Google.
  kishor@localhost:~$ sudo iptables -L
  Chain INPUT (policy ACCEPT)
  target     prot opt source               destination         

  Chain FORWARD (policy ACCEPT)
  target     prot opt source               destination         

  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination         
  ACCEPT     all  --  192.168.0.100        anywhere            
  ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
  ACCEPT     all  --  anywhere             anywhere             STRING match  "|0a636c6f7564726178616b036e6574|" ALGO name bm TO 65535
  kishor@localhost:~$
  • iptables -a {ввод | вывод | Переслать} -p tcp -s xxx.xxx.xxx.xxx -j {Принять | падение}
  • IP6Tables -a {ввод | Выход | Переслать} -P TCP -S XXXX: XXXX: XXXX: XXXX: XXXX: XXXX -J {Принять | Drop} Установите правило, чтобы разрешить или отбросить соединения от конкретных IPS.

Firewalld:

  • Firewall-Cmd - Zero-Zone-Zone Возвращает значение зоны по умолчанию (Foxback) для всех интерфейсов. Зона по умолчанию применяется только в том случае, если активная зона не установлена для интерфейса. Зона по умолчанию постоянна по умолчанию.
 kishor@localhost:~$ firewall-cmd --get-default-zone  
 public  
 kishor@localhost:~$
  • Брандмауэр-CMD - задача - зона по умолчанию Устанавливает зону по умолчанию для всех интерфейсов.
  kishor@MWPYT113:~$ firewall-cmd --set-default-zone=trusted  
  success  
  kishor@MWPYT113:~$ sudo firewall-cmd --get-default-zone  
  trusted  
  kishor@MWPYT113:~$
  • Firewall-CMD - Джет-активные зоны Возвращает активные зоны для каждого доступных интерфейсов. Это имеет приоритет над зоной по умолчанию.
   kishor@MWPYT113:~$ sudo firewall-cmd --get-active-zones
   internal
       interfaces: eht0
   trusted
       interfaces: br0
   block
       interfaces: virbr0
   kishor@MWPYT113:~$
  • sudo firewall-cmd [--permanent] --zone = {Доверенные | Публичные | DMZ | Drop | Блок | Внутренний | Главная | Работа | Внешний} --change-интерфейс = <Имя интерфейса> Устанавливает активную зону для определенного интерфейса. Если добавляется аппаратура, результат будет сохраняться перезагрузки. Чтобы вступить в силу постоянные изменения, вам придется перезагрузить брандмауэльд, как показано ниже.
  kishor@MWPYT113:~$ sudo firewall-cmd --zone=trusted --change-interface=br0
  success
  kishor@MWPYT113:~$ sudo firewall-cmd --zone=internal --change-interface=eht0
  success
  kishor@MWPYT113:~$ sudo firewall-cmd --zone=block --change-interface=virbr0
  success
  kishor@MWPYT113:~$ 
  • Firewall-Cmd [--permanent] Установите правило, чтобы принять или отклонить соединение от определенного IP-адреса.
 kishor@MWPYT113:~$ sudo firewall-cmd --add-rich-rule="rule family='ipv4' source address='192.168.0.11' reject"
 success
 kishor@MWPYT113:~$

UFW:

Инструмент конфигурации брандмауэра по умолчанию для Ubuntu является UFW. Разработано для облегчения конфигурации брандмауэра iptables, UFW предоставляет пользовательский способ создания брандмауэра на основе IPv4 или IPv6.

  • Включить UFW

Чтобы включить UFW с набором правил по умолчанию:

sudo ufw. включить

Чтобы проверить состояние UFW:

sudo ufw status verbose

Вывод должен быть таким:

  kishor@localhost:~$ sudo ufw status verbose
  [sudo] password for kishor:
  Status: active
  Logging: on (low)
  Default: deny (incoming), allow (outgoing)
  New profiles: skip
  kishor@localhost:~$

Вы также можете прочитать правила от /etc/default/ufw

  • Отключить UFW

Чтобы отключить использование UFW:

Sudo UFW отключить

  • Разрешить и отрицать (конкретные правила)

Sudo UFW Разрешить /<Дополнительный: протокол>

пример: Чтобы допустить входящий пакет TCP и UDP на порт 53

sudo ufw разрешит 53

Пример: разрешить входящие пакеты TCP на порт 53

Sudo UFW Разрешить 53/TCP

Пример: разрешить входящие пакеты UDP на порт 53

Sudo UFW Разрешить 53/UDP

* Deny

sudo ufw deny /<Необязательно: протокол>

Пример: отрицать пакеты TCP и UDP на порту 53

sudo ufw deny 53

Пример: отрицать входящие пакеты TCP на порт 53

sudo ufw deny 53/tcp

Пример: отрицать входящие пакеты UDP на порт 53

sudo ufw deny 53/udp

  • Удалить существующее правило

Чтобы удалить правило, просто префикс исходного правила с удалением. Например, если исходное правило было:

UFW Deny 80/TCP

  • Используйте это, чтобы удалить его:

sudo ufw delete deny 80/tcp

Sudo UFW Разрешить <имя обслуживания>

пример: Чтобы позволить SSH по имени

sudo ufw разрешать ssh

  • Отрицать по имени службы

sudo ufw deny <имя обслуживания>

Пример: отрицать SSH по имени

sudo ufw deny sshstatus

  • Чтобы проверить состояние UFW

sudo ufw status.

Если UFW не был включен, вывод будет:

sudo ufw status Положение дел: неактивный

Чтобы разрешить переадресацию портов, когда UFW работает, выполните следующие действия:

Sudo Vim./etc/default/ufw

Установите политику по умолчанию перед Принять , Падение или Отклонить Отказ Обратите внимание, что если вы измените это, вы, скорее всего, захотите настроить свои правила Default_forward_policy = "Примите" Отказ

Оригинал: «https://www.codementor.io/@kishorpawar/a-bit-about-firewalls-in-linux-fadw9zrws»