Как стать автором
Обновить

Комментарии 22

#Разрешаем VOIP
iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags RST,SYN SYN -j TCPMSS --clamp-mss-to-pmtu

не имеет отношения к VOIP напрямую… почитайте на предмет mtu blackhole
к примеру
Еще несколько слов о Path MTU Discovery Black Hole
О PPPoE, MTU и проблеме Path MTU Discovery Black Hole
Тогда решение выглядит более универсальным в принципе, для других целей использования VPN.
Постоянный VPN на базе pptp? Мне прямо вот неудобно как-то уже:

en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol#Security
security.stackexchange.com/questions/45509/are-there-any-known-vulnerabilities-in-pptp-vpns-when-configured-properly

Вопрос в том, для чего VPN. Если для безопасности, то вы выбрали не ту технологию, как следует из первых попавшихся ссылок, пару из которых я привел выше.
сомневаюсь, что те шары и голосовой траффик, которые стали доступны при таком решении, составляют критическую ценность. собственно Vpn применен для удобства и простоты настройки, администрирования, а так же в связи с тем, что другие решения на dir300+ddwrt практически реализовать невозможно, с моей точки зрения
А почему вы не стали настраивать OpenVPN, например? А если использовать оборудование на Микротик (со стороны точки с динамическим IP), то там можно при смене IP-адреса интерфейса переподнимать туннель автоматом с новыми реквизитами.
1. было дано задание собрать из наличия
2. планирую уходить, кадр на замену будет менее квалифицированный
3. openvpn обслуживает мой офис в части конфиденциальной информации-хранилища ту и чертежей, так что хотел разобраться именно с pptpd
>Сначала было желание реализовать сервер VPN на шлюзе FreeBSD, установив pptpd. Однако, как оказалось, в FreeBSD нужно патчить систему для поддержки mpd

простите, а что там патчить?
Вот тут у Лиссяры написано как патчить mpd5. Про pptpd во freebsd 9 вычитал на том же ресурсе, что лучше не надо. Попробовал раз взлететь, не вышло. Поэтому оставил эту тему. Но там еще вопрос безопасности сыграл свою роль. Со шлюза больше шар доступно, бекапы (которые вне локальной подсети). Поэтому не стал к шлюзу давать доступ из — вне.
Ничего там не патчат. Всё устанавливается по стандартной схеме. Настраиваются конфиги. Разве что только включают PF в ядре. Если у вас что-то другое используется, то смотрите как там NAT сделать, если он, то ничего не нужно пересобирать.
Да уж и не надо, на убунте работает. FreeBSD балансирует каналы, раздает ip — адреса, является сервером NS. Могу сослаться на работающее решение балансировки нескольких каналов на базе PF.
Я раньше использовал FreeBSD и как раз с PF. Но сейчас как-то неудобно стало. Да и софт больше под Linux развивается. Думаю вы ничего не потеряли.
Но в инструкции всё-таки патчить ядро под MPD не нужно :-)
С планшета смотрел. Не нужно, так и не нужно. В любом случае не взлетело, а на рабочей ОС экспериментировать что-то не захотелось.
К FreeBSD отношусь с большИм уважением, нежели к linux. Может быть процесс запуска колхоза, сборки из сорцов и сложнее, чем установка из репозиториев, однако на этапе сборки системы становится понятно как это все связано и функционирует. Работа на мой взгляд чуть быстрее и чуть стабильнее, следовательно чуть прозрачнее и запущенный сервис в целом. На ubuntu/debian?centos пересел в связи с:
1) На дешевые VPS сложно поставить FreeBSD;
2) CentOS у клиента, которого обслуживаю, сайты держит
3) ProxMox на Debian, пришлось разобраться когда ферму для биткойнов на нем делал.
А я Gentoo дома сейчас использую. Не понимаю, как раньше портами мог пользоваться на FreeBSD :) Жуть как не продумано.
как уже сказали, ничего там не патчат. не знаю, что у вас там не взлетело, но pptp на mpd поднимается максимум за 10 минут.
но я бы выбрал l2tp из-за отсутствия проблем с nat.
Не уверен, что вопрос в тему, однако l2tp заработает ли в связке с DD-WRT?
>Что касается строчки «Разрешаем VOIP» в стартовом скрипте, то я могу сказать так: нашел ее в выдаче далеко за первой сотней поисковика, в одном из форумов, с пометкой «попробуй, вдруг заработает». До ее введения в конфиг ходил любой траффик за исключением голоса со стороны АТС.

голос бегает по rtp, который представляет собой пакетики udp. у правила же match-условие — tcp, так что оно на голос никак не влияет.

>/sbin/route del -net 192.168.0.0 netmask 255.255.255.0

используйте iproute2. и я бы вообще весь впн вынес в отдельную таблицу роутинга(а лучше вообще неймспейс).
Согласен с вышеприведенным.
и я бы вообще весь впн вынес в отдельную таблицу роутинга(а лучше вообще неймспейс).

Не стал делать ибо работает так, а задачи разбираться с iproute2 и прочим не стоит (не заплатят, не оценят)
однако проблемы, с которыми я столкнулся при настройке роутинга в следующем — если я задаю правила при старте системы, а входящие интерфейсы еще не подняты, то правила роутинга не работают (привязываются к eth0).
голос бегает по rtp, который представляет собой пакетики udp. у правила же match-условие — tcp, так что оно на голос никак не влияет.

видимо влияет mtu blackhole все-таки на траффик, а не невозможность прогона через систему именно rtp. Поэтому закомментил себе эту строчку именно так.
>Не стал делать ибо работает так, а задачи разбираться с iproute2 и прочим не стоит (не заплатят, не оценят)

дело не в «заплатят/оценят», а знаниях в вашей голове и том факте, что net-tools(в которые входят ifconfig/route/netstat) уже давно depracated.

собственно, ваши проблемы с настройкой роутинга как раз с этим и связаны.

>видимо влияет mtu blackhole все-таки на траффик

не влияет. более того, глядя на ваш /etc/ppp/ip-up.d/pppup хочется рыдать.

cd /etc/ppp/ip-up.d
cat /etc/ppp/ip-up.d/pppup

зачем cd, если вы используете абсолютный путь?
но это мелочи.

iptables -L -t nat

вывели в stdout содержимое таблички nat. оок. но зачем?

iptables -F

в этот момент всё содержимое таблички filter исчезло. если у нас там были какие-то полезные правила — всё, их нет.
если у того, кто попробует поднять по вашей статье дефолтная политика DROP, то он лишится ssh доступа к машине.

iptables -X

зачем?

iptables -A INPUT -i eth1 -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --dport 47 -j ACCEPT

зачем?

#Разрешаем траффик на интерфейсах

зачем прописывать 100500 интерфейсов, особенно в таком стиле?

P.S.: пожалуйста, не пишите больше статей по сетям без понимания происходящего и того, как работают используемые вами инструменты.
зачем cd, если вы используете абсолютный путь?
но это мелочи.

Чтобы показать в статье где что лежит.
iptables -A INPUT -i eth1 -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --dport 47 -j ACCEPT

зачем?

Порт pppoe, через который идет согласование.

P.S. Когда Вы напишете статью о аналогичном решении, соблюдая Ваши правила, обязуюсь прекратить писать свои решения на хабре.
зачем прописывать 100500 интерфейсов, особенно в таком стиле?

Решение предназначено больше для использования внутри жестко определенных рамок, а не для авторизации кучи пользователей. Всего пользователей 3, соответственно и правила прописаны для максимально возможного количества поднятых интерфейсов.
вывели в stdout содержимое таблички nat. оок. но зачем?

Отладочная инфа. Пардоньте, забыл удалить.
если у того, кто попробует поднять по вашей статье дефолтная политика DROP, то он лишится ssh доступа к машине.

не факт.

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

Обязуюсь прекратить писать статьи на Хабре, когда увижу от Вас статью о решении аналогичной проблемы, с учетом Ваших комментариев к моей
Порт pppoe, через который идет согласование.

в PPPoE нет портов. и вы настраиваете pptp, а не pppoe.
у pptp только 1 порт используется — 1723. число 47 — это скорее про gre в поле protocol number

но это опять же про ip, а не tcp или udp.

P.S. Когда Вы напишете статью о аналогичном решении, соблюдая Ваши правила, обязуюсь прекратить писать свои решения на хабре.


тюю…
l2 vpn с vlan'ми на vtun
l2 vpn с vlan'ми на l2tpv3 pseudowire
network namespaces
QinQ в linux

Всего пользователей 3, соответственно и правила прописаны для максимально возможного количества поднятых интерфейсов.


а зачем? у вас адреса клиентов гвоздями прибиты, достаточно было разрешить 10.1.1/24

не факт.


факт. сделайте сидя по ssh:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -F
тюю…
l2 vpn с vlan'ми на vtun
l2 vpn с vlan'ми на l2tpv3 pseudowire
network namespaces
QinQ в linux

Ваше?
Где там про DD-WRT или аналогичное решение про подключение телефона KX-NT321 к офисной АТС с помощью этого решения с использованием предложенного роутера DIR-300 или без него?
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -F

Зачем мне это делать, если я делаю то, что описано в статье и ssh не отваливается? Пусть даже Вы утверждаете обратное.
и вы настраиваете pptp, а не pppoe.
у pptp только 1 порт используется — 1723. число 47 — это скорее про gre в поле protocol number

Да, это gre. При настройке pptpd в любом случае необходимо дать доступ к этому порту:
iptables -A INPUT -i eth1 -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --dport 47 -j ACCEPT

иначе логин не проходит.
а покажите пожалуйста на системе с pptpd netstat -lpnt | grep 47
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории