Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » Dns proxy serever с поддержкой "черного" списка доменных имен [RSS Feed]

#1 Ноя. 22, 2016 20:16:00

Tsarneba
Зарегистрирован: 2016-11-22
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

Здравствуйте друзья.Помогите пожалуйста новичку справиться с непростой задачей. Добавить в прикрепленный файлик “Черный” список доменных имен.

Основная задача стоит в следующем:
Написать DNS прокси-сервер с поддержкой “черного” списка доменных имен.
Для параметров используется конфигурационный файл, считывающийся при запуске сервера;
“Черный” список доменных имен находится в конфигурационном файле;
Адрес вышестоящего сервера также находится в конфигурационном файле;
Сервер принимает запросы DNS-клиентов на стандартном порту;
Если запрос содержит доменное имя, включенное в “черный” список, сервер возвращает клиенту ответ, заданный конфигурационным файлом (варианты: not resolved, адрес в локальной сети, …).
Если запрос содержит доменное имя, не входящее в “черный” список, сервер перенаправляет запрос вышестоящему серверу, дожидается ответа и возвращает его клиенту.

ПРОШУ Вас помочь. Спасибо.

Прикреплённый файлы:
attachment dnschef.py (28,9 KБ)

Офлайн

#2 Ноя. 23, 2016 08:06:47

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2578
Репутация: +  58  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

прежде всего один вопрос…
почему не использовать для блек листа готовые варианты?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Ноя. 23, 2016 10:59:11

Tsarneba
Зарегистрирован: 2016-11-22
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

ZerG
Здравствуйте. “Вы написали- Почему не использовать готовые варианты?”.
Для меня это сложная задачка,не подскажите что конкретно имеете в виду? Может быть подскажите конкретные примеры? По гуглу,похожего я ничего не нашел, Для меня это направление новое,но пытаюсь разобраться.
Спасибо.

PS: Очень важно выполнить “Основную задачу” использую Python.

Офлайн

#4 Ноя. 23, 2016 11:04:28

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2578
Репутация: +  58  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

Ну основная задача как раз для нас остается загадкой!
Вы опишите пожалуйста суть задачи - ос на которой нужно это сделать а так же работать оно должно в локальной сети или локально на ПК. Без привязки к питону. Возможно есть готовые решения
например
https://github.com/gophergala/dnsp



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Отредактировано ZerG (Ноя. 23, 2016 11:06:53)

Офлайн

#5 Ноя. 23, 2016 12:03:25

Tsarneba
Зарегистрирован: 2016-11-22
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

Написать DNS прокси-сервер с поддержкой “черного” списка доменных имен.
Для параметров используется конфигурационный файл, считывающийся при запуске сервера;
“Черный” список доменных имен находится в конфигурационном файле;
Адрес вышестоящего сервера также находится в конфигурационном файле;
Сервер принимает запросы DNS-клиентов на стандартном порту;
Если запрос содержит доменное имя, включенное в “черный” список, сервер возвращает клиенту ответ, заданный конфигурационным файлом (варианты: not resolved, адрес в локальной сети, …).
Если запрос содержит доменное имя, не входящее в “черный” список, сервер перенаправляет запрос вышестоящему серверу, дожидается ответа и возвращает его клиенту.

Язык разработки: Python
Использование готовых библиотек: без ограничений.
Использованный чужой код должен быть помечен соответсвующими копирайтами, нарушать авторские права запрещено.
Остальные условия/допущения - на усмотрение кандидата.

Отредактировано Tsarneba (Ноя. 23, 2016 12:04:03)

Офлайн

#6 Ноя. 23, 2016 13:29:55

Tsarneba
Зарегистрирован: 2016-11-22
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

ZerG
Ну основная задача как раз для нас остается загадкой!Вы опишите пожалуйста суть задачи - ос на которой нужно это сделать а так же работать оно должно в локальной сети или локально на ПК. Без привязки к питону. Возможно есть готовые решения например https://github.com/gophergala/dnsp
Даже если это будет локальная сеть на 2 компьютера-такая программа подойдет. Основная задача для меня-простой код,с выполненными выше условиями….я тогда смогу в нем разобраться и каждую составную кода понять…


ps^ мне нужно выполнить это задание,для того чтобы получить возможность обучиться питону и проффисионала. Это тестовое задание.
Спасибо.

Офлайн

#7 Ноя. 23, 2016 15:09:41

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

Первая же ссылка в гугле - https://gist.github.com/andreif/6069838
Черный список и чтение думаю дописать можно и самому, что бы в будущем не разочаровать наставника профессионала

Офлайн

#8 Ноя. 23, 2016 16:40:22

Tsarneba
Зарегистрирован: 2016-11-22
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

Документ прикрепленный ничем не отличается от

VadimK
Первая же ссылка в гугле - https://gist.github.com/andreif/6069838Черный список и чтение думаю дописать можно и самому, что бы в будущем не разочаровать наставника профессионала
Загвозка в блеклисте.
 import dns.resolver
 
bls = ["zen.spamhaus.org", "spam.abuse.ch", "cbl.abuseat.org", "virbl.dnsbl.bit.nl", "dnsbl.inps.de", 
    "ix.dnsbl.manitu.net", "dnsbl.sorbs.net", "bl.spamcannibal.org", "bl.spamcop.net", 
    "xbl.spamhaus.org", "pbl.spamhaus.org", "dnsbl-1.uceprotect.net", "dnsbl-2.uceprotect.net", 
    "dnsbl-3.uceprotect.net", "db.wpbl.info"]
 
if len(sys.argv) != 2:
    print 'Usage: %s <ip>' %(sys.argv[0])
    quit()
 
myIP = sys.argv[1]
 
for bl in bls:
    try:
        my_resolver = dns.resolver.Resolver()
        query = '.'.join(reversed(str(myIP).split("."))) + "." + bl
        answers = my_resolver.query(query, "A")
        answer_txt = my_resolver.query(query, "TXT")
        print 'IP: %s IS listed in %s (%s: %s)' %(myIP, bl, answers[0], answer_txt[0])
    except dns.resolver.NXDOMAIN:
        print 'IP: %s NOT resolved %s' %(myIP, bl)
dns.resolver- ошибка не находит библиотеку…
Для меня это все ново )))))

Офлайн

#9 Ноя. 23, 2016 19:01:19

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

Убрать “try:”, вывести ошибку полностью на экран, поискать в гугле по ошибке. Нужная библиотека будет так же на первой странице поиска.

Офлайн

#10 Ноя. 23, 2016 21:22:34

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Dns proxy serever с поддержкой "черного" списка доменных имен

VadimK
не убрать try, а в except в конце дописать raise



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

  • Начало
  • » Network
  • » Dns proxy serever с поддержкой "черного" списка доменных имен[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version