Mikrotik для небольшого офисаSidebar

Практика настройки Mikrotik для чайников 29

  • 25.08.15 09:09


Bulroh

#265387

Хабрахабр

27438

Системное администрирование, Сетевые технологии

Есть задача: настроить устройство на базе RouterOS в качестве замены SOHO роутера для дома или небольшого офиса. Это HOWTO, потому технических подробностей будет минимум, Next-Next-Next-Ok и вы получаете готовое к работе устройство, так что приступаем.

Настройка провайдера

???

Статическая настройка IP

???[Address: 192.0.2.10/255.255.255.0; Interface: eth1-wan]????[Dst.Address:0.0.0.0/0; Gateway:192.0.2.1; Check gateway: ping; Distance: 1]????

Настройка PPPoE

Конечно, у провайдера может быть пиринг с другими сетями или доступ в свою сеть без ограничения по скорости, которые работают вне PPPoE интерфейса и требуют добавления отдельного маршрута (DualAccess или Russian PPPoE в SOHO роутерах), но подобная конфигурация выходит за рамки HOWTO для начинающих.??Name=tap1-wanInterface=eth1-wanВажно: Если вы используете PPPoE, то в дальнейшем используйте вместо eth1-wan интерфейс tap1-wan

Настройка L2TP/PPTP

инструкцию??Name=tun1-wanВажно: Если вы используете L2TP/PPTP, то в дальнейшем используйте вместо eth1-wan интерфейс tun1-wan

А как-же Yota?

?Не знаю со всеми моделями модемов так или мне попался неудачный, но без предварительной активации на ПК работать он отказывался.

Другие 3G/4G модемы

??здесь

??????Интересный момент. Средствами master port можно объединить интерфейсы принадлежащее одному чипсету, на старших моделях чипсетов может быть несколько (колонка switch), интерфейсы с разных чипсетов объединяются через программный Bridge, ну или пачкордом.Теперь все локальные Ethernet интерфейсы объединены под именем eth5-lan.???????????Теперь все локальные Ethernet и wlan интерфейсы объединены под именем br1-lan.

Безопасность беспроводной сети

????Если ваши беспроводные девайсы выпущены несколько лет назад, то логичнее выбрать 2gHz-B/G.Можно скрыть точку доступа. Но не стоит считать это панацеей.

Настройка ip, dhcp-server

???[Address: 192.168.10.1/24; Interface: br1-lan]????????????На скриншоте в качестве NTP сервера указан адрес роутера, но в базовой поставке раздавать точное время Mikrotik не умеет, можно указать любой другой сервер из сети, либо добавить и настроить пакет ntp(описано в конце HOWTO).

Настройка сервера доменных имен

Если вас не устраивают DNS от провайдера можно добавить в список свои (можно полностью убрать провайдерские DNS выключив опцию Use peer DNS в соответствующих подключениях).???

Пакетный фильтр

?General, Advanced, ExtraActionна самом деле некоторые действия пропускают пакет дальше, просто запомните этот факт если планируете в будущем глубже разобраться с netfilterGeneralВсе необходимые правила описаны в виде таблиц, если боитесь ошибиться или просто лень, открывайте и копируйте в него строки из консольного варианта в конце раздела.

Вкладка

Условия Действие
# Chain Src. Address Dst. Address Protocol Dst.Port In. Iterface Out. Interface Connection Mark Connection State
Input icmp accept
1 Input 192.168.10.0/24 tcp 80,8291,22 br1-lan new accept
2 Input tcp 80 eth1-wan allow_in new accept
3 Input 192.168.10.0/24 udp 53,123 br1-lan new accept
4 Input established,related accept
5 Output Invalid accept
6 Forward 192.168.10.0/24 br1-lan eth1-wan new, established accept
7 Forward 192.168.10.0/24 eth1-wan br1-lan established,related accept
8 Input reject
9 Output reject
10 Forward reject

Вкладка

Условия Действие
# Chain Src. Address Protocol Dst.Port In. Iterface Out. Interface
srcnat 192.168.10.0/24 eth1-wan masquerade
1 dstnat tcp 9999 eth1-wan redirect
To ports: 80

Вкладка

Условия Действие
# Chain Protocol Dst.Port In. Iterface Connection State
prerouting tcp 9999 eth1-wan new mark connection
New Connection Mark: allow_in

Дополнение 1. Имя устройства

????????mikrouter

Дополнение 3. Обновление

сайт Mikrotik

??????

Дополнение 4. Настройка ntp

??????

Дополнение 6. Отключаем обнаружение и ограничиваем доступ по mactelnet

????allbr1-lan

Вы можете помочь и перевести немного средств на развитие сайта

Гостевой wifi virtual ap, shaping, отдельная сеть

Т.к. стоит задача изолировать беспроводных клиентов от проводной сети, а их всех вместе — от гостевой, то сетей у нас будет три (можно и больше), с разными правилами доступа для каждой.
Создаем виртуальную точку доступа и security profile

1234 /interface wireless security-profiles
add name=hs-ap-prof-nixman authentication-types=wpa2-psk group-ciphers=aes-ccm mode=dynamic-keys supplicant-identity=MikroTik unicast-ciphers=aes-ccm wpa2-pre-shared-key=WiFiPaSsWoRd
/interface wireless
add master-interface=wlan1 mode=ap-bridge name=hs-ap-nixman security-profile=hs-ap-prof-nixman ssid=»Guest WiFi»

IP, DHCP-сервер

12345678 /ip address
add address=192.168.90.1/24 comment=»Guest WiFi» interface=hs-ap-nixman network=192.168.90.0 arp=reply-only
/ip pool
add name=guest ranges=192.168.90.10-192.168.90.254
/ip dhcp-server network
add address=192.168.90.0/24 comment=»guest wifi» dns-server=8.8.8.8 gateway=192.168.90.1
/ip dhcp-server
add address-pool=guest disabled=no interface=hs-ap-nixman lease-time=1h name=guest add-arp=yes

Настройка с нуля

Теперь сбросим конфигурацию, чтобы настроить с нуля. Зачем? Всё просто — настраиваем мы не просто домашний роутер, а роутер для офиса, тем более с претензией на защищённость, и настройки необходимо держать под контролем.
После сброоса конфигурации, подключиться к устройству можно через WinBox и функцию mac-telnet (я надеюсь, как это сделать, вы знаете).
Интерфейсы

12345678 #Настройки интерфейсов приведены для роутера RB951
#На вашем роутере настройки интерфейсов могут отличаться
/interface ethernet
set comment=Internet name=ether1
set name=ether2
set master-port=ether2 name=ether3
set master-port=ether2 name=ether4
set master-port=ether2 name=ether5

IP, DHCP-сервер

12345678 /ip address
add address=192.168.88.1/24 comment=»servers» interface=ether2 network=192.168.88.0
/ip pool
add name=guest ranges=192.168.88.10-192.168.88.254
/ip dhcp-server network
add address=192.168.88.0/24 comment=»servers» dns-server=192.168.88.1 gateway=192.168.88.1 ntp-server=192.168.88.1
/ip dhcp-server
add address-pool=servers disabled=no interface=ether2 lease-time=3d name=servers
12345678 /ip address
add address=192.168.89.1/24 comment=»Stuff WiFi» interface=wlan1 network=192.168.89.0
/ip pool
add name=stuff ranges=192.168.89.10-192.168.89.254
/ip dhcp-server network
add address=192.168.89.0/24 comment=»stuff wifi» dns-server=192.168.89.1 gateway=192.168.89.1 ntp-server=192.168.89.1
/ip dhcp-server
add address-pool=stuff disabled=no interface=wlan1 lease-time=3d name=stuff

NTP-сервер

1234 /system ntp client
set enabled=yes primary-ntp=95.104.192.10 secondary-ntp=93.180.6.3
/system ntp server
set enabled=yes

5. WiFi (channel, psk)

1234567 /interface wireless
#Выставляем режим 2.4GHz b/g/n (у вас, возможно, будет другая модель роутера, например с поддержкой 5GHz-диапазона.
#В таком случае, настройки будут отличаться
#Также, возможно, придётся поменять частоту
set band=2ghz-b/g/n comment=hs-ap-default disabled=no distance=indoors frequency=2437 guard-interval=long mode=ap-bridge ssid=Stuff wireless-protocol=802.11
/interface wireless security-profiles
set authentication-types=wpa2-psk group-ciphers=aes-ccm mode=dynamic-keys supplicant-identity=MikroTik unicast-ciphers=aes-ccm wpa2-pre-shared-key=123WiFi321

Задаём пароль админа

1 > /user set 0 password=VeRy$tR0nGp@s$

NAT — он у нас будет один на всех

12 /ip firewall nat
add action=masquerade chain=srcnat comment=»NAT Internet» out-interface=ether1 src-address-list=internal-nets dst-address-list=!internal-nets

11. Балансировка 2 каналов.

Балансировка через маршруты. Соединения вперемешку будут идти через WAN1 или  WAN2

Метод хорошо работает при каналах приблизительно равных по скорости.

Разница по скорости каналов не должна отличаться более чем в  2 раза.

В Мангле – эти  правила поднимите наверх.

/ip firewall mangle
add act=mark-connection ch=prerouting connection-state=new new-connection-mark=c1 nth=2,1 passthrough=yes
add act=mark-connection ch=prerouting connection-state=new new-connection-mark=c2 nth=2,2 passthrough=yes

add act=mark-routing ch=prerouting connection-mark=c1 new-routing-mark=r1 passthrough=yes
add act=mark-routing ch=prerouting connection-mark=c2 new-routing-mark=r2 passthrough=yes

 

/ip route
add check-gateway=arp dst-address=0.0.0.0/0 gateway=80.80.80.1 routing-mark=r1 scope=255
add check-gateway=arp dst-address=0.0.0.0/0 gateway=90.90.90.1 routing-mark=r2 scope=255

Можно добавить еще маршрут без маркировки на всякий пожарный:

add disabled=no dst-address=0.0.0.0/0 gateway=80.80.80.1 scope=255

В NAT – Out. Inteface – пустой.

В IP – DHCP Client – Add Default Route – можно отключить

Важно! При каналах сильно отличающихся по скорости он мало эффективен. В таком случае советую использовать резервирование каналов по п

6.10

В таком случае советую использовать резервирование каналов по п. 6.10.

Слабый канал погоды все-равно не сделает. А скоростному мешать будет.

18. Шейпим торренты.

Данный метод режет все торренты. И шифрованные в том числе. И он не ресурсоёмкий для Микротика.

p2p=all-p2p   – работает только для редких не шифрованных торрент-клиентов.

Маркируем входящие торрент-пакеты по размерам, портам и протоколам:

/ip firewall mangle
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent p2p=all-p2p passthrough=no
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=576
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=1240
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=1330
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=1400
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=1460
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=398
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=748
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1430
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1448
add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1466

Если нужна обработка нижележащих цепочек – Укажите всюду passthrough=yes.

Далее можно добавить новое правило Torrent-5M в раздел Queue Tree в родителя Download. Указав Packet Marks –  Torrent. И желаемую скорость 5M.

5M – это скорость для каждого или для всех в сумме, в зависимости от выбора Queue Type в PCQ Dst. Address Mask 32 или 24.

Или добавить одно правило на самый верх в Simple Queue.  Указав Packet Marks – Torrent. И желаемую Tx скорость 50M.

50M – это скорость общая на всех торрент-клиентов.

В Simple Queue можно каждому указать скорость на торрент в отдельности.

Т.е. для каждого IP создать дополнительную запись.

Эта запись должна быть выше основной записи IP клиента.

Или уже решайте на свое усмотрение, что с этими маркированными пакетами делать.

Учитывайте, что сюда также могут иногда попасть пакеты из онлайн игр.

2. Firewall Filter блокируем и разрешаем.

Здесь создаются блокирующие и разрешающие правила.

Если записей никаких нет – то все разрешено.

Порядок записей имеет значение.

Проверка правил происходит сверху вниз.

Если  пакет соответствует правилу, то дальнейшая проверка не происходит, если конечно не стоит галка PassTrugh

Есть 2 варианта.

Мягкий – Добавлять только запрещающие правила. Все остальное разрешать.

Жесткий – поставить  запрещающее  правило на все. А сверху добавлять разрешающие.

Блокируется  или входящие пакеты или исходящие.

Важно!

1. Никогда не пытайтесь одним правилом блокировать входящие и исходящие пакеты одновременно.

Это ошибка.

Просто создайте при необходимости  2 правила – на входящие и исходящие пакеты.

А лучше блокировать только исходящие пакеты еще на взлете. Входящих пакетов само собой уже не будет.

Да и Роутер разгрузится от лишнего входящего трафика.

2. Есть 2 типа пакетов – входящие и исходящие.

Важно! Src.Address и  Dst.Address  в правилах меняются местами. В зависимости от направления движения пакета

Входящие – это из интернета  к нам.

Src.Address – это интернет-адрес отправителя (сервера в интернете).

Dst.Address – это интернет-адрес Микротика (получателя). Если это правило в цепочке PreRouting.    или

Dst.Address – это локальный адрес клиента (получателя). Если это правило в цепочке Forward или PostRouting.

Исходящие – это от  нас в интернет.

Src.Address  – это интернет-адрес отправителя (Микротика) . Если это правило в цепочке PostRouting.    или

Src.Address – это локальный адрес клиента (отправителя). Если это правило в цепочке Forward или Prerouting.

Dst.Address – это интернет-адрес получателя (сервера в интернете).

3. В правилах   всегда указывайте Out. Interface или  In. Interface.

Причем, если указываете   In. Interface – LAN1, то это исходящий трафик.

Значит Dst.Address – это должен быть адрес интернет-ресурса. А Src.Address – это адрес вашей локалки или Микротика, если указываете   Out. Interface – LAN1, то это входящий трафик.

Значит Dst.Address – это должен быть адрес вашей локальной сети или Микротика.  А Src.Address – адрес интернет-ресурса.

Это очень важно!

То же самое  (п. 1 и 2) касается и Mangle.

17. Редирект на страницу-напоминалку

Очень эффективно не просто отключать пользователей, а напоминать им — почему они отключены!

Итак 4 шага.

1. Сначала добавляем в  IP-Firewall-Address List —   IP всех юзеров с записью ALLOW .

2. /ip firewall nat
add act=dst-nat ch=dstnat dst-port=80 in-int=LAN1 protocol=tcp src-address-list=!ALLOW   to-addr=192.168.0.10  to-ports=80

Это правило кинуть выше правила srcnat! Все. редирект работает.

3. Но еще очень желательно 2 правила в IP — Firewall — Filter

/ip firewall filter
add act=accept ch=forward   out-int=!LAN1  dst-address=192.168.0.10
add act=drop ch=forward out-int=!LAN1 src-address-list=!ALLOW 

Эти правила кинуть вниз. Это для полной блокировки любой активности (а не только ВЕБ-серфиннг) юзеров, которые
не в ALLOW.

Затем юзеров — которых нужно перенаправить — просто отключаем крестом в Address List,  вручную или скриптом
при отрицательном баллансе из биллинга. Один клик и готово.
Теперь, когда юзер наберет anysite.com — он автоматом попадет на Вашу странцу.
Но когда  он наберет —  anysite.com/anypage.php — он увидит ошибку, а не Вашу страницу!

Поэтому:
4. на вебсервере в корне страницы-напоминалки добавляем файл .htaccess с редиректом:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /index.html

где — /index.html — это Ваша страница напоминалка. 

Или вариант №2 — сделать страницу 404.php и включить ее в .htaccess, а в 404.php сделать include вашей страницы напоминалки
или просто скопировать ее содержимое.
Все.

Теперь куда бы пользователь не зашел — он всегда увидит Вашу страницу.

Вот так все просто. 

Проброс портов скрипты

В скриптах я добавил еще одно правило для протокола HTTPS на веб-сервер, а для проброса RDP использовал нестандартный порт.

#
#
# WEB Server 192.168.33.2 HTTP port 80
/ip firewall nat
add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1 dst-port=80 in-interface=inetTest protocol=tcp to-addresses=192.168.33.2 to-ports=80
# WEB Server 192.168.33.2 HTTPS port 443
add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1 dst-port=443 in-interface=inetTest protocol=tcp to-addresses=192.168.33.2 to-ports=443
# RDP PC 192.168.33.129
add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1 dst-port=4565 in-interface=inetTest protocol=tcp to-addresses=192.168.33.129 to-ports=3389

1
2
3
4
5
6
7
8
9
10
11

 
 
#
#
# WEB Server 192.168.33.2 HTTP port 80

ip firewall nat

add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1dst-port=80in-interface=inetTest protocol=tcp to-addresses=192.168.33.2to-ports=80

# WEB Server 192.168.33.2 HTTPS port 443

add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1dst-port=443in-interface=inetTest protocol=tcp to-addresses=192.168.33.2to-ports=443

# RDP PC 192.168.33.129

add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1dst-port=4565in-interface=inetTest protocol=tcp to-addresses=192.168.33.129to-ports=3389

Для RDP dst-port указан 4565, который MikroTik перенаправит на персоналку 192.168.33.129 на стандартный порт RDP — 3389. Соответственно, удаленному пользователю при подключению к удаленному рабочему столу надо будет так же указать и порт: 1.1.1.1:4565

Естественно, не забудьте разрешить в файерволе входящие соединения на внешний интерфейс (у нас inetTest) на порты, которые мы собираемся пробросить (в этом примере 80, 443, 4565).

В этой статье я использовал самый простой пример, но думаю, для базового уровня этого достаточно.

До новых встреч!

Реклама:

14.Блокируем порты спамеров

1. Блокируем  порты спамеров и зараженных троянами-вирусами компов. 

/ ip firewall filteradd chain=forward prot=tcp dst-port=25 src-address-list=spammer act=drop

2. Добавляем в  address-list=spammer  наших спамеров на 30 дней :

/ ip firewall filteradd chain=forward prot=tcp dst-port=25 connection-limit=30,32 limit=50,5 src-address-list=!spammer action=add-src-to-address-list address-list=spammer address-list-timeout=30d

При большом количестве соединиений на 25 порт — IP юзера заносится в   address-list=spammer

А Этот  address-list=spammer — блокируется файрволлом.

Вы ж не хотите, что б Ваш провайдер Вам позакрывал порты? Или хотите? 

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

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

Adblock
detector