Представляю четвертую статью из серии, ориентированных на «продолжающих» системных администраторов, для опытных я вряд ли открою что-то новое.
В этих статьях мы рассмотрим построение интернет шлюза на linux, позволяющего связать несколько офисов компании, и обеспечить ограниченный доступ в сеть, приоритезацию трафика (QoS) и простую балансировку нагрузки с резервированием канала между двумя провайдерами.
Конкретно в этой части:
А в первой части были рассмотрены:
А во второй:
А в третьей:
Тут все и просто, и сложно. Для интереса, рассмотрим PortKnocking.
Тут мы просто объявили наше действие на событие.
Тут мы делаем обработку события, идея такая:
Если пришел запрос на порт 1600, открыть порт 22 для того же адреса источника на 60 сек. Если пришел запрос на порт 1599 или 1601, закрыть 22 порт.
А здесь мы включили работу с PortKnoking на соответствующих соединениях.
Тема обработки событий обширна, поэтому стоит внимательно читать мануалы.
Позволяют эффективно писать правила (о макросах мы немножко уже упоминали).
Применим в правилах:
В этих статьях мы рассмотрим построение интернет шлюза на 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
