alterator-bind-0.1/ 0000755 0000000 0000000 00000000000 10634472207 0014264 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/Makefile 0000644 0000000 0000000 00000001036 10634472207 0015724 0 ustar 00root root 0000000 0000000 NAME=bind DESCRIPTION="DNS Server" INSTALL=/usr/bin/install HELPER_DIR=$(prefix)/libexec/alterator-bind all: clean: install: install-backend install-tools install-po install-html install-ui include /usr/share/alterator/build/po.mak include /usr/share/alterator/build/ui2.mak include /usr/share/alterator/build/backend.mak include /usr/share/alterator/build/fbi.mak include /usr/share/alterator/build/html-messages.mak install-tools: for i in helpers/*;do \ [ -x $$i ] && $(INSTALL) -Dpm 755 $$i $(HELPER_DIR)/`basename $$i`; \ done alterator-bind-0.1/applications/ 0000755 0000000 0000000 00000000000 10634472207 0016752 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/applications/bind-options.desktop 0000644 0000000 0000000 00000000400 10634472207 0022744 0 ustar 00root root 0000000 0000000 [Desktop Entry] Encoding=UTF-8 Type=Application Categories=X-Alterator-Servers Icon=bind-options Terminal=false Name=DNS server (general options) Name[ru_RU]=DNS cервер (общие параметры) X-Alterator-URI=/bind-options X-Alterator-UI=html alterator-bind-0.1/backend3/ 0000755 0000000 0000000 00000000000 10634472207 0015736 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/backend3/bind-options 0000755 0000000 0000000 00000007101 10634472207 0020270 0 ustar 00root root 0000000 0000000 #!/bin/sh BIND_CONF="/var/lib/bind/etc/options.conf" PATH="/usr/libexec/alterator-bind/:$PATH" _() { LANG=${in_language%%;*}.utf8 gettext "alterator-bind" "$1" } ### forwarders / allow-query / allow-recursion avail_objects() { sed -nr "/^[[:space:]]*$1/ {s,.*\{([^\}]*)\}.*,\1,;p}" "$BIND_CONF"| tr ';' '\n'| sed -r 's,[[:space:]]*([/a-z0-9\.]+).*,\1, /^[[:space:]]*$/ d' } delete_objects() { sed -r "s,^([[:space:]]*$1.*)[[:space:]]*$2[[:space:]]*;(.*),\1\2," -i "$BIND_CONF" } new_objects() { sed -r "s,^([[:space:]]*//[[:space:]]*$1)[[:space:]]*.*,\1 {};," -i "$BIND_CONF" sed -r "s,^([[:space:]]*)(//)?([[:space:]]*$1)[[:space:]]*\{([^}]*)\},\1\3 {\4$2;}," -i "$BIND_CONF" } ### forward read_forward() { sed -nr '/^[[:space:]]*forward[[:space:]]/ {s,^[[:space:]]*forward[[:space:]]+([a-z]+).*,\1,;p}' "$BIND_CONF" } avail_forward() { echo '("first") ("only")' } write_forward() { sed -r "s,^([[:space:]]*)(//)?forward[[:space:]]+.*,\1forward $1;," -i "$BIND_CONF" } ### config normalization fix_config() { #try to fix config if we need it normalize_config "$BIND_CONF" >"$BIND_CONF.new" if cmp "$BIND_CONF" "$BIND_CONF.new" >&2 ;then rm -f "$BIND_CONF.new" else chown root:named "$BIND_CONF.new" chmod 640 "$BIND_CONF.new" mv -f "$BIND_CONF.new" "$BIND_CONF" fi } ### initial actions fix_config #turn off auto expansion set -f . /usr/share/alterator/build/backend3.sh ipregexp="([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])([.]([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9+]|25[0-5])){3}" maskregexp="(/[0-9]|/[12][0-9]|/3[0-2])?" netregexp="^($ipregexp$maskregexp|none|localhost|any|localnets)$" net_required() { if [ "$in_orig_action" = "new" ] && [ "$in_type" = "allow-query" -o "$in_type" = "allow-recursion" ] ;then echo "#t" else echo "#f" fi } on_message() { case "$in_action" in constraints) echo '(' printf 'ip_name (required %s label "%s" ipv4-address #t)' \ "$([ "$in_orig_action" = "new" -a "$in_type" = "forwarders" ] && echo "#t" || echo "#f")" \ "`_ "IP address"`" printf 'net_name (required %s label "%s" match ("%s" "%s"))' \ "$(net_required)" \ "`_ "Network address"`" \ "$netregexp" \ "`_ "Invalid network address"`" printf 'forwarders (label "%s")' "`_ "Forwarding servers"`" printf 'allow-query (label "%s")' "`_ "Networks are allowed to make simple queries"`" printf 'allow-recursion (label "%s")' "`_ "Networks are allowed to make recursive queries"`" printf 'forward (label "%s")' "`_ "Forwarding mode"`" printf 'forwarders_length (exclude (0 forward))' echo ')' ;; list) echo '(' case "$in__objects" in forwarders|allow-query|allow-recursion) avail_objects "$in__objects"|sed 's,.*,("&"),' ;; forward) avail_forward ;; esac echo ')' ;; read) echo '(' printf ' forwarders_length %s' "$(avail_objects "forwarders"|wc -l)" printf ' forward "%s"' "$(read_forward)" echo ')' ;; write) [ -n "$in_forward" ] && write_forward "$in_forward" service bind reload >&2 echo '()' ;; new) local name="${in_ip_name:-$in_net_name}" if avail_objects "$in_type"|grep -qs "^$name$"; then printf '(error "%s")' "`_ "Same IP/Network already exists"`" else [ -n "$name" -a -n "$in_type" ] && new_objects "$in_type" "$name" service bind reload >&2 echo '()' fi ;; delete) delete_objects "${in__objects%%/*}" "${in__objects#*/}" service bind reload >&2 echo '()' ;; *) echo '#f' ;; esac } message_loop alterator-bind-0.1/backend3/template-bind-options 0000755 0000000 0000000 00000001135 10634472207 0022102 0 ustar 00root root 0000000 0000000 #!/bin/sh #turn off auto expansion set -f _() { LANG=${in_language%%;*}.utf8 gettext "alterator-bind" "$1" } . /usr/share/alterator/build/backend3.sh on_message() { case "$in_action" in #information for renderer template) echo '(' echo ' template "form"' echo ' url "bind-options.html"' echo ' help "bind-options.html"' echo ' translate "alterator-bind"' echo ')' ;; info) echo '(' printf ' title "%s"' "`_ "DNS server"`" printf ' description "%s"' "`_ "DNS server administration: common options"`" echo ')' ;; *) echo '#f' ;; esac } message_loop alterator-bind-0.1/helpers/ 0000755 0000000 0000000 00000000000 10634472207 0015726 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/helpers/normalize_config 0000755 0000000 0000000 00000001315 10634472207 0021201 0 ustar 00root root 0000000 0000000 #!/bin/gawk -f BEGIN { forwarders = 0; } #C style comments detection /(^|[[:space:]]+)\/\*([[:space:]]+|$)/ { comment = 1; } /(^|[[:space:]]+)\*\/([[:space:]]+|$)/ { comment = 0; } #join forwarders option into one string /(^|[[:space:]]+)(forwarders|allow-query|allow-recursion)([[:space:]]+|$)/ { if (!comment) { line=$0; forwarders=1; foundat=FNR; } } /{/ { if (forwarders && FNR != foundat) { line = line $0; foundat=FNR; } } /}/ { if (forwarders) { if (FNR != foundat) line = line $0; print line; forwarders = 0; next; } } #default action { if (forwarders) { if (FNR != foundat) line = line $0; foundat = FNR; } else print $0; } alterator-bind-0.1/html/ 0000755 0000000 0000000 00000000000 10634472207 0015230 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/html/fbi/ 0000755 0000000 0000000 00000000000 10634472207 0015770 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/html/fbi/bind-options.html 0000644 0000000 0000000 00000006321 10634472207 0021265 0 ustar 00root root 0000000 0000000
DNS (Domain Name System) — система преобразования символьных имён компьютеров в IP-адреса и наоборот — это одна из самых часто используемых служб Internet. DNS-серверы образуют иерархическую структуру, на самом нижнем уровне которой, как правило, располагаются DNS-серверы вашего интернет-провайдера. На верхних уровнях располагаются так называемые корневые серверы, хранящие информацию о доменах верхнего уровня, например, com. DNS — это распределённое хранилище данных, где каждый DNS-сервер хранит информацию только о части обслуживаемых им машин.
Клиентские машины постоянно запрашивают службу DNS, поэтому очень часто бывает удобно ради экономии траффика и увеличения скорости работы разместить внутри офисной сети свой сервер DNS. Этот сервер будет производить запросы на вышестоящие серверы и сохранять на некоторые время их результаты (кешировать).
"" — это серверы, к которым будет обращаться ваш сервер в случае отсутствия сохраненных ранее запросов. А параметр "" — определяет правила работы с этими серверами:
Оставшиеся два списка позволяют указать сети, которым позволено производить простые и рекурсивные запросы к службе DNS. Это может потребоваться, если DNS-сервер находится в иной сети, нежели клиенты.
alterator-bind-0.1/html/fbi/help/uk_UA/ 0000755 0000000 0000000 00000000000 10634472207 0017724 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/html/fbi/help/uk_UA/bind-options.html 0000644 0000000 0000000 00000006057 10634472207 0023227 0 ustar 00root root 0000000 0000000DNS (Domaіn Name System) — система перетворення символьних імен комп'ютерів в ІP-адреси і навпаки — це одна із самих часто використовуваних служб Іnternet. DNS-сервери утворюють ієрархічну структуру, на самому нижньому рівні якої, як правило, розташовуються DNS-сервери вашого інтернет-провайдера. На верхніх рівнях розташовуються так звані кореневі сервери, що зберігають інформацію про домени верхнього рівня, наприклад, com. DNS — це розподілене сховище даних, де кожний DNS-сервер зберігає інформацію тільки про частину машин, що обслуговуються ним.
Клієнтські машини постійно опитують службу DNS, а тому дуже часто буває зручно заради економії трафіку й збільшення швидкості роботи розмістити всередині офісної мережі свій сервер DNS. Цей сервер буде виконувати запити на сервери вищого рівня і зберігати деякий час їхні результати (кешувати).
"" — це сервери, до яких буде звертатися ваш сервер у випадку відсутності збережених раніше запитів, а параметр "" визначає правила роботи з цими серверами:
Два списки, що залишилися, дозволяють вказати мережі, яким дозволено робити прості й рекурсивні запити до служби DNS. Це може виявитися необхідним, якщо DNS-сервер перебуває в іншій, ніж клієнти, мережі.
alterator-bind-0.1/html/fbi/styles/ 0000755 0000000 0000000 00000000000 10634472207 0017313 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/html/fbi/styles/bind.css 0000644 0000000 0000000 00000000134 10634472207 0020737 0 ustar 00root root 0000000 0000000 .forwarders-list { width: 50%; } hr { padding-top: 20px; padding-bottom: 20px; } alterator-bind-0.1/po/ 0000755 0000000 0000000 00000000000 10634472207 0014702 5 ustar 00root root 0000000 0000000 alterator-bind-0.1/po/alterator-bind.pot 0000644 0000000 0000000 00000003344 10634472207 0020341 0 ustar 00root root 0000000 0000000 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR