Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров3.9K
Представляю четвертую статью из серии, ориентированных на «продолжающих» системных администраторов, для опытных я вряд ли открою что-то новое.

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

Конкретно в этой части:
  • Автоматические события
  • Макросы

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

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

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



События


Тут все и просто, и сложно. Для интереса, рассмотрим PortKnocking.
/etc/shorewall/actions
#ACTION               OPTION                   DESCRIPTION
Knock                                          #Port Knocking


Тут мы просто объявили наше действие на событие.

/etc/shorewall/action.Knock
#
# Shorewall version 4 - SSH_BLACKLIST Action
#
?format 2
###############################################################################
#ACTION               SOURCE         DEST      PROTO      DPORT
IfEvent(SSH,ACCEPT:info,60,1,src,reset)\
                      -              -         tcp        22
SetEvent(SSH,ACCEPT)  -              -         tcp        1600
ResetEvent(SSH,DROP:info)  


Тут мы делаем обработку события, идея такая:
Если пришел запрос на порт 1600, открыть порт 22 для того же адреса источника на 60 сек. Если пришел запрос на порт 1599 или 1601, закрыть 22 порт.

/etc/shorewall/rules
#ACTION               SOURCE         DEST      PROTO      DPORT
Knock                 net            $FW       tcp        22,1599-1601 


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

Макросы


Позволяют эффективно писать правила (о макросах мы немножко уже упоминали).
/etc/shorewall/macto.TEST
#ACTION SOURCE  DEST    PROTO   DPORT   SPORT   ORIGDEST        RATE    USER
PARAM   -       -       udp     6745
PARAM   DEST    SOURCE  tcp     35067


Применим в правилах:
/etc/shorewall/rules
#ACTION         SOURCE          DEST            PROTO   DPORT

TEST(ACCEPT)   loc             $FW

#Что идентично этому:

#ACTION         SOURCE          DEST            PROTO   DPORT   SPORT

ACCEPT          loc             $FW             udp     6745
ACCEPT          $FW             loc             tcp     35067

Теги:
Хабы:
0
Комментарии0

Публикации

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

Истории

Работа

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн