Актуально для версий RouterOS 7.x и выше


Введение

Эта статья посвящена комплексной настройке межсетевого экрана (firewall) и трансляции сетевых адресов (NAT) на маршрутизаторах MikroTik. Мы рассмотрим полный цикл защиты сети, который охватывает:

  • Защиту от DDoS-атак, таких как SYN-flood и ICMP-flood.
  • Блокировку попыток bruteforce для сервисов вроде SSH, почты и VPN.
  • Организация безопасного доступа к внутренним ресурсам как изнутри сети, так и снаружи.
  • Логирование и мониторинг подозрительного трафика для оперативного реагирования на угрозы.

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

 

1. Подготовка списков интерфейсов

Первым делом организуем интерфейсы в логические группы для упрощения управления и повышения читаемости конфигурации.

/interface list
add name=ISP comment="Внешние интерфейсы, подключенные к интернет-провайдерам"
add name=LAN comment="Локальная защищенная сеть"
add name=Trusted comment="Доверенные интерфейсы (включая VPN)"

Теперь добавляем физические интерфейсы в эти списки:

/interface list member
add list=ISP interface=ether1 comment="Основной WAN-порт"
add list=LAN interface=bridge-local comment="Основной LAN-мост"
add list=Trusted interface=bridge-local
add list=Trusted interface=ovpn-in1 comment="Входящие VPN-подключения"

2. Настройка Firewall

2.1. Базовые правила фильтрации

Начнем с базовых правил для обработки входящего трафика:

/ip firewall filter
# Правила 1-5: Базовая обработка входящего трафика
add chain=input action=jump jump-target=ISP-Input in-interface-list=ISP comment="Перенаправление ISP трафика"
add chain=forward action=jump jump-target=ISP-Forward in-interface-list=ISP comment="Перенаправление ISP форвардинга"
add chain=ISP-Input action=accept connection-state=established comment="Разрешить установленные соединения"
add chain=ISP-Input action=accept connection-state=related comment="Разрешить связанные соединения"
add chain=ISP-Input action=accept connection-state=untracked comment="Разрешить нетрекируемые"

2.2. Защитные механизмы

Критически важные правила безопасности:

# Правило 6: Блокировка недействительных соединений
add chain=ISP-Input action=drop connection-state=invalid comment="Блокировка невалидных состояний"

# Правила 7-8: Доступ из доверенных сетей
add chain=input action=accept protocol=icmp in-interface-list=Trusted comment="Ping из локальной сети"
add chain=input action=accept protocol=tcp in-interface-list=Trusted dst-port=22,8291 comment="SSH/Winbox из локальной сети"

# Правила 9-10: Защита от атак
add chain=input action=drop protocol=tcp fragment=yes comment="Блокировка фрагментированных пакетов"
add chain=input action=drop connection-limit=50,32 protocol=tcp in-interface-list=!Trusted comment="Защита от SYN-flood"
 

2.3. Правила для сервисов

Настраиваем доступ к почтовым сервисам:

# Правило 11: Доступ к почтовым сервисам
add chain=input action=accept protocol=tcp dst-port=25,143,443,465,587,993 log=yes log-prefix="MAIL:" comment="Почтовые сервисы"

# Правило 12: Защита почты от bruteforce
add chain=input action=add-src-to-address-list connection-limit=3,20 protocol=tcp src-address-list=!trusted address-list=mail_attackers address-list-timeout=1d dst-port=25,143,587,993 comment="Защита почты"

2.4. VPN и дополнительная защита

Настройка VPN и дополнительной защиты:

# Правила 14-17: Настройка IPsec
add chain=ISP-Input action=jump jump-target=VPN-Protect protocol=udp dst-port=500,4500,1701 comment="Обработка VPN трафика"
add chain=ISP-Input action=accept log=yes log-prefix="IPSEC:" ipsec-policy=in,ipsec
add chain=input action=accept protocol=udp in-interface-list=ISP dst-port=500,4500 comment="Разрешение IPsec"

# Правила 19-20: Защита VPN
add chain=VPN-Protect action=accept protocol=udp src-address-list=!Brute-force-block dst-port=500,4500,1701
add chain=VPN-Protect action=jump jump-target=Brute-force connection-limit=3,32 protocol=udp dst-port=500,4500,1701 comment="Защита VPN"

3. Настройка NAT

3.1. Перенаправление для почтового сервера

/ip firewall nat
# Правило 1: Hairpin NAT для почты
add chain=dstnat action=dst-nat to-addresses=10.10.10.25 protocol=tcp dst-address=203.0.113.15 in-interface-list=LAN dst-port=25,143,443,465,587,993,995,110 log=yes log-prefix="MAIL-NAT:" comment="Локальный доступ к почте"

# Правило 2: Маскарадинг локальной почты
add chain=srcnat action=masquerade protocol=tcp src-address=10.10.10.0/24 dst-address=10.10.10.25 out-interface-list=LAN dst-port=25,143,443,465,587,993,995,110 comment="Маскарадинг локальной почты"

3.2. Основные NAT правила

# Правило 3: Основной маскарадинг
add chain=srcnat action=masquerade out-interface=ether1 comment="Выход в интернет"

# Правила 4-5: Исключения для IPsec
add chain=srcnat action=accept ipsec-policy=out,ipsec comment="Исходящий IPsec"
add chain=dstnat action=accept ipsec-policy=in,ipsec comment="Входящий IPsec"

# Правило 6: Перенаправление почты из интернета
add chain=dstnat action=dst-nat to-addresses=10.10.10.25 protocol=tcp dst-address=203.0.113.15 dst-port=25,143,443
 

Полная конфигурация Firewall (41 правило)

/ip firewall filter
# Базовые правила (1-5)
add chain=input action=jump jump-target=ISP-Input in-interface-list=ISP
add chain=forward action=jump jump-target=ISP-Forward in-interface-list=ISP
add chain=ISP-Input action=accept connection-state=established
add chain=ISP-Input action=accept connection-state=related
add chain=ISP-Input action=accept connection-state=untracked

# Защитные механизмы (6-14)
add chain=ISP-Input action=drop connection-state=invalid
add chain=input action=accept protocol=icmp in-interface-list=Trusted
add chain=input action=accept protocol=tcp in-interface-list=Trusted dst-port=22,8291
add chain=input action=drop protocol=tcp fragment=yes
add chain=input action=drop connection-limit=50,32 protocol=tcp in-interface-list=!Trusted
add chain=input action=accept protocol=tcp dst-port=25,143,443,465,587,993 log=yes log-prefix="MAIL:"
add chain=input action=add-src-to-address-list connection-limit=3,20 protocol=tcp src-address-list=!trusted address-list=mail_attackers address-list-timeout=1d dst-port=25,143,587,993
add chain=input action=drop protocol=icmp
add chain=input action=drop protocol=tcp dst-port=22,8291

# VPN правила (15-20)
add chain=ISP-Input action=jump jump-target=VPN-Protect protocol=udp dst-port=500,4500,1701
add chain=ISP-Input action=accept log=yes log-prefix="IPSEC:" ipsec-policy=in,ipsec
add chain=input action=accept protocol=udp in-interface-list=ISP dst-port=500,4500
add chain=VPN-Protect action=accept protocol=udp src-address-list=!Brute-force-block dst-port=500,4500,1701
add chain=VPN-Protect action=jump jump-target=Brute-force connection-limit=3,32 protocol=udp dst-port=500,4500,1701

# Дополнительные правила (21-34)
add chain=ISP-Input action=jump jump-target=ISP-Input-Allow
add chain=ISP-Input action=drop
add chain=ISP-Forward action=accept connection-state=established
add chain=ISP-Forward action=accept connection-state=related
add chain=ISP-Forward action=accept connection-state=untracked
add chain=ISP-Forward action=drop connection-state=invalid
add chain=ISP-Forward action=accept log=yes log-prefix="IPSEC:" ipsec-policy=in,ipsec
add chain=ISP-Forward action=accept connection-nat-state=dstnat
add chain=ISP-Forward action=drop
add chain=ISP-Input-Allow action=accept protocol=icmp
add chain=ISP-Input-Allow action=jump jump-target=Brute-force connection-nat-state=dstnat protocol=tcp dst-port=22
add chain=ISP-Input-Allow action=jump jump-target=Brute-force protocol=tcp dst-port=8291
add chain=ISP-Input-Allow action=accept connection-limit=3,32 protocol=udp dst-port=500
add chain=ISP-Input-Allow action=accept protocol=udp dst-port=4500
add chain=ISP-Input-Allow action=accept protocol=udp dst-port=1701
add chain=ISP-Input-Allow action=accept protocol=ipsec-esp

# Защита от bruteforce (35-41)
add chain=Brute-force action=drop src-address-list=Brute-force-block log=yes log-prefix="FIREWALL:"
add chain=Brute-force action=add-src-to-address-list src-address-list=Brute-force-4 address-list=Brute-force-block address-list-timeout=8h
add chain=Brute-force action=add-src-to-address-list src-address-list=Brute-force-3 address-list=Brute-force-4 address-list-timeout=30s
add chain=Brute-force action=add-src-to-address-list src-address-list=Brute-force-2 address-list=Brute-force-3 address-list-timeout=30s
add chain=Brute-force action=add-src-to-address-list src-address-list=Brute-force-1 address-list=Brute-force-2 address-list-timeout=30s
add chain=Brute-force action=add-src-to-address-list address-list=Brute-force-1 address-list-timeout=30s
add chain=Brute-force action=accept

Полная конфигурация NAT (7 правил)

/ip firewall nat
# Правила для почтового сервера (1-2)
add chain=dstnat action=dst-nat to-addresses=10.10.10.25 protocol=tcp dst-address=203.0.113.15 in-interface-list=LAN dst-port=25,143,443,465,587,993,995,110 log=yes log-prefix="MAIL-NAT:"
add chain=srcnat action=masquerade protocol=tcp src-address=10.10.10.0/24 dst-address=10.10.10.25 out-interface-list=LAN dst-port=25,143,443,465,587,993,995,110

# Основные NAT правила (3-7)
add chain=srcnat action=masquerade out-interface=ether1
add chain=srcnat action=accept ipsec-policy=out,ipsec
add chain=dstnat action=accept ipsec-policy=in,ipsec
add chain=dstnat action=redirect to-ports=22 protocol=tcp in-interface-list=ISP dst-port=1024
add chain=dstnat action=dst-nat to-addresses=10.10.10.25 protocol=tcp dst-address=203.0.113.15 dst-port=25,143,443,587,993

Заключение

Представленная конфигурация предоставляет многоуровневую защиту сети, включая:

  • Многоуровневую защиту от сетевых атак,
  • Безопасный доступ к управлению маршрутизатором,
  • Надежную работу почтовых сервисов,
  • Защищенные VPN-подключения,
  • Оптимизацию работы NAT.

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

  • 10.10.10.0/24 на вашу внутреннюю сеть,
  • 10.10.10.25 на IP почтового сервера,
  • 203.0.113.15 на ваш публичный IP,
  • ether1 на ваш WAN-интерфейс.

Конфигурация была протестирована на RouterOS версии 7.11 и выше и подходит для большинства случаев развертывания.

От root

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *