Действительно ли возможно выполнить сценарии в BIND на основе поиска

dir="${dir//+(\/)//}" использует ${PARAMETER/PATTERN/STRING} расширение. Разрушение его в этом случае (использующий синтаксис, напоминающий о Perl /x модификатор regex, не допустимый синтаксис Bash):

${       # start expansion
  dir    # the parameter being expanded
  /      # separates parameter from pattern
  /      # double slash means replace all instead of replace first
  +(\/)  # the pattern we're looking for
  /      # separates pattern from replacement
  /      # the replacement text
}        # end expansion

С extglob включенный, +(PATTERN) средства одни или несколько случаев ШАБЛОНА. Шаблон \/ соответствует наклонной черте (обратная косая черта должна указать, что это не наклонная черта, которая разделяет шаблон и текст замены), таким образом, +(\/) соответствия один или несколько / персонажи.

9
01.02.2012, 11:59
3 ответа

Вы могли сделать так путем контроля журнала связывать-сервера (вход запроса должен быть включен).Удачи...

0
27.01.2020, 20:08
  • 1
    Обратите внимание, что вход всех связывает запросы, серьезный дренаж производительности. Я не рекомендовал бы это ни на каком производственном уровне авторитетный сервер. –  Shadur 03.02.2012, 23:19
  • 2
    Зависит от загрузки того связывать-сервера. И можно было записать журналы в электронный диск, например. /dev/shm, также. –  Nils 03.02.2012, 23:41
  • 3
    и затем выполненный swatch или OSSEC на журналах для вызова сценария. не очень хорошая идея в конечном счете, так или иначе. –  Jodie C 08.04.2012, 03:59

Никакие такие вещи как события не реализованы в, связывают, этому не нужно это.

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

Установка маршрутов кажется хорошей идеей также в цели, с чем Вы хотите достичь, связывают, и инициированное выполнение сценария будет неэффективно также: Вы имеете к:

for each dest IP 
look up through your database  
if match set the route
then the OS will see and use the root

Установка загрузок маршрутов не является проблемой и не будет влиять на производительность значимым способом. Сколько маршрутов Вы думаете, что корпоративные маршрутизаторы имеют? сотни? не совсем... И у них не обязательно есть необычная аппаратная конфигурация. Серьезно, Вы в порядке, серьезные операционные системы специально предназначены, чтобы обработать много маршрутов и оптимизировать взгляд.

Кроме того, то, что Вы хотели сделать во-первых, использует базу данных сверху таблицы маршрутизации, которая была бы другим видом базы данных. Сохраните это простым. На серверах BGP много маршрутов на самом деле выбраны/предпочтены по политическим/финансовым причинам, каждый ISP/организация может сделать это, и они все добавляют определенные маршруты с этой целью. Стоимость транзита или постановления суда часто является причиной таких мер.

0
27.01.2020, 20:08

Я могу думать о двух дополнительных опциях, которые не требуют парсинга журналы BIND или вмешательства с BIND вообще.

1) Зеркальное отражение порта - копирует пакеты и отправляет их в отдельный порт, где приложение слушает, анализируя запросы DNS и принятие мер. dpkt или scapy или подобные пакетные библиотеки обработки помогут Вам проанализировать необработанные запросы.

2) Используйте некоторый тип пакетной библиотеки сниффинга для пассивного контроля запросов. Вот использование в качестве примера scapy:

from scapy.all import *

def handler(req):
    if req.haslayer(DNS) and req.getlayer(DNS).qr == 0:
        ip = req.getlayer(IP)
        dns = req.getlayer(DNS)

        q = dns.qd
        print q.qname # simply print domain name


if __name__ == '__main__':
    sniff(iface="eth0", filter="udp and port 53", prn=handler, store=0)

Очевидно, это - просто примитивный пример. Это только печатает название домена, который был запрошен, но можно, конечно, добавить много логики. При ссылке на scapy документацию, Вы найдете, что все поля из запроса DNS легко доступны.

1
27.01.2020, 20:08
  • 1
    Это выглядит интересным. Я изучу это. Спасибо :-) –  Gunnar 09.04.2012, 11:59
  • 2
    Это выглядит интересным. Я изучу это. Спасибо :-) –  Gunnar 09.04.2012, 11:59

Теги

Похожие вопросы