LINUX.ORG.RU
решено ФорумAdmin

Настройка типовой конфигурации файервол для Sip для локально закрытой машины.

 , ,


0

0

В целом нужно сделать так чтобы ekiga мог цепляться к любой стандартно настроенной sip станции при минимуме открытых портов на локальной машине. Перечитал кучу гуглостраниц. Нашел несколько в том числе и достаточно противоречивых советов как настроить. Вот хочу посоветоваться. Исходно допустим что iptables настроен вот так:

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A OUTPUT -p UDP --dport 67 --sport 68 -j ACCEPT

iptables -A OUTPUT -o tun0 -p TCP --sport 32768:61000 -j ACCEPT
iptables -A OUTPUT -o tun0 -p UDP --sport 32768:61000 -j ACCEPT

iptables -A INPUT -i tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -s 100.100.100.100 -p TCP --sport 443 -j ACCEPT 
iptables -A OUTPUT -d 100.100.100.100 -p TCP --dport 443 -j ACCEPT
iptables -A INPUT -s 100.100.100.100 -p UDP --sport 443 -j ACCEPT 
iptables -A OUTPUT -d 100.100.100.100 -p UDP --dport 443 -j ACCEPT
То есть локальный трафик разрешен только для openvpn по порту 443, а весь траф локального софта завернут внутрь VPN-а. В таком варианте нормально работает всё кроме ekiga. Если вместо
iptables -A OUTPUT -o tun0 -p TCP --sport 32768:61000 -j ACCEPT
iptables -A OUTPUT -o tun0 -p UDP --sport 32768:61000 -j ACCEPT
поставить
iptables -A OUTPUT -o tun0 -j ACCEPT
Начинает нормально работать и ekiga, то есть VPN нормально всё пропускает. Но как сами понимаете делать интерфейс ВПН полностью открытым - не правильно. Вот и нужно получить нечто среднее при минимуме открываемых внутри ВПН портов. Я понимаю что как минимум надо добавить 5060 UDP туда обратно. Но бывают еще всякие STUN и тому подобное. В общем разумные советы приветствуются.

Тред почти не читай, сразу отвечай, зачем фильтровать трафик на tun интерфейсе?

anonymous
()
Ответ на: комментарий от anonymous

Потому что внешняя сторона tun интерфейса имеет например белый адрес. Достаточный повод?

AfterWork
() автор топика

А что это за логика скрывается за тем, чтобы поставить полиси DROP на OUTPUT? Удали и управляй трафиком через цепочку INPUT. Для SIP тебе нужно открыть udp 5060 и диапазон udp для RTP трафика, там в настройках где-то должен он быть.

Yur4eg ★★
()
Ответ на: комментарий от Yur4eg

А что это за логика скрывается за тем, чтобы поставить полиси DROP на OUTPUT?

Логика простая. Допустим с дуру кем-то в систему ставится ПО с вирусятиной которая пытается инициировать отправку чего-то куда-то без ведома хозяина системы. Я понимаю что защита через iptables -P OUTPUT DROP - фиговый листок, но хоть что-то чем вообще ничего.

тебе нужно открыть udp 5060 и диапазон udp для RTP трафика

Вот с этого места и начинается анекдот. По разным источникам порты которые нужно открыть на in-out для RTP колеблются от 10000:20000 до 1024:65536. Милый диапазончик? Причем есть же еще STUN и еще какая-то зараза управляющая sip трафом. Кроме этого не совсем ясно что именно и как открывать на in и на out.

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

Логика простая. Допустим с дуру кем-то в систему ставится ПО с вирусятиной которая пытается инициировать отправку чего-то куда-то без ведома хозяина системы.

Если «кто-то, что-то» «внезапно» ставит в систему, то вопрос уже не про OUTPUT. Проблема куда как «глубже». Вы говорите что «Кто угодно, что угодно, может у вас установить?» Если так, то о какой в попу безопастности речь?

anc ★★★★★
()
Ответ на: комментарий от AfterWork

Вирусня будет подключаться к своему командному центру как раз таки через стандартные порты: 80, 443 которые как-правило открыты, так что это иллюзия защиты. Диапазон rtp можно настроить, хоть до одного порта, но не везде, на астериске можно.

Yur4eg ★★
()
Ответ на: комментарий от anc

Вы говорите что «Кто угодно, что угодно, может у вас установить?» Если так, то о какой в попу безопастности речь?

Ну где блин я сказал что это будет у меня на машине? Или думаете тут все спрашивают вопросы только для того чтобы себе системку подточить? У меня лично нет проблемы с пробросом портов для sip. Я лично не использую sip. Использовал-бы, вообще бы этого вопроса не задал. Сам бы знал что открыть, а что закрыть и как именно. И на практике бы проверил. Видимо так и придется сделать. А то все совету на уровне первых 3-х строк в гугле по запросу sip+порты.

AfterWork
() автор топика
Ответ на: комментарий от Yur4eg

Вирусня будет подключаться к своему командному центру как раз таки через стандартные порты: 80, 443 которые как-правило открыты, так что это иллюзия защиты.

Да знаю. Потому и написал:

Я понимаю что защита через iptables -P OUTPUT DROP - фиговый листок, но хоть что-то чем вообще ничего.

Считайте что это такая глупая перестраховка от тупых недовирусов. :)

Диапазон rtp можно настроить, хоть до одного порта, но не везде, на астериске можно.

Да, на астериске можно. Но у меня нет астериска в этой задаче. В этой задаче есть ekiga на десктопном компе. И конектиться она будет неизвестно к какому sip серверу. Отсюда и вопрос какой МИНИМУМ портов надо открыть и куда именно чтобы ekiga могла нормально работать хотя-бы с большинством публичных серверов? Чтобы юзверю не надо было лезть в iptables при настройке подключения к sip серверу. Чтобы он лазил только по настройкам ekiga.

У меня уже открыты эфемеры

iptables -A OUTPUT -o tun0 -p TCP --sport 32768:61000 -j ACCEPT
iptables -A OUTPUT -o tun0 -p UDP --sport 32768:61000 -j ACCEPT
Открою еще 5060 UDP туда обратно. И 5061 TCP туда обратно, бывает и такой сигнальный порт для sip. Что еще открыть?

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

Если такая паранойя, тогда варианты:
1. Запускать от отдельного пользователя
2. netns
3. chroot
4. контейнер

anc ★★★★★
()
Ответ на: комментарий от anc

Да, и что такое эфемерами?

Группа так называемых эфемерных портов. Обычно от 32768 и выше. У меня они открыты на выход. Браузер посылает запрос к серву через эти порты то есть у пакета идущего к серву сурспорт например 33333, а дестинэйшн порт 80. А когда серв отвечает браузеру то пакет имеет уже свойство ESTABLISHED,RELATED и проходит к браузеру через правило iptables -A INPUT -i tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

Не совсем понял что именно запускать от отдельного пользователя

ekiga

и главное зачем это делать?

В iptables по owner задать правило

anc ★★★★★
()
Ответ на: комментарий от AfterWork

Браво! Я про другое подумал. Ну и чем, чем вас топик спасет от зловредов?

anc ★★★★★
()
Ответ на: комментарий от anc

В iptables по owner задать правило

Ну я уже после того как спросил так и подумал. Думаю что с owners я еще покумекаю. Может вообще в iptables закрою для root любой интернет. Надо подумать в эту сторону.

Ну и чем, чем вас топик спасет от зловредов?

Не знаю. Я ищу в первую очередь идеи куда думать.

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

Не знаю.

Вот это самое главное «Не знаю.» Понимаете, есть разница между:
Почитал/подумал потом сделал и что-то не получилось.
И
Сделал/скопипастил потом начал-на-форуме-задавать-вопросы-а-что-же-я-сделал?

anc ★★★★★
()
Ответ на: комментарий от anc

Понимаете, есть разница между:

Понимаю. Разница есть. И мой вариант чаще всего первый. Вот только топик совсем не о зловредах. Он о sip в котором я не достаточно силен. А разбираться с самого нуля в вопросах по sip только ради того чтобы написать пару строк в iptables ну как-бы не очень рационально.

Я вообще ожидал ответов в духе:

Этот, этот, этот порт на вход-выход обязательно! Эти порты только на вход, а эти только на выход. Всё это покроет все вопросы по sip для ekiga.

Ну да ладно, проехали. Я уже понял что придется всё перелопачивать самому.

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

Понимаю.

Нет, похоже не понимаете. Закрывать OUTPUT без острой необходимости смысла ровно ноль.
Какая нафиг разница кто и какой откроет порт? Браузер, бот, или ваш ekiga ?
Вы вроде и правильно выше написали, как догадывающийся о state/ctstate в iptables, а с другой стороны тупите....

anc ★★★★★
()
Ответ на: комментарий от anc

Нет, похоже не понимаете. Закрывать OUTPUT без острой необходимости смысла ровно ноль.

Какая нафиг разница кто и какой откроет порт? Браузер, бот, или ваш ekiga ? В этом смысле действительно втупил. Согласен с ходом ваших мыслей. Но всё равно надо же что-то и извне открывать для sip. В любом раскладе ни кто ничего дельного пока не подсказал.

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

В любом раскладе ни кто ничего дельного пока не подсказал.В любом раскладе ни кто ничего дельного пока не подсказал.

В смысле по теме топика.

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

Так вы сами ответили на свой вопрос в самом топике :)
iptables -A OUTPUT -o tun0 -j ACCEPT
Но если вам так уж интересно, запустите tcpdump и ловите. :)

anc ★★★★★
()
Ответ на: комментарий от anc

1720/tcp

Да, тоже что-то такое помню. Помню что вроде как про sip. Вот только не помню для чего именно нужен. В любом случае спасибо. Есть что загуглить.

10000:40000/upd

А вот куда это открывать, и надо ли вообще, несколько непонятно.

Так вы сами ответили на свой вопрос в самом топике

Но я же и написал что мне не нравится такое решение. Если бы нравилось - вообще бы топик не открыл.

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

Мне кажется вы противоречите сами себе.

В этом смысле действительно втупил. Согласен с ходом ваших мыслей.

Но я же и написал что мне не нравится такое решение.

Простите, но я вас действительно не понимаю...

anc ★★★★★
()
Ответ на: комментарий от anc

Поясняю. Согласен с ходом ваших мыслей, но мне не нравится такое решение. И я действительно не вижу аргументов против вашего утверждения, но это не значит что мне оно должно нравиться.

Вам кажется что что я противоречу себе потому что Вы рассматриваете мой вопрос с точки зрения: «Решил проблему и забыл». А я рассматриваю вопрос с точки зрения сбора максимума информации для получения оптимального и красивого решения. То есть тот факт что у меня появилось хоть какое-то решение для меня дедлайном в вопросе не является. Просто разные цели.

AfterWork
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.