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

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

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



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

    Цитата:
    Все выше приведенное проделывал.

    После задания правил нужно обязательно выполнить
    firewall-cmd --reload
     
    И еще проверь SELINUX
    sestatus
    может он мешает и попробуй его отключить.
    nano /etc/selinux/config
    SELINUX=disabled

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Это тоже проделывал.  
    SELINUX тоже отключен.

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



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

    Судя по этому
    Цитата:
    services: cockpit dhcpv6-client http ssh

    фильтр тут не причем
     
    А куда тебя не пропускают?
    На вебсервер? А у тебя он хоть есть и запущен?
     
    Запусти ss -tulp, должно быть что то вроде этого:

    Цитата:
    ss -tulp
    Netid State   Recv-Q  Send-Q    Local Address:Port            Peer Address:Port Process                                                                          
    ...                    
    tcp   LISTEN  0       128                   *:http                       *:*     users("httpd",pid=1719,fd=4),("httpd",pid=1718,fd=4),("httpd",pid=1716,fd=4),("httpd",pid=1713,fd=4),("httpd",pid=1712,fd=4),("httpd",pid=1617,fd=4))
    ...

    Если http там нет, то и некуда пропускать.

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я понимаю, что выгляжу дураком, но все же.
    NGINX поднят. Сервис с наружи не доступен.
    Если отключить firewalld или добавить тупо iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT, то работает и видно страницу.

    Цитата:
    Судя по этому
    Цитата:
    services: cockpit dhcpv6-client http ssh

    Это показывает что в public zone (которая активна- для этого и показал) доступны сервисы, если вы не знали.

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



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

    Не тушуйся, это обычное дело в борьбе с цифрами.
     
    Посмотри с помощью ss -tulp, какие порты и сервисы у тебя прослушиваются.
    А потом попробуй разрешить не сервис, а порт, на котором у тебя поднят NGINX, например 80 порт.
    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --reload
     
    У меня на CentOS 8 запущен Apache на 80 порту и все работает как надо, и там такая картина.

    Цитата:
    [root@localhost PulkovoLin]# firewall-cmd --zone=public --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: ens33
      sources:  
      services: cockpit dhcpv6-client ftp http https mysql ssh
      ports:  
      protocols:  
      masquerade: no
      forward-ports:  
      source-ports:  
      icmp-blocks:  
      rich rules:  
     
    [root@localhost PulkovoLin]# ss -tulp
    Netid State   Recv-Q  Send-Q    Local Address:Port            Peer Address:Port Process                                                                          
    udp   UNCONN  0       0         192.168.122.1:domain               0.0.0.0:*     users("dnsmasq",pid=1955,fd=5))                                              
    udp   UNCONN  0       0        0.0.0.0%virbr0:bootps               0.0.0.0:*     users("dnsmasq",pid=1955,fd=3))                                              
    udp   UNCONN  0       0               0.0.0.0:sunrpc               0.0.0.0:*     users("rpcbind",pid=933,fd=5),("systemd",pid=1,fd=36))                        
    udp   UNCONN  0       0             127.0.0.1:323                  0.0.0.0:*     users("chronyd",pid=990,fd=6))                                                
    udp   UNCONN  0       0               0.0.0.0:45838                0.0.0.0:*     users("avahi-daemon",pid=977,fd=17))                                          
    udp   UNCONN  0       0               0.0.0.0:mdns                 0.0.0.0:*     users("avahi-daemon",pid=977,fd=15))                                          
    udp   UNCONN  0       0                     *:onehome-help               *:*     users("java",pid=1319,fd=96))                                                
    udp   UNCONN  0       0                  [::]:sunrpc                  [::]:*     users("rpcbind",pid=933,fd=7),("systemd",pid=1,fd=38))                        
    udp   UNCONN  0       0                     *:snmptrap                   *:*     users("java",pid=1319,fd=100))                                                
    udp   UNCONN  0       0                 [::1]:323                     [::]:*     users("chronyd",pid=990,fd=7))                                                
    udp   UNCONN  0       0                     *:tram                       *:*     users("java",pid=1319,fd=99))                                                
    udp   UNCONN  0       0                  [::]:mdns                    [::]:*     users("avahi-daemon",pid=977,fd=16))                                          
    udp   UNCONN  0       0                  [::]:59039                   [::]:*     users("avahi-daemon",pid=977,fd=18))                                          
    tcp   LISTEN  0       128             0.0.0.0:sunrpc               0.0.0.0:*     users("rpcbind",pid=933,fd=4),("systemd",pid=1,fd=35))                        
    tcp   LISTEN  0       32        192.168.122.1:domain               0.0.0.0:*     users("dnsmasq",pid=1955,fd=6))                                              
    tcp   LISTEN  0       128             0.0.0.0:ssh                  0.0.0.0:*     users("sshd",pid=1172,fd=5))                                                  
    tcp   LISTEN  0       5             127.0.0.1:ipp                  0.0.0.0:*     users("cupsd",pid=1173,fd=10))                                                
    tcp   LISTEN  0       100           127.0.0.1:smtp                 0.0.0.0:*     users("master",pid=1599,fd=16))                                              
    tcp   LISTEN  0       50                    *:37275                      *:*     users("java",pid=1319,fd=102))                                                
    tcp   LISTEN  0       70                    *:33060                      *:*     users("mysqld",pid=1365,fd=23))                                              
    tcp   LISTEN  0       35                    *:mysql                      *:*     users("mysqld",pid=1365,fd=49))                                              
    tcp   LISTEN  0       128                [::]:sunrpc                  [::]:*     users("rpcbind",pid=933,fd=6),("systemd",pid=1,fd=37))                        
    tcp   LISTEN  0       128                   *:http                       *:*     users("httpd",pid=1719,fd=4),("httpd",pid=1718,fd=4),("httpd",pid=1716,fd=4),("httpd",pid=1713,fd=4),("httpd",pid=1712,fd=4),("httpd",pid=1617,fd=4))
    tcp   LISTEN  0       50                    *:h2250-annex-g              *:*     users("java",pid=1319,fd=101))                                                
    tcp   LISTEN  0       32                    *:ftp                        *:*     users("vsftpd",pid=1627,fd=3))                                                
    tcp   LISTEN  0       128                [::]:ssh                     [::]:*     users("sshd",pid=1172,fd=7))                                                  
    tcp   LISTEN  0       5                 [::1]:ipp                     [::]:*     users("cupsd",pid=1173,fd=9))                                                
    tcp   LISTEN  0       50                    *:ddi-tcp-1                  *:*     users("java",pid=1319,fd=93))                                                
    tcp   LISTEN  0       100               [::1]:smtp                    [::]:*     users("master",pid=1599,fd=17))    

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



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

    Цитата:
    [root@euro-2 network-scripts]#  ss -tulp
    Netid              State               Recv-Q               Send-Q                             Local Address:Port                                   Peer Address:Port              Process                                                                                                                                                                            
    udp                UNCONN              0                    0                                      127.0.0.1:8125                                        0.0.0.0:*                  users("netdata",pid=1959,fd=50))                                                                                                                                                
    udp                UNCONN              0                    0                                        0.0.0.0:sunrpc                                      0.0.0.0:*                  users("rpcbind",pid=1169,fd=5),("systemd",pid=1,fd=45))                                                                                                                          
    udp                UNCONN              0                    0                                      127.0.0.1:323                                         0.0.0.0:*                  users("chronyd",pid=1218,fd=6))                                                                                                                                                  
    udp                UNCONN              0                    0                                        0.0.0.0:40333                                       0.0.0.0:*                  users("/usr/sbin/amavi",pid=2675,fd=17))                                                                                                                                        
    udp                UNCONN              0                    0                                          [::1]:8125                                           [::]:*                  users("netdata",pid=1959,fd=25))                                                                                                                                                
    udp                UNCONN              0                    0                                           [::]:sunrpc                                         [::]:*                  users("rpcbind",pid=1169,fd=7),("systemd",pid=1,fd=48))                                                                                                                          
    udp                UNCONN              0                    0                                          [::1]:323                                            [::]:*                  users("chronyd",pid=1218,fd=7))                                                                                                                                                  
    tcp                LISTEN              0                    128                                      0.0.0.0:https                                       0.0.0.0:*                  users("nginx",pid=1843,fd=8),("nginx",pid=1838,fd=8))                                                                                                                            
    tcp                LISTEN              0                    128                                    127.0.0.1:8125                                        0.0.0.0:*                  users("netdata",pid=1959,fd=55))                                                                                                                                                
    tcp                LISTEN              0                    100                                    127.0.0.1:sieve                                       0.0.0.0:*                  users("dovecot",pid=1862,fd=18))                                                                                                                                                
    tcp                LISTEN              0                    128                                    127.0.0.1:dnp-sec                                     0.0.0.0:*                  users("netdata",pid=1959,fd=4))                                                                                                                                                  
    tcp                LISTEN              0                    5                                      127.0.0.1:cbt                                         0.0.0.0:*                  users("python3",pid=2118,fd=7))                                                                                                                                                  
    tcp                LISTEN              0                    128                                      0.0.0.0:imaps                                       0.0.0.0:*                  users("dovecot",pid=1862,fd=50))                                                                                                                                                
    tcp                LISTEN              0                    5                                      127.0.0.1:interwise                                   0.0.0.0:*                  users("python3",pid=2118,fd=8))                                                                                                                                                  
    tcp                LISTEN              0                    5                                      127.0.0.1:vstat                                       0.0.0.0:*                  users("python3",pid=2118,fd=9))                                                                                                                                                  
    tcp                LISTEN              0                    100                                      0.0.0.0:pop3s                                       0.0.0.0:*                  users("dovecot",pid=1862,fd=30))                                                                                                                                                
    tcp                LISTEN              0                    128                                    127.0.0.1:ldap                                        0.0.0.0:*                  users("slapd",pid=1929,fd=8))                                                                                                                                                    
    tcp                LISTEN              0                    128                                    127.0.0.1:10024                                       0.0.0.0:*                  users("/usr/sbin/amavi",pid=2675,fd=8),("/usr/sbin/amavi",pid=2120,fd=8))                                                                                                        
    tcp                LISTEN              0                    100                                    127.0.0.1:10025                                       0.0.0.0:*                  users("master",pid=1777,fd=115))                                                                                                                                                
    tcp                LISTEN              0                    128                                    127.0.0.1:10026                                       0.0.0.0:*                  users("/usr/sbin/amavi",pid=2675,fd=9),("/usr/sbin/amavi",pid=2120,fd=9))                                                                                                        
    tcp                LISTEN              0                    128                                    127.0.0.1:10027                                       0.0.0.0:*                  users("/usr/sbin/amavi",pid=2675,fd=10),("/usr/sbin/amavi",pid=2120,fd=10))                                                                                                      
    tcp                LISTEN              0                    100                                      0.0.0.0:submission                                  0.0.0.0:*                  users("master",pid=1777,fd=103))                                                                                                                                                
    tcp                LISTEN              0                    100                                    127.0.0.1:10028                                       0.0.0.0:*                  users("master",pid=1777,fd=118))                                                                                                                                                
    tcp                LISTEN              0                    128                                    127.0.0.1:distinct32                                  0.0.0.0:*                  users("/usr/sbin/amavi",pid=2675,fd=11),("/usr/sbin/amavi",pid=2120,fd=11))                                                                                                      
    tcp                LISTEN              0                    100                                      0.0.0.0:pop3                                        0.0.0.0:*                  users("dovecot",pid=1862,fd=28))                                                                                                                                                
    tcp                LISTEN              0                    100                                    127.0.0.1:7790                                        0.0.0.0:*                  users("uwsgi",pid=1928,fd=10),("uwsgi",pid=1927,fd=10),("uwsgi",pid=1926,fd=10),("uwsgi",pid=1925,fd=10),("uwsgi",pid=1924,fd=10),("uwsgi",pid=1816,fd=10))                      
    tcp                LISTEN              0                    128                                      0.0.0.0:imap                                        0.0.0.0:*                  users("dovecot",pid=1862,fd=48))                                                                                                                                                
    tcp                LISTEN              0                    100                                    127.0.0.1:7791                                        0.0.0.0:*                  users("uwsgi",pid=2032,fd=10),("uwsgi",pid=2031,fd=10),("uwsgi",pid=2030,fd=10),("uwsgi",pid=2028,fd=10),("uwsgi",pid=2027,fd=10),("uwsgi",pid=1833,fd=10))                      
    tcp                LISTEN              0                    128                                    127.0.0.1:distinct                                    0.0.0.0:*                  users("php-fpm",pid=8260,fd=12),("php-fpm",pid=8257,fd=12),("php-fpm",pid=8256,fd=12),("php-fpm",pid=8254,fd=12),("php-fpm",pid=7143,fd=12),("php-fpm",pid=7142,fd=12),("php-fpm",pid=7138,fd=12),("php-fpm",pid=7135,fd=12),("php-fpm",pid=7121,fd=12),("php-fpm",pid=1274,fd=9))
    tcp                LISTEN              0                    128                                      0.0.0.0:sunrpc                                      0.0.0.0:*                  users("rpcbind",pid=1169,fd=4),("systemd",pid=1,fd=44))                                                                                                                          
    tcp                LISTEN              0                    128                                      0.0.0.0:http                                        0.0.0.0:*                  users("nginx",pid=1843,fd=10),("nginx",pid=1838,fd=10))                                                                                                                          
    tcp                LISTEN              0                    128                                    127.0.0.1:filesphere                                  0.0.0.0:*                  users("stats",pid=1945,fd=10),("dovecot",pid=1862,fd=23))                                                                                                                        
    tcp                LISTEN              0                    100                                    127.0.0.1:12340                                       0.0.0.0:*                  users("dovecot",pid=1862,fd=71))                                                                                                                                                
    tcp                LISTEN              0                    128                                      0.0.0.0:ssh                                         0.0.0.0:*                  users("sshd",pid=1753,fd=5))                                                                                                                                                    
    tcp                LISTEN              0                    100                                    127.0.0.1:lmtp                                        0.0.0.0:*                  users("lmtp",pid=1940,fd=9),("lmtp",pid=1939,fd=9),("lmtp",pid=1938,fd=9),("lmtp",pid=1937,fd=9),("lmtp",pid=1934,fd=9),("dovecot",pid=1862,fd=38))                              
    tcp                LISTEN              0                    100                                      0.0.0.0:smtp                                        0.0.0.0:*                  users("master",pid=1777,fd=16))                                                                                                                                                  
    tcp                LISTEN              0                    128                                         [::]:https                                          [::]:*                  users("nginx",pid=1843,fd=9),("nginx",pid=1838,fd=9))                                                                                                                            
    tcp                LISTEN              0                    128                                        [::1]:8125                                           [::]:*                  users("netdata",pid=1959,fd=54))                                                                                                                                                
    tcp                LISTEN              0                    128                                         [::]:imaps                                          [::]:*                  users("dovecot",pid=1862,fd=51))                                                                                                                                                
    tcp                LISTEN              0                    100                                         [::]:pop3s                                          [::]:*                  users("dovecot",pid=1862,fd=31))                                                                                                                                                
    tcp                LISTEN              0                    128                                            *:mysql                                             *:*                  users("mysqld",pid=1414,fd=26))                                                                                                                                                  
    tcp                LISTEN              0                    100                                         [::]:pop3                                           [::]:*                  users("dovecot",pid=1862,fd=29))                                                                                                                                                
    tcp                LISTEN              0                    128                                         [::]:imap                                           [::]:*                  users("dovecot",pid=1862,fd=49))                                                                                                                                                
    tcp                LISTEN              0                    128                                         [::]:sunrpc                                         [::]:*                  users("rpcbind",pid=1169,fd=6),("systemd",pid=1,fd=47))                                                                                                                          
    tcp                LISTEN              0                    128                                         [::]:http                                           [::]:*                  users("nginx",pid=1843,fd=11),("nginx",pid=1838,fd=11))                                                                                                                          
    tcp                LISTEN              0                    128                                         [::]:ssh                                            [::]:*                  users("sshd",pid=1753,fd=7))                

    ngix присутствует.

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



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

    Все это очень странно, видимо ngix в этом плане чем то отличается от Apache.
     
    Попробуй все же разрешить не сервис, а порт, на котором у тебя поднят NGINX, например 80 порт.
    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --reload
     
    может это поможет.
     
    В противном случае придется разбираться с особенностями ngix.
    При прочих равных с Apache все ок, а с nginx не ок.
    Чудес то не бывает.

    Всего записей: 4563 | Зарегистр. 31-05-2009 | Отправлено: 13:59 01-10-2021 | Исправлено: 4seasons, 14:11 01-10-2021
    alexsunn



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да и портом пробовал. Где-то косяк , но не пойму. Буру рыть дальше.

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



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

    В таких случаях всегда лучше идти по методу исключения.
    Ставишь на виртуалке чистый CentOS и nginx с настройками по умолчанию и добиваешься нужного результата, а уже потом наращиваешь свое.

    Всего записей: 4563 | Зарегистр. 31-05-2009 | Отправлено: 10:20 02-10-2021 | Исправлено: 4seasons, 10:21 02-10-2021
    vovalm

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

    Всего записей: 57 | Зарегистр. 11-07-2009 | Отправлено: 18:00 16-11-2021 | Исправлено: vovalm, 18:03 16-11-2021
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vovalm
    iptables DNAT
     
    iptables -t nat -I PREROUTING -d $BRANCH_LISTEN_IP -p tcp --dport $BRANCH_SECOND_PORT -j DNAT --to-destination $HEAD_OFFICE_IP:$HEAD_OFFICE_PORT
    и надо будет ещё SNAT написать что бы src подменить
     
    А вообще для такого есть haproxy или nginx. Такие пробросы не дело firewall'а.

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

    Всего записей: 6468 | Зарегистр. 28-08-2008 | Отправлено: 22:04 16-11-2021 | Исправлено: Alukardd, 22:08 16-11-2021
    vovalm

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd спасибо. подробней опишу. в центральном офисе один порт ssl со своим сертификатом.
    клиенты центрального офиса тянут все с центрального.
    правильно я понимаю что если проксировать с haproxy или nginx или apache это дополнительная генерация сертификатов?
     
    + SNAT я так понимаю не будет работать если клиент не один. и будуть стукаться все с разными ипами

    Всего записей: 57 | Зарегистр. 11-07-2009 | Отправлено: 10:30 17-11-2021
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vovalm
    Терминирование tcp коннекта и ssl соединения на проксе по Вашему желанию.
    Я предлагал именно tcp pass thru — nginx tcp streams, например.
     
    Вопрос про SNAT не понял, вроде нет с ним ни каких проблем, это ж обычный NAT просто я не знаю как у Вас сеть устроена. Вероятно что у Вас это всё одна машина в филиале и уже есть это правило для NATа клиентов наружу.

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

    Всего записей: 6468 | Зарегистр. 28-08-2008 | Отправлено: 11:13 17-11-2021 | Исправлено: Alukardd, 11:14 17-11-2021
    i81

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго дня, товарищи! Нуждаюсь в помощи!
    Имеется:
    1. VPS: Ubuntu (IP 11.11.11.11), wireguard-server (IP 10.8.1.0/24)
    2. Keenetic: wireguard-client (IP 10.8.1.3), lan (IP 192.168.3.0/24)
    3. PC: Debian (IP 192.168.3.18), весь трафик через wireguard-client (IP 10.8.1.3)
     

    Код:
     
    root@vpn:~# iptables -S
    -P INPUT ACCEPT
    -P FORWARD DROP
    -P OUTPUT ACCEPT
    -N f2b-sshd
    -A INPUT -p tcp -m multiport --dports 2211 -j f2b-sshd
    -A INPUT -i eth0 -p udp -m udp --dport 64170 -j ACCEPT
    -A INPUT -i tun0 -j ACCEPT
    -A FORWARD -i tun0 -o eth0 -j ACCEPT
    -A FORWARD -i eth0 -o tun0 -j ACCEPT
    -A FORWARD -s 10.8.1.0/24 -d 10.8.1.0/24 -i wg0 -o wg0 -j ACCEPT
    -A FORWARD -s 10.8.1.0/24 -i wg0 -o eth0 -j ACCEPT
    -A FORWARD -d 10.8.1.0/24 -i eth0 -o wg0 -j ACCEPT
    -A FORWARD -i wg0 -o wg0 -j ACCEPT
     

     

    Код:
     
    root@vpn:~# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         gw.firstbyte.ru 0.0.0.0         UG    0      0        0 eth0
    10.8.0.0        *               255.255.255.0   U     0      0        0 tun0
    10.8.1.0        *               255.255.255.0   U     0      0        0 wg0
    localnet        *               255.255.255.0   U     0      0        0 eth0
    192.168.1.0     *               255.255.255.0   U     0      0        0 wg0
    192.168.3.0     *               255.255.255.0   U     0      0        0 wg0
    root@vpn:~#
    [igor] 0:bash*
     

     
    Есть необходимость перенаправить все входящие запросы на порт 8080 с внешнего IP VPS на PC 192.168.3.18 в порт 8888
     
    Пишу правило:

    Код:
     
    iptables -t nat -A PREROUTING -d 11.11.11.11/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.3.18:8888
     

    Работает только при разрешении всех цепочки FORWARD т.е. при -P FORWARD ACCEPT. Как только делаю -P FORWARD DROP - трафик перестаёт идти.
    Подскажите пожалуйста чего мне в FORWARD написать, что бы заработало?
    Большое спасибо!

    Всего записей: 308 | Зарегистр. 08-04-2006 | Отправлено: 17:23 13-05-2022
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    i81
    вообще странно что VPS знает о сети за кинетиком (192.168.3.0/24). Но видимо Вы это настроили и опустили в описании.
     
    не хватает правила на VPS: iptables -A FORWARD -i eth0 -o wg0 -d 192.168.3.18 -p tcp -m tcp --dport 8888 -j ACCEPT
     
    p.s. IMHO: маршруты удобнее смотреть более современными командами 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.

    Всего записей: 6468 | Зарегистр. 28-08-2008 | Отправлено: 18:36 13-05-2022 | Исправлено: Alukardd, 18:37 13-05-2022
    i81

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

    Цитата:
    вообще странно что VPS знает о сети за кинетиком (192.168.3.0/24). Но видимо Вы это настроили и опустили в описании.

    Знает, это видно в результате вывода команды route, в моём первом сообщении, этот маршрут добавляется автоматически при запуске wg0 исходя из конфига клиента 10.8.1.3 на сервере.
     

    Цитата:
    не хватает правила на VPS

    немного скорректировал порт назначения на реальный и добавил, в итоге имеем:
     

    Код:
     
    root@vpn:~# iptables -A FORWARD -i eth0 -o wg0 -d 192.168.3.18 -p tcp -m tcp --dport 8123 -j ACCEPT
    root@vpn:~# iptables -S
    -P INPUT ACCEPT
    -P FORWARD DROP
    -P OUTPUT ACCEPT
    -N f2b-sshd
    -A INPUT -p tcp -m multiport --dports 2211 -j f2b-sshd
    -A INPUT -i eth0 -p udp -m udp --dport 64170 -j ACCEPT
    -A INPUT -i tun0 -j ACCEPT
    -A FORWARD -i tun0 -o eth0 -j ACCEPT
    -A FORWARD -i eth0 -o tun0 -j ACCEPT
    -A FORWARD -s 10.8.1.0/24 -d 10.8.1.0/24 -i wg0 -o wg0 -j ACCEPT
    -A FORWARD -s 10.8.1.0/24 -i wg0 -o eth0 -j ACCEPT
    -A FORWARD -d 10.8.1.0/24 -i eth0 -o wg0 -j ACCEPT
    -A FORWARD -i wg0 -o wg0 -j ACCEPT
    -A FORWARD -d 192.168.3.18/32 -i eth0 -o wg0 -p tcp -m tcp --dport 8123 -j ACCEPT
    -A f2b-sshd -s 64.225.72.213/32 -j REJECT --reject-with icmp-port-unreachable
    -A f2b-sshd -s 159.223.47.233/32 -j REJECT --reject-with icmp-port-unreachable
    -A f2b-sshd -j RETURN
    root@vpn:~#
     

     
    и не работает
     
    При этом как только обратно -P FORWARD ACCEPT сразу всё работает

    Всего записей: 308 | Зарегистр. 08-04-2006 | Отправлено: 18:49 13-05-2022 | Исправлено: i81, 18:50 13-05-2022
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    i81
    ну вероятно не хватает и обратного
    -A FORWARD -i wg0 -o eth0 -s 192.168.3.18 -p tcp -m tcp --sport 8123 -j ACCEPT
     
    p.s. если не сработает, то я жду вывода команд:
    iptables-save
    ip a
    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.

    Всего записей: 6468 | Зарегистр. 28-08-2008 | Отправлено: 18:59 13-05-2022 | Исправлено: Alukardd, 19:00 13-05-2022
    i81

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

    Цитата:
    ну вероятно не хватает и обратного

    Истина!
    Большущее СПАСИБО!!!
    Работает!
     
    А можно ещё вопрос пожалуйста, наверное более сложный и точно оффтопный (может хоть тему подскажите).
    В зависимости от наличия ответа на icmp запрос переписывать правила эти три с 192.168.3.18 на 192.168.1.5 при прочих равных.
    т.е. есть ответ от 192.168.3.18 активны правила:

    Код:
     
    iptables -t nat -A PREROUTING -d 11.11.11.11/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.3.18:8123
    iptables -A FORWARD -i eth0 -o wg0 -d 192.168.3.18 -p tcp -m tcp --dport 8123 -j ACCEPT
    iptables -A FORWARD -i wg0 -o eth0 -s 192.168.3.18 -p tcp -m tcp --sport 8123 -j ACCEPT
     

     
    нет ответа - первая тройка удаляется, а добавляются следующие:

    Код:
     
    iptables -t nat -A PREROUTING -d 11.11.11.11/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.5:8123
    iptables -A FORWARD -i eth0 -o wg0 -d 192.168.1.5 -p tcp -m tcp --dport 8123 -j ACCEPT
    iptables -A FORWARD -i wg0 -o eth0 -s 192.168.1.5 -p tcp -m tcp --sport 8123 -j ACCEPT
     

     
    Как только вернулся 3.18 возвращаем маршрутизацию обратно. При том желательно, что бы не один запрос, а хотябы несколько или какое-то время...  
    Получается своего рода программный кластер, с переключением нод

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



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    i81
    правила ACCEPT надо написать сразу все на постоянку, нет смысла их не писать. В целом это же касается и первого правила для DNAT, а второе по мере необходимости добавлять или убирать.
     
    Правило для DNAT надо будет менять каким-то внешним (по отношению к firewall) софтом, например написать скрипт, который будет либо висеть в фоне сам, либо по cron'у/system-timer'у запускать и выполнят проверку.
     
    Тема пр скриптам: UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

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

    Всего записей: 6468 | Зарегистр. 28-08-2008 | Отправлено: 19:28 13-05-2022 | Исправлено: Alukardd, 19:29 13-05-2022
    i81

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

    Цитата:
    Тема пр скриптам

    Большое Вам спасибо!
    Дай Вам Бог здоровья!
     
    Добавлено:
    Задача немного усложнилась.
    Alukardd, можете поможете?
     

    Цитата:
    3. PC: Debian (IP 192.168.3.18), весь трафик через wireguard-client (IP 10.8.1.3)

    У 192.168.1.5 весь трафик не может идти через wireguard-client (IP 10.8.1.4).  
    Я же правильно понимаю, что что бы это всё работало нужно что бы трафик на IP источника запроса (тот комп в интернете, который обращается к 11.11.11.11) шёл обязательно в туннель wireguard-client?

    Всего записей: 308 | Зарегистр. 08-04-2006 | Отправлено: 19:31 13-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