Author: ciesiel
Date: Fri Feb 18 17:25:15 2005
New Revision: 5549

Added:
   PLD-doc/book/pl_book__uslugi/pl_uslugi__pdns.sec
Modified:
   PLD-doc/book/pl_book__master.docb
   PLD-doc/book/pl_book__uslugi/pl_uslugi.chp
Log:
- Dodanie rozdzialu USLUGI/PDNS


Modified: PLD-doc/book/pl_book__master.docb
==============================================================================
--- PLD-doc/book/pl_book__master.docb   (original)
+++ PLD-doc/book/pl_book__master.docb   Fri Feb 18 17:25:15 2005
@@ -52,6 +52,7 @@
 <!ENTITY siec_vtun SYSTEM "pl_book__siec/pl_siec_vpn__vtun.sec">
 <!ENTITY uslugi SYSTEM "pl_book__uslugi/pl_uslugi.chp">
 <!ENTITY uslugi_named SYSTEM "pl_book__uslugi/pl_uslugi__named.sec">
+<!ENTITY uslugi_pdns SYSTEM "pl_book__uslugi/pl_uslugi__pdns.sec">
 <!ENTITY uslugi_exim SYSTEM "pl_book__uslugi/pl_uslugi_poczta__exim.sec">
 <!ENTITY uslugi_postfix SYSTEM "pl_book__uslugi/pl_uslugi_poczta__postfix.sec">
 <!ENTITY uslugi_apache SYSTEM "pl_book__uslugi/pl_uslugi__apache.sec">

Modified: PLD-doc/book/pl_book__uslugi/pl_uslugi.chp
==============================================================================
--- PLD-doc/book/pl_book__uslugi/pl_uslugi.chp  (original)
+++ PLD-doc/book/pl_book__uslugi/pl_uslugi.chp  Fri Feb 18 17:25:15 2005
@@ -4,6 +4,7 @@
 <para>W rozdziale tym przedstawimy opis instalacji i konfiguracji ważniejszych 
usług dostępnych w PLD</para>
     &uslugi_cron;
     &uslugi_named;
+    &uslugi_pdns;
     &uslugi_exim;
     &uslugi_postfix;
     &uslugi_apache;

Added: PLD-doc/book/pl_book__uslugi/pl_uslugi__pdns.sec
==============================================================================
--- (empty file)
+++ PLD-doc/book/pl_book__uslugi/pl_uslugi__pdns.sec    Fri Feb 18 17:25:15 2005
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="iso-8859-2"?>
+<section id="uslugi_pdns">
+<title>Power DNS (PDNS) - Serwer Nazw</title>
+<para>
+       <ulink url="http://www.powerdns.com/products/powerdns/index.php";>Power
+               DNS</ulink> zwany w dalszej części tego dokumentu jako
+       <productname>PDNS</productname> jest zaawansowanym i bardzo efektywnym
+       serwerem nazw. Jego możliwości współpracy z LDAP lub bazami SQL (Mysql
+       i Postgresql) dają szerokie możliwości tworzenia skryptów lub
+       interface zarządzających. Sam PDNS jest uważany za zdecydowanie
+       bezpieczniejszy niż <productname>Bind</productname>, a także od niego 
+       szybszy - zwłaszcza przy większej ilości obsługiwanych domen. 
+</para>
+       <section id="uslugi_pdns_wstep">
+               <title>Wstęp</title>
+               <para>
+                       W tym rozdziale zostanie omówiona podstawowa
+                       instalacja, konfiguracja z bazą
+                       <productname>Postgresql</productname>, a także wstępna
+                       konfiguracja przykładowej domeny. Oczywiście więcej
+                       szczegółów możemy znaleźć w <ulink
+                               
url="http://www.powerdns.com/support/index.php";>oryginalnej
+                       dokumentacji</ulink>.
+               </para>
+       </section>
+       <section id="uslugi_pdns_instalacja">
+               <title>Instalacja</title>
+               <para>
+                       Instalacja przebiega standardowo za pomocą poldka.
+               </para>
+               <screen>poldek> install pdsn</screen>
+               <para>
+                       Do poprawnego działania naszej bazy potrzebujemy także
+                       <productname>postgresql</productname> (możemy także
+                       wykorzystać mysql lub ldap, a nawet pliki
+                       konfiguracyjne Bind-a). Tak więc jeżeli nie mamy
+                       Postgresql to instalujemy go i poprawnie
+                       konfigurujemy.
+               </para>
+       </section>
+       <section id="uslugi_pdns_psql">
+               <title>Konfiguracja Postgresql dla PDNS</title>
+               <para>
+                       Następnym krokiem będzie stworzenie bazy obsługiwanej
+                       przez PDNS w Postgresql. W tym celu możemy wykorzystać
+                       klienta dostarczanego razem z Postgresql -
+                       <productname>psql</productname>.
+                       Możemy także do tego celu użyć innych wygodnych
+                       narzędzi np. <productname>phpPgAdmin</productname>
+               </para>
+               <para>
+                       Najpierw z konta użytkownika uprawnionego do operacji
+                       na bazie tworzymy bazę:
+               </para>
+               <screen>$ createdb -U postgres powerdns</screen>
+               <para>
+                       Tworzymy także użytkownika dla w/w bazy:
+               </para>
+               <screen>$ createuser -P -U postgres pdns
+Enter password for user "pdns":
+Enter it again:
+Shall the new user be allowed to create databases?
+(y/n) n
+Shall the new user be allowed to create more new
+users? (y/n) n
+CREATE USER</screen>
+       <para>
+               Teraz za pomocą swojego ulubionego klienta Postgresql
+               wykonujemy poniższe polecenia SQL w celu stworzenia szkieletu
+               bazy:
+       </para>
+       <screen>create table domains (
+id              SERIAL PRIMARY KEY,
+name            VARCHAR(255) NOT NULL,
+master          VARCHAR(20) DEFAULT NULL,
+last_check      INT DEFAULT NULL,
+type            VARCHAR(6) NOT NULL,
+notified_serial        INT DEFAULT NULL, 
+account         VARCHAR(40) DEFAULT NULL
+);
+CREATE UNIQUE INDEX name_index ON domains(name);
+
+CREATE TABLE records (
+id              SERIAL PRIMARY KEY,
+domain_id       INT DEFAULT NULL,
+name            VARCHAR(255) DEFAULT NULL,
+type            VARCHAR(6) DEFAULT NULL,
+content         VARCHAR(255) DEFAULT NULL,
+ttl             INT DEFAULT NULL,
+prio            INT DEFAULT NULL,
+change_date    INT DEFAULT NULL, 
+CONSTRAINT     domain_exists 
+FOREIGN                KEY(domain_id) REFERENCES domains(id)
+ON DELETE CASCADE
+);
+
+CREATE INDEX rec_name_index ON records(name);
+CREATE INDEX nametype_index ON records(name,type);
+CREATE INDEX domain_id ON records(domain_id);
+
+create table supermasters (
+ip VARCHAR(25) NOT NULL, 
+nameserver VARCHAR(255) NOT NULL, 
+account VARCHAR(40) DEFAULT NULL
+);
+
+GRANT SELECT ON supermasters TO pdns;
+GRANT ALL ON domains TO pdns;
+GRANT ALL ON domains_id_seq TO pdns;
+GRANT ALL ON records TO pdns;
+GRANT ALL ON records_id_seq TO pdns;</screen>
+       </section>
+       <section id="uslugi_pdns_konf">
+               <title>Konfiguracja PDNS</title>
+               <para>
+                       W <filename>/etc/pdns/pdns.conf</filename>
+                       konfigurujemy działanie programu PDNS. Przykładowa
+                       konfiguracja PDNSa współpracującego z bazą Postgresql
+                       może wyglądać następująco:
+               </para>
+               <screen>#chroot=/some/where   # If set, chroot to this 
directory for more security
+config-dir=/etc/pdns/      # Location of configuration directory (pdns.conf)
+launch=gpgsql              # Launch this backend 
+
+#gpgsql-socket=/var/lib/pgsql/postmaster.pid
+gpgsql-dbname=powerdns     # Nazwa bazy danych w psql
+gpgsql-user=pdns          # Użytkownik bazy w psql
+gpgsql-password=hasło_do_bazy_pdns
+
+module-dir=/usr/lib/pdns   # Default directory for modules
+#load-modules=             # Load this module - supply absolute or relative 
path
+#local-address=0.0.0.0     # Local IPv4 address to which we bind
+#local-ipv6=::               # Local IPv6 address to which we bind
+#use-logfile=no            # Use a log file or syslog
+#logfile=var/log/pdns.log  # Logfile to use
+recursor=IP_ZEWN_DNS      # Tu podajemy adres zewn. serwera DNS
+# nameserver
+setgid=djbdns              # If set, change group id to this gid for more 
security
+setuid=pdns                # If set, change user id to this uid for more 
security
+#slave=no                  # Act as a slave (Ustawiamy na YES w przypadku
+                          # pracy serwera PDNS jako SLAVE
+                          
+socket-dir=/var/run        # Where the controlsocket will live
+webserver=yes              # Włączenie usługi monitorowania pracy PDNS przez 
WWW
+webserver-address=10.1.1.1 # Adres IP strony monitorującej pracę PDNS
+webserver-password=hasło_do_strony_monitorującej
+webserver-port=8088       # port strony monitorującej</screen>
+       <para>
+               Krzyżyk "#" na początku oznacza komentarz bądź wyłączenie
+               danej opcji. Oryginalne teksty komentarzy są na tyle czytelne,
+               że tylko niektóre opcje skomentowalismy po polsku.
+       </para>
+       </section>
+       <section id="uslugi_pdns_domeny">
+               <title>Domeny</title>
+               <para>
+                       Praktycznie PDNS jest gotowy do pracy. Musimy jeszcze
+                       wypełnić treścią bazę - czyli dodać domenę (domeny).
+                       Przykładową domenę zaprezentujemy w formie tzw.
+                       "dump-a" bazy. Jest to na tyle czytelne, że
+                       skomentowane zostaną tylko niektóre aspekty. 
+               </para>
+               <screen>--
+-- PostgreSQL database dump
+--
+
+SET client_encoding = 'UNICODE';
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+SET search_path = public, pg_catalog;
+
+--
+-- Name: domains_id_seq; Type: SEQUENCE SET; Schema: public; Owner: pdns
+--
+
+SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('domains', 'id'), 
1, true);
+
+--
+-- Name: records_id_seq; Type: SEQUENCE SET; Schema: public; Owner: pdns
+--
+
+SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('records', 'id'), 
16, true);
+
+--
+-- Data for Name: domains; Type: TABLE DATA; Schema: public; Owner: pdns
+--
+
+INSERT INTO domains VALUES (1, 'foo.com', NULL,        NULL, 'NATIVE', NULL, 
NULL); 
+INSERT INTO domains VALUES (2, '1.1.10.in-addr.arpa', NULL, NULL, 'NATIVE', 
NULL, NULL);
+-- W pierwszym ID podajemy domenę 'foo.com'
+-- W drugim ID definiujemy domenę odwrotną dla danego IP
+
+--
+-- Data for Name: records; Type: TABLE DATA; Schema: public; Owner: pdns
+--
+-- Poniżej zgodnie z określonymi ID definiowane są kolejno strefy
+
+INSERT INTO records VALUES (2, 1, 'localhost.foo.com', 'A', '127.0.0.1', 120, 
NULL, NULL);
+INSERT INTO records VALUES (3, 1, 'www.foo.com', 'A', '10.1.1.1', 120, NULL, 
NULL);
+INSERT INTO records VALUES (5, 1, 'dns.foo.com', 'A', '10.1.1.1', 120, NULL, 
NULL);
+INSERT INTO records VALUES (6, 1, 'ftp.foo.com', 'A', '10.1.1.1', 120, NULL, 
NULL);
+INSERT INTO records VALUES (7, 1, 'poczta.foo.com', 'A', '10.1.1.1', 120, 
NULL, NULL);
+INSERT INTO records VALUES (8, 1, 'pop3.foo.com', 'A', '10.1.1.1', 120, NULL, 
NULL);
+INSERT INTO records VALUES (9, 1, 'smtp.foo.com', 'A', '10.1.1.1', 120, NULL, 
NULL);
+INSERT INTO records VALUES (10, 1, 'ssh.foo.com', 'A', '10.1.1.1', 120, NULL, 
NULL);
+INSERT INTO records VALUES (11, 1, 'jabber.foo.com', 'A', '10.1.1.1', 120, 
NULL, NULL);
+INSERT INTO records VALUES (1, 1, 'foo.com', 'SOA', 'localhost user.foo.com 
1', 86400, NULL, NULL);
+INSERT INTO records VALUES (16, 1, 'foo.com', 'TXT', 'Serwer PDNS', 300, NULL, 
NULL);
+INSERT INTO records VALUES (17, 1, 'foo.com', 'NS', 'ns.foo.com', 300, NULL, 
NULL);
+INSERT INTO records VALUES (4, 1, 'mail.foo.com', 'A', '10.1.1.1', 120, NULL, 
NULL);
+INSERT INTO records VALUES (18, 1, 'foo.com', 'MX', 'mail.foo.com', 300, 5, 
NULL);
+INSERT INTO records VALUES (19, 1, 'foo.com', 'A', '10.1.1.1', 300, 0, NULL);
+
+-- Poniżej definiujemy rekordy SRV dla serwera Jabber 
+INSERT INTO records VALUES (12, 1, '_jabber._tcp.jabber.foo.com', 
+       'SRV', '0 5269 foo.com', 300, 10, NULL);
+INSERT INTO records VALUES (13, 1, '_xmpp-server._tcp.jabber.foo.com', 
+       'SRV', '0 5269 foo.com', 300, 10, NULL);
+INSERT INTO records VALUES (14, 1, '_xmpp-client._tcp.jabber.foo.com', 
+       'SRV', '0 5222 foo.com', 300, 10, NULL);
+       
+INSERT INTO records VALUES (15, 2, '1.1.1.10.in-addr.arpa', 'PTR', 'foo.com', 
86400, NULL, NULL);
+INSERT INTO records VALUES (20, 2, '1.1.10.in-addr.arpa', 
+       'SOA', 'localhost root.localhost', 86400, NULL, NULL);
+INSERT INTO records VALUES (21, 2, '1.1.10.in-addr.arpa', 'NS', 'nc.foo.com', 
86400, NULL, NULL);
+
+--
+-- Data for Name: supermasters; Type: TABLE DATA; Schema: public; Owner: pdns
+--
+
+--
+-- PostgreSQL database dump complete
+--</screen>
+       <para>
+               Wszelkie zmiany lub dodawnie nowych domen możemy wykonywać na
+               bazie danych lub wykorzystując do tego odpowiednie skrypty.
+               Teraz możemy uruchomić demona PDNS wykorzystując skrypt:
+       </para>
+       <screen># /etc/init.d/pdns start</screen>
+       <para>
+               Należy pamiętać, że jeżeli wcześniej używalismy BINDa bądź
+               innnego demona do obsługi nazw domenowych, należy go przed
+               uruchomieniem PDNS wyłączyć.
+       </para>
+       <para>
+               Po uruchomieniu serwisu możemy za pomocą przeglądarki http
+               wejść na stronę monitorującą pracę PDNS (odpowiednie opcje
+               dotyczące tej usługi znajdziemy w
+               <filename>/etc/pdns/pdns.conf</filename>). Wywołanie 
+               zgodne z przykładowym wpisem w
+               <filename>pdns.conf</filename> to
+               <emphasis>http://10.1.1.1:8088</emphasis>  
+               Na stronie tej możemy odnaleźć wiele cennych informacji 
+               dotyczących pracy naszego serwera nazw.
+       </para>
+       </section>
+</section>

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to