آموزش راه اندازی BIND در لینوکس با PostgreSQL

یکی از قابلیت های جدیدی که از ورژن 9.8 به BIND اضافه شده است SDB می باشد، SDB این امکان را به ما میدهد که از یک دیتابیس به عنوان Backend برای BIND بهره ببریم.در حال حاضر SDB فقط از SQLite ، PostgreSQL و LDAP پشتیبانی میکند، که در این بخش نحوه راه اندازی آن با PostgreSQL را آموزش میدهیم.در ابتدا پکیج های مورد نیاز را نصب میکنیم :

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
[root@named ~]# yum install -y epel-release
[root@named ~]# yum install -y bind bind-utils bind-sdb postgresql postgresql-server postgresql-odbc

سرویس PostgreSQL را استارت میکنیم :

[root@named ~]# postgresql-setup initdb
[root@named ~]# systemctl start postgresql && systemctl enable postgresql

یک یوزر ایجاد میکنیم :

[root@named ~]# sudo -i -u postgres
$ createuser root --login --superuser --createdb --createrole --encrypted -P -W
Enter Password: Aa123456
Re-type Password: Aa123456

برای امنیت بیشتر؛ مکانیزم Authentication دیتابیس را به MD5 تغییر میدهیم :

[root@named ~]# vim /var/lib/pgsql/data/pg_hba.conf
local   all             all                                  md5
host    all             all             127.0.0.1/32         md5
[root@named ~]# systemctl restart postgresql

دیتابیس و جدول های مورد نیاز برای سرویس bind ایجاد میکنیم :

[root@named ~]# createdb bind --owner=root
[root@named ~]# psql -d bind
bind# CREATE TABLE forward_tbl ( name varchar(255) DEFAULT NULL, ttl int DEFAULT '86400', rdtype varchar(90) DEFAULT NULL, rdata varchar(255));
bind# CREATE TABLE reverse_tbl ( name varchar(255) DEFAULT NULL, ttl int DEFAULT '86400', rdtype VARCHAR(90) DEFAULT NULL, rdata varchar(255));

سپس رکورد ها را در دیتابیس درج میکنیم :

# Forward :
bind# INSERT INTO forward_tbl VALUES ('itpro.local','86400','SOA','named.itpro.local. root.itpro.local. 201609100 3600 1800 2419200 86400');
bind# INSERT INTO forward_tbl VALUES ('itpro.local','86400','NS','named.itpro.local.');
bind# INSERT INTO forward_tbl VALUES ('named.itpro.local','86400','A','192.168.1.1');
bind# INSERT INTO forward_tbl VALUES ('nginx.itpro.local','86400','A','192.168.1.2');
bind# INSERT INTO forward_tbl VALUES ('PC1.itpro.local','86400','A','192.168.1.10');
bind# INSERT INTO forward_tbl VALUES ('PC2.itpro.local','86400','A','192.168.1.11');

# Reverse :
bind# INSERT INTO reverse_tbl VALUES ('1.168.192.in-addr.arpa','86400','SOA','named.itpro.local. root.itpro.local. 201609100 3600 1800 2419200 86400');
bind# INSERT INTO reverse_tbl VALUES ('1.168.192.in-addr.arpa','86400','NS','named.itpro.local.');
bind# INSERT INTO reverse_tbl VALUES ('1.1.168.192.in-addr.arpa','86400','PTR','named.itpro.local.');
bind# INSERT INTO reverse_tbl VALUES ('2.1.168.192.in-addr.arpa','86400','PTR','nginx.itpro.local.');
bind# INSERT INTO reverse_tbl VALUES ('10.1.168.192.in-addr.arpa','86400','PTR','PC1.itpro.local.');
bind# INSERT INTO reverse_tbl VALUES ('11.1.168.192.in-addr.arpa','86400','PTR','PC2.itpro.local.');

سرویس Bind را پیکربندی میکنیم :

[root@named ~]# vim /etc/named.conf
------------------
options {
	listen-on port 53 { 127.0.0.1; 192.168.1.1; };
	allow-query	{ any; };
        .
        .
        .
};

zone "itpro.local" {
       type master;
       database "pgsql bind forward_tbl 127.0.0.1 root Aa123456";
};

zone "1.168.192.in-addr.arpa" {
       type master;
       database "pgsql bind reverse_tbl 127.0.0.1 root Aa123456";
};
------------------

قابلیت SDB را فعال میکنیم :

[root@named ~]# vim /etc/sysconfig/named
ENABLE_SDB=yes

سرویس bind را استارت میکنیم :

[root@named ~]# systemctl start named-sdb && systemctl enable named-sdb

در آخر Firewalld و SELinux را پیکربندی میکنیم :

[root@named ~]# firewall-cmd --permanent add-port={53/udp,5432/tcp}
[root@named ~]# firewall-cmd --reload
[root@named ~]# setenforce 0

برای درج رکورد های جدید نیز میتوانید بصورت زیر عمل کنید :

[root@named ~]# pgsql -d bind -c "INSERT INTO forward_tbl VALUES ('PC3.itpro.local','86400','A','192.168.1.20');"
[root@named ~]# pgsql -d bind -c "INSERT INTO reverse_tbl VALUES ('20.1.168.192.in-addr.arpa','86400','PTR','PC3.itpro.local.');"
وب سایت توسینسو
وب سایت توسینسو

نویسنده : احسان هدایتی

منبع : ITPRO


نظرات