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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Как так получается???
    при любых вопросах о маршрутизации и wireguard, смотрим на вывод трёх команд:
    Код:
    iptables -t mangle -vnL или iptables-save -t mangle
    ip ru
    ip r # тут лучше ещё захватить wg таблицу, но номер её заранее не известен обычно (мы с 200 игрались последний раз), но можно посмотреть на все ip r s t all | grep -vE '^(broadcast|local)'
    Полагаю, что от бесконечных попыток, где-то остались какие-то правила.

    ----------
    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:13 19-05-2022 | Исправлено: Alukardd, 18:15 19-05-2022
    i81

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

    Цитата:
    Блин! А я счас что-то вообще не понял!!!
    Даже так:
     
    Код:
    Table = 200
    #PostUP = ip rule del not from all lookup 200
    #PostUp = ip route del default dev %i table 200
    #PostUp = ip rule add from 10.8.1.5 table 200 prio 1
    #PostUp = ip route add default dev %i table 200
    #PostDown = ip rule del from 10.8.1.5 table 200 prio 1
    #PostDown = ip route add default dev %i table 200
     
    [Peer]
    #AllowedIPs = 10.8.1.0/24
    AllowedIPs = 0.0.0.0/0
     
     
    Трассировка идёт через 192.168.1.1  
    Хотя по всей логике должна идти через 10.8.1.1  
    Как так получается???

     
    Похоже это всё какие-то артефакты были. Т.к. в итоге с таким конфигом не то, что весь трафик в туннель не шёл, но и мученный нами доступ не работал.  
     
     
    В итоге на данный момент вроде всё работает адекватно с таким конфигом

    Код:
     
    Table = 200
    #PostUP = ip rule del not from all lookup 200
    PostUp = ip route del default dev %i table 200
    PostUp = ip rule add from 10.8.1.5 table 200 prio 1
    PostUp = ip route add default dev %i table 200
    PostDown = ip rule del from 10.8.1.5 table 200 prio 1
    PostDown = ip route add default dev %i table 200
     
    [Peer]
    #AllowedIPs = 10.8.1.0/24
    AllowedIPs = 0.0.0.0/0

     

    Всего записей: 303 | Зарегистр. 08-04-2006 | Отправлено: 18:32 19-05-2022
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    i81
    Цитата:
    В итоге на данный момент вроде всё работает адекватно с таким конфигом  
    КАК?!

    Цитата:
    PostDown = ip route add default dev %i table 200  
    это точно лишнее и вообще ошибку должно выдавать при выключении туннеля.
     
    Я всё ещё считаю, что
    Цитата:
    #PostUP = ip rule del not from all lookup 200
    PostUp = ip route del default dev %i table 200  
    rule del должно быть раскоменчено, а route del удалено, какой в нём смысл если строкой ниже этоже самое добавляется?..
     
    Можете показать что там сейчас когда оно "работает как надо"?
    ip ru и ip r хочу посмотреть

    ----------
    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:57 19-05-2022
    i81

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

    Цитата:
    rule del должно быть раскоменчено

    с ним ошибка при запуске туннеля:

    Цитата:
    мая 19 19:26:48 NAS-Deb wg-quick[32713]: RTNETLINK answers: No such file or directory
    (на предыдущей странице)
     

    Цитата:
    ip ru и ip r хочу посмотреть


    Код:
    root@NAS-Deb:~# ip ru
    0:      from all lookup local
    1:      from 10.8.1.5 lookup wg
    32766:  from all lookup main
    32767:  from all lookup default
    root@NAS-Deb:~# ip r
    default via 192.168.1.1 dev enp6s0 proto dhcp metric 100
    10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
    10.8.1.0/24 dev WG-Cl-Amigo proto kernel scope link src 10.8.1.5
    172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
    172.30.32.0/23 dev hassio proto kernel scope link src 172.30.32.1
    192.168.1.0/24 dev enp6s0 proto kernel scope link src 192.168.1.5 metric 100
    root@NAS-Deb:~#


    Код:
     
    root@NAS-Deb:~# iptables-save -t mangle
    # Generated by xtables-save v1.8.2 on Thu May 19 22:12:32 2022
    *mangle
    REROUTING ACCEPT [0:0]
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    UTPUT ACCEPT [0:0]
    OSTROUTING ACCEPT [0:0]
    COMMIT
    # Completed on Thu May 19 22:12:32 2022
    root@NAS-Deb:~# iptables -t mangle -vnL
    Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
     
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
     
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
     
    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
     
    Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
    root@NAS-Deb:~#

     

    Код:
     
    root@NAS-Deb:~# ip r s t all | grep -vE '^(broadcast|local)'
    default dev WG-Cl-Amigo table wg scope link
    default via 192.168.1.1 dev enp6s0 proto dhcp metric 100
    10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
    10.8.1.0/24 dev WG-Cl-Amigo proto kernel scope link src 10.8.1.5
    172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
    172.30.32.0/23 dev hassio proto kernel scope link src 172.30.32.1
    192.168.1.0/24 dev enp6s0 proto kernel scope link src 192.168.1.5 metric 100
    ::1 dev lo proto kernel metric 256 pref medium
    fe80::/64 dev enp6s0 proto kernel metric 100 pref medium
    fe80::/64 dev tun0 proto kernel metric 256 pref medium
    fe80::/64 dev veth1adf448 proto kernel metric 256 pref medium
    fe80::/64 dev docker0 proto kernel metric 256 pref medium
    fe80::/64 dev vethe92df1b proto kernel metric 256 pref medium
    fe80::/64 dev hassio proto kernel metric 256 pref medium
    fe80::/64 dev vethaeaab8f proto kernel metric 256 pref medium
    fe80::/64 dev veth62d5648 proto kernel metric 256 pref medium
    fe80::/64 dev veth4bad3f6 proto kernel metric 256 pref medium
    fe80::/64 dev veth80d4f26 proto kernel metric 256 pref medium
    fe80::/64 dev veth155ce7f proto kernel metric 256 pref medium
    fe80::/64 dev veth6fbad64 proto kernel metric 256 pref medium
    fe80::/64 dev veth7c7a455 proto kernel metric 256 pref medium
    multicast ff00::/8 dev enp6s0 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev tun0 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev veth1adf448 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev docker0 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev vethe92df1b table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev hassio table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev vethaeaab8f table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev veth62d5648 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev veth4bad3f6 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev veth80d4f26 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev veth155ce7f table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev veth6fbad64 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev veth7c7a455 table local proto kernel metric 256 pref medium
    multicast ff00::/8 dev WG-Cl-Amigo table local proto kernel metric 256 pref medium
    root@NAS-Deb:~#

    Всего записей: 303 | Зарегистр. 08-04-2006 | Отправлено: 20:15 19-05-2022
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    i81
    Я, кажется понял, как wg-quick устроен. Он не добавляет правила (ip rule) если явно указан какой-то номер таблицы (Table = 200). поэтому конечный вариант должен быть такой:
    Код:
    Table = 200
    PostUp = ip rule add from 10.8.1.5 table 200 prio 1
    PostDown = ip rule del from 10.8.1.5 table 200 prio 1
    усё из-за моей неосведомлённости от тонкостях wg-quick

    ----------
    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:47 19-05-2022
    i81

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

    Цитата:
    усё из-за моей неосведомлённости от тонкостях wg-quick

    Теперь Вы понимаете, как тяжело мне - я то не осведомлён не только в wg-quick, а ещё и в iptables и прочих tcpdump-ов и conntrack-ов
     

    Цитата:
    поэтому конечный вариант должен быть такой:

    Подтверждаю - работает!
     
    Давайте подытожим. Для перенаправления всего трафика с порта сервера WireGuard VPN на клиента необходимо:
    А. На сервере добавить правила:
        1. iptables -t nat -A PREROUTING -d {IP Интернет интерфейса сервера}/32 -p tcp -m tcp --dport {Внешний порт} -j DNAT --to-destination {IP назначения}:{Порт  назначения}
        В случае если адрес назначения находится за NAT (интерфейс WG-Клиент на роутере установлен) и весь трафик "Устройства назначения" идет через WG-Туннель, то добавляются ещё два правила:
        2. iptables -A FORWARD -i eth0 -o wg0 -d {IP назначения} -p tcp -m tcp --dport {Порт  назначения} -j ACCEPT
        3. iptables -A FORWARD -i wg0 -o eth0 -s {IP назначения} -p tcp -m tcp --sport {Порт  назначения} -j ACCEPT
     
    В. В случае если WG-Клиент устанавливается непосредственно на "устройстве назначения" то в конфигурационном файле WG-Клиента необходимо прописать следующие правила:
        1. Table = 200
        2. PostUp = ip rule add from {IP WG-Клиента} table 200 prio 1
        3. PostDown = ip rule del from {IP WG-Клиента} table 200 prio 1
     
    Всё верно?  

    Всего записей: 303 | Зарегистр. 08-04-2006 | Отправлено: 05:40 20-05-2022 | Исправлено: i81, 05:42 20-05-2022
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    i81
    Цитата:
    В случае если адрес назначения находится  
    FORWARD правила нужны в любом случае, если адрес источника и назначения конечного пакета не сам хост.
     
    https://upload.wikimedia.org/wikipedia/commons/a/ad/Netfilter-diagram-rus.png
    или более сложно и подробно то вот — https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
     

    Цитата:
    Всё верно?
    ну, в целом всё так, да
    а вот правильно ли Вы ограничили случаи ("в случае если"), я не оценивал, всё наперёд не продумать

    ----------
    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 | Отправлено: 11:39 20-05-2022
    Открыть новую тему     Написать ответ в эту тему

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