воскресенье, 15 июня 2008 г.

Поднимаю PPPoE сервер на базе MikroTik RouterOS 2.9.38

Два дня отдыха не прошли даром ;) Я достиг желаемого результата и настроил MikroTik как роутер + создал PPPoE сервер и прописал клиентов. Как все я это сделал? 
Используя поиск в Google нашел несколько замечательных статей на русском языке. 

1) routerOS Mikrotik - мечта сисадмина;
2) установка RouterOS Mikrotik: система работает, администратор отдыхает;
3) делим Интернет или QoS на Mikrotik

Все три статьи разные, хотя (1) и (2) имеют очень много общего, но статья Александра Кузьмицкого более полнее. Третью статью я планирую в будущем использовать для того, чтобы настроить канал с гарантированной скоростью для клиентов.

Сейчас же опишу порядок своих действий по созданию и настройке PPPoE сервера.

1) Скачиваю с сайта www.mikrotik.com  утилиту Winbox configuration tool 2.2.13.

2) Запускаю её и вижу, что подключение будет происходить по MAC-адресу, т.к. IP-адрес еще не присвоен ни одному порту.


Сперва меня это очень смутило, но сейчас я понимаю, что в больших сетях данная возможность весьма удобна, т.к. в данном случае при подключении MikroTik к существующей сети в ней не будет происходить конфликта IP адресов с MikroTik-ом.

2) Логин для авторизации - admin, пароль отсутствует. В целях повышения безопасности рекомендую его немедленно установить. Благо это можно сделать при помощи меню Password.



3) Теперь необходимо присвоить интерфейсам ether1 и ether2 IP адреса. Сделать этом можно так. В данном примере видим уже настроенные интерфейсы.





4) Переходим к созданию самого PPPoE сервера. Для этого выбираем меню "PPP".

Почему я выбираю вместо PPPoE Server, PPPoE Client? Потому что, вкладка PPPoE Client создает клиента кторый будет подключаться к PPPoE Server-у провайдера, а для локальных клиентов PPPoE Client будет являться PPPoE сервером.



4.1) Присваиваем имя для созданного PPPoE Server-а и выбираем на каком порту будет он располагаться.



4.2) Указываем метку для нашего сервера (internet), в поле user прописываем логин для подключения к Интернету, тот, что нам выдал провайдер (login), и тот пароль, что нам выдал провайдер password (password), и ставим две галочки напротив Add Default Route, и  Use Peer DNS. Профиль можно оставить стандартный - default.



4.3) Вкладки Status и Traffic рассматривать не буду. После того как вы указали правильные данные (User и Password) жмем Apply затем OK.

5) Теперь необходимо настроить пул IP адресов которые будут выдаваться клиентам когда они будут подключаться к нашему PPPoE Server (назовем его локальным - PPPoE Server L, а тот, что расположен у провайдера будем называть Интернет - PPPoE Server I).




6) Возвращаемя в меню PPP и переходим на вкладку Profiles. Создаем новый профиль. В качестве DNS серверов можно использовать эти, а можете использовать те, что предоставляет провайдер. Как обычно после жмем Apply затем OK.



7) Переходим на вкладку Secrets в ней хранятся и создаются аккаунты для подключения локальных клиентов.

В доп. меню AAA оставляю все по-умолчанию. Авторизацию с использованием Radius сервера не использую.



8) Теперь перейдём к настройке Firewall.

Итак, нам нужно:
1. Запретить широковещательные рассылки на порты 137-139, 445 для фильтрации нежелательного трафика.
2. Разрешить маскардинг нужных адресов на интерфейс, по которому мы получаем доступ в Интернет;
3. Разрешить форвардинг для виртуальных IP адресов наших клиентов.
4. Запретить форвардинг (пересылка пакетов между интерфейсами) для всех остальных IP адресов;

Для (1) нужно создать правила в которых указать, что ко всему трафику, который идёт на TCP/UDP порты 137-139, 445 нужно применить DROP или REJECT.

Это можно сделать командами:
/ip firewall filter add chain=forward protocol=udp dst-port=137-139
/ip firewall filter add chain=forward protocol=tcp dst-port=445
Для (2) переходим на вкладку NAT и добавляем правило в котором говорим, что для IP адресов наших клиентов 10.20.30.0/24 (вся сеть) на интерфейс INTERNET нужно делать "masquerade".
/ip firewall nat add chain=srcnat src-address=10.20.30.0/24 action=masquerade
Для (3) создадим список IP адресов, которым разрешено пересылать через сервер пакеты и добавим в файервол для правила, первое из которых - разрешит этим адресам отправлять пакеты, второе принимать.

/ip firewall address-list add address=10.20.30.0/24 list=allow_inet
/ip firewall address-list add address=10.0.14.136 list=allow_inet
/ip firewall address-list add address=192.168.1.1 list=allow_inet
/ip firewall address-list add address=192.168.1.2 list=allow_inet



И так для каждого IP адреса клиентов, которые мы указываем на вкладке Secrets раздела PPP.

/ip firewall filter add chain=forward src-address-list=allow_inet action=accept
/ip firewall filter add chain=forward dst-address-list=allow_inet action=accept


Для (4) открываем пункт IP->Firewall. Переходим на первую вкладку и выбираем справа в выпадающем меню цепочку Forward. Потом добавляем правило, в котором указываем, что по умолчанию форвардинг для адреса 0.0.0.0 с такой же маской запрещён (Действие DROP на закладке ACTION). Стоит помнить, что Forwarding по-умолчанию всегда включен так же, как и все другие правила файервола. Другими словами ничего не запрещено.

/ip firewall filter add chain=forward action=drop

Последнее правило должно находиться последним в списке правил.
Если это не так-перетащите его мышкой в самый низ. В него будут попадать все пакеты, не попавшие под другие правила.

Если вы всё сделаете правильно, то пользователь сможет без проблем подключиться к вашему серверу PPPoE и получить доступ к ресурсам, предоставляемым провайдером Internet.

В случае возникновения каких-либо вопросов рекомендую сначала почитать внимательно приведенные статьи, и документацию на сайте http://www.mikrotik.com/documentation.html, а лишь затем задавать вопросы мне или на форуме http://forum.drivermania.ru/ или http://pcrouter.ru/ipb/.