MikroTik hEX S выполняет роль маршрутизатора между VLAN (router-on-a-stick), DHCP-сервера для каждого VLAN и межсетевого экрана.
# MikroTik RouterOS — подключаемся через WinBox или SSH
# Создаём VLAN-интерфейсы на порту ether1 (trunk к коммутатору 1 этажа)
/interface vlan
add name=vlan10-mgmt interface=ether1 vlan-id=10
add name=vlan20-medical interface=ether1 vlan-id=20
add name=vlan30-doctors interface=ether1 vlan-id=30
add name=vlan40-accounting interface=ether1 vlan-id=40
add name=vlan50-servers interface=ether1 vlan-id=50
add name=vlan100-guest interface=ether1 vlan-id=100
# Назначаем IP-адреса (gateway для каждого VLAN)
/ip address
add address=10.10.10.1/24 interface=vlan10-mgmt
add address=10.10.20.1/24 interface=vlan20-medical
add address=10.10.30.1/24 interface=vlan30-doctors
add address=10.10.40.1/24 interface=vlan40-accounting
add address=10.10.50.1/24 interface=vlan50-servers
add address=10.10.100.1/24 interface=vlan100-guest
# DHCP-сервер для каждого VLAN
# VLAN 20 — Medical (статический пул для оборудования)
/ip pool
add name=pool-medical ranges=10.10.20.50-10.10.20.100
/ip dhcp-server
add address-pool=pool-medical interface=vlan20-medical name=dhcp-medical lease-time=12h
/ip dhcp-server network
add address=10.10.20.0/24 gateway=10.10.20.1 dns-server=10.10.50.10
# Статические резервации для медоборудования
/ip dhcp-server lease
add address=10.10.20.10 mac-address=00:1A:2B:3C:4D:01 comment="Carestream DRX-Evolution"
add address=10.10.20.11 mac-address=00:1A:2B:3C:4D:02 comment="PACS Server"
add address=10.10.20.12 mac-address=00:1A:2B:3C:4D:03 comment="Radiologist WS-1"
add address=10.10.20.13 mac-address=00:1A:2B:3C:4D:04 comment="Radiologist WS-2"
# VLAN 30 — Doctors
/ip pool
add name=pool-doctors ranges=10.10.30.50-10.10.30.200
/ip dhcp-server
add address-pool=pool-doctors interface=vlan30-doctors name=dhcp-doctors lease-time=8h
/ip dhcp-server network
add address=10.10.30.0/24 gateway=10.10.30.1 dns-server=10.10.50.10
# VLAN 40 — Accounting
/ip pool
add name=pool-accounting ranges=10.10.40.50-10.10.40.100
/ip dhcp-server
add address-pool=pool-accounting interface=vlan40-accounting name=dhcp-accounting lease-time=8h
/ip dhcp-server network
add address=10.10.40.0/24 gateway=10.10.40.1 dns-server=10.10.50.10
# VLAN 100 — Guest (изолированный, свой DNS)
/ip pool
add name=pool-guest ranges=10.10.100.50-10.10.100.250
/ip dhcp-server
add address-pool=pool-guest interface=vlan100-guest name=dhcp-guest lease-time=2h
/ip dhcp-server network
add address=10.10.100.0/24 gateway=10.10.100.1 dns-server=8.8.8.8,8.8.4.4
Ключевая часть — межсетевой экран, контролирующий трафик между VLAN. Принцип: запрещено всё, что не разрешено явно.
# Политика межсетевого экрана между VLAN
/ip firewall filter
# --- Общие правила ---
# Разрешаем established/related
add chain=forward action=accept connection-state=established,related comment="Allow established"
# Дропаем invalid
add chain=forward action=drop connection-state=invalid comment="Drop invalid"
# --- MEDICAL (VLAN 20) ---
# Медоборудование → PACS-сервер (DICOM порт 104, 11112)
add chain=forward action=accept src-address=10.10.20.0/24 dst-address=10.10.20.11 \
protocol=tcp dst-port=104,11112 comment="MEDICAL: DICOM to PACS"
# Медоборудование → Сервер (для хранения результатов)
add chain=forward action=accept src-address=10.10.20.0/24 dst-address=10.10.50.10 \
protocol=tcp dst-port=445 comment="MEDICAL: SMB to fileserver"
# Медоборудование НЕ имеет доступа в интернет
add chain=forward action=drop src-address=10.10.20.0/24 out-interface=ether2 \
comment="MEDICAL: block internet"
# --- DOCTORS (VLAN 30) ---
# Врачи → PACS (просмотр снимков через DICOM viewer)
add chain=forward action=accept src-address=10.10.30.0/24 dst-address=10.10.20.11 \
protocol=tcp dst-port=104,11112,8080 comment="DOCTORS: DICOM/Web to PACS"
# Врачи → Серверы (1С, файлы)
add chain=forward action=accept src-address=10.10.30.0/24 dst-address=10.10.50.0/24 \
protocol=tcp dst-port=445,1540,1541,1560-1591 comment="DOCTORS: to servers (1C, SMB)"
# Врачи → Интернет
add chain=forward action=accept src-address=10.10.30.0/24 out-interface=ether2 \
comment="DOCTORS: internet access"
# --- ACCOUNTING (VLAN 40) ---
# Бухгалтерия → Серверы (1С, файлы, ЭДО)
add chain=forward action=accept src-address=10.10.40.0/24 dst-address=10.10.50.0/24 \
protocol=tcp dst-port=445,1540,1541,1560-1591,443,80 comment="ACCOUNTING: to servers"
# Бухгалтерия → Интернет (ограниченный — банк-клиенты, ЭДО, налоговая)
add chain=forward action=accept src-address=10.10.40.0/24 out-interface=ether2 \
protocol=tcp dst-port=80,443 comment="ACCOUNTING: internet HTTP/HTTPS only"
# Бухгалтерия НЕ имеет доступа к медоборудованию
add chain=forward action=drop src-address=10.10.40.0/24 dst-address=10.10.20.0/24 \
comment="ACCOUNTING: block medical"
# --- GUEST (VLAN 100) ---
# Гости → только интернет, ничего внутреннего
add chain=forward action=accept src-address=10.10.100.0/24 out-interface=ether2 \
protocol=tcp dst-port=80,443 comment="GUEST: internet HTTP/HTTPS"
add chain=forward action=accept src-address=10.10.100.0/24 out-interface=ether2 \
protocol=udp dst-port=53 comment="GUEST: DNS"
# Гости не видят внутреннюю сеть
add chain=forward action=drop src-address=10.10.100.0/24 dst-address=10.10.0.0/16 \
comment="GUEST: block all internal"
# --- Default drop ---
add chain=forward action=drop comment="Default: drop all other forward"