debian:pdns_server

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
debian:pdns_server [09/10/2022 09:07] – [prepeare mysql db] Methoddebian:pdns_server [11/10/2022 13:19] (поточний) – [Install PowerDNS server] Method
Рядок 12: Рядок 12:
   sudo su   sudo su
 ===== Install MariaDB ===== ===== Install MariaDB =====
-{{section>debian:mariadb&mariadb&noheader}} +[[debian:mariadb|Install MariaDB]]
-===== Install apache2 php phpMyAdmin ===== +
-{{section>debian:apache&noheader}} +
-{{section>debian:phpmyadmin&noheader}}+
  
 +За бажанням можна встановити apache2 та phpMyAdmin для доступу до бази даних через веб панель керування
 +
 +[[debian:apache|Install apache2]]
 +
 +[[debian:phpmyadmin|Install phpMyAdmin]]
  
-[[https://repo.powerdns.com/]] 
  
 ===== Install PowerDNS server ===== ===== Install PowerDNS server =====
 +
 +В репозиторіях є зазвичай, застаріла версія, тому заглянемо на сайт [[https://repo.powerdns.com/]]
 +
 +Там знаходимо стабільну версію програми і застосовуємо зміни в списку репозиторіїв
 +
 +<code bash>
 +sh -c 'echo "deb [arch=amd64] http://repo.powerdns.com/debian bullseye-auth-46 main" > /etc/apt/sources.list.d/pdns.list'
 +</code>
 +
 +<code bash>
 +tee /etc/apt/preferences.d/pdns<<EOF
 +Package: pdns-*
 +Pin: origin repo.powerdns.com
 +Pin-Priority: 600
 +EOF
 +</code>
 +
 +<code bash>
 +curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/powerdns.gpg --import
 +chmod 644 /etc/apt/trusted.gpg.d/*
 +</code>
 +
 <code bash> <code bash>
 apt-get update  apt-get update 
 apt-get install -y pdns-server pdns-backend-mysql apt-get install -y pdns-server pdns-backend-mysql
-nano /etc/powerdns/pdns.conf +cp -r /etc/powerdns/ /etc/powerdns.orig/
 </code> </code>
  
 <code bash> <code bash>
 +tee /etc/powerdns/pdns.conf<<EOF
 setgid=pdns setgid=pdns
 setuid=pdns setuid=pdns
Рядок 34: Рядок 58:
 include-dir=/etc/powerdns/pdns.d include-dir=/etc/powerdns/pdns.d
 launch= launch=
 +EOF
 </code> </code>
- 
 ===== prepeare mysql db ===== ===== prepeare mysql db =====
 <code bash> <code bash>
Рядок 72: Рядок 96:
 </code> </code>
  
 +Підключимо нашу базу даних 
   nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf   nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf
 <code bash> <code bash>
Рядок 102: Рядок 127:
  
 [[https://github.com/PowerDNS-Admin/PowerDNS-Admin/wiki/Running-PowerDNS-Admin-on-Ubuntu-or-Debian]] [[https://github.com/PowerDNS-Admin/PowerDNS-Admin/wiki/Running-PowerDNS-Admin-on-Ubuntu-or-Debian]]
 +
  
 <code bash> <code bash>
-apt-get install -python3-dev libmysqlclient-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev +apt install python3-dev python3-venv git libmysqlclient-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https virtualenv build-essential curl jq
-libxmlsec1-dev libffi-dev pkg-config apt-transport-https virtualenv build-essential +
-apt-get install nodejs+
 </code> </code>
  
 <code bash> <code bash>
-curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg apt-key add - +curl -sL https://deb.nodesource.com/setup_18.bash 
-echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list +apt-get update && apt install -y nodejs
-apt-get update -y +
-apt-get install -y yarn+
 </code> </code>
  
 <code bash> <code bash>
-git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /opt/web/powerdns-admin +curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null 
-cd /opt/web/powerdns-admin +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 
-cp config_template.py config.py +apt-get update && apt-get install yarn 
-mysql -u root -p+</code> 
 + 
 +<code bash> 
 +mysql
 </code> </code>
  
 <code mysql> <code mysql>
-CREATE DATABASE pda+CREATE DATABASE poweradmin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
-GRANT ALL PRIVILEGES ON pda.* TO 'pda'@'127.0.0.1' IDENTIFIED BY 'changeme';+GRANT ALL PRIVILEGES ON poweradmin.* TO 'pdnsadmin'@'%' IDENTIFIED BY 'p4ssw0rd';
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
 quit quit
Рядок 131: Рядок 156:
  
 <code bash> <code bash>
-nano /opt/web/powerdns-admin/config.py+git clone https://github.com/PowerDNS-Admin/PowerDNS-Admin.git /opt/web/powerdns-admin 
 + 
 +cd /opt/web/powerdns-admin 
 +python3 -mvenv ./venv 
 +source ./venv/bin/activate 
 +pip install --upgrade pip 
 +pip install -r requirements.txt
 </code> </code>
  
 <code bash> <code bash>
 +cp /opt/web/powerdns-admin/configs/development.py /opt/web/powerdns-admin/configs/production.py
 +nano /opt/web/powerdns-admin/configs/production.py
 +</code>
 +
 +<code python>
 +import os
 +import urllib.parse
 +basedir = os.path.abspath(os.path.dirname(__file__))
 +
 +### BASIC APP CONFIG
 +SALT = '$2b$12$yLUMTIfl21FKJQpTkRQXCu'
 +SECRET_KEY = 'e951e5a1f4b94151b360f47edf596dd2'
 BIND_ADDRESS = '0.0.0.0' BIND_ADDRESS = '0.0.0.0'
 +PORT = 9191
 +OFFLINE_MODE = False
 +
 +### DATABASE CONFIG
 +SQLA_DB_USER = 'pdnsadmin'
 +SQLA_DB_PASSWORD = 'p4ssw0rd'
 +SQLA_DB_HOST = '127.0.0.1'
 +SQLA_DB_NAME = 'poweradmin'
 +SQLALCHEMY_TRACK_MODIFICATIONS = True
 +
 +### DATABASE - MySQL
 +SQLALCHEMY_DATABASE_URI = 'mysql://{}:{}@{}/{}'.format(
 +    urllib.parse.quote_plus(SQLA_DB_USER),
 +    urllib.parse.quote_plus(SQLA_DB_PASSWORD),
 +    SQLA_DB_HOST,
 +    SQLA_DB_NAME
 +)
 +
 +### DATABASE - SQLite
 +#SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'pdns.db')
 </code> </code>
  
 <code bash> <code bash>
-virtualenv -p python3 flask +nft add rule ip filter input ct state new tcp dport 9191 counter accept comment "PDNS_ADMIN"
-source ./flask/bin/activate +
-pip install -r requirements.txt +
-pip install python-dotenv +
-export FLASK_APP=app/__init__.py +
-flask db migrate -m "Init DB" +
-flask db upgrade+
 </code> </code>
  
 <code bash> <code bash>
 +export FLASK_CONF=../configs/production.py
 +export FLASK_APP=powerdnsadmin/__init__.py
 +flask db upgrade
 +
 yarn install --pure-lockfile yarn install --pure-lockfile
 flask assets build flask assets build
Рядок 154: Рядок 215:
  
 <code bash> <code bash>
-/etc/init.d/pdns restart +./run.py
-/etc/init.d/pdns status+
 </code> </code>
- 
- 
-<code bash> 
-nano /etc/systemd/system/powerdns-admin.service 
-</code> 
- 
  
 <code bash> <code bash>
 +tee /etc/systemd/system/powerdns-admin.service<<EOF
 [Unit] [Unit]
 Description=PowerDNS-Admin Description=PowerDNS-Admin
-After=network.target+Wants=network.target 
 +After=network.target mysqld.service mariadb.service
  
 [Service] [Service]
-User=root+PIDFile=/run/powerdns-admin/pid 
 +User=www-data
 Group=root Group=root
 WorkingDirectory=/opt/web/powerdns-admin WorkingDirectory=/opt/web/powerdns-admin
-#ExecStart=/opt/web/powerdns-admin/flask/bin/gunicorn --workers 2 --bind unix:/opt/web/powerdns-admin/powerdns-admin.sock app:app +ExecStart=/opt/web/powerdns-admin/venv/bin/gunicorn --pid /run/powerdns-admin/pid --workers 2 --bind '0.0.0.0:9191' 'powerdnsadmin:create_app()' 
-ExecStart=/opt/web/powerdns-admin/flask/bin/gunicorn --workers 2 --bind 0.0.0.0:9191 app:app+ExecReload=/bin/kill -s HUP $MAINPID 
 +ExecStop=/bin/kill -s TERM $MAINPID 
 +PrivateTmp=true 
 +Restart=on-failure 
 +RestartSec=10 
 +StartLimitInterval=0
  
 [Install] [Install]
 WantedBy=multi-user.target WantedBy=multi-user.target
 +EOF
 </code> </code>
  
 +<code bash>
 +mkdir -p /etc/systemd/system/powerdns-admin.service.d/
 +tee /etc/systemd/system/powerdns-admin.service.d/override.conf<<EOF
 +[Service]
 +Environment="FLASK_CONF=../configs/production.py"
 +EOF
 +</code>
 +
 +<code bash>
 +echo 'd /run/powerdns-admin 0755 www-data root -' > /etc/tmpfiles.d/powerdns-admin.conf
 +mkdir -p /run/powerdns-admin
 +chown -R www-data:root /run/powerdns-admin
 +chown -R www-data:root /opt/web/powerdns-admin
 +</code>
  
 <code bash> <code bash>
 systemctl daemon-reload systemctl daemon-reload
-systemctl start powerdns-admin 
 systemctl enable powerdns-admin systemctl enable powerdns-admin
 +systemctl restart powerdns-admin
 +systemctl status powerdns-admin
 </code> </code>
- 
  
 <code bash> <code bash>
Рядок 193: Рядок 270:
  
 <code bash> <code bash>
 +webserver-port=8081
 api=yes api=yes
-api-key=changeme+api-key=changemechangemechangeme
 </code> </code>
- 
  
 <code bash> <code bash>
-/etc/init.d/pdns restart+chown -R pdns:root /etc/powerdns/ 
 +systemctl restart pdns
 </code> </code>
  
 +Visit PowerDNS-Admin web interface. http://your-host-ip:9191/
  
 +Click “Create an account” button and Register a user. The first user will be in the Administrator role.
  
 +Provide PowerDNS API connection information before PowerDNS-Admin can query your PowerDNS data. This is done under Settings > PDNS
  
 ===== Нотатки ===== ===== Нотатки =====
-History <details> 
-<code bash> 
-___________WSGI________ 
-apt install apache2-dev 
-sudo apt-get install uwsgi uwsgi-plugin-python 
-pip3 install mod-wsgi 
-mod_wsgi-express install-module > /etc/apache2/mods-available/wsgi.load 
-a2enmod wsgi 
-sudo a2enmod wsgi 
-systemctl restart apache2 
-nano /etc/apache2/sites-available/powerdns-admin.conf 
-nano /opt/web/powerdns-admin/powerdnsadmin.wsgi 
-uwsgi /opt/web/powerdns-admin/powerdnsadmin.wsgi 
-wsgi /opt/web/powerdns-admin/powerdnsadmin.wsgi 
-uwsgi powerdnsadmin.wsgi 
-sudo a2dissite 000-default.conf 
-sudo a2ensite powerdns-admin.conf 
-sudo apache2ctl configtest 
-systemctl restart apache2 
-systemctl status apache2 
- 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl daemon-reload 
-systemctl start powerdns-admin 
-systemctl enable powerdns-admin 
-sudo ufw allow 9191/tcp 
-sudo ufw reload 
-systemctl status powerdns-admin 
-nano /etc/systemd/system/powerdns-admin.service 
-/usr/bin/gunicorn-3.6 --workers 4 --log-level info --pid /run/powerdns-admin/pid --bind unix:/run/powerdns-admin/socket "powerdnsadmin:create_app(config='config.py')" 
-/opt/web/powerdns-admin/flask/bin/gunicorn --workers 2 --bind 0.0.0.0:9191 "powerdnsadmin:create_app(config='config.py')" 
-[Unit] 
-Description=PowerDNS-Admin 
-Requires=powerdns-admin.socket 
-Wants=network.target 
-After=network.target mysqld.service slapd.service mariadb.service 
-[Service] 
-PIDFile=/run/powerdns-admin/pid 
-User=www-data 
-Group=www-data 
-WorkingDirectory=/opt/web/powerdns-admin 
-#ExecStart=/opt/web/powerdns-admin/flask/bin/gunicorn --workers 4 --log-level info --pid /run/powerdns-admin/pid --bind unix:/run/powerdns-admin/socket "powerdnsadmin:create_app(config='config.py')" 
-ExecStart=/opt/web/powerdns-admin/flask/bin/gunicorn --workers 4 --log-level info --pid /run/powerdns-admin/pid --bind 0.0.0.0:9191 "powerdnsadmin:create_app(config='config.py')" 
-ExecReload=/bin/kill -s HUP $MAINPID 
-ExecStop=/bin/kill -s TERM $MAINPID 
-PrivateTmp=true 
-Restart=on-failure 
-RestartSec=10 
-StartLimitInterval=0 
-[Install] 
- 
-systemctl daemon-reload 
-systemctl enable powerdns-admin 
-systemctl restart powerdns-admin 
-nano /etc/systemd/system/powerdns-admin.socket 
-systemctl restart powerdns-admin 
-chmod /run/powerdns-admin 0755 www-data www-data - 
-chown  www-data:www-data /run/powerdns-admin 
-nano /etc/tmpfiles.d/powerdns-admin.conf 
-sudo systemctl daemon-reload; sudo systemctl start powerdns-admin.socket; sudo systemctl enable powerdns-admin.socket 
- 
-nano /etc/systemd/system/powerdns-admin.socket 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl disable powerdns-admin 
-systemctl enaable powerdns-admin 
-systemctl restart powerdns-admin 
-systemctl status powerdns-admin 
-systemctl status powerdns-admin 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl disable powerdns-admin 
-systemctl enaable powerdns-admin 
-systemctl restart powerdns-admin 
-systemctl status powerdns-admin 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl restart powerdns-admin 
-systemctl status powerdns-admin 
-/opt/web/powerdns-admin/flask/bin/gunicorn --workers 4 --log-level info --pid /run/powerdns-admin/pid --bind 0.0.0.0:9191 "powerdnsadmin:create_app(config='config.py')" 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl disable powerdns-admin 
-sudo systemctl daemon-reload; 
-systemctl restart powerdns-admin 
-systemctl enable powerdns-admin 
-systemctl restart powerdns-admin 
-systemctl stop powerdns-admin 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl disable powerdns-admin 
-sudo systemctl daemon-reload; 
-systemctl enable powerdns-admin 
-systemctl restart powerdns-admin 
-systemctl disable powerdns-admin 
-nano /etc/systemd/system/powerdns-admin.service 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl daemon-reload 
-systemctl start powerdns-admin 
-systemctl enable powerdns-admin 
-systemctl start powerdns-admin 
-systemctl status powerdns-admin 
-systemctl stop powerdns-admin 
-systemctl stop powerdns-admin.socket 
-systemctl stop powerdns-admin.socket 
-systemctl stop powerdns-admin 
-/opt/web/powerdns-admin/flask/bin/gunicorn --pid /run/powerdns-admin/pid --bind 0.0.0.0:9191 powerdnsadmin:create_app() 
-/opt/web/powerdns-admin/flask/bin/gunicorn  --bind 0.0.0.0:9191 powerdnsadmin:create_app() 
-/opt/web/powerdns-admin/flask/bin/gunicorn  --bind 0.0.0.0:9191 powerdnsadmin:create_app() 
-/opt/web/powerdns-admin/flask/bin/gunicorn  --bind 0.0.0.0:9191 "powerdnsadmin:create_app()" 
-/opt/web/powerdns-admin/flask/bin/gunicorn --pid /run/powerdns-admin/pid --bind 0.0.0.0:9191 "powerdnsadmin:create_app()" 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl daemon-reload 
-systemctl stop powerdns-admin.socket 
-systemctl stop powerdns-admin 
-systemctl enable powerdns-admin 
-systemctl start powerdns-admin 
-systemctl status powerdns-admin 
-nano /etc/systemd/system/powerdns-admin.service 
-systemctl daemon-reload 
-systemctl enable powerdns-admin 
-systemctl restart powerdns-admin 
-systemctl status powerdns-admin 
-nano /etc/apache2/sites-available/powerdns-admin.conf 
-sudo apache2ctl configtest 
-mod_proxy 
-sudo a2enmod proxy 
-systemctl restart apache2 
-sudo apache2ctl configtest 
-nano /etc/apache2/sites-available/powerdns-admin.conf 
-sudo apache2ctl configtest 
-systemctl restart apache2 
-nano /etc/apache2/sites-available/powerdns-admin.conf 
-sudo apache2ctl configtest 
-systemctl restart apache2 
-history 
-</code> 
-</details> 
  
 [[https://www.ylsoftware.com/news/712|Установка DNSCrypt-сервера]] [[https://www.ylsoftware.com/news/712|Установка DNSCrypt-сервера]]
  
 [[https://dnslookup.online/ptr.html]] [[https://dnslookup.online/ptr.html]]
- 
-<wrap hi>new version [[https://kifarunix.com/easily-install-and-setup-powerdns-admin-on-ubuntu-20-04/]] 
-</wrap> 
  
 [[https://github.com/ngoduykhanh/PowerDNS-Admin/wiki]] [[https://github.com/ngoduykhanh/PowerDNS-Admin/wiki]]
Рядок 352: Рядок 297:
  
 [[https://fossies.org/linux/pdns-dnsdist/pdns/dnsdistdist/docs/advanced/snmp.rst]] [[https://fossies.org/linux/pdns-dnsdist/pdns/dnsdistdist/docs/advanced/snmp.rst]]
- 
- 
- 
-  sh -c 'echo "deb [arch=amd64] http://repo.powerdns.com/debian buster-rec-master main" > /etc/apt/sources.list.d/pdns.list' 
- 
-  nano /etc/apt/preferences.d/pdns 
- 
-  Package: pdns-* 
-  Pin: origin repo.powerdns.com 
-  Pin-Priority: 600 
- 
-  curl https://repo.powerdns.com/CBC8B383-pub.asc | sudo apt-key add - && 
-  sudo apt-get update && 
-  sudo apt-get install pdns-recursor 
-   
- 
  
   pdnsutil create-zone example.com ns1.example.com   pdnsutil create-zone example.com ns1.example.com
  
-   
   /etc/init.d/pdns-recursor restart   /etc/init.d/pdns-recursor restart
   rec_control wipe-cache   rec_control wipe-cache
   /etc/init.d/pdns-recursor status   /etc/init.d/pdns-recursor status
  
  • debian/pdns_server.1665306448.txt.gz
  • Востаннє змінено: 09/10/2022 09:07
  • повз Method