The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
как в PF поменять одно правило, не перечитывая весь список, !*! sergetv, 15-Апр-07, 22:20  [смотреть все]
В связи с существенной разницей в цене на подключение с выделенным/динамическим IP в пользу последнего, и необходимостью иметь доступ к управлению серверами и просмотру статистики из внешней сети возникла такая идея:
Есть два (пока два) сервера с динамическими IP (S1 и S2). надо разрешить SSH и HTTP между ними, И ТОЛЬКО МЕЖДУ НИМИ. Каждый раз при смене IP на внешнем (подключенном к интернету интерфейсу) сервер S1 пишет этот адрес в файл S1.ip, а S2 соответственно в S2.ip на один из сайтов бесплатного хостинга по ftp (скажем http://www.MY.freehost.ru).
Скрипт запускаемый по крону раз в минуту на наждом из серверов (скажем S1) проверяет, не обновился ли http://www.MY.freehost.ru/S2.ip. Если обновился - скрипт должен поменять ОДНО правило файрвола, разрешающее SSH и HTTP к себе с того IP, что записан в S2.ip.
В IPFW можно было:
ipfw del 1000
ipfw add 1000 allow и т.д.
А как это реализовать в PF? т.е. не перечитывать всю таблицу заново..
Вариант использовать PF и IPFW самый простой его я знаю :-), может можно чисто средствами PF?
  • как в PF поменять одно правило, не перечитывая весь список, !*! reader, 01:12 , 16-Апр-07 (1)
    может задействовать таблици, которые могут грузится из файла


  • как в PF поменять одно правило, не перечитывая весь список, !*! idle, 11:55 , 16-Апр-07 (2)
    >В связи с существенной разницей в цене на подключение с выделенным/динамическим IP
    >в пользу последнего, и необходимостью иметь доступ к управлению серверами и
    >просмотру статистики из внешней сети возникла такая идея:
    >Есть два (пока два) сервера с динамическими IP (S1 и S2). надо
    >разрешить SSH и HTTP между ними, И ТОЛЬКО МЕЖДУ НИМИ. Каждый
    >раз при смене IP на внешнем (подключенном к интернету интерфейсу) сервер
    >S1 пишет этот адрес в файл S1.ip, а S2 соответственно в
    >S2.ip на один из сайтов бесплатного хостинга по ftp (скажем http://www.MY.freehost.ru).
    >
    >Скрипт запускаемый по крону раз в минуту на наждом из серверов (скажем
    >S1) проверяет, не обновился ли http://www.MY.freehost.ru/S2.ip. Если обновился - скрипт должен
    >поменять ОДНО правило файрвола, разрешающее SSH и HTTP к себе с
    >того IP, что записан в S2.ip.
    >В IPFW можно было:
    >ipfw del 1000
    >ipfw add 1000 allow и т.д.
    >А как это реализовать в PF? т.е. не перечитывать всю таблицу заново..
    >
    >Вариант использовать PF и IPFW самый простой его я знаю :-), может
    >можно чисто средствами PF?
    Одно правило нельзя поменять на лету, только таблицу, афаик.
    Мак адреса не можете использовать? Как правило вообще должно выглядеть?
    Всегда есть несколько способов добиться нужной цели.
    • как в PF поменять одно правило, не перечитывая весь список, !*! Sergetv, 12:53 , 16-Апр-07 (3)
      >Одно правило нельзя поменять на лету, только таблицу, афаик.
      >Мак адреса не можете использовать? Как правило вообще должно выглядеть?
      >Всегда есть несколько способов добиться нужной цели.

      Правило типа:
      pass in quick on $if_in proto tcp from $MY_IP to ($if_in)ports 22, 80 keep state

      менять надо $MY_IP

      • как в PF поменять одно правило, не перечитывая весь список, !*! domas, 14:51 , 17-Апр-07 (4)
        >>Одно правило нельзя поменять на лету, только таблицу, афаик.
        >>Мак адреса не можете использовать? Как правило вообще должно выглядеть?
        >>Всегда есть несколько способов добиться нужной цели.
        >
        >Правило типа:
        >pass in quick on $if_in proto tcp from $MY_IP to ($if_in)ports 22,
        >80 keep state
        >
        >менять надо $MY_IP

        table <my_ip>
        pass in quick on $if_in proto tcp from <my_ip> to ($if_in)ports 22, 80 keep state

        добавляем: pfctl -t my_ip -Ta 1.2.3.4
        удаляем: pfctl -t my_ip -Td 1.2.3.4 или все сразу pfctl -t my_ip -Tf

        • как в PF поменять одно правило, не перечитывая весь список, !*! Sergetv, 09:45 , 18-Апр-07 (5)
          >table <my_ip>
          >pass in quick on $if_in proto tcp from <my_ip> to ($if_in)ports 22, 80 keep state
          >
          >добавляем: pfctl -t my_ip -Ta 1.2.3.4
          >удаляем: pfctl -t my_ip -Td 1.2.3.4 или все сразу pfctl -t my_ip -Tf

          Ок, спасибо, это то, что надо!
          Пока не хватает опыта работы с PF, но это временно и поправимо :-)


          • как в PF поменять одно правило, не перечитывая весь список, !*! cj_nik, 16:20 , 06-Ноя-08 (6)
            >>table <my_ip>
            >>pass in quick on $if_in proto tcp from <my_ip> to ($if_in)ports 22, 80 keep state
            >>
            >>добавляем: pfctl -t my_ip -Ta 1.2.3.4
            >>удаляем: pfctl -t my_ip -Td 1.2.3.4 или все сразу pfctl -t my_ip -Tf
            >
            >Ок, спасибо, это то, что надо!
            >Пока не хватает опыта работы с PF, но это временно и поправимо
            >:-)

            А как быть если в правиле надо менять не IP адресс а название интерфейса или номера портов, или вообще набор правил менять динамически
            Тут на помощь приходят "Якоря" anchor


            В документации http://house.hcn-strela.ru/BSDCert/BSDA-course/apcs02.html#p... так же сказано было
            При помощи команды pfctl(8) можно переопределять значения макросов с помощью опции -D. Например:

            # pfctl -D friends="{ 192.168.1.1, 10.1.2.3 }"
            но у меня почему-то не работает, хотя так бы облегчило жизнь! :(




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

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