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

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

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



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

    Цитата:
    Вы так полинета забаните. Фаер постаить не пробовали, а не табуретку?

    Дык у меня не публичный сервер. И политика drop по умолчанию, как и полагается

    Всего записей: 92 | Зарегистр. 10-11-2006 | Отправлено: 21:00 02-05-2020
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    palamars
    Вообще, конечно, для таких целей есть fail2ban.
     
    Но если сделать минимально то что Вы описали, то вот с использованием ipset для хранения:
    Код:
    ipset create http_bans hash:ip
    iptables -A INPUT -m set --match-set http_bans src -j DROP
    iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN -j LOG --log-level info --log-prefix "HTTP blocked: "
    iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN -j SET --add-set http_bans src
    (не проверял)
     
    Или вот пример без 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.

    Всего записей: 6493 | Зарегистр. 28-08-2008 | Отправлено: 22:12 03-05-2020 | Исправлено: Alukardd, 00:51 04-05-2020
    palamars



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    Пример с ipset - то, что надо, спасибо

    Всего записей: 92 | Зарегистр. 10-11-2006 | Отправлено: 02:07 11-05-2020
    newhk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую!
    Может немного не в тему...
    Есть шлюз на Ubuntu Server 18.04.
    На нем Iptables + Fail2ban + ssh (на нестандартном порту, предположим на 1234).
    Есть скрипт загружающий правила.
    Возможно ли в скрипт добавить правило, которое бы следило за обращениями на 22 порт и банило IP-шник, с которого поступает запрос на этот порт?
    Как я понимаю, средствами Fail2ban этого не сделать, поскольку ssh на нестандартном порту.
    Если я ошибаюсь, киньте ссылкой пожалуйста, где посмотреть как настраивать такую конфигурацию.
     
    Добавлено:
    Вот это можно под мою задачу переделать?

    Код:
     
    ipset create http_bans hash:ip
    iptables -A INPUT -m set --match-set http_bans src -j DROP
    iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN -j LOG --log-level info --log-prefix "HTTP blocked: "
    iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN -j SET --add-set http_bans src
     

    Всего записей: 381 | Зарегистр. 02-02-2009 | Отправлено: 21:39 12-10-2020
    alexnov66



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

    Цитата:
    На нем Iptables + Fail2ban + ssh (на нестандартном порту, предположим на 1234).
    Как я понимаю, средствами Fail2ban этого не сделать, поскольку ssh на нестандартном порту.

    Что мешает указать вместо буквенного названия порт цифрами ?

    Всего записей: 795 | Зарегистр. 29-08-2005 | Отправлено: 07:38 13-10-2020 | Исправлено: alexnov66, 07:39 13-10-2020
    newhk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexnov66
     
    Поскольку, 22 порт не используется, то подключение к нему не идет и логин с паролем не запрашиваются.
    Блокировщику некого блочить.
    А идея такая.
    Если кто-то решил долбиться в 22 порт, то его нужно забанить. Ибо не хочу, чтобы кто-то занимался перебором на моем серваке.
    По всей видимости, средствами Fail2Ban это не решить.
    По этому возвращаюсь к вопросу об Iptables

    Всего записей: 381 | Зарегистр. 02-02-2009 | Отправлено: 15:40 14-10-2020 | Исправлено: newhk, 16:29 14-10-2020
    yuris

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

    Цитата:
    Блокировщику некого блочить.  

    Какой же будет перебор, когда некому ответить?
    Подключение отвалится по таймауту.
    Если так хочется их блочить -
    Код:
    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP

    ну или адаптировать ваш код -  

    Код:
    ipset create ssh_bans hash:ip  
    iptables -A INPUT -m set --match-set ssh_bans src -j DROP  
    iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST SYN -j LOG --log-level info --log-prefix "Port 22 blocked: "  
    iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST SYN -j SET --add-set ssh_bans src  

    Всего записей: 369 | Зарегистр. 19-11-2001 | Отправлено: 18:11 14-10-2020
    newhk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yuris
    Это вопрос религии ))
    Если будут пытаться долбиться на 22 порт, то наверняка и на другие тоже...
    Значит надо заблочить эти IP

    Всего записей: 381 | Зарегистр. 02-02-2009 | Отправлено: 08:49 15-10-2020 | Исправлено: newhk, 09:50 15-10-2020
    alexnov66



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

    Цитата:
    По всей видимости, средствами Fail2Ban это не решить.

    Пропишите порт цифрами и будет блокировать, или можно прописать так ssh,1234
    Fail2Ban предназначен для этого.

    Всего записей: 795 | Зарегистр. 29-08-2005 | Отправлено: 12:33 17-10-2020
    msmih



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Буду признателен за подсказку.
    iptables настраивал только через разные графические интерфейсы. появилась необходимость автоматизировать одно действие через командную строку.
    В правилах есть ip адрес которому разрешено все на всех портах.
    как можно с помощью командной строки проверять есть ли ip адрес в правилах и если нет, то включать его в правила?

    Всего записей: 1184 | Зарегистр. 29-01-2006 | Отправлено: 10:53 15-12-2020
    ipmanyak



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    msmih  
    iptables -L -n | grep 192.168.1.5
    как добавлять разрешение сам разберешься, но есть нюанс, добавление правила в консоли будет работать пока не будет ребута, потому нужно добавлять в файл списка всех правил  айпитаблеса, в разных линуксах он в разных местах и имя может отличаться. В Centos/Redhat  версий 6.x  /etc/sysconfig/iptables  
    Проще  пихнуть правило в файл rc.local , он выполняется в конце запуска всех служб и скриптов.
     
     
     


    ----------
    В сортире лучше быть юзером, чем админом...

    Всего записей: 11227 | Зарегистр. 10-12-2003 | Отправлено: 14:44 15-12-2020
    msmih



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

    Цитата:
    добавление правила в консоли будет работать пока не будет ребута

    не знал таких тонкостей. спасибо.
    это же справедливо и для python-iptables? или с помощью этого модуля добавление идет иначе?

    Всего записей: 1184 | Зарегистр. 29-01-2006 | Отправлено: 15:02 15-12-2020
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ipmanyak
    В Debian rc.local уже давно deprecated.
    Можно делать что-то руками, но в том же debian есть пакет netfilter-persistent + iptables-persistent
     
    msmih
    python-iptables не использует непосредственно бинраник iptables, но всё равно в конечном итоге только управляет правилами, вопрос сохранения их состояния и восстановления после запуска это не его задача. Это надо делать отдельно.
     
     
    2ALL
    Ну и вообще iptables хоть и привычен и удобен, но время потихоньку берёт своё и надо смотреть на nftables.

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

    Всего записей: 6493 | Зарегистр. 28-08-2008 | Отправлено: 20:53 15-12-2020
    Ruza



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

    Цитата:
     Ну и вообще iptables хоть и привычен и удобен, но время потихоньку берёт своё и надо смотреть на nftables.

    То же самое говорили и про ipchains )))

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

    Всего записей: 5466 | Зарегистр. 10-09-2003 | Отправлено: 12:48 26-12-2020
    dakke



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    привет всем. Изучаю теорию iptables для себя; что-то не могу понять - а на каком этапе принимается решение - пакет идет в цепочку FORWARD  или в цеопчку INPUT?  Т.е., как понимаю, INPUT - это пакеты, передаваемые локальным приложениям, а FORWARD  -это пакеты, предназначенные для переадресации другим хостам. В мануалах пишут, что сначала пакет попадает в цепочку PREROUTING , а после - принимается решение, отправлять пакет в INPUT или в FORWARD.  А кто принимает это решение?  какое правило?  В мануалах рисуют квадратик "Routing Decision"- типа, он и принимает решение -)  а что это за квдратик-то? Правило какое-то?
     
    Я пока придумал только вот что- если в таблице nat PREROUTING есть правило, которое ЗАМЕНЯЕТ адрес назначения с IP локального хоста на IP какого-то другого хоста, то iptables  АВТОМАТИЧЕСКИ сам перенаправляет такой пакет в цепочку FORWARD, т.е. понимает, что этот пакет не для локалхоста.  Или я неправ и механизм "Routing Decision" какой-то другой?
     
    Или вообще "Routing Decision" после PREROUTING-а - это просто логическая цепь "если IP адрес назначения пакета равен IP локального хоста, то отправляем в INPUT, если не равен, то отправляем в FORWARD".  Но эта логическая цепь существует по умолчанию, или это тоже какое-то правило, которое нужно самому прописывать в iptables?
     
    Заранее спасибо -)

    Всего записей: 140 | Зарегистр. 04-05-2014 | Отправлено: 23:51 26-02-2021 | Исправлено: dakke, 11:29 27-02-2021
    dakke



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

     
     

    Всего записей: 140 | Зарегистр. 04-05-2014 | Отправлено: 19:13 27-02-2021 | Исправлено: dakke, 23:09 27-02-2021
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dakke
    https://upload.wikimedia.org/wikipedia/ru/a/ad/Netfilter-diagram-rus.png

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

    Всего записей: 6493 | Зарегистр. 28-08-2008 | Отправлено: 13:34 06-03-2021
    alexsunn



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обьясните дебилу (то бишь мне), что делаю не правильно. Имею centos 8 c ее firewalld.
    Цитата:
    firewall-cmd --zone=public --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: ens3
      sources:  
      services: cockpit dhcpv6-client http ssh
     ....
     
    Как видно зона активна и есть http , но фильтр не пропускает http.

    Цитата:
     iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination          
    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
    ACCEPT     icmp --  anywhere             anywhere            
    ACCEPT     all  --  anywhere             anywhere            
    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
     
    Видим , что разрешает только ssh.
    Если добавить правило  
     iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
     то http пропускает, но после перезагрузки правило не сохраняется.
    Куда рыть. Firewalld отключить совсем не вариант.

    Всего записей: 267 | Зарегистр. 21-12-2005 | Отправлено: 07:19 01-10-2021
    4seasons



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexsunn
    firewall-cmd --permanent --zone=public --add-service=http  
    firewall-cmd --permanent --zone=public --add-service=https
    или
    firewall-cmd --permanent --add-port=80/tcp
     
    firewall-cmd --reload

    Всего записей: 4796 | Зарегистр. 31-05-2009 | Отправлено: 09:47 01-10-2021 | Исправлено: 4seasons, 09:48 01-10-2021
    alexsunn



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

    Всего записей: 267 | Зарегистр. 21-12-2005 | Отправлено: 09:51 01-10-2021
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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.B0ard
    © Ru.B0ard 2000-2023

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru