The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Не работает интернет ipfw one_pass, !*! sasiska, 30-Июл-17, 22:34  [смотреть все]
Товарищи, всем добрый вечер, прошу помочь разобраться
Сразу надо попросить прощение за некоторый мусор в конфиге

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

Есть следующий файл с правилами:

#!/bin/sh.

###start here###
FwCMD="/sbin/ipfw -q"
LanOut="em1"
LanOut2="em2"
LanIn="em0"
LanVPN="tun0"
IpOut="1.1.1.1"
IpOut2="2.2.2.2"
GwOut="1.1.1.2"
IpIn="192.168.0.2"
NetMask="21"
NetIn="192.168.0.0"
${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any


###deny-icmp-DDOS###
${FwCMD} add deny ip from any to 10.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
#${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
${FwCMD} add deny icmp from any to any frag
${FwCMD} add deny icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny icmp from any to 255.255.255.255 out via ${LanOut}
${FwCMD} add deny ip from any to 10.0.0/8 in via ${LanOut2}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut2}
#${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut2}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut2}
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut2}
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut2}
${FwCMD} add deny icmp from any to 255.255.255.255 in via ${LanOut2}
${FwCMD} add deny icmp from any to 255.255.255.255 out via ${LanOut2}
#Следующее правило включено только в one_pass=1
#${FwCMD} add deny tcp from any to ${IpOut} 22,80,10050,10051,3128,3129,3130,10000, 139, 445 via ${LanOut}
#${FwCMD} add deny icmp from any to ${IpOut} via ${LanOut}
#${FwCMD} add 500 deny icmp from any to me in icmptype 5,9,13,14,15,16,17


###IPFW-NAT###
${FwCMD} nat 1 config if ${LanOut} same_ports reset log
${FwCMD} nat 2 config if ${LanOut2} same_ports reset log
${FwCMD} add nat 1 ip4 from any to any via ${LanOut}
${FwCMD} add nat 2 ip4 from any to any via ${LanOut2}
${FwCMD} add allow ip from any to any via ${LanIn}
#${FwCMD} add nat 1 config log if ${LanOut} reset same_ports deny_in \

###Speed###
${FwCMD} pipe 1 config bw 99Mbit/s
${FwCMD} pipe 11 config bw 99Mbit/s
${FwCMD} queue 1 config pipe 1 mask dst-ip 0xffffffff
${FwCMD} queue 2 config pipe 11 mask src-ip 0xffffffff
${FwCMD} add queue 1 ip from any to 192.168.0.0/21 via ${LanOut}
${FwCMD} add queue 2 ip from 192.168.0.0/21 to any via ${LanOut}

###SecondSpeed###
${FwCMD} pipe 2 config bw 9Mbit/s
${FwCMD} pipe 22 config bw 9Mbit/s
${FwCMD} queue 3 config pipe 2 mask dst-ip 0xffffffff
${FwCMD} queue 4 config pipe 22 mask src-ip 0xffffffff
${FwCMD} add queue 3 ip from any to 192.168.0.0/21 via ${LanOut2}
${FwCMD} add queue 4 ip from 192.168.0.0/21 to any via ${LanOut2}

###Gods###
${FwCMD} add allow ip from 192.168.7.224/27 to any
${FwCMD} add allow ip from any to 192.168.7.224/27


###SQUID###
#${FwCMD} add skipto 3000 all from 192.168.7.224/27 to any #exceptions squid
#${FwCMD} add skipto 3000 all from any to 192.168.7.224/27 #exceptions squid
#${FwCMD} add skipto 3000 ip from 192.168.0.0/22 to any #exceptions squid
#${FwCMD} add skipto 3000 ip from any to 192.168.0.0/22 #exceptions squid
${FwCMD} add allow tcp from me to any out via ${LanOut} keep-state uid squid
${FwCMD} add allow tcp from me to any out via ${LanOut2} keep-state uid squid
${FwCMD} add fwd 127.0.0.1,3129 tcp from 192.168.0.0/22 to any 80,8080 via ${LanOut}
${FwCMD} add fwd 127.0.0.1,3129 tcp from 192.168.0.0/22 to any 80,8080 via ${LanOut2}
${FwCMD} add fwd 127.0.0.1,3127 tcp from 192.168.0.0/22 to any 443 via ${LanOut}
${FwCMD} add fwd 127.0.0.1,3127 tcp from 192.168.0.0/22 to any 443 via ${LanOut2}

###OpenVPN###
${FwCMD} add allow ip from any to any via tun0
${FwCMD} add allow ip from any to me 1194
${FwCMD} add allow ip from 192.168.11.0/24 to me
${FwCMD} add allow ip from me to 192.168.11.0/24

###IPsec_l2tp###
${FwCMD} add allow tcp from any to me dst-port 1701 setup keep-state

###All_other_rules#######
###Tcp_connection###
${FwCMD} add allow tcp from any to any established

###ishodyashie paketi###
#${FwCMD} add allow ip from ${IpOut} to any out xmit rl1

###SKYPE###
${FwCMD} add allow ip from any to any 9010 via ${LanOut}
${FwCMD} add allow ip from any 9010 to any via ${LanOut}

###DNS###
${FwCMD} add allow udp from any to any 53 via ${LanOut}
${FwCMD} add allow udp from any 53 to any via ${LanOut}
${FwCMD} add allow tcp from any to any 53 via ${LanOut}

${FwCMD} add allow udp from any to any 53 via ${LanOut2}
${FwCMD} add allow udp from any 53 to any via ${LanOut2}
${FwCMD} add allow tcp from any to any 53 via ${LanOut2}

###NTPd###
${FwCMD} add allow udp from any to any 123 via ${LanOut}
${FwCMD} add allow udp from any to any 123 via ${LanOut2}

###FTP###
${FwCMD} add allow tcp from me 21,20 to any 21, 20 via ${LanOut}
${FwCMD} add allow tcp from any 21, 20 to me 21, 20 via ${LanOut}
###SIP, Messenger and other###
${FwCMD} add allow tcp from any to ${IpOut} 50000-50100 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut2} 50000-50100 via ${LanOut2}

${FwCMD} add allow icmp from any to any icmptypes 0,8,11
#${FwCMD} add allow tcp from any to ${IpOut} 80 via ${LanOut}

###SMTP###
${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut2} 25 via ${LanOut2}

###SSH###
#${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}

${FwCMD} add pass udp from any 87 to any via ${LanOut}
${FwCMD} add pass udp from any to any 87 via ${LanOut}
${FwCMD} add pass udp from any 87 to any via ${LanOut2}
${FwCMD} add pass udp from any to any 87 via ${LanOut2}

${FwCMD} add pass tcp from any to any 1024 via ${LanOut}
${FwCMD} add pass tcp from any 1024 to any via ${LanOut}
${FwCMD} add pass tcp from any to any 1024 via ${LanOut2}
${FwCMD} add pass tcp from any 1024 to any via ${LanOut2}

###https2###
${FwCMD} add pass tcp from any to any 9443 via ${LanOut}
${FwCMD} add pass tcp from any 9443 to any via ${LanOut}
${FwCMD} add pass tcp from any to any 9443 via ${LanOut2}
${FwCMD} add pass tcp from any 9443 to any via ${LanOut2}

###Jabber###
${FwCMD} add pass tcp from any 8010 to any via ${LanOut}
${FwCMD} add pass tcp from any to any 8010 via ${LanOut}

${FwCMD} add pass tcp from any 8010 to any via ${LanOut2}
${FwCMD} add pass tcp from any to any 8010 via ${LanOut2}

###pop-imap###
${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut2} 143 via ${LanOut2}
${FwCMD} add allow tcp from ${NetIn}/${NetMask} to ${IpIn} 110 via ${LanIn}

###Na vnutrinniy interface##
${FwCMD} add pass ip from 192.168.0.0/21 to 192.168.0.0/21 via ${LanIn}
#${FwCMD} add allow tcp from any to any via ${LanIn}
${FwCMD} add allow udp from any to any via ${LanIn}
${FwCMD} add allow icmp from any to any via ${LanIn}

${FwCMD} add pass tcp from 192.168.0.0/21 to any 21,49000-65535 keep-state
###Mail, FTP, HTTPS, and other###
${FwCMD} add pass tcp from 192.168.0.0/21 to any http,https,21,9443,3128,21,20,993,465,587,143,110,995,25,15100,2082,8443,443 in via ${LanIn}
${FwCMD} add pass tcp from any http,https,21,9443,3128,993,465,587,143,110,995,25,15100,2082,8443,443 to 192.168.0.0/21 out via ${LanIn}
###ICQ###
${FwCMD} add allow tcp from 192.168.0.0/21 to any 5190 in via ${LanIn}
${FwCMD} add allow tcp from any 5190 to 192.168.0.0/21 out via ${LanIn}
###RDP###
${FwCMD} add pass tcp from any 3389 to any via ${LanIn}
${FwCMD} add pass tcp from any to any 3389 via ${LanIn}
###IBank###
${FwCMD} add allow tcp from 192.168.0.0/21 to any 9091 in via ${LanIn}
${FwCMD} add allow tcp from any 9091 to 192.168.0.0/21 out via ${LanIn}


${FwCMD} add deny ip from any to any

Проблема заключается в том, что диапазон ip адресов из блока ###Gods### перестаёт работать при включении one_pass
Даже при написании явных правил, например allow ip from any 80,443 to any 80,443
интернет не появляется.
Пробовал указывать интерфейс, и даже направления
${FwCMD} add allow ip from 192.168.7.224/27 to any in via ${LanIn}
${FwCMD} add allow ip from any to 192.168.7.224/27 out via ${LanIn}

Но всё равно не работает :(

если добавить allow ip from any to any, то всё начинает работать

Кто может подсказать в чём дело?

  • Не работает интернет ipfw one_pass, !*! михалыч, 05:13 , 31-Июл-17 (1)
    • Не работает интернет ipfw one_pass, !*! sasiska, 09:40 , 31-Июл-17 (2)
      > порядок прохождения пакетов при one_pass=1 меняется
      > диапазон адресов из блока 192.168.0.0/21 перекрывает блок 192.168.7.224/27
      > есть опечатки
      > ${FwCMD} add deny ip from any to 10.0.0/8 in via ${LanOut}
      > ${FwCMD} add deny ip from any to 10.0.0/8 in via ${LanOut2}

      Да, спасибо за ответ. Я знаю, что перекрывает, суть была в том, что бы дать 7.224-254 дать полный доступ в интернет
      Я думал, что обработка идёт по порядку с первого правила к последнему, и после НАТ-а у этих IP адресов стоит allow any

      про 10.0.0/8, это когда-то мне было лень написать исключение для openvpn, который у меня висит на 10.10.0.0 адресе, надо бы исправить, а то я уже и забыл

      • Не работает интернет ipfw one_pass, !*! sasiska, 09:56 , 31-Июл-17 (3)
        >[оверквотинг удален]
        >> есть опечатки
        >> ${FwCMD} add deny ip from any to 10.0.0/8 in via ${LanOut}
        >> ${FwCMD} add deny ip from any to 10.0.0/8 in via ${LanOut2}
        > Да, спасибо за ответ. Я знаю, что перекрывает, суть была в том,
        > что бы дать 7.224-254 дать полный доступ в интернет
        > Я думал, что обработка идёт по порядку с первого правила к последнему,
        > и после НАТ-а у этих IP адресов стоит allow any
        > про 10.0.0/8, это когда-то мне было лень написать исключение для openvpn, который
        > у меня висит на 10.10.0.0 адресе, надо бы исправить, а то
        > я уже и забыл

        Прошу прощение, я забыл указать очень важную вещь
        пинг с тех IP адресов идёт и работает всё, кроме именно 80 и 443 портов, при том, что стоит allow all

        И если поставить заворачивание трафика с squid по 21 маске, то всё начинает работать

  • Не работает интернет ipfw one_pass, !*! Дум Дум, 13:08 , 31-Июл-17 (4)
    • Не работает интернет ipfw one_pass, !*! sasiska, 21:28 , 31-Июл-17 (5)
      > 'ipfw list' при one_pass=1 можно увидеть? В начале правил всякие #${FwCMD} add
      > deny ip from any to 192.168.0.0/16 in via ${LanOut}/${LanOut2} точно неактивны?

      Да, спасибо, точно не активны:

      root@gate:/ # sysctl net.inet.ip.fw.one_pass=1
      net.inet.ip.fw.one_pass: 1 -> 1
      root@gate:/ # ipfw list
      00100 check-state
      00200 allow ip from any to any via lo0
      00300 deny ip from any to 127.0.0.0/8
      00400 deny ip from 127.0.0.0/8 to any
      00500 deny ip from any to xx.xx.xx.xx tcpflags !syn,!fin,!ack,rst
      00600 deny ip from xx.xx.xx.xx to any tcpflags !syn,!fin,!ack,rst
      00700 deny ip from any to xx.xx.xx.xx
      00800 deny ip from xx.xx.xx.xx to any
      00900 allow ip from any to 10.10.0.0/24 in via em1
      01000 deny ip from any to 10.0.0.0/8 in via em1
      01100 deny ip from any to 172.16.0.0/12 in via em1
      01200 deny ip from any to 0.0.0.0/8 in via em1
      01300 deny ip from any to 169.254.0.0/16 in via em1
      01400 deny ip from any to 240.0.0.0/4 in via em1
      01500 deny icmp from any to any frag
      01600 deny icmp from any to 255.255.255.255 in via em1
      01700 deny icmp from any to 255.255.255.255 out via em1
      01800 deny ip from any to 10.0.0.0/8 in via em2
      01900 deny ip from any to 172.16.0.0/12 in via em2
      02000 deny ip from any to 0.0.0.0/8 in via em2
      02100 deny ip from any to 169.254.0.0/16 in via em2
      02200 deny ip from any to 240.0.0.0/4 in via em2
      02300 deny icmp from any to 255.255.255.255 in via em2
      02400 deny icmp from any to 255.255.255.255 out via em2
      02500 deny tcp from any to 11.11.11.12 dst-port 22,80,10050,10051,3128,3129,3130,10000,139,445 via em1
      02600 deny icmp from 11.11.11.1 to 192.168.12.4 via em2
      02700 nat 1 ip4 from any to any via em1
      02800 nat 2 ip4 from any to any via em2
      02900 allow ip from any to any via em0
      03000 queue 1 ip from any to 192.168.0.0/21 via em1
      03100 queue 2 ip from 192.168.0.0/21 to any via em1
      03200 queue 3 ip from any to 192.168.0.0/21 via em2
      03300 queue 4 ip from 192.168.0.0/21 to any via em2
      03400 allow ip from 192.168.7.224/27 to any
      03500 allow ip from any to 192.168.7.224/27
      03600 allow tcp from me to any out via em1 uid squid keep-state
      03700 allow tcp from me to any out via em2 uid squid keep-state
      03800 fwd 127.0.0.1,3129 tcp from 192.168.0.0/22 to any dst-port 80,8080 via em1
      03900 fwd 127.0.0.1,3129 tcp from 192.168.0.0/22 to any dst-port 80,8080 via em2
      04000 fwd 127.0.0.1,3127 tcp from 192.168.0.0/22 to any dst-port 443 via em1
      04100 fwd 127.0.0.1,3127 tcp from 192.168.0.0/22 to any dst-port 443 via em2
      04200 allow ip from any to any via tun0
      04300 allow ip from any to me dst-port 1194
      04400 allow ip from 192.168.11.0/24 to me
      04500 allow ip from me to 192.168.11.0/24
      04600 allow tcp from any to me dst-port 1701 setup keep-state
      04700 allow ip from y.y.y.y to me
      04800 allow ip from me to y.y.y.y
      04900 allow ip from q.q.q.q to me
      05000 allow ip from me to q.q.q.q
      05100 allow ip from any to w.w.w.w
      05200 allow ip from w.w.w.w to any
      05300 allow ip from any to e.e.e.e
      05400 allow ip from e.e.e.e to any
      05500 allow ip from any to r.r.r.r
      05600 allow ip from r.r.r.r to any
      05700 allow ip from any 60179 to any dst-port 60179
      05800 allow ip from any 60179 to any dst-port 60179
      05900 allow ip from 192.168.0.40 to any
      06000 allow ip from any to 192.168.0.40
      06100 allow ip from any to t.t.t.t
      06200 allow ip from t.t.t.t to any
      06300 allow tcp from any to any established
      06400 allow ip from any to any dst-port 9010 via em1
      06500 allow ip from any 9010 to any via em1
      06600 allow udp from any to any dst-port 53 via em1
      06700 allow udp from any 53 to any via em1
      06800 allow tcp from any to any dst-port 53 via em1
      06900 allow udp from any to any dst-port 53 via em2
      07000 allow udp from any 53 to any via em2
      07100 allow tcp from any to any dst-port 53 via em2
      07200 allow udp from any to any dst-port 123 via em1
      07300 allow udp from any to any dst-port 123 via em2
      07400 allow tcp from me 21,20 to any dst-port 21,20 via em1
      07500 allow tcp from any 21,20 to me dst-port 21,20 via em1
      07600 allow ip from any 20,21 to any dst-port 20,21 via em1
      07700 allow tcp from any to y.y.y.y dst-port 50000-50100 via em1
      07800 allow tcp from any to 192.168.12.4 dst-port 50000-50100 via em2
      07900 allow icmp from any to any icmptypes 0,8,11
      08000 allow tcp from any to y.y.y.y dst-port 25 via em1
      08100 allow tcp from any to 192.168.12.4 dst-port 25 via em2
      08200 allow udp from any 87 to any via em1
      08300 allow udp from any to any dst-port 87 via em1
      08400 allow udp from any 87 to any via em2
      08500 allow udp from any to any dst-port 87 via em2
      08600 allow tcp from any to any dst-port 1024 via em1
      08700 allow tcp from any 1024 to any via em1
      08800 allow tcp from any to any dst-port 1024 via em2
      08900 allow tcp from any 1024 to any via em2
      09000 allow tcp from any to any dst-port 9443 via em1
      09100 allow tcp from any 9443 to any via em1
      09200 allow tcp from any to any dst-port 9443 via em2
      09300 allow tcp from any 9443 to any via em2
      09400 allow tcp from any 8010 to any via em1
      09500 allow tcp from any to any dst-port 8010 via em1
      09600 allow tcp from any 8010 to any via em2
      09700 allow tcp from any to any dst-port 8010 via em2
      09800 allow tcp from any to y.y.y.y dst-port 143 via em1
      09900 allow tcp from any to 192.168.12.4 dst-port 143 via em2
      10000 allow tcp from 192.168.0.0/21 to 192.168.0.4 dst-port 110 via em0
      10100 allow ip from 192.168.0.0/21 to 192.168.0.0/21 via em0
      10200 allow udp from any to any via em0
      10300 allow icmp from any to any via em0
      10400 allow tcp from 192.168.0.0/21 to any dst-port 21,49000-65535 keep-state
      10500 allow tcp from 192.168.0.0/21 to any dst-port 80,443,21,9443,3128,21,20,993,465,587,143,110,995,25,15100,2082,8443,443 in via em0
      10600 allow tcp from any 80,443,21,9443,3128,993,465,587,143,110,995,25,15100,2082,8443,443 to 192.168.0.0/21 out via em0
      10700 allow tcp from 192.168.0.0/21 to any dst-port 5190 in via em0
      10800 allow tcp from any 5190 to 192.168.0.0/21 out via em0
      10900 allow tcp from any 3389 to any via em0
      11000 allow tcp from any to any dst-port 3389 via em0
      11100 allow tcp from 192.168.0.0/21 to any dst-port 9091 in via em0
      11200 allow tcp from any 9091 to 192.168.0.0/21 out via em0
      11300 deny ip from any to any
      65535 allow ip from any to any

      правило с номером 2500 включено, так как с ван-пассом на 1 часть пакетов, например 80, 3128 и перечисленные порты, видны из внешнего мира, поэтому пришлось закрыть их руками
      Когда выключаю one pass, то правило 2500 отключал

      И я не могу понять, почему если трафик загонять на прокси, то проблем нету, но если выпускать минуя squid, то проблемы есть.

      • Не работает интернет ipfw one_pass, !*! Дум Дум, 14:11 , 01-Авг-17 (6)
        • Не работает интернет ipfw one_pass, !*! sasiska, 19:32 , 02-Авг-17 (7)
          >>> если добавить allow ip from any to any, то всё начинает работать
          > это "any to any", при котором всё, вроде, работает, как хочется- это:
          > 02900 allow ip from any to any via em0?

          em0 - интерфейс внутренний сети

          em1 - провайдер 1
          em2 - провайдер 2

          По умолчанию разрешаю всему трафику проходить в внутренний интерфейс

          LanOut="em1"
          LanOut2="em2"
          LanIn="em0"
          LanVPN="tun0"


          • Не работает интернет ipfw one_pass, !*! Дум Дум, 08:18 , 03-Авг-17 (8)
            • Не работает интернет ipfw one_pass, !*! sasiska, 21:57 , 07-Авг-17 (9)
              >>> 02900 allow ip from any to any via em0?
              >> По умолчанию разрешаю всему трафику проходить в внутренний интерфейс
              > и при такой конфигурации годов по 80, 443 портам напрямую всё-равно не
              > пропускает?

              Нет, в том то и дело, что не пропускает:
              02900 allow ip from any to any via em0
              правило идёт после NAT-a

              но при этом, даже если в самом конце написать allow ip from any to any, то порт начинает работать
              Бог его знает в чём проблема

              • Не работает интернет ipfw one_pass, !*! Дум Дум, 18:33 , 10-Авг-17 (10)
                • Не работает интернет ipfw one_pass, !*! ishida, 16:33 , 16-Авг-17 (11)
                • Не работает интернет ipfw one_pass, !*! sasiska, 22:38 , 03-Апр-19 (12)
                  >[оверквотинг удален]
                  >> правило идёт после NAT-a
                  >> но при этом, даже если в самом конце написать allow ip from
                  >> any to any, то порт начинает работать
                  >> Бог его знает в чём проблема
                  > вот жеж...
                  > Может попробовать "11300 deny ip from any to any" заменить на:
                  > 11300 deny log ip from any to any via em0
                  > 11400 deny log ip from any to any via em1
                  > 11500 deny log ip from any to any via em2
                  > и посмотреть?

                  С огромным опозданием я говорю спасибо, и действительно, не хватало правила после NAT:
                  ${FwCMD} add allow ip from ${IpOut} to any
                  ${FwCMD} add allow ip from ${IpOut2} to any




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру