Bad source address from client packet dropped

Швидка допомога, поради, рішення, консультації системного адміністратора (DevOps)

Ошибка противная, вредная и заставила меня понервничать, настроил как всегда openvpn, тестирую работу ВПН и тут

“MULTI: bad source address from client, packet dropped”

На сайте openvpn пишут что нужно прописать параметр client-config-dir, но у меня с первого раза не получилось, в итоге починил конечно, итак, что бы обрать эту ошибку необходимо прописать параметр:

These errors occur because OpenVPN doesn’t have an internal route for 192.168.100.249. Consequently, it doesn’t know how to route the packet to this machine, so it drops the packet.

Use client-config-dir and create a ccd file for your client containing the iroute option to tell OpenVPN that the 192.168.100.0/24 network is available behind this client.

"MULTI: bad source address from client [192.168.100.249], packet dropped" or "GET INST BY VIRT: 192.168.100.249 [failed]"?

Have you downloaded your FREE connections yet?

Про IP-телефонию очень много написано и сказано. И в частности про безопасность, при использовании VoIP. Но, тем не менее, периодически то от одного, то от другого знакомого слышу «страшные» истории, как у кого-то ломанули VoIP-сервер и они получили счет за телефон с большим количеством нулей…
Вот один из последних случаев: В небольшой организации начинающий админ решил поизучать еще плохо ему знакомые технологии VoIP и для этого завел пользователя с логином «test» и угадайте каким паролем? 😉
Система работала уже не один год, внешняя защита была отлажена, сервер портом 5060 светился «наружу». Но те, кто ставили и настраивали систему, защиту от слабого пароля по какой-то причине не включили. Нужно было видеть лицо директора этой организации, когда, придя утром на работу, он увидел перепуганную секретаршу и счет за телефон — около 25000$. Это только за одну ночь. А если бы оператор не выключил их SIP-аккаунт и счет, как положено, был выписан в начале следующего месяца?

О дальнейшей судьбе этого админа не знаю, но подозреваю – безрадостная.
Мое мнение – не стоит светить «наружу» порт 5060, если у вас нет постоянного квалифицированного админа, контролирующего ситуацию с обнаружением и залатыванием дыр в системе, а так же четко понимающего результат своих действий.
Но если не открывать «наружу» SIP-порт, как же мобильным клиентам и удаленным офисам работать с центральной IP PBX? Один из вариантов – использование VPN. Кроме обеспечения работы телефонии, этот же туннель можно использовать для объединения сетей удаленных офисов. Хотя тот вариант, который я опишу далее, имеет достаточно низкую пропускную способность – 8-9Мбит/с. Но если этого для вас вполне достаточно, то пожалуйста, пользуйтесь.
«Живую», уже работающую схему, по некоторым причинам, описывать не буду. Расскажу на примере, собранного на столе, небольшого стенда. В качестве протокола VPN используется OpenVPN.
Схема сети:

Читайте также:  Исходящий трафик больше входящего

IP PBX реализована Add-On’ом Asterisk на базе D-Link DNS-325. Как Add-On устанавливается и настраивается рассказывать не буду, я об этом уже писал, например тут: http://habrahabr.ru/post/172927/ и http://habrahabr.ru/post/183888/
Единственное НО – в последнем посте рекомендуется Add-On с Asterisk 1.6, так в Add-On’е с 1.8 были некоторые недоработки. На сегодня проблемы у 1.8 устранены, поэтому смело можно ставить http://dlink.vtverdohleb.org.ua/Add-On/current.php?package=Asterisk18&model=DNS-325
На него же (D-Link DNS-325) устанавливаете Add-On OpenVPN.
Свичи D-Link DES-1210-28P имеют функцию PoE (IEEE 802.3af), т.е. могут подать питание IP-аппаратам D-Link DPH-150SE по витой паре. Это удобно тем, что в месте установки IP-аппарата не нужно занимать дополнительную розетку, а самое главное – как правило, все оборудование серверной «сидит» на ИБП, в том числе и свичи. Т.е. даже при пропадании питания в здании телефония будет работать.
Со стороны «филиала» применяется маршрутизатор D-Link DSR-250N. Почему именно он – вся серия D-Link DSR-XXXX поддерживает OpenVPN client/server (только прошивки _WW).
Если со стороны офиса поставить VPN-маршрутизатор, с поддержкой протокола IPSec – удобней поднять туннель между двумя маршрутизаторами на IPSec. Но в данном описании я применил OpenVPN, так как подать ETTH в офис нет возможности, а ставить 2 устройства (DSL + DFL/DSR) заказчик отказался.
Установка Add-On’a OpenVPN по образу и подобию Add-On Asterisk. Для настройки OpenVPN еще понадобится установить Add-On sshd
После установки и запуска sshd, заходим на него ssh-клиентом и первым делом меняем пароль пользователя root ! Как ssh-клиента под Windows чаще всего используют PuTTY

Первый заход – логин «root», пароль не спрашивает. После выполнения команды «passwd» и ввода нового пароля все последующие заходы, кроме запроса «login», будет запрашиваться «Password».
Те, кто пользуются Far Manager, для дальнейших действий видимо удобней будет пользоваться Midnight Commander’ом
Просто установить и стартануть. После, заходите по ssh и запускаете «mc».

Переходим в каталог «/mnt/HD/HD_a2/Nas_Prog/OpenVPN/genkey» и редактируем «F4» файл «vars». Если «F4» не работает, попробуйте «Alt+4».

Строка «export KEY_SIZE=384» — размер ключа шифрования. 384 – минимальный размер. Для «филиала Пентагона» можно поставить 2048 😉 Выдержка из vars: «Increase this to 2048 if you are paranoid.»
«export CA_EXPIRE=3650» и «export KEY_EXPIRE=3650» — через сколько дней «протухнет» сертификат и нужно будет генерировать новый, можете уменьшить.
Далее

export KEY_COUNTRY=«UA»
export KEY_PROVINCE=«KV»
export KEY_CITY=«Kiev»
export KEY_ORG=«D-Link»
export KEY_EMAIL=«ua@dlink.ru»
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme

Тут начинаются вопросы. Подтверждаем Enter’ом предлагаемые данные или вводим новые.
Обязательно! Тут и далее – поле «Common Name» не должно быть пустым. В данном случае введите, к примеру, «server».

Читайте также:  Lost alpha бочки с топливом

Те же вопросы, в «Common Name» тоже вводим «server». «A challenge password» игнорируем – Enter. “Sign the certificate?» проверяем, что ввели и нажимаем «Y». На «1 out of 1 certificate requests certified, commit?» так же «Y».

Теперь генерируем сертификаты клиентов. Каждый сертификат должен иметь уникальное имя! Несколько пользователей под одним сертификатом работать не смогут. Запускаем

И т.д. столько, сколько предполагается клиентов. Если не хватит – в будущем можно будет нагенерировать еще. «Common Name» для «build-key client1» вводим «client1» и т.д.

Ключи готовы, лежат в папке «keys». Копируем их в «/mnt/HD/HD_a2/Nas_Prog/OpenVPN/etc/» с удалением старых.
Клиенту для работы потребуются 3 файла: ca.crt, clientX.crt и clientX.key, где X – порядковый номер клиента. Создайте в шаре Volume_1 (для ssh это /mnt/HD/HD_a2/) каталог, например openvpn_keys, и скопируйте туда сертификаты с ключами. Из командной строки это так:

cp /mnt/HD/HD_a2/Nas_Prog/OpenVPN/genkey/keys/ca.crt /mnt/HD/HD_a2/openvpn_key/
cp /mnt/HD/HD_a2/Nas_Prog/OpenVPN/genkey/keys/client*.crt /mnt/HD/HD_a2/openvpn_key/
cp /mnt/HD/HD_a2/Nas_Prog/OpenVPN/genkey/keys/client*.key /mnt/HD/HD_a2/openvpn_key/
chmod -R a+rw /mnt/HD/HD_a2/openvpn_key

push «route 10.1.1.0 255.255.255.0»
push «route 192.168.17.0 255.255.255.0»
push «route 172.17.17.0 255.255.255.0»

client-config-dir /etc/openvpn/ccd
route 192.168.101.0 255.255.255.0

push «redirect-gateway def1 bypass-dhcp»

/mnt/HD/HD_a2/Nas_Prog/OpenVPN/stop.sh
/mnt/HD/HD_a2/Nas_Prog/OpenVPN/start.sh /mnt/HD/HD_a2/Nas_Prog/OpenVPN /mnt/HD/HD_a2/Nas_Prog/OpenVPN

Добавляем так:
Сеть назначения 192.168.101.0
Маска сети назначения 255.255.255.0
Шлюз 172.17.17.150
Метрика 1
Через интерфейс auto

И сеть 10.8.0.0/24 аналогично.
С частью «офис» все. Теперь настраиваем клиента. DSR с прошивками «_RU» не имеют поддержки OpenVPN. Нужно перешиваться в WW. Взять ее можно на tsd.dlink.com.tw
Начиная с прошивки 1.08, вроде все DSR работают c OpenVPN вполне нормально, на 1.05 только старшие модели.
И так, передаем клиенту сертификаты и ключ или делаем сами.
Переходим в «Setup/VPN Setings/OpenVPN/Openvpn Authentication» и вливаем сгенерированные ранее сертификаты и ключ клиента.

Status = Yes – значит сертификаты и ключи приняты. Теперь переходим «Setup/VPN Setings/OpenVPN/OpenVPN Configuration» и вводим данные «офиса»

Нажимаем Save Settings. Буквально через пару сек. комп 192.168.101.3 начнет пинговать 172.17.17.254
Если посмотреть openvpn-status.log, увидите кто на данный момент подключен и кто из пользователей проявляет активность. Из командной строки это

cat /var/tmp/openvpn-status.log
OpenVPN CLIENT LIST
Updated,Thu Oct 3 13:14:22 2013
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
client1,192.168.50.254:1194,11521,8119,Thu Oct 3 13:11:37 2013
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.6,client1, 192.168.50.254:1194,Thu Oct 3 13:14:19 2013
192.168.101.0/24,client1, 192.168.50.254:1194,Thu Oct 3 13:11:38 2013
192.168.101.100C,client1, 192.168.50.254:1194,Thu Oct 3 13:13:40 2013
GLOBAL STATS
Max bcast/mcast queue length,0
END

Телефоны D-Link DPH-150SE настраиваются достаточно просто, имеется инструкция на русском языке
Правда это на предыдущую версию аппарата, но настройка идентична:
Registrar Server Domain в данном случае указываем IP-адрес DNS-325 – 172.17.17.150
Outbound Proxy Domain не используем, оставляем пустым.

Читайте также:  Atx 350 pnr блок питания

Display Name — Имя, отображаемое на дисплее вызываемого абонента
SIP User Name — Номер телефона SIP (SIP ID, логин)
Authentication User Name — Имя пользователя для регистрации на SIP-сервере
Authentication Password — Пароль для регистрации на SIP-сервере
Пример настройки VoIP-шлюза, где Proxy Server (он же SIP-сервер) – 172.17.17.150, User Name & Authorization Name – номер внутреннего абонента, Password – соответственно пароль абонента.
Я, для примера, завел 3 номера и зарегистрировал один из «офиса», второй с «филиала»

Из командной строки запускаем

Команда sip show peers показывает, какие внутренние номера зарегистрировались и с каких IP-адресов.
«Офисные» аппараты и шлюзы лучше регистрировать на IP 172.17.17.150, а «филиала» на 10.8.0.1 (тот же DNS-325 – IP-адрес туннельного интерфейса).
На этом будем считать настройку телефонии «офиса» и «филиала» завершенной.
Пример мобильного пользователя приведу на своем телефоне с Андроидом.
Первым этапом устанавливаем с Маркета «OpenVPN для Android»
Заливаем на телефон ca.crt, clien2.crt и client2.key. Запускаем «OpenVPN для Android». Нажимаем «+» в левом нижнем углу. Создаем конфигурацию. Заходим в раздел «Основные»

Адрес сервера: 192.168.20.254 (согласно приведенной в начале схемы – это WAN_IP)
Порт сервера: 1194
Протокол: UDP
Сжатие LZO: отключено
Тип: Логин/пароль + Сертификаты
CA сертификат: ca.crt
Сертификат клиента: client2.crt
Ключ сертификата клиента: client2.key
Имя пользователя/пароль: (не важны, вводите что угодно)

В разделе Авторизация/шифрование «Алгоритм шифрования» можно оставить пустым, можно четко указать «BF-CBC»
Возвращаемся на первую страничку, нажимаем на созданную конфигурацию и видим логи подключения OpenVPN.

Теперь установим SIP-клиента. Я использую Zoiper IAX SIP VOIP Softphone (маленький, ничего лишнего, глюков не замечал)

Host: 10.8.0.1 (интерфейсный адрес другой стороны туннеля, на нем же Asterisk)
Username: 6000 (Номер телефона SIP)
Password: 6000 (Пароль для регистрации на SIP-сервере)
Authentication User: 6000 (Имя пользователя для регистрации на SIP-сервере)

Нажимаем Save. Если регистрация прошла успешно – светится зеленая метка, если нет – красный «!».

Конечно этого не достаточно, нужно, к примеру, включить правила ограничения на свичах, позволяющее обращаться к DNS-325 по порту udp/5060 только телефонам и шлюзам. Исключением могут быть только мобильные пользователи. Скрипты отслеживания атак по логам и блокирования IP злоумышленника (на подобии fail2ban) и т.п. Ну это уже тема глубокой безопасности, об этома как-нибудь в следующей статье.

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

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

Adblock detector