# -----------------------------------------------------------------------------
# POWERDNS NOTLARI
# -----------------------------------------------------------------------------
Bu dokumanda, PostgreSQL destekli PowerDNS kurulum notları yer almaktadır.
Debian Wheezy i386 makinede denenmiştir
# -----------------------------------------------------------------------------
# DEBIAN
# -----------------------------------------------------------------------------
# Standart Debian Wheezy makine kurulumu yapılır.
# /etc/hostname
pns1
# /etc/hosts
127.0.1.1 pns1.domain.net pns1
# -----------------------------------------------------------------------------
# POSTGRESQL
# -----------------------------------------------------------------------------
# Kurulum
aptitude install postgresql postgresql-contrib
# -----------------------------------------------------------------------------
# POWERDNS
# -----------------------------------------------------------------------------
# Kurulum
aptitude install pdns-server pdns-backend-pgsql
. Configure database for pdns-backend-pgsql with dbconfig-common?
-> Yes
. PostgreSQL application password for pdns-backend-pgsql
-> Boş bırak, random parola üretilsin.
. Veritabanı ayarları /etc/powerdns/pdns.d/pdns.local.gpgsql
dosyasında. Default ayarları değiştirmeye gerek yok.
# launch ile ilgili bug'in düzeltilmesi.
Config dosyalarinda bir hata var. İki ayrı "launch" satiri olmamasi
gerekiyor. Bu hata düzeltilecek.
vim /etc/powerdns/pdns.d/pdns.simplebind
#launch=bind
vim /etc/powerdns/pdns.d/pdns.local.gpgsql
#launch=gpgsql
vim /etc/powerdns/pdns.conf
launch=gpgsql,bind
include=/etc/powerdns/pdns.d
# DNS sec'i iptal etmek için (Poweradmin ile kullanımda sorun çıkıyor)
vim /etc/powerdns/pdns.d/pdns.local.gpgsql
gpgsql-dnssec=no
# master modda çalışabilmesi için /etc/powerdns/pdns.conf dosyasında
master=yes
# supermaster modda çalışabilmesi için /etc/powerdns/pdns.conf dosyasında
# zone transferi yapabilecek IP adresler. Slave makineler dahil
allow-axfr-ips=11.22.33.44/32,192.168.22.11/24
disable-axfr=no
# slave modda çalışabilmesi için /etc/powerdns/pdns.conf dosyasında
slave=yes
# slave modda supermaster'a bağlanacaksa /etc/powerdns/pdns.conf dosyasında
# zone transferi yapabilecek IP adresler. Supermaster dahil
allow-axfr-ips=55.66.77.88/32,192.168.22.11/24
# slave makineye supermaster makine eklenecekse
INSERT INTO supermasters (ip, nameserver, account)
VALUES ('55.66.77.88', 'pns1.domain.net', 'admin');
# supermaster makinede, domaini host eden bütün master ve slave makineler için
NS kaydı girilmesi gerekiyor. Yoksa supermaster, bir değişiklik olduğunda slave
makineyi haberdar etmiyor.
# Servisin restart edilmesi.
/etc/init.d/pdns restart
# Servisin çalıştığının görülmesi.
dig ile localhost sorgulandığında cevap alınması gerekiyor. "netstat" ile
53. portun pdns tarafından dinlenilip dinlenilmediğine de bakılabilir.
dig @localhost
# -----------------------------------------------------------------------------
# APACHE2
# -----------------------------------------------------------------------------
# Gerekli Debian paketlerinin kurulumu
aptitude install apache2-mpm-prefork libapache2-mod-php5 ssl-cert
# Default sayfa boş olsun.
echo "" >/var/www/index.html
# Apache için SSL sertifikası oluşturma.
a2ensite default-ssl
a2enmod ssl
/etc/init.d/apache2 restart
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/pns1.domain.net.crt
Host Name : pns1.domain.net
Alternative name : (boş bırakılacak)
vim /etc/apache2/sites-enabled/default-ssl
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLCertificateFile /etc/ssl/private/pns1.domain.net.crt
/etc/init.d/apache2 restart
# Web sayfalarına parola ile erişim. Poweradmin ayrıca parola soracak.
vim /etc/apache2/sites-enabled/000-default
#AllowOverride None
AllowOverride All
vim /etc/apache2/sites-enabled/default-ssl
#AllowOverride None
AllowOverride All
su -l kullanici
mkdir htaccess
cd htaccess
htpasswd -sc htpasswd kullanici
(basit bir parola girilsin. Poweradmin ayrıca parola soracak)
exit
cd /var/www/
vim .htaccess
AuthUserFile /home/kullanici/htaccess/htpasswd
AuthType Basic
AuthName "..."
Require valid-user
Options Indexes
/etc/init.d/apache2 restart
# Web testi.
Linke girildiğinde sertifika için onay sorması, parola sorması ve boş sayfa
göstermesi gerekmekte.
https://ip_adresi/
# -----------------------------------------------------------------------------
# POWERADMIN
# -----------------------------------------------------------------------------
# Gerekli Debian paketlerinin kurulumu
aptitude install php5 php5-mcrypt
aptitude install php-pear php-mdb2 php-mdb2-driver-pgsql php5-pgsql
# Poweradmin dosyalarının indirilmesi
http://www.poweradmin.org/ adresinden son sürüm görülebilir.
https://github.com/poweradmin/poweradmin/releases
# 2.1.7
cd
wget https://github.com/poweradmin/poweradmin/archive/v2.1.7.tar.gz -O poweradmin-2.1.7.tar.gz
tar xzvf poweradmin-2.1.7.tar.gz
mv poweradmin-2.1.7 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown www-data: /var/www/poweradmin -R
# 2.1.6
cd
wget https://github.com/downloads/poweradmin/poweradmin/poweradmin-2.1.6.tgz
tar xzfv poweradmin-2.1.6.tgz
mv poweradmin-2.1.6 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
cd /var/www
chown www-data: poweradmin -R
# PowerAdmin arayüzünden yüklemenin yapılması
- Web tarayıcı ile Install sayfasina girilir.
https://ip_adresi/poweradmin/install/
- Installation step 3
Gerekli bilgiler /etc/powerdns/pdns.d/pdns.local.gpgsql dosyasında.
Username : pdns
Password : (veritabanı kullanıcısı parolası)
Database type : PostgreSQL
Hostname : 127.0.0.1
DB Port : 5432
Database : pdns
Poweradmin administrator : (PowerAdmin web panel admin parolası)
- Installation step 4
Username : poweradmin
Password : (poweradmin için veritabanı parolası)
Hostmaster : hostmaster.domain.net
Primary nameserver : pns1.domain.net
Secondary nameserver : pns2.domain.net
- Installation step 5
Bu adımda verilen komutları postgres kullanıcısı olarak çalıştır.
su -l postgres
createuser -E -P poweradmin
...
...
psql pdns
...
...
(postgres kullanıcı hesabından çıkılacak)
- Installation step 7
Bu adıma kadar ilerlenecek.
- Install klasörünün silinmesi
(root olunacak)
rm -rf /var/www/poweradmin/install/
# PowerAdmin arayüzüne girilmesi
https://ip_adresi/poweradmin/index.php
Username : admin
Password : (PowerAdmin admin parolası)
# -----------------------------------------------------------------------------
# KURULAN PAKETLERİN/YAZILIMLARIN SİLİNMESİ
# -----------------------------------------------------------------------------
Bir sebepten dolayı kuralan uygulamalar silinmek istenirse, bu bölümdeki
adımlar uygulanacak.
Burada anlatıldığı gibi silme yapılırsa, ayar dosyaları ve bu dökümanda
anlatılan bütün paketler silinmiş olur. Aynı servisleri kullanan başka
uygulamalar varsa, bu uygulamaların çalışması aksar. Bu nedenle silme işlemi
yapılırken ne yapıldığının farkında olunup yapılması gerekmekte.
# Apache2
cd
aptitude purge apache2-mpm-prefork libapache2-mod-php5 apache2.2-common
rm -rf /var/log/apache2
rm -rf /var/www
rm /etc/ssl/private/pns1.domain.net.crt
# Powerdns
aptitude purge pdns-server pdns-backend-pgsql
# PostgreSQL
aptitude purge postgresql postgresql-contrib postgresql-common postgresql-9.1
aptitude purge postgresql-client-common postgresql-client-9.1
rm -rf /var/lib/postgresql
# Kalan ufak paketler ve ayr dosyaları
aptitude purge ssl-cert
aptitude purge "~c"
# -----------------------------------------------------------------------------
# DNS TANIMLAMALARI
# -----------------------------------------------------------------------------
DNS ile ilgili tanımlamalar Poweradmin web panelinden yapılacak.
# Slave zone
Verileri, başka bir DNS sunucudan alınacak zone'lar, Poweradmin panelden
"slave zone" olarak eklenir. Veriler alındıktan sonra "master zone" olarak
tanımı değiştirilebilir veya "slave zone" olarak çalışmaya devam eder.
Master DNS sunucunun, slave makineye sorgulama izni vermesi için bazı ayarların
yapılması gerekmektedir.
Master DNS sunucu Bind ise /etc/bind/named.conf.local dosyasında ilgili zone
için şu ayarlar yapılır:
zone "alanadi.com" {
type master;
allow-transfer {powernds_slave_makine_ip_adresi;};
file "/etc/bind/pri.alanadi.com";
};
# -----------------------------------------------------------------------------
# KAYNAKLAR
# -----------------------------------------------------------------------------
- http://www.howtoforge.com/installing-powerdns-with-mysql-backend-and-poweradmin-on-debian-squeeze
- http://www.howtoforge.com/installing-powerdns-with-mysql-backend-and-poweradmin-on-debian-squeeze-p2
- https://www.poweradmin.org/
- https://github.com/poweradmin/poweradmin
- http://www.debiantutorials.com/installing-powerdns-recursor/
- /usr/share/doc/apache2.2-common/README.Debian.gz