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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос
     
    admin931
    Исчо раз - по скольку мы уже говорим в терминах iptables, то вот вам ссылка. Надеюсь этого хватит что бы немного упорядочить информацию у вас в голове.

    ----------
    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 | Отправлено: 00:39 29-02-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    День добрый.
    У меня  задачка c редиректом на сайт с уведомлением если VPN не работает
    Нужно сделать редирект на сайт, я так понял что только средствами iptables в случае URL не обойтись, посему мне сойдёт и redirect на IP - где сайт будет редиректить куда мне нужно.
    Но у меня условия немного иные:
     

    Код:
    iptables --table nat --append POSTROUTING --out-interface tun0 -j MASQUERADE -m comment --comment "Masquerading"

    Вот это правило у меня в таблице nat выполняет трансляцию адресов. И всё работает как нужно пока поднят VPN - tun0. Когда его нет, то ничего не работает и я хочу выполнить редирект на страничку где указать, что для работы Internet необходимо поднять VPN.
     
    Насколько я понимаю прохождение транзитных пакетов идёт так:
     
    1. Mangle - PREROUTING
    2. Nat - PREROUTING
    3. Filter - FORWARD
    4. Mangle - FORWARD
    5. Nat POSTROUTING - моё правило NAT
    6. Mangle POSTROUTING - могу пометить пакет, но уже ничего с ним не сделать ?
     
    Можно ли такое сделать ?
    Спасибо.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 13:14 03-03-2012 | Исправлено: slech, 13:16 03-03-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    Вот хорошая схема. (мудаки блин с переносом статей на wikibooks похерили её)
     
    Так это(NAT) что ли прямо на машине клиента прописано? Или как выглядит ситуация? Где в данной ситуации и как работает DNS сервер(через него тоже можно решить вашу проблему при определённой схеме сети)?
     
    Я боюсь что в цепочке POSTROUTING мы уже ни куда завернуть его не сможем...
     
    p.s. повторюсь - покажите схему сети (можно словами описать).

    ----------
    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 | Отправлено: 13:49 03-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 14:23 03-03-2012 | Исправлено: slech, 14:44 03-03-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    Так это всё решается на CentOS? Причем тут клиент?
    Или это сообщение вы хотите выводить для админов, а "клиент" для вас это вся фирма?
    Я если честно по схеме не понял что кому должно выводится.
     
    Если всё это происходит на глухом CentOS сервере, то проще там скриптом раз в минуту по крону проверять наличие связи и если что перезапускать VPN.

    ----------
    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 | Отправлено: 15:58 03-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    Клиенты это пользователи офиса(щас исправлю на пользователя).
    CentOS это VPN клиент - он же маскарадит всех клиентов(пользователей офиса) при использовании ресурсов доступных по VPN.

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

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

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 16:14 03-03-2012 | Исправлено: slech, 16:17 03-03-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    Ну если всё так секьюрно, то пускай тот же скрипт перепиливает правила iptables. А вот что бы все работало моментально при поднятии интерфейса тут можно воспользоваться if-up каталогом (хз как он в CentOS называется, я больше по Debian'у...).
    Возможно netplug вам подойдёт больше т.к. видимо сможет отслеживать  и факт падения туннеля.

    ----------
    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 | Отправлено: 16:29 03-03-2012 | Исправлено: Alukardd, 16:31 03-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    маршрутизация у нас как раз статическая - всё настроенно на микротике:

    Код:
     
    IP(site1.vpn.com) --> CentOS
    IP(site2.vpn.com) --> CentOS
    IP(site3.vpn.com) --> CentOS
     

    а CentOS не может пробросить клиента далее, потому как tun0 не поднят. Вот и нужно подправить iptables что бы пользователь сразу понял что VPN is Down.
     

    Цитата:
    Ну если всё так секьюрно, то пускай тот же скрипт перепиливает правила iptables

    Да это не у нас секюрно, это у них а мы вот грабли прикручиваем к их секюрности, что бы жизнь пользователям облегчить.
     
    CentOS

    Код:
    /etc/sysconfig/network-scripts/ifup*
    /etc/sysconfig/network-scripts/ifdown*

    только там нет tun0

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 16:36 03-03-2012 | Исправлено: slech, 16:39 03-03-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    Посмотрите структуру скрипта, мб в нём есть что-то на подобие этого?
    if [ "$IFACE" = lo ]; then
       exit 0
     fi

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

    ----------
    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 | Отправлено: 16:47 03-03-2012 | Исправлено: Alukardd, 16:49 03-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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"
    #
     

     
    iptables-if-down-redirect.sh

    Код:
     
    #!/bin/bash
    #
    # Flush nat table
    /sbin/iptables --table nat --flush
    #
    # Add rules to redirect all traffic
    /sbin/iptables --table nat --append PREROUTING --in-interface eth0 -p tcp --dport 80 -j REDIRECT --to-port 80 -m comment --comment "Redirect if VPN is down"
    /sbin/iptables --table nat --append PREROUTING --in-interface eth0 -p tcp --dport 443 -j REDIRECT --to-port 443 -m comment --comment "Redirect if VPN is down
    #
     

     
    Сейчас проблема в том что редирект работает коло 10-20 секунд, а это очень долго.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 02:24 04-03-2012 | Исправлено: slech, 02:25 04-03-2012
    slech



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

    Код:
     
    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
     

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 12:52 04-03-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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.

    ----------
    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 | Отправлено: 14:00 04-03-2012 | Исправлено: Alukardd, 14:03 04-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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"
     

    1. Captive Portal - открывается
    2. proxy-vpn.domain.local - открывается
    3. Перенаправление http зарпосо происходит на Captive Portal, а затем и на proxy-vpn.domain.local
    4. Время загрузки не изменилось

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 14:21 04-03-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    А если прямо постучаться на http://${CENTOS_IP}/ норм открывается?
     
    Добавлено:
    А напомните ка как там у Вас DNS запросы резолвятся?.. Мб в этом проблема? Только я не совсем понимаю в таком случае откуда он в итоге выцепляет ip...

    ----------
    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 | Отправлено: 14:46 04-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    http://${CENTOS_IP}/ - Это впринципе и есть мой Captive Portal - т.е. принимает все редиректы на себя.
    Открывается нормально.
    DNS у нас резолвится локально, на наших DNS - это не должно быть проблемой.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 15:07 04-03-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    А так т.е. проблема не в фаере и Captive Portal, а в дальнейшем http redirect (302)?

    ----------
    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 | Отправлено: 15:38 04-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нет, проблема именно в фаере.
    С редиректом я разобрался и буду разбираться позже - у меня там всё на 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.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 15:59 04-03-2012 | Исправлено: slech, 16:01 04-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Убрал Mikrotik c с пути(прописал себе маршрут) - отрабатывает моментально.
    Буду разбираться
     
    Добавлено:
    Получается что CentOS получает пакет для site1-vpn.domain.com - маршрута до него у неё нет.
    Она его отсылает на шлюз свой, им является Mikrotik, а у микротика маршрут, что site1-vpn.domain.com доступен через CentOS.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 18:13 04-03-2012 | Исправлено: slech, 18:23 04-03-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    порочный круг)
    ну тут уж вы сами наводите порядок, я до конца не вник в вашу схему и кто что маршрутизирует...

    ----------
    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:56 04-03-2012
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    да, пакеты зацикливаются, пока даже незнаю что предпринять.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 00:41 05-03-2012
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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