В этой статье я расскажу как быстро настроить RouterOS MikroTik для работы в "простом" варианте,
который подойдет многим не большим офисам, домашней сети и т.д...
Итак, допустим имеем канал доступа к сети Internet, локальную сеть на 5-ть компьютеров, 1 из которых сервер,
необходимо разрешить работу рядовым пользователям по стандартным протоколам (http, https, icq, jabber, ftp)
для рабочего места системного администратора сделать полный доступ к сети, разрешить работу почтового, фтп и
web сервера.
IP адреса локальной сети:
Mikrotik - 192.168.0.1
PC 5 - 192.168.0.2
PC 4 - 192.168.0.10
PC 1 - 192.168.0.20
PC 2 - 192.168.0.21
PC 3 - 192.168.0.22
Провайдер может предоставлять Вам как белый так и серый ip адрес, допустим, что в нашем конкретном случае
это серый адрес, где то в локальной сети провайдера.
Шаг 1. Подключимся к маршрутизатору локально на консоль, и что бы обезопасить пользователя admin от взлома
отключим его, а вместо него заведем нового.
[admin@MikroTik] > use add name=mkt password=P@S#w0Rd group=full [admin@MikroTik] > quit
заходим под новым пользователем и отключаем admin-а
[mkt@MikroTik] > user disable admin [mkt@MikroTik] > user print Flags: X - disabled # NAME GROUP ADDRESS 0 X;;; system default user admin full 0.0.0.0/0 1 mkt full 0.0.0.0/0
Шаг 2. Настройка интерфейсов.
Тут есть несколько способов, первый воспользоваться мастером, второй задать вручную.
Сперва попробуем настроить интерфейсы при помощи мастера. Набираем команду setup
.
[mkt@MikroTik] > setup Setup uses Safe Mode. It means that all changes that are made during setup are
reverted in case of error, or if Ctrl-C is used to abort setup. To keep changes exit setup using the 'x' key.
[Safe Mode taken] Choose options by pressing one of the letters in the left column, before dash.
Pressing 'x' will exit current menu, pressing Enter key will select the entry that is marked by an '*'. You can
abort setup at any time by pressing Ctrl-C. Entries marked by '+' are already configured. Entries marked by '-' cannot be used yet. Entries marked by 'X' cannot be used without installing additional packages. r - reset all router configuration + l - load interface driver + a - configure ip address and gateway d - setup dhcp client * s - setup dhcp server p - setup pppoe client t - setup pptp client x - exit menu your choice [press Enter to setup dhcp server]:
Нажимаем "a", в появившемся меню нажимаем "a", набираем имя первого интерфейса, указываем IP адрес.
+ a - add ip address + g - setup default gateway * x - exit menu your choice: a enable interface: ether1 ip address/netmask: 192.168.1.116/24 #Enabling interface /interface enable ether1 #Adding IP address /ip address add address=192.168.1.116/24 interface=ether1 comment="added by setup"
Это будет интерфейс провайдера. Так же указываем второй интерфейс для локальной сети и адрес для него.
+ a - add ip address + g - setup default gateway * x - exit menu your choice: a enable interface: ether2 ip address/netmask: 192.168.0.1/24 #Enabling interface /interface enable ether2 #Adding IP address /ip address add address=192.168.0.1/24 interface=ether2 comment="added by setup"
Теперь указываем шлюз по умолчанию, выбираем клавишей "g" и вводим адрес.
your choice: g
gateway: 192.168.1.249
#Adding default route
/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.249 comment="added by setup"
Выходим из второго уровня меню (клавиша "x"), и из первого (клавиша "x"), настройки ip адресов сохранены, шлюз
по умолчанию прописан.
Испробуем второй вариант настройки - ручной.
Смотрим список доступных интерфесов.
[mkt@MikroTik] > interface print
Flags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE MTU
0 R ether1 ether 1500
1 R ether2 ether 1500
Активируем интерфейс 0, который будет подключен к провайдеру и зададим ему ip адрес.
[mkt@MikroTik] > interface enable 0
[mkt@MikroTik] > ip address add address=192.168.1.116/24 interface=ether1 [mkt@MikroTik] > ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE 0 192.168.1.116/24 192.168.1.0 192.168.1.255 ether1
Проделаем туже про процедуру с локальным интерфейсом.
[mkt@MikroTik] > interface enable 1
[mkt@MikroTik] > ip address add address=192.168.0.1/24 interface=ether2
[mkt@MikroTik] > ip address print
Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK BROADCAST INTERFACE 0 192.168.1.116/24 192.168.1.0 192.168.1.255 ether1 1 192.168.0.1/24 192.168.0.0 192.168.0.255 ether2
Ну и наконец добавим шлюз по умолчанию.
[mkt@MikroTik] > ip route add gateway=192.168.1.249
[mkt@MikroTik] > ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip,
b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit # DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 A S 0.0.0.0/0 192.168.1.249 r... 1 1 ADC 192.168.0.0/24 192.168.0.1 ether2 0 2 ADC 192.168.1.0/24 192.168.1.116 ether1 0
Теперь дальнейшую настройку можно продолжить с помощью графической оболочки winbox, но коль мы начали с консоли,
то пройдем весь путь до конца в консоле, а потом повторим сделанное, начиная с шага 3 в графическом интерфейсе.
Шаг 3. Настройка DNS.
[mkt@MikroTik] > ip dns set primary-dns=208.67.222.222 secondary-dns=208.67.220.220
allow-remote-requests=yes
[mkt@MikroTik] > ip dns print
primary-dns: 208.67.222.222
secondary-dns: 208.67.220.220
allow-remote-requests: yes
max-udp-packet-size: 512
cache-size: 2048KiB
cache-max-ttl: 1w
cache-used: 5KiB
Шаг 4. Настройка доступа к сети интернет.
Сперва включаем маскардинг.
[mkt@MikroTik] > ip firewall nat add chain=srcnat action=masquerade
out-interface=!ether2
[mkt@MikroTik] > ip firewall filter add chain forward protocol=icmp
action=accept comment="Allow ICMP Ping"
Дальше добавляем правила для машины PC4.
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.10/32
action=accept comment="Allow all for admin"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.10/32
action=accept comment="Allow all for admin"
Разрешаем работу сервера до протоколу http, smtp, pop.
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=80 action=accept comment="Allow http for server (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32
protocol=tcp dst-port=80 action=accept comment="Allow http for server (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=25 action=accept comment="Allow smtp for server (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32
protocol=tcp dst-port=25 action=accept comment="Allow smtp for server (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=110 action=accept comment="Allow pop for server (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32 protocol=tcp dst-port=110 action=accept comment="Allow pop for server (out)"
Таким же образом задаем правила для остальных машин, разрешая им http, https, ftp, icq, jabber.
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=80 action=accept comment="Allow http for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=80 action=accept comment="Allow http for pc1 (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=443 action=accept comment="Allow https for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32 protocol=tcp dst-port=443 action=accept comment="Allow https for pc1 (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=21 action=accept comment="Allow ftp for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=21 action=accept comment="Allow ftp for pc1 (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=5190 action=accept comment="Allow icq for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=5190 action=accept comment="Allow icq for pc1 (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=5222 action=accept comment="Allow jabber for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32 protocol=tcp dst-port=5222 action=accept comment="Allow jabber for pc1 (out)"
Повторяем эти правила для каждой машины, если необходимо разрешить дополнительные порты, то шаблон написания, я
думаю, понятен.
Ну и под конец запрещаем все остальное, что не разрешили выше.
[mkt@MikroTik] > ip firewall filter add chain=forward action=drop comment="Drop all"
Шаг 5. Входящие.
Теперь надо разрешить что бы входящие соединения по http, smtp и pop автоматически попадали бы на сервер.
[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.1.116/32
protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.2 to-ports=80
comment="NAT for http"
[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.1.116/32
protocol=tcp dst-port=25 action=dst-nat to-addresses=192.168.0.2 to-ports=25
comment="NAT for smtp"
[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.1.116/32
protocol=tcp dst-port=110 action=dst-nat to-addresses=192.168.0.2 to-ports=110
comment="NAT for pop"
Если мы говорим про абсолютный минимум и простоту, это на этом все. Какие действия были сделаны?
Были включены два интерфейса ether1 и ether2.
Назначены ip адреса для интерфейсов.
Назначен шлюз по умолчанию.
Заданы DNS сервера.
Прописаны правила для машин с неограниченным доступом.
Прописаны правила для машин с ограниченным доступом по портам.
Прописаны правила преобразования сетевых адресов для доступа из вне к веб и почтовому серверам.
Теперь давайте вернемся в шагу №3 и сделаем все те же действия, но уже в графической оболочке winbox,
что бы ее скачать необходимо зайти в веб интерфейс mikrotik-а, так называемый webbox, и скачать с главной
страницы программку.
Запускаем, указываем адрес в локальной сети, который был назначен второму интерфейсу, имя и пароль
пользователя, которого завели в самом начале.
Шаг 3. Настройка DNS.
В графическом интерфейсе все не на много сложнее чем в консоле. Выбираем в основном меню раздел IP, в
нем подменю DNS.
Здесь можно завадать статически dns записи, а так же просматривать что сейчас есть в кэше. Нажимаем на
кнопочку Settings и указываем адреса DNS серверов.
Настройка доступа к сети интернет.
Включаем маскардинг. Основное меню IP, в подменю firewall, вкладка NAT.
Что бы добавить новую запись нажимаем на плюсик. А дальше все тоже самое, что и в консоле, на вкладке General
chain=srcnat, Out interface=ether2 и ставим галочку, что означает "НЕ", вкладка Action выбираем masquerade.
Приводить кучу одинаковых скришотов на одну и туже тему я не вижу смысла, а понять что все теже самые
параметры, которые набираются в консоле на 100% совпадают с названиями в графическом интерфейсе думаю не сложно.
По это я приведу несколько картинок с добавлением правил в firewall. Выбираем в основном меню раздел ip, в
нем подпункт firewall, в появившемся окне выбираем вкладку Filter Rules. Для добавления нового графила нажимаем
на плюсик.
Разрешаем UDP.
Разрешаем исходящие соединения с адреса 192.168.0.2 к любым адресам по порту назначения 25, используюя протокол
tcp.
Ну и под конец запрещаем все остальное, что не разрешили выше.
Получилось что то вроде этого.
Шаг 5. Входящие.
Выбираем в основном меню раздел ip, в нем подпункт firewall, в появившемся окне выбираем вкладку Nat. Для
добавления нового графила нажимаем на плюсик.
Перенаправляем все соединения, приходящие на внешний адрес 192.168.1.116 по протоколу tcp, 25 порт на
локальный адрес 192.168.0.2 на порт 25.
По такому же принципу строятся все остальные правила.
Из описанного выше видно, что любое действие можно сделать как минимум двумя вариантами, разговаривать с
MikroTik-ом с помощью текстовых команд или упражняться с мышкой в графическом интерфейсе. И у то и у другого
метода есть свои плюсы и минусы, консоль работает быстрее даже на очень слабом канале, графическая оболочка
вообще перед началом работы скачивает модули интерфейса к себе, а потом в процессе работы порождает очень
даже не маленький трафик, с консолью определенно сложнее работать, но поняв комманды и принцип работы становится
не так важно какой интерфейс используется для настройки. В дальнейшем я расскажу как уменьшить количесво
правил, используя списки адресов, как ограничивать скорость на upload или download, как разделить трафик
между несколькими провайдерами или даже как заставить одну машину работать одновременно с несколькими провайдерами.