Bu yazıda, PowerDNS Admin’i Debian 11/Debian 10’a nasıl kolayca yükleyeceğinizi öğreneceksiniz. PowerDNS Admin , PowerDNS için bir web yönetim arabirimidir. Bir web tarayıcısından kolayca DNS bölgeleri oluşturmanıza ve yönetmenize olanak tanır.
PowerDNS Admin, PowerDNS’yi yönetmek için gelişmiş özellikler sağlar. Bunlar;
- Çoklu alan yönetimi
- Alan şablonu
- Kullanıcı yönetimi
- Etki alanına dayalı kullanıcı erişim yönetimi
- Kullanıcı etkinliği günlüğü
- Yerel DB / SAML / LDAP / Active Directory kullanıcı kimlik doğrulamasını destekleyin
- Google / Github / Azure / OpenID OAuth’u destekleyin
- İki faktörlü kimlik doğrulamayı (TOTP) destekleyin
- Pano ve pdns hizmet istatistikleri
- DynDNS 2 protokol desteği
- IPv6 adreslerini doğrudan kullanarak IPv6 PTR’lerini düzenleyin (artık değişmez adreslerin düzenlenmesi yok!)
- Bölgeleri ve kayıtları işlemek için sınırlı API
Gerekli Paket Bağımlılıklarını Yükleyin
Python 3 kitaplığını ve geliştirme araçlarını yükleyin
apt install python3-dev
Gerekli derleme araçlarını ve paket bağımlılıklarını kurun.
apt install libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https virtualenv build-essential libmariadb-dev git python3-flask -y
NodeJS’yi Debian 10/Debian 11’e yükleyin;
apt install curl sudo git -y
curl -sL https://deb.nodesource.com/setup_17.x | sudo -E bash -
apt install -y nodejs
Yarn’ı Debian 11/Debian 10’a yükleyin
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
apt update
apt install yarn -y
Nginx HTTP Sunucusu Debian 10/Debian 11’i yükleyin
apt install nginx -y
PowerDNS Admin Kaynak Kodunu Klonlayın
PowerDNS Admin git kaynak kodunu Nginx web kök dizininize kopyalayın.
Bu kurulumda, PowerDNS Admin web kök dizinimiz olarak /var/www/html/pdns kullanıyoruz. Sizin durumunuz için farklı olabilir.
git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /var/www/html/pdns
PowerDNS Admin Virtualenv’i oluşturun
PowerDNS Admin web kök dizinine gidin ve bir sanalenv oluşturun.
cd /var/www/html/pdns/
virtualenv -p python3 flask
Ardından, Python 3 Sanal ortamınızı etkinleştirin ve gerekli Python 3 kitaplıklarını kurun
source ./flask/bin/activate
pip install -r requirements.txt
PowerDNS Webadmin Veritabanı Bağlantısını Yapılandırma
Virtualenv’den çıkın.
deactivate
Veritabanı bağlantı ayrıntılarını tanımlamak için varsayılan PowerDNS yönetici yapılandırma dosyasını, $WEB_ROOT/powerdnsadmin/default_config.py’yi düzenleyin.
$WEB_ROOT’u web kök dizininizin yolu ile değiştirin.
vim /var/www/html/pdns/powerdnsadmin/default_config.py
Temel Uygulama yapılandırmalarında SALT ve SECRET_KEY anahtarlarını değiştirebilir, bağlantı adresini ve bağlantı noktasını ayarlayabilirsiniz;
### BASIC APP CONFIG SALT = 'xohDoozee8Zuneekooch9ohrieghei' SECRET_KEY = 'hohru1aethaeyahpheH7Gaathaikah' BIND_ADDRESS = '192.168.58.22' PORT = 9191 HSTS_ENABLED = False OFFLINE_MODE = False
Veritabanı yapılandırmalarında, PowerDNS veritabanı bağlantı ayrıntılarınızı yapılandırın.
### DATABASE CONFIG SQLA_DB_USER = 'pdnsadmin' SQLA_DB_PASSWORD = 'PdnSPassW0rd' SQLA_DB_HOST = '127.0.0.1' SQLA_DB_NAME = 'kifarunixdemopdns' SQLALCHEMY_TRACK_MODIFICATIONS = True
Yapılandırmayı kaydedin ve çıkın.
Ardından, sanal ortamı yeniden etkinleştirin, DB geçişini çalıştırın;
cd /var/www/html/pdns/
source ./flask/bin/activate
export FLASK_APP=powerdnsadmin/__init__.py
flask db upgrade
Yukarıdaki komut tamamlandığında, iplik ile varlık dosyaları oluşturun;
yarn install --pure-lockfile
flask assets build
Sanal ortamı devre dışı bırakın.
deactivate
PowerDNS Webadmini Çalıştırma
Kurulduktan sonra, web kök dizinindeki run.py dosyasını yürüterek PowerDNS admin’i bağımsız modda çalıştırabilirsiniz.
Bu kurulumda, PowerDNS Yöneticisine erişmek için Nginx web sunucusunu kullanacağız.
PowerDNS API erişimini etkinleştirin
“ PowerDNS Yetkili Sunucusu, bir JSON/REST API’sini ortaya çıkaran yerleşik bir web sunucusuna sahiptir. Bu API, çeşitli işlevlerin kontrol edilmesine, istatistiklerin okunmasına ve bölge içeriğinin, meta verilerin ve DNSSEC anahtar materyalinin değiştirilmesine izin verir .
- PowerDNS yapılandırma dosyasını açın
- API’yi etkinleştir
- API Anahtarını oluşturun ve ayarlayın;
vim /etc/powerdns/pdns.conf
################################# # api REST API'yi etkinleştirin/devre dışı bırakın (HTTP dinleyicisi dahil) # # API=hayır API=evet ################################# # api-key REST API'ye erişim için önceden paylaşılan statik kimlik doğrulama anahtarı # # api anahtarı= api anahtarı=ahqu4eiv2vaideep8AQu9nav5Aing0
Dosyayı kaydedip çıkın ve PowerDNS’i yeniden başlatın;
systemctl restart pdns
PowerDNS Yönetici Nginx Sitesi Oluşturun
Aşağıdaki içeriklerle PowerDNS Admin Nginx sitesi oluşturun. Web kök dizinini buna göre değiştirin.
vim /etc/nginx/conf.d/pdns-admin.conf
server { listen *:80; server_name pdnsadmin.kifarunix-demo.com; index index.html index.htm index.php; root /var/www/html/pdns; access_log /var/log/nginx/pdnsadmin_access.log combined; error_log /var/log/nginx/pdnsadmin_error.log; client_max_body_size 10m; client_body_buffer_size 128k; proxy_redirect off; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; proxy_buffer_size 8k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_headers_hash_bucket_size 64; location ~ ^/static/ { include /etc/nginx/mime.types; root /var/www/html/pdns/powerdnsadmin; location ~* \.(jpg|jpeg|png|gif)$ { expires 365d; } location ~* ^.+.(css|js)$ { expires 7d; } } location / { proxy_pass http://unix:/run/pdnsadmin/socket; proxy_read_timeout 120; proxy_connect_timeout 120; proxy_redirect off; } }
Dosyayı kaydedin ve çıkın.
Varsayılan Nginx varsayılan sitesini kaldırın.
mv /etc/nginx/sites-enabled/default{,.old}
Yapılandırma sözdizimi kontrolünü çalıştırın.
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Pdns Admin web kök dizininin sahipliğini web kullanıcısına ayarlayın;
chown -R www-data: /var/www/html/pdns
Nginx’i yeniden başlatın;
systemctl restart nginx
PowerDNS Admin Systemd Hizmet Birimi Oluşturun
PowerDNS Admin’i systemd hizmeti olarak çalıştırabilmek için aşağıdaki komutu çalıştırarak bir birim dosyası oluşturun;
cat > /etc/systemd/system/pdnsadmin.service << 'EOL' [Unit] Description=PowerDNS-Admin Requires=pdnsadmin.socket After=network.target [Service] PIDFile=/run/pdnsadmin/pid User=pdns Group=pdns WorkingDirectory=/var/www/html/pdns ExecStart=/var/www/html/pdns/flask/bin/gunicorn --pid /run/pdnsadmin/pid --bind unix:/run/pdnsadmin/socket 'powerdnsadmin:create_app()' ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target EOL
cat > /etc/systemd/system/pdnsadmin.socket << 'EOL' [Unit] Description=PowerDNS-Admin socket [Socket] ListenStream=/run/pdnsadmin/socket [Install] WantedBy=sockets.target EOL
echo "d /run/pdnsadmin 0755 pdns pdns -" >> /etc/tmpfiles.d/pdnsadmin.conf
mkdir /run/pdnsadmin/
chown -R pdns: /run/pdnsadmin/
chown -R pdns: /var/www/html/pdns/powerdnsadmin/
Sistem Yapılandırmalarını yeniden yükleyin ve PowerDNS Yönetici hizmetini sistem önyüklemesinde çalışacak şekilde başlatın ve etkinleştirin;
systemctl enable --now pdnsadmin.service pdnsadmin.socket
Durumu kontrol edin;
systemctl status pdnsadmin.service pdnsadmin.socket
PowerDNS Webadmin Arayüzüne Erişme
Harici erişime izin vermek için güvenlik duvarında Nginx’i açın;
ufw allow "Nginx Full"
Yukarıdaki yapılandırmamıza göre, http://sunucu-ana bilgisayar adı adresinden PowerDNS Admin web arayüzüne erişebilirsiniz. PowerDNS Yönetici oturum açma ekranını görebilmeniz gerekir. (değilse, ipuçları için PowerDNS yönetici hizmetinin durumunu veya Nginx hata günlüklerini kontrol edin).
PowerDNS Webadmin yönetici hesabı oluşturun
İlk PowerDNS Yönetici yönetici kullanıcısını oluşturmak için Hesap oluştur’a tıklayın . Kullanıcı ayrıntılarını girin.
Bir hesap oluşturmak için Kaydol’a tıklayın .
Daha sonra vermiş olduğunuz kullanıcı bilgilerini kullanarak giriş yapınız. Başarılı oturum açtıktan sonra, PowerDNS Yönetici arayüzüne inmelisiniz.
API kurulumunu tamamlamanızı isteyen bir hata göreceksiniz.
PowerDNS Yöneticisinin PowerDNS’e bağlanabilmesi ve yönetebilmesi için şunları sağlamanız gerekir:
- API Anahtarı URL’si, genellikle
http://127.0.0.1:8081
varsayılan olarak - PowerDNS yapılandırma dosyasında tanımladığınız API Anahtarı.
Güncelle’yi tıkladığınızda hata kaybolmalıdır.
PowerDNS Yönetici panosuna gitmek için Panoya tıklayın .
Gördüğünüz gibi bir önceki rehberimizde DNS kayıtlarını zaten eklemiştik.
Barındırılan Alan Adları (yukarıdaki ekran görüntüsünde vurgulanmıştır) altındaki alan adını tıklarsanız, daha önce eklediğimiz kayıtları;
Bu, ileri bölge kayıtlarıdır.
Dashboard > Hosted Domains in-addr altında ters bölgeye tıklarsanız , ters bölge kayıtlarını görmelisiniz.
Artık DNS kayıtlarınızı kolayca yönetebilirsiniz.
Yazının orijinalini buradan okuyabilirsiniz
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.