Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Firewall *nix: iptables, ipfw, pf etc...

Автор: ASE_DAG
Дата сообщения: 30.09.2011 13:51
Alukardd
А если так?

# tcpstat -i wlan0 -o '%p\n' -1
Автор: Alukardd
Дата сообщения: 30.09.2011 14:50
ASE_DAG
спасибо! Поставил эту утилитку...
А что дает linklayer??? -l На статистику pps вроде как не влияет?
Автор: ASE_DAG
Дата сообщения: 30.09.2011 14:57
Alukardd
> А что дает linklayer??? -l
А что не понятно?

Цитата:
Include the size of the link-layer header when calculating statistics. (Ethernet only, right now. Usually 14 bytes per packet.)
Автор: Alukardd
Дата сообщения: 30.09.2011 15:07
ASE_DAG
Ну я прочел... Я и написал - На статистику pps вроде как не влияет

Добавлено:
Кстати снимается статистика только по tcp протоколу или это просто название тулзы?
Автор: Boris_Popov
Дата сообщения: 20.12.2011 16:57
iptables и хосты с динамическим пулом IP-адресов - как решить проблему?

Уважаемый олл!

Собственно, сабж. Например, gmail.com (pop.gmail.com:995, smtp.gmail.com:465), у которого куча IP-адресов, периодически меняющихся.

Делать отдельную цепочку и прописывать туда IP-адреса хостов ручками задолбало. Хочется, чтобы все работало и без ручного вмешательства.
Открывать наружу 995 и 465 порт полностью не подходит по соображениям безопасности.
Итого, хотелось бы скрипт, который бы:
- автоматически брал имена хостов и нужные порты из списка в файле;
- разрешал (резолвил) их в IP-адрес(а);
- проверял наличие в rc.firewall правил для соответствующих адресов, если есть - не трогал бы их
- добавлял в rc.firewall правила для хостов / портов из списка. Ну, например, так.


Код:
$IPTABLES -A FORWARD -i $LAN_IF -o $INET_IF -s $LAN_RANGE -d [первый IP-адрес для pop.gmail.com] -m multiport -p tcp --dport 995,465 -j ACCEPT
...
$IPTABLES -A FORWARD -i $LAN_IF -o $INET_IF -s $LAN_RANGE -d [крайний IP-адрес для pop.gmail.com] -m multiport -p tcp --dport 995,465 -j ACCEPT
Автор: ASE_DAG
Дата сообщения: 22.12.2011 16:52
Boris_Popov
[1], [2], здесь — где-нибудь еще вы этот вопрос задали? ;-)

Реализовать для фильтрации пакетов по имени хоста назначения, когда адрес динамический, указанное вами можно да и не очень сложно, но, как вы сами понимаете, это есть костыль.
Но хотел я сказать другое. Если речь именно о Гуглопочте, то я решительно не понимаю, зачем подходить к решению этой задачи с той точки зрения, что адреса не известны. Подсети, принадлежащие Гуглю, в кратковременной перспективе известны, а в долговременной — легко узнаются:
$ dig +short TXT _spf.google.com
Или вам надо разрешить шифрованную связь строго с Гуглопочтой, но никак не с другими сервисами Гугля?
Автор: alexsunn
Дата сообщения: 23.12.2011 07:54
Уважаемые подскажите по вопросу iptables centos6, к примеру чтобы там работал nat по ftp
надо прописать на загрузку модуля ip_nat_ftp и ip_conntrack_ftp. То есть если мне к примеру нужен Nat по sip,то обязательно подгружать kernel/net/ipv4/netfilter/nf_nat_sip.ko то бишь ip_nat_sip? Но модулей так сказать на все нужды нет или есть какой нибудь универсальный?
Еще маленький вопросик как реализовать схему настройки nat по типу , чтобы для одного компа в локальной сети шел nat по службам ftp,ntp,icq , а другой комп к примеру по smtp и pop3 ?
к примеру так можно-
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE --to 1.2.3.4-1.2.3.6:1-1023 --to 1.2.3.10-1.2.3.25:25
iptables -t nat -A POSTROUTING -p udp -o ppp0 -j MASQUERADE --to 1.2.3.7-1.2.3.9:10000-10230

ps вычитал в рунах
что только так для маскарадинга
iptables -t nat -A POSTROUTING -p udp -o ppp0 -j MASQUERADE --to-ports 10000-20000
интересно тогда как прокидывать нат на определенные ip адреса!?
Автор: Boris_Popov
Дата сообщения: 23.12.2011 14:39
ASE_DAG


Цитата:
[1], [2], здесь — где-нибудь еще вы этот вопрос задали?


Ну, хотя бы в одном из трех мест получил нормальный ответ

Цитата:
Или вам надо разрешить шифрованную связь строго с Гуглопочтой, но никак не с другими сервисами Гугля?

Строго с [smtp|pop].gmail.com. Все остальное - сквид с мониторингом логов (lightsquid).
P.S. Скрипт "в лоб" уже написал (по более простому алгоритму), полет нормальный Понимаю, что костыль - но с моей нагрузкой на сервер оверхед незначительный и приемлемый.
P.P.S. Попутно посмотрел Firestarter. Жаль, что проект забросили - мог бы получиться вменяемый гуевый брандмауэр для домашнего использования.






Добавлено:
alexsunn

Цитата:
интересно тогда как прокидывать нат на определенные ip адреса!

Как вариант: -j DNAT --to-destination
Автор: usertum
Дата сообщения: 29.12.2011 09:59
[delete] Вопрос решил сам.
Автор: alexsunn
Дата сообщения: 03.01.2012 13:13
Boris_Popov
DNAT это мальца не то, а простой проброс портов.
Автор: Alukardd
Дата сообщения: 28.02.2012 22:39
Вопрос

admin931
Исчо раз - по скольку мы уже говорим в терминах iptables, то вот вам ссылка. Надеюсь этого хватит что бы немного упорядочить информацию у вас в голове.
Автор: slech
Дата сообщения: 03.03.2012 11:14
День добрый.
У меня задачка c редиректом на сайт с уведомлением если VPN не работает
Нужно сделать редирект на сайт, я так понял что только средствами iptables в случае URL не обойтись, посему мне сойдёт и redirect на IP - где сайт будет редиректить куда мне нужно.
Но у меня условия немного иные:


Код: iptables --table nat --append POSTROUTING --out-interface tun0 -j MASQUERADE -m comment --comment "Masquerading"
Автор: Alukardd
Дата сообщения: 03.03.2012 11:49
slech
Вот хорошая схема. (мудаки блин с переносом статей на wikibooks похерили её)

Так это(NAT) что ли прямо на машине клиента прописано? Или как выглядит ситуация? Где в данной ситуации и как работает DNS сервер(через него тоже можно решить вашу проблему при определённой схеме сети)?

Я боюсь что в цепочке POSTROUTING мы уже ни куда завернуть его не сможем...

p.s. повторюсь - покажите схему сети (можно словами описать).
Автор: slech
Дата сообщения: 03.03.2012 12:23
Alukardd


Схема подключения

Ежели нельзя в POSTROUTING ничего сделать уже то мне остаётся лишь следить за состоянием интерфейса tun0.
Если он упал выставлять DNAT в iptables, если поднялся поднимать SNAT.
Кстати поискав размышления на сию тему я так же ничего хорошего найти несмог для случая tun0.
Не хочется большой огород городить.

Добавлено:
т.е. по схеме что вы привели получается что

Mangle POSTROUTING --> Nat POSTROUTING - моё правило NAT

И это собственно последнее что есть - разве что сделать другой SNAT(хотя толку от этого уже нет) - далее пакет уходит.

Добавлено:

Цитата:
Где в данной ситуации и как работает DNS сервер(через него тоже можно решить вашу проблему при определённой схеме сети)?

Вообще DNS у нас есть в сети свой, но CentOS устанавливая VPN получает DNS для доступа к ресурсам. Мы этим пренебрегли и создали зоны на своих DNS серверах, которые выдают правильные IP, а зетем эти IP маршрутизируются Mikrotik через CentOS - а он в свою очерень NAT'ит всё далее.
Не хотелось бы привлекать сюда DNS из-за кеша.
Хотелось бы отработать чётко и быстро если так можно. Правила в iptables вроде самое оно.
Осталось правильно их генерировать если нет возможность подобрать пакеты после неудачного NAT.

Добавлено:
Перенаправление клиента на страничку подключения при падении VPN - моя тема на ubuntu.ru
Автор: Alukardd
Дата сообщения: 03.03.2012 13:58
slech
Так это всё решается на CentOS? Причем тут клиент?
Или это сообщение вы хотите выводить для админов, а "клиент" для вас это вся фирма?
Я если честно по схеме не понял что кому должно выводится.

Если всё это происходит на глухом CentOS сервере, то проще там скриптом раз в минуту по крону проверять наличие связи и если что перезапускать VPN.
Автор: slech
Дата сообщения: 03.03.2012 14:14
Alukardd
Клиенты это пользователи офиса(щас исправлю на пользователя).
CentOS это VPN клиент - он же маскарадит всех клиентов(пользователей офиса) при использовании ресурсов доступных по VPN.

Цитата:
Если всё это происходит на глухом CentOS сервере, то проще там скриптом раз в минуту по крону проверять наличие связи и если что перезапускать VPN

Данные для VPN аутентификации изменяются раз в минуту, посему нет возможности автоматически поднимать тонель.
Посему мне нужно указать пользователю что нужно поднять VPN используя свой Secure ID, который изменяется раз в 60 секунд. У каждого пользователя в офисе есть такой ключик. Если ему нужны ресурсы VPN пускай устанавливает соединение.
Всё это затеивается что упростить им жизнь и сразу указать на то что VPN не работает.

Я вот нашёл netplug, можно это то что мне позволит отслеживать состояние по интерфейсу и выполнять действие. Хотелось бы не раз в минуту, а по проишествии события - интерфейс упал, интерфейс поднялся.
Но это уже не тема iptables.

Спасибо за помощь, пошёл читать netplug или аналоги.
Автор: Alukardd
Дата сообщения: 03.03.2012 14:29
slech
Ну если всё так секьюрно, то пускай тот же скрипт перепиливает правила iptables. А вот что бы все работало моментально при поднятии интерфейса тут можно воспользоваться if-up каталогом (хз как он в CentOS называется, я больше по Debian'у...).
Возможно netplug вам подойдёт больше т.к. видимо сможет отслеживать и факт падения туннеля.
Автор: slech
Дата сообщения: 03.03.2012 14:36
Alukardd
маршрутизация у нас как раз статическая - всё настроенно на микротике:

Код:
IP(site1.vpn.com) --> CentOS
IP(site2.vpn.com) --> CentOS
IP(site3.vpn.com) --> CentOS
Автор: Alukardd
Дата сообщения: 03.03.2012 14:47
slech
Посмотрите структуру скрипта, мб в нём есть что-то на подобие этого?
if [ "$IFACE" = lo ]; then
exit 0
fi

т.о. говорящие имена просто для понятности, а все ограничения выставлены внутри скрипта.

Ладно за сим не буду больше вас путать, т.к. при текущих исходных данных ни чем помочь не могу. (ну не работал я ни когда с CentOS)

Если netplug нормально заведется. то используйте его, причину смотри выше.
Автор: slech
Дата сообщения: 04.03.2012 00:24
interface post-up в CentOS
CentOS custom network scripts on ifup and ifdown

Создал я /sbin/ifup-local и он работает при проверке eth0, но никак при tun0.
vpnc как-то хитро поднимет тунель и при этом нет файла настроек этого интерфейса, соответсвенно
/sbin/ifup tun0 выдаёт ошибку.

Получилось настроить реакцию netplug. Создал правила

iptables-if-up-nat.sh

Код:
#!/bin/bash
#
# Flush nat table
/sbin/iptables --table nat --flush
#
#
# Add NAT rule
/sbin/iptables --table nat --append POSTROUTING --out-interface tun0 -j MASQUERADE -m comment --comment "Masquerading"
#
Автор: slech
Дата сообщения: 04.03.2012 10:52

Код:
1. https://site1-vpn.domain.com - 06.919 sec.
2. 302 https://site1-vpn.domain.com - 09.475 sec
3. 302 http://proxy-vpv.domain.local - 00.005 sec
4. 200 https://proxy-vpn.domain.local - 00.192 sec
Автор: Alukardd
Дата сообщения: 04.03.2012 12:00
slech
Цитата:
Сейчас проблема в том что редирект работает коло 10-20 секунд, а это очень долго.
это как так? Т.е. страница с инфой поднятая на web-сервере на CentOS доходит до клиента не поднявшего VPN за 10секунд?!
Хм, попробуйте изменить правила редиректа добавив в них условие:
/sbin/iptables -t nat -A PREROUTING ! -d ${CENTOS_IP}/32 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 80
для https аналогично.
А вообще можно оба заворачивать на 80 порт: -m multiport --dports 80,443 -j REDIRECT --to-port 80.
Автор: slech
Дата сообщения: 04.03.2012 12:21
Alukardd

Цитата:
это как так? Т.е. страница с инфой поднятая на web-сервере на CentOS доходит до клиента не поднявшего VPN за 10секунд?!

так и выходит.

кстати вот ещё какая проблема у меня возникла.
я так и пытался поднять отдельный сайти на localhost:9090 что бы туда завернуть 80 и 443
в итоге вообще не открываются сайты на Apache и соответсвенно https://proxy-vpn.domain.local расположенный там же.

попробую создать ваше исключение.

Добавлено:

Код:
iptables --table nat --append PREROUTING --in-interface eth0 ! -d ${CentOS_IP}/32 -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 80 -m comment --comment "Redirect if VPN is down"
Автор: Alukardd
Дата сообщения: 04.03.2012 12:46
slech
А если прямо постучаться на http://${CENTOS_IP}/ норм открывается?

Добавлено:
А напомните ка как там у Вас DNS запросы резолвятся?.. Мб в этом проблема? Только я не совсем понимаю в таком случае откуда он в итоге выцепляет ip...
Автор: slech
Дата сообщения: 04.03.2012 13:07
http://${CENTOS_IP}/ - Это впринципе и есть мой Captive Portal - т.е. принимает все редиректы на себя.
Открывается нормально.
DNS у нас резолвится локально, на наших DNS - это не должно быть проблемой.
Автор: Alukardd
Дата сообщения: 04.03.2012 13:38
slech
А так т.е. проблема не в фаере и Captive Portal, а в дальнейшем http redirect (302)?
Автор: slech
Дата сообщения: 04.03.2012 13:59
Нет, проблема именно в фаере.
С редиректом я разобрался и буду разбираться позже - у меня там всё на https уходить должно.
Упростил - никаких редиректов и никаких SSL.
1. http://site1-vpn.domain.com - 7 секунд
Уже лутчше, но всё же не так хорошо. следующие 7 секунд были из-за такой же задержки на SSL.
Я так понимаю это должно происходить не более чем за 1 с.


Добавлено:
Это видно по логам
Пробую открыть страничку http://site1-vpn.domain.com
Секунд через 7 вижу запись в access_log apache.
Т.е. как я резульат увидел через 7 секунд так и обращение к Apache было через 7 секунд.
Затык где-то до Apache.
Автор: slech
Дата сообщения: 04.03.2012 16:13
Убрал Mikrotik c с пути(прописал себе маршрут) - отрабатывает моментально.
[more=Буду разбираться]

Код:
16:09:00.865264 IP Web Browser.61938 > site1-vpn.domain.com.http: S 656466050:656466050(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>

16:09:00.865338 IP site1-vpn.domain.com.http > Web Browser.61938: S 1293976531:1293976531(0) ack 656466051 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7>

16:09:03.865250 IP site1-vpn.domain.com.http > Web Browser.61938: S 1293976531:1293976531(0) ack 656466051 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7>

16:09:09.865168 IP site1-vpn.domain.com.http > Web Browser.61938: S 1293976531:1293976531(0) ack 656466051 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7>

16:09:09.865606 IP Web Browser.61938 > site1-vpn.domain.com.http: . ack 1 win 256 <nop,nop,sack 1 {0:1}>

16:09:10.185391 IP Web Browser.61938 > site1-vpn.domain.com.http: P 1:829(828) ack 1 win 256

16:09:10.185456 IP site1-vpn.domain.com.http > Web Browser.61938: . ack 829 win 59

16:09:10.185972 IP site1-vpn.domain.com.http > Web Browser.61938: P 1:144(143) ack 829 win 59

16:09:10.186072 IP site1-vpn.domain.com.http > Web Browser.61938: F 144:144(0) ack 829 win 59

16:09:10.186542 IP Web Browser.61938 > site1-vpn.domain.com.http: . ack 145 win 256

16:09:10.205837 IP Web Browser.61938 > site1-vpn.domain.com.http: F 829:829(0) ack 145 win 256

16:09:10.205873 IP site1-vpn.domain.com.http > Web Browser.61938: . ack 830 win 59
Автор: Alukardd
Дата сообщения: 04.03.2012 21:56
slech
порочный круг)
ну тут уж вы сами наводите порядок, я до конца не вник в вашу схему и кто что маршрутизирует...
Автор: slech
Дата сообщения: 04.03.2012 22:41
да, пакеты зацикливаются, пока даже незнаю что предпринять.

Страницы: 123456789101112131415

Предыдущая тема: Как подключиться по RDP к 2000 серверу - к локальной сессии?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.