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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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)

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



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kerevra
    Дык где Ваши отработанные правила при подключении клиентов? В выводе 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.

    Всего записей: 6457 | Зарегистр. 28-08-2008 | Отправлено: 20:34 19-09-2012
    kerevra



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    P.P.S.: возможно ключевой момент - клиенты к сервисам сервера цепляются отлично, но не наоборот. также при пинге клиентов с сервера echo request до клиента доходит, echo reply не возвращается
     
    Добавлено:
    Alukardd
    в момент iptables -nvL не было подключенных клиентов
     
    вот вывод при наличии таковых: Подробнее...
     
    Добавлено:
    мой ip 192.168.150.100, пинга до 192.168.150.0/24 за исключением сервера нет

    ----------
    Если софт полезен, его надо дорабатывать, а если бесполезен - надо писать к нему маны

    Всего записей: 1192 | Зарегистр. 25-11-2009 | Отправлено: 20:42 19-09-2012 | Исправлено: kerevra, 20:44 19-09-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kerevra
    Я что-о упустил? Откуда взялась 150-я подсеть? Мб у Вас банально маршрутов не хватает?

    ----------
    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.

    Всего записей: 6457 | Зарегистр. 28-08-2008 | Отправлено: 20:49 19-09-2012
    kerevra



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Alukardd, 150я подсеть - клиенты pptpd.  

    Код:
    root@proxima:~# cat /etc/pptpd.conf
    option /etc/ppp/pptpd-options
    logwtmp
    localip 192.168.150.1
    remoteip 192.168.150.11-254

     

    Код:
    root@proxima:~# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.150.100 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
    195.144.x.x 0.0.0.0         255.255.255.240 U     0      0        0 eth_ext
    192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth_int
    192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth_vm
    0.0.0.0         195.144.x.x        0.0.0.0         UG    0      0        0 eth_ext



    ----------
    Если софт полезен, его надо дорабатывать, а если бесполезен - надо писать к нему маны

    Всего записей: 1192 | Зарегистр. 25-11-2009 | Отправлено: 20:55 19-09-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kerevra
    Эм... А почему маршрут только до единственного клиента, а не до всей подсети?
    И да, кстати, клиентам Вы прописываете маршрут до 192.168.0.0/24 подсети, а то откуда они узнают, что она за pptp сервером?..
     
    p.s. раз уже показал Вам утилиту ip, то вот далее — ip r s. И самое главное, что ip, в отличии от ifconfig  и route в некоторых дистрибутивах лежит в /bin, а не в /sbin, что позволяет юзеру без геморроя смотреть настройки.

    ----------
    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.

    Всего записей: 6457 | Зарегистр. 28-08-2008 | Отправлено: 21:36 19-09-2012
    kerevra



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

    Цитата:
    А почему маршрут только до единственного клиента, а не до всей подсети?
    маршруты автоматом создаются для каждого из клиентов при подключении, так как они находятся каждый за своим ppp-интерфейом
     

    Цитата:
    И да, кстати, клиентам Вы прописываете маршрут до 192.168.0.0/24 подсети, а то откуда они узнают, что она за pptp сервером?..
    в моем случае клиентам не интересно знать какая сеть находится за vpn-сервером. они пользуются только службами сервера. и, в свою очередь, при подключении получают маршрут до сетки 192.168.150.0/24
     

    Цитата:
    p.s. раз уже показал Вам утилиту ip, то вот далее — ip r s. И самое главное, что ip, в отличии от ifconfig  и route в некоторых дистрибутивах лежит в /bin, а не в /sbin, что позволяет юзеру без геморроя смотреть настройки.
    а за это еще одно спасибо
     


    ----------
    Если софт полезен, его надо дорабатывать, а если бесполезен - надо писать к нему маны

    Всего записей: 1192 | Зарегистр. 25-11-2009 | Отправлено: 22:04 19-09-2012 | Исправлено: kerevra, 22:05 19-09-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kerevra
    Цитата:
    в моем случае клиентам не интересно знать какая сеть находится за vpn-сервером. они пользуются только службами сервера. и, в свою очередь, при подключении получают маршрут до сетки 192.168.150.0/24  
    О каких FORWARD правилах мы вообще тогда говорим? Нас интересуют только INPUT и OUTPUT тогда. FORWARD понадобится для взаимодействия между клиентами и для доступа в обычную локалку.
     
    Только щас начинаю понимать общую картину вашей "кухни". К тому же я не знаком с pptp сервером, я только OpenVPN пользуюсь.
     

    Цитата:
    а за это еще одно спасибо
    Я вообще пользуюсь только ip в GNU/Linux т.к. она на мой взгляд куда удобнее, чем ifconfig и route. Как видите одни сокращения чего стоят. Вообще рекомендую поближе познакомится с данной утилитой.

    ----------
    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.

    Всего записей: 6457 | Зарегистр. 28-08-2008 | Отправлено: 22:21 19-09-2012
    kerevra



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

    Цитата:
    О каких FORWARD правилах мы вообще тогда говорим?
    нет, мне все-таки нужен форвардинг пакетов от клиента к клиенту, которые находятся в одной подсети но за разными интерфейсами
     

    Цитата:
    К тому же я не знаком с pptp сервером
    ну это я заметил)
     
     
    Добавлено:
    P.S.: примерно такие же правила прокатывали для "связи" pptpd-клиентов на других дистрах Linux

    ----------
    Если софт полезен, его надо дорабатывать, а если бесполезен - надо писать к нему маны

    Всего записей: 1192 | Зарегистр. 25-11-2009 | Отправлено: 22:24 19-09-2012 | Исправлено: kerevra, 22:27 19-09-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kerevra
    На сколько я понял как там у Вас всё устроено, правила похожи на правильные... Надо смотреть на счётчик пакетов, да вооружаться tcpdump'ом. Как я понял Вы уже делали что-то аналогичное... Можем вместе посмотреть на попытки пакетов продраться к цели.

    ----------
    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.

    Всего записей: 6457 | Зарегистр. 28-08-2008 | Отправлено: 09:47 20-09-2012
    kerevra



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Alukardd
    tcpdump'ом смотрел, request-пакеты уходят получателю, но вот reply не возвращаются.  проблема в том, что не знаю чем просниффить pptp-подключение на клиенте под виндами. пинг сервера клиентом проходит нормально
     
    Добавлено:
    при этом, судя по активности интерфейса, клиент получает request-пакеты

    ----------
    Если софт полезен, его надо дорабатывать, а если бесполезен - надо писать к нему маны

    Всего записей: 1192 | Зарегистр. 25-11-2009 | Отправлено: 17:42 20-09-2012
    OxOyD

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Товарищи, встал вопрос о шейпировании трафика средствами iptables и tc. Итак имеем сервер с eth0 (смотрит в интернет) и eth1 (смотрит в локальную сеть). NAT и шейпер на одной машине. Создал правила для ограничения вхоядщей скорости локальной машине:
     
    $tc class add dev eth1 parent 1:1 classid 1:UID htb rate 512kbit ceil 1mbit burst 1600  
    $tc filter add dev eth1 protocol ip parent 1:0 prio 1 handle UID fw flowid 1:UID  
    $fw -A FORWARD -s 0/0 -d UIP -j ACCEPT  
    $fw -A FORWARD -s UIP -d 0/0 -j ACCEPT  
    $fw -t mangle -A FORWARD -i eth0 -o eth1 -d UIP -j MARK --set-mark UID
     
    На удивление даже работает (заисключением того что игнорит по какой то причине установленное значение ceil и режет трафик в соответствии с rate)
     
    Теперь встал вопрос об ограничении исходящей скорости для локальной машины, накидал следующее:  
     
    $tc class add dev eth1 parent 1:1 classid 1:UID htb rate 512kbit ceil 1mbit burst 1600  
    $tc filter add dev eth1 protocol ip parent 1:0 prio 1 handle UID fw flowid 1:UID  
    $fw -A FORWARD -s 0/0 -d UIP -j ACCEPT  
    $fw -A FORWARD -s UIP -d 0/0 -j ACCEPT  
    $fw -t mangle -A FORWARD -i eth0 -o eth1 -d UIP -j MARK --set-mark UID
     
    Вопрос, будет ли эта связка работать и резать скорость входящую и исходящую для локальной машины? И если можно то кто нить подскажите что делать c ceil значением в первом примере, так как хотелось бы чтобы ширина канала варьировалась от и до...

    Всего записей: 31 | Зарегистр. 21-02-2006 | Отправлено: 21:42 25-09-2012
    urodliv



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OxOyD
    А чем первый блок правил отличен от второго?

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

    Всего записей: 6513 | Зарегистр. 29-04-2009 | Отправлено: 22:25 25-09-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    urodliv
    +1
     
    OxOyD
    Вы бы хоть у FORWARD поменяли бы интерфейсы местами. Ну и UID ваше надеюсь разное в разных правилах...

    ----------
    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.

    Всего записей: 6457 | Зарегистр. 28-08-2008 | Отправлено: 22:46 25-09-2012
    urodliv



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

    Цитата:
    Вы бы хоть у FORWARD поменяли бы интерфейсы местами.

    Этого мало. "Корневые" интерфейсы для входящего и исходящего трафика будут разные. Так что обождём авторскую правку.

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

    Всего записей: 6513 | Зарегистр. 29-04-2009 | Отправлено: 22:59 25-09-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    urodliv
    Цитата:
    "Корневые" интерфейсы для входящего и исходящего трафика будут разные.
    эту фразу я абсолютно не понял. Зато могу добавить что -d, на -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.

    Всего записей: 6457 | Зарегистр. 28-08-2008 | Отправлено: 23:09 25-09-2012
    urodliv



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

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

    Всего записей: 6513 | Зарегистр. 29-04-2009 | Отправлено: 23:29 25-09-2012
    OxOyD

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пардон второй блок не тот вставил
     
    $tc qdisc add dev eth0 ingress  
    $tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0  
    $tc class add dev ifb0 parent 1:1 classid 1:UID htb rate 512kbit burst 1600  
    $tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip src UIP flowid 1:UID  
    $fw -t mangle -A FORWARD -i eth0 -o eth1 -s UIP -j MARK --set-mark UID
     
    Добавлено:
    Мне уже сказали что схема с ifb0 не пойдет, так как трафик транзитный, то схема будет аналогична первой, переписанная под второй интерфейс.
     
    Добавлено:
    Больше волнует вопрос по rate и ceil, почему скорость режется принимая лишь значение rate и совершенно игнорируя ceil.

    Всего записей: 31 | Зарегистр. 21-02-2006 | Отправлено: 05:01 26-09-2012
    OxOyD

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ни у кого нет вариантов почему в данном примере ограничение происходит лишь по rate-значению игнорируя ceil?
     
    $tc class add dev eth1 parent 1:1 classid 1:UID htb rate 512kbit ceil 1mbit burst 1600  
    $tc filter add dev eth1 protocol ip parent 1:0 prio 1 handle UID fw flowid 1:UID  
    $fw -A FORWARD -s 0/0 -d UIP -j ACCEPT  
    $fw -A FORWARD -s UIP -d 0/0 -j ACCEPT  
    $fw -t mangle -A FORWARD -i eth0 -o eth1 -d UIP -j MARK --set-mark UID  
     
    для данного интерфейса по мимо очереди ничего не создано
    tc qdisc add dev eth1 root handle 1: htb
     
    Кто поможет разобраться?

    Всего записей: 31 | Зарегистр. 21-02-2006 | Отправлено: 17:52 26-09-2012
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OxOyD
    Возможно не хватает родителя:
    # tc class add dev eth1 parent 1: classid 1:1 htb rate 1mbit burst 16k

    ----------
    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.

    Всего записей: 6457 | Зарегистр. 28-08-2008 | Отправлено: 18:22 26-09-2012
    askad

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Товарищи, очень нужна Ваша помощь.
    Нужно с помощью iptables (v1.4.2) обеспечить защиту сети от несанкционированного доступа.
    Имеем:
    Сервер Debian 5 Lenny. На нем крутится сервис SIP-телефонии на mysql.
     
    eth0 - мир IP:80.11.15.157 (сеть 80.11.15.152/29)
    eth1 - не задействован (в будущем будет локалка 192.168.2.100)
     
    Маршрутизация:

    Код:
    # route -n
     
    Kernel IP routing table
     
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     
    80.11.15.152    0.0.0.0         255.255.255.248 U     0      0        0 eth0
     
    0.0.0.0         80.11.15.153    0.0.0.0         UG    0      0        0 eth0
     

     
    Нужно ограничить доступность сервера из внешней сети, кроме доверенных адресов:
     
    SIP_IP: 80.11.14.0/23 - С этой сети будет идти трафик по SIP (порты 5060,5061).
     
     
    С этих адресов и сетей будет осуществляться администрирование сервера и сервиса SIP (TRUST_IP):
    212.11.161.182, 95.11.78.218
    212.11.148.0/24, 192.11.88.128/26
    80.11.15.0/26
     
    Вот примерно, как я вижу цепочки маршрутизации:
    Ограничиваем входящие соединения по портам tcp/udp(моя цепочка ports): 22,23,443,80,3306,5060,5061,8080,icmp
    т.е. разрешаем их только для доверенных адресов командами:
     

    Код:
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -i lo -j ACCEPT  
     
    iptables -A ports -s TRUST_IP -p tcp --destination-port 22 -j ACCEPT
    iptables -A ports -s TRUST_IP -p tcp --destination-port 22 -j ACCEPT
    iptables -A ports -s TRUST_IP -p tcp --destination-port 23 -j ACCEPT
    iptables -A ports -s TRUST_IP -p tcp --destination-port 23 -j ACCEPT
     
    iptables -A ports -s SIP_IP -p upd --destination-port 5060 -j ACCEPT
    iptables -A ports -s SIP_IP -p upd --destination-port 5061 -j ACCEPT
     
    iptables -A ports -s TRUST_IP -p tcp --destination-port 8080 -j ACCEPT
    iptables -A ports -s TRUST_IP -p tcp --destination-port 8080 -j ACCEPT
    iptables -A ports -s TRUST_IP -p tcp --destination-port 8080 -j ACCEPT
    iptables -A ports -s TRUST_IP -p tcp --destination-port 8080 -j ACCEPT
    iptables -A INPUT -j ports
     
    iptables -A input -s ! 80.11.15.0/26 -p icmp --icmp-type echo-request -j REJECT --reject-with icmp-host-prohibited  
     
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
     
    iptables -P INPUT DROP

     
    Будет ли работать  моя цепочка правил, или есть какие-нибудь нюансы?

    Всего записей: 50 | Зарегистр. 11-04-2003 | Отправлено: 20:59 27-10-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

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


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru