как в 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 }" но у меня почему-то не работает, хотя так бы облегчило жизнь! :(
|