Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Firewall *nix: iptables, ipfw, pf etc...

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Открыть новую тему     Написать ответ в эту тему

Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iptables
   
Linux

 
  • настройка iptables (крупные статьи переехали на wikibooks)
  • настройка iptables (opennet)
  • Easy Firewall Generator for IPTables Online
  • l7-filter - дополнения для netfilter, позволяющее создавать правила основываясь на данных прикладного уровня.
  • ipset - модуль для ядра Linux к фаерволу netfilter для создания и управления наборами адресов, портов, связок ip+mac.
     
  • схема прохождения пакета через netfilter (или более сложно и подробно)
     
    Так же может быть интересным
  • Перевод руководства по iproute2 и управлению трафиком в Linux (оригинал LARTC) -- внимательно читать оглавление - тема содержит уйму всего!!!
  • Введение в управление трафиком, дисциплины обработки очередей (теория) (opennet) - aka Повесть о Linux и управлении трафиком.
  • QoS в Linux - iproute2 и u32 селектор (хабр)
  • QoS в Linux - iproute2, издеваемся над трафиком (хабр)
     


    ipfw
       
    FreeBSD

  • русский MAN (opennet)
  • настройка ipfw (opennet)
  • настройка ipfw (lissyara)
     
    Достаточно частый вопрос
  • Балансировка и резервирование канала (samag.ru)
     


    pf
       
    OpenBSD

  • начальная настройка pf (lissyara)
  • настройка pf как шлюза (lissyara)

  • Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 23:50 19-08-2010 | Исправлено: Alukardd, 11:42 20-05-2022
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    ipset это ipset — в шапке есть ссылка!

    ----------
    Microsoft gives you windows, linuх gives you the whole house...
    I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

    Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 10:14 20-05-2015
    yakostik

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Проблема в iproute помогите решить
    Есть сервер с двумя входами от двух провайдеров и 3-мя выходами в сеть (исходящая карта одна но на ней еще два вирт интерфейса по vlan)  
    Стоит задача раздать инет части пользователей через сквид части через NAT по IP клиента плюс нарезать скорость.
    Все настроил отказоустойчивость сделал скриптом в варианте проверки доступности шлюза провайдера и подмене дефаултного роутера в зависимости от доступности того или иного шлюза провайдера.
     
    Но вот захотелось мне сделать работу сразу по двум провайдерам с балансировкой нагрузки и тут получился трабл  
    сделал две таблицы маршрутизации
    добавил пару маршрутов вот так
     
    ip route add $P1_NET dev $IF1 src $IP1 table $TBL1 > /dev/null 2>&1
    ip route add default via $P1 table $TBL1 > /dev/null 2>&1
    ip route add $P2_NET dev $IF2 src $IP2 table $TBL2 > /dev/null 2>&1
    ip route add default via $P2 table $TBL2 > /dev/null 2>&1
     
    ip route add $P1_NET dev $IF1 src $IP1 > /dev/null 2>&1
    ip route add $P2_NET dev $IF2 src $IP2 > /dev/null 2>&1
     
     
    ip route add default via $P1 > /dev/null 2>&1
     
    ip rule add from $IP1 table $TBL1 > /dev/null 2>&1
    ip rule add from $IP2 table $TBL2 > /dev/null 2>&1
     
     
    ip route add $P0_NET dev $IF0 table $TBL1 > /dev/null 2>&1
    ip route add $P2_NET dev $IF2 table $TBL1 > /dev/null 2>&1
     
    ip route add 127.0.0.0/8 dev lo table $TBL1 > /dev/null 2>&1
    ip route add $P0_NET dev $IF0 table $TBL2 > /dev/null 2>&1
    ip route add $P1_NET dev $IF1 table $TBL2 > /dev/null 2>&1
     
    ip route add 127.0.0.0/8 dev lo table $TBL2 > /dev/null 2>&1
     
    iptables -t nat -F POSTROUTING
    iptables -t nat -A POSTROUTING -s $P0_NET -o $IF1 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $P0_NET -o $IF2 -j MASQUERADE
     
    где
    LAN interface  IF0
    # WAN interface 1 IF1="p4p1"
    # WAN interface 2 IF2="p5p1"  
    IP1,2 мои внешние адреса
    P1,2 шлюзы моих провайдеров
    P1_NET,P2_NET мои подсети внешние Р0_NET внутреня
    TBL1,TBL2 таблицы маршрутизации
     
    Ну естественно удалил добавление шлюза при поднятии внешних интефейсов  
     
    ну и собственно правило роута с балансом
    ip route delete default
    ip route add default scope global nexthop via $P1 dev $IF1 weight $W1 \
    nexthop via $P2 dev $IF2 weight $W2
     
    все остальные правила остались как и были при настройке на работу со сменой шлюза  разрешения в них внесены для обеих исходящих сетевок одинаковые что бы переключаться только сменой шлюза.
     
    После запуска все заработало но странно  
    Squid работает на ура коннекты идут куда надо трафик балансит между сетевками.
     
    NAT тоже работает но полностью отказались работать правила настройки скорости клиентов настроенные через tc скорость клиантов показывает на уровне 10-15 килобит как только отключаю балансировку сразу начинает отрабатывать правильная
     
    Ну и еще один глюк это OpenVPN клиенты видят внешние интерфейсы сервера могут создать сессию им все настраивается но внутри сети они могут пинговать только внутреннюю сетевую карту сервера машины внутри самой сети не доступны.
     
     
    Скорость нарезал вот так
     
    lan="p6p1"  
    wann1="p5p1"  
    wann2="p4p1"  
    SpeedIPS="1000Mbit" #Скорость провайдера
    SpeedLevel11="1Mbit" #Скорость 1         set-class 11
    SpeedLevel5="5Mbit" #Скорость 5            set-class 5
     
    tc qdisc del dev $lan root
    tc qdisc del dev $wann1 root
    tc qdisc del dev $wann2 root
     
    tc qdisc add dev $lan root handle 1: htb default 150 #r2q 1400
    tc class add dev $lan parent 1: classid 1:1 htb rate $SpeedIPS burst 20k  
    #speed 1m
    tc class add dev $lan parent 1:1 classid 1:11 htb rate $SpeedLevel11 ceil $SpeedLevel11 burst 20k  
    tc qdisc add dev $lan parent 1:11 handle 11: sfq  
     
    tc class add dev $lanwfree parent 2:1 classid 2:11 htb rate $SpeedLevel11 ceil $SpeedLevel11 burst 20k  
    tc qdisc add dev $lanwfree parent 2:11 handle 11: sfq  
     
    #speed 5m
    tc class add dev $lan parent 1:1 classid 1:5 htb rate $SpeedLevel5 ceil $SpeedLevel5 burst 20k  
    tc qdisc add dev $lan parent 1:5 handle 5: sfq  
     
    tc class add dev $lanwfree parent 2:1 classid 2:5 htb rate $SpeedLevel5 ceil $SpeedLevel5 burst 20k  
    tc qdisc add dev $lanwfree parent 2:5 handle 5: sfq  
    tc filter add dev $lan parent 1:0 protocol ip prio 1 handle 11 fw flowid 1:11
    tc filter add dev $lan parent 1:0 protocol ip prio 1 handle 5 fw flowid 1:5
     
    ну и маркировка самих клиентов
    /sbin/iptables -t mangle -A POSTROUTING  -d $ip  -j CLASSIFY --set-class 1:11  
    /sbin/iptables -t mangle -A POSTROUTING  -s $ip  -j CLASSIFY --set-class 1:11  
     
    Подскажите где я туплю уже три дня копаюсь в этом всем но результат все тот же

    Всего записей: 408 | Зарегистр. 30-03-2006 | Отправлено: 21:54 27-05-2015
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yakostik
    Хз что могло сломать одно правило с nexthop'ами...
    Меня смущает, что вы маркируете пакеты в таблицы POSTROUTING, хотя как по мне делать это надо до маршрутизации.

    ----------
    Microsoft gives you windows, linuх gives you the whole house...
    I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

    Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 22:23 27-05-2015
    yakostik

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    Думаете стоит это делать в PREROUTING надо попробовать переписать и проверить.
     
    А что могло случиться с тем что OpenVPN перестал маршрутизироватся во внутреннюю сеть?

    Всего записей: 408 | Зарегистр. 30-03-2006 | Отправлено: 22:55 27-05-2015
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yakostik
    Вы пока проверьте теорию с PREOUTING.
    А вопросы по OpenVPN задайте в соответствующей теме с приложенными конфигами клиента и сервера.

    ----------
    Microsoft gives you windows, linuх gives you the whole house...
    I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

    Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 11:50 28-05-2015
    yakostik

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    Спасибо вопрос конечно задам но по моему он тоже выплывает из этой же проблемы так как без баланса нагрузки vpn работает как часы.
    Такое ощущение что отключается НАТ или форвард пакетов между сетевками, ну или не отключается, а начинает как то сильно сильно глючить  
     
    Добавлено:
    Alukardd
    Проверил таже фигня что и с POSTROUTING да и опять же пока не включаю две таблицы маршрутизации такая настройка шейпера работает без вопросов

    Всего записей: 408 | Зарегистр. 30-03-2006 | Отправлено: 20:20 28-05-2015
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yakostik
    мде, опять же отвлекаясь от непосредственно правила балансировки, не понимаю зачем у Вас прописаны маршруты до сети одного провайдера в таблице для маршрутизации к другому провайдеру
    Цитата:
    ip route add $P1_NET dev $IF1 table $TBL2 > /dev/null 2>&1
    ip route add $P2_NET dev $IF2 table $TBL1 > /dev/null 2>&1  

     
    А вообще вот она светлая мысля — у Вас пакеты уходят с разных интерфейсов и там независимо отрабатывает conntrack, т.о. образом весь NAT'ящийся транзитный трафик у Вас просто разрывается и нету целостности TCP соединения!
    Собственно само по себе оно не работает, хотя казалось бы должно, но нет, там чистый weighted round-robin. Так что вдумчиво читаем пример в данном разделе(там пример для 3-х провайдеров).
     
    Добавлено:
    Возможно удасться обойтись чем-то таким.

    ----------
    Microsoft gives you windows, linuх gives you the whole house...
    I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

    Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 23:02 28-05-2015
    yakostik

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    Спасибо буду читать
    Хотя сегодня пока ставил эксперименты с маркировкой трафика для tc заметил что если есдлить все правила tc то вроде бы и нат начинает работать адекватно во всяком случае машина через нат смогла проверить скорость на яндексе и показала 80% от скорости прова что по входящими что по исходящиму трафику.
    То есть возможно что собака порылась еще глубже и проблема где то в правилах шейпера.
     
    А по поводу Вашего замечания по таблицам в результате у меня получаются вот такие две таблицы
     
    ip route list table pr1
    default via 11.11.11.9 dev p4p1
    10.0.0.0/8 dev p6p1  scope link
    11.11.11.8/29 dev p4p1  scope link  src 11.11.11.12
    22.22.22.96/29 dev p5p1  scope link
    127.0.0.0/8 dev lo  scope link
     
    ip route list table pr2
    default via 22.22.22.97 dev p5p1
    10.0.0.0/8 dev p6p1  scope link
    11.11.11.8/29 dev p4p1  scope link
    22.22.22.96/29 dev p5p1  scope link  src 22.22.22.99
    127.0.0.0/8 dev lo  scope link
     
    где 11.11.11.12 и 22.22.22.99 мои IP
    А 11.11.11.9 и 22.22.22.97 шлюзы провайдеров
     
    В моем понимании маршрут на подсеть провайдера нужен если балансер кинул трафик отправленный в подсеть 1 провайдера через сетевку 2 провайдера, по идеи он должен передаваться на сетевку 1 провайдера и попадать по назначению ну и аналогично для подсети второго провайдера.

    Всего записей: 408 | Зарегистр. 30-03-2006 | Отправлено: 23:41 28-05-2015 | Исправлено: yakostik, 23:45 28-05-2015
    yakostik

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    Поигрался с настройками и понял во всяком случае почему у меня не работает vpn оказалось что пакет в мою внутреннюю сеть уходит с IP vpn клиента другими словами не работает NAT
     
    добавил
    iptables -t nat -A POSTROUTING -s $P0_NET -o $IF3 -j MASQUERADE
     
    $IF3 это tun0
     
    и vpn заработал почему он корректно работал без этой строки при настройке на 1 шлюз и не работал при работе двух шлюзов с балансом не совсем понятно.
     
    Теперь как я понял надо создать вирт интерфейс пустить в него трафик до того как он пройдет (или после) nat и уже на нем резать скорость потому что вроде как nat и шейпер на одном интерфейсе жить не могут.
    Кто то такое делал может подскажите?

    Всего записей: 408 | Зарегистр. 30-03-2006 | Отправлено: 15:36 09-06-2015 | Исправлено: yakostik, 19:37 09-06-2015
    yakostik

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нашел еще вот такую вещь
     
     ip route get 8.8.8.8
    8.8.8.8 via 22.22.22.97 dev p5p1  src 22.22.22.99
        cache
    ip route get 8.8.8.8
    8.8.8.8 via 11.11.11.9 dev p4p1  src 11.11.11.12
        cache
    ip route get 8.8.8.8
    8.8.8.8 via 11.11.11.9 dev p4p1  src 11.11.11.12
        cache
     ip route get 8.8.8.8
    8.8.8.8 via 22.22.22.97 dev p5p1  src 22.22.22.99
        cache
    ip route get 8.8.8.8
    8.8.8.8 via 11.11.11.9 dev p4p1  src 11.11.11.12
        cache
     ip route get 8.8.8.8
    8.8.8.8 via 22.22.22.97 dev p5p1  src 22.22.22.99
        cache
     
    Другими словами по какой-то причине постоянно меняется закешированный маршрут скорее всего именно из за этого я и получаю такие траблы с трафиком и скоростью если смотреть tcpdump то пакеты уходят то с одного то с другого интерфейса
    Если же верить вот этому мануалу http://help.ubuntu.ru/wiki/ip_balancing да и все подобным такой вид балансировки как раз и построен на том что маршруты должны кешироватся

    Всего записей: 408 | Зарегистр. 30-03-2006 | Отправлено: 21:52 10-06-2015
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос
     
    alexagn
    Смотреть правила iptables нагляднее командой iptables -vnL, тогда не надо будет делать ремарок насчёт anywhere относительно loopback и прочих пояснений.
     
    Показывать сетевую активность нагляднее отфильтрованным выводом tcpdump'а.
    Интернет прям работает-работает? И вы можете выполнить, например telnet yandex.ru 80?

    ----------
    Microsoft gives you windows, linuх gives you the whole house...
    I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

    Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 12:02 29-06-2015
    JDesign



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Может кто сталкивался:
    Как с помощью iptables перенаправлять весь трафик на VPN для одного клиента знаю.
    А вот как решить вопрос частично?
    К примеру пользователь хочет загрузить с "мобильника" приложение, как направить трафик через VPN в appstore/p-market и обратно, а остальной пускать напрямую без VPN? Есть ли какие-то решения и на сколько реально делить трафик?

    Всего записей: 464 | Зарегистр. 17-11-2005 | Отправлено: 23:12 07-07-2015
    Ruza



    Gold Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    на сколько реально делить трафик?

    Реально. Но для апстора и гугля придётся вычислять их подсети.
     
    [

    ----------
    Fools rush in where angels fear to tread.

    Всего записей: 5472 | Зарегистр. 10-09-2003 | Отправлено: 10:18 08-07-2015 | Исправлено: Ruza, 09:30 10-07-2015
    OOD

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите в ibtables тысячи таких записей:
     
    -I FORWARD -s 104.244.14.252 -j REJECT
    -I FORWARD -s 80.14.18.212/24 -j REJECT
     
    можно ли как либо эти записи в другой файл записать, или ничего страшного, сколько еще записей можно добавить

    Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 10:05 15-09-2015 | Исправлено: OOD, 10:05 15-09-2015
    vlary



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    Цитата:
    Подскажите в ibtables тысячи таких записей:  
    А может, проще вместо тысяч REJECT сделать десяток ACCEPT?  
    Для тех адресов, кому это позволено?
    А еще лучше рассказать, чего этим хотели добиться. Может, делать нужно вообще по-другому?

    ----------
    Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

    Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 16:26 15-09-2015
    OOD

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vlary
    Есть почтовик Exchange, в логах вижу адреса в основном их много из одной подсети, но бывают и индивидуальные, вижу оттуда валит спам, анализирую через whois кто такой и нужен ли он нам и блокирую через REJECT IP, или подсеть, спама практически нет, но переживаю за iptables сколько подобных записей он сможет профильтровать и не начнет ли тормозить

    Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 17:06 15-09-2015
    vlary



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    Цитата:
    вижу оттуда валит спам, анализирую через whois кто такой и нужен ли он нам и блокирую через REJECT IP
    Смелое решение... Такие вещи лучше блокировать либо силами самого почтовика, либо через spamhaus/dnsbl, они все наверняка там.
    А справиться должен справится.


    ----------
    Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

    Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 19:07 15-09-2015
    OOD

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vlary
    в Exchange есть родная лочилка- она имеет ограничение порядка 1,5к адресов, либо доменов, либо зон (в общем записей) она забилась высвобождать их и логически думать какой домен в какой сети живет -это геморой. Майкрософт говорят, что ограничение можно убрать путем пересборки Exchange, но они не несут ответственности как он будет работать и не говорят где именно это делать.
    лочилки
    zen.spamhaus.org
    dnsbl.sorbs.net
    bl.spamcop.net
    dnsbl-1-uceprotect.net
    cbl.abuseat.org
    Подключены, но они не справляются
     
    Подскажите, а подобные правила блокировки можно где либо логировать, смотреть лог того как лочит iptables?

    Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 21:01 15-09-2015
    vlary



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    Цитата:
    а подобные правила блокировки можно где либо логировать
    Конечно. Добавив в конец правила
    -I FORWARD -s 104.244.14.252 -j REJECT LOG
    Как-то так. Точнее посмотришь в мане.


    ----------
    Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

    Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 23:24 15-09-2015
    TGR3

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    добрый день
     
    Сейчас  
    iptables -I FORWARD 1 -p tcp -d нужные сайты --dport 80 -j ACCEPT  
    iptables -I FORWARD 2 -p tcp -d нужные сайты --dport 80 -j ACCEPT  
    iptables -I FORWARD 3 -p tcp -d нужные сайты --dport 80 -j ACCEPT  
    iptables -I FORWARD 4 -p tcp -d smsc.ru --dport 80 -j ACCEPT  
    iptables -I FORWARD 5 -p tcp -d нужные сайты --dport 80 -j ACCEPT  
    iptables -I FORWARD 6 -p tcp --dport 80 -j DROP  
     
    все порты кроме 80 открыты. хочетось бы закрыт и 443 хотя бы, чтоб не было возможностей выйти по https.  
     
    фокус с  iptables -I FORWARD 6 -p tcp --dport 80,443 -j DROP   не работает  
     
    или этот фаерволл плюшевый и такое не сделаешь?

    Всего записей: 165 | Зарегистр. 16-10-2008 | Отправлено: 15:45 29-09-2015
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

    Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Firewall *nix: iptables, ipfw, pf etc...


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru