반응형

 

  • DNS 관리툴 fmDNS 설치 시 에러 "Database setup failed. Please try again"

해당 에러는 /var/www/html/dnsadmin/config.inc.php 설정 파일에서 입력한 Databases Name 부분을 잘못 입력할 경우 발생할 수 있습니다.

Databases Name 부분($__FM_CONFIG['db']['name]="~~")은 MySQL에 생성한 데이터베이스의 이름이어야 합니다. fmDNS 설치하며 MySQL에 생성했던 데이터 베이스의 이름으로 변경 후 systemctl restart httpd 하여 적용하고 재시도 하면 해결 가능 합니다.

 

반응형
반응형

 

  • DNS 관리툴 fmDNS 설치 시 에러 "ERROR:Could not connect to MySQL. Please check tour credentials."

해당 에러는 fmDNS 설치 시 Database Host에 localhost를 입력하고 그대로 진행할 경우 발생할 수 있습니다. APM, bind, fmDNS를 셋팅한 리눅스 IP를 입력하여 간단히 해결 가능 합니다.

또는 firewalld나 selinux를 확인하여 MySQL에 접근 가능한지 확인해야 합니다.

 

반응형
반응형

 

  • fmDNS 란?

fmDNS는 DNS를 좀 더 관리하기 편하게 webUI를 이용하여 사용하는 오픈소스 툴 입니다.

 

  • fmDNS의 장점

버튼 클릭만으로 DNS SEC을 설정하거나 도메인&존파일 설정 등 webUI가 편하다 생각하시는 분들은 사용하시는걸 추천 드립니다. 그럴일은 많이 없겠지만 리눅스 환경이 낯설고 DNS를 잘 다뤄보지 못한 외부 인원 등이 DNS를 직접 사용해야할 경우에 fmDNS를 도입하는걸 추천 드립니다.

 

  • fmDNS의 단점

변경 사항을 적용하기까지 약 2~3분 가량 걸린다는 점과 비교적 복잡한 설치 과정 입니다.

또한 이미 CLI 환경에서 DNS를 다루어 보셨고 그것이 익숙하신분이라면 오히려 불편하실 겁니다. 익숙하신분들은 DNS 관리툴에서 얻을 수 있는 이점이 없기에 (오히려 관리 차원에서 단점이 더 커질 수 있습니다) 사용하지 마시고 정 궁금하기면 구축 정도만 해보는걸 추천 드립니다.

 

  • DNS 관리툴 fmDNS 설치 및 구축-1 (APM, bind 설치 및 셋팅)

fmDNS를 설치하기 위해서는 APM을 셋팅해야 하고, PHP의 버전은 5.5 이상으로 사용하셔야 합니다. 이번 포스팅에서는 APM 설치까지 포함하여 작성 하겠습니다.

참고로 php 5.5 버전의 경우 php55w 라는 패키지도 많이 설치 하시는걸로 보이는데, php55w으로 설치하면 재대로 연동이 되지 않아서 권한 에러가 발생하니 아래와 같이 설치 진행 해주세요

# apache. dns 설치
yum -y install bind httpd

# php 5.5 설치
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum --enablerepo=remi-php55 -y install php php-process php-mysql

# mysql 설치
yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-community-server

# ServerName을 설정하여 httpd start 시 에러가 발생하지 않도록 아래 내용 설정
vi /etc/httpd/conf/httpd.conf
/ServerName
ServerName=localhost

# 서비스 시작/등록
systemctl start httpd
systemctl start mysqld
systemctl start named
systemctl enable httpd
systemctl enable mysqld
systemctl enable named

 

이후 아래와 같이 mysql 설정을 진행 합니다. 이후 fmDNS 설정할 때 다시 설명 하겠지만, 저의 경우 로컬 윈도우의 브라우저에서 fmDNS 설치를 마저 끝낼 예정이므로 외부에서 접속하기 위해 192.168.0.% 으로 열어 두었습니다.

아래를 참고하여 자신의 환경에 맞게 IP 접근 권한을 설정 해주세요.

cat /var/log/mysqld.log | grep 'temporary password'

mysql -u root -p
[초기 패스워드 입력]

# 대소문자,숫자,특수문자를 포함하여 8자 이상만 사용 가능
alter user 'root'@'localhost' identified by '사용할패스워드';
CREATE DATABASE dns;
CREATE USER 'dnsadmin'@'localhost' IDENTIFIED BY '사용할패스워드';
GRANT ALL PRIVILEGES ON dns.* TO 'dnsadmin'@'localhost';

CREATE USER 'dnsadmin'@'192.168.0.%' IDENTIFIED BY '사용할패스워드';
GRANT ALL PRIVILEGES ON dns.* TO 'dnsadmin'@'192.168.0.%';
flush privileges;
commit;
quit

 

참고로, 위에서의 초기 패스워드는 아래 이미지에 빨간 박스가 있는 부분 입니다.

 

 

  • DNS 관리툴 fmDNS 설치 및 구축-2 (fmDNS 설치)

이제 APM 셋팅은 완료 되었으니 fmDNS 설치를 진행 합니다. 2020년 04월 28일을 기준으로 아래 코드를 사용하여 다운로드할 수 있습니다.

cd /opt
wget http://www.facilemanager.com/download/facilemanager-complete-3.5.7.tar.gz
tar -zxvf facilemanager-complete-3.5.7.tar.gz
cp -r /opt/facileManager/server/ /var/www/html/dnsadmin

 

참고로 버전이 바뀔 경우 위대로 따라하면 wget이 안될 수 있습니다. fmDNS 홈페이지에 접속 후 아래 이미지와 같이 다운로드 부분에 마우스로 우클릭하여 "링크 주소 복사"를 클릭하여 링크 주소를 가져올 수 있으니 참고 해주세요.

fmDNS 다운로드 홈페이지 : http://www.facilemanager.com/download/

 

이후 아래와 같이 진행하여 conf 파일을 설치 합니다. 참고로 현재 yum 설치하면 기본 Apache 2.4 버전이 설치되므로 아래 코드는 참고해서 진행 해주시면 됩니다.

vim /etc/httpd/conf.d/dnsadmin.conf
Alias /dnsadmin /var/www/html/dnsadmin

<Directory /var/www/html/dnsadmin/>

 Options FollowSymLinks
 AllowOverride All

# For Apache = 2.3:
# Order allow,deny
# allow from all

# For Apache = 2.4
 Require all granted 
</Directory>
systemctl restart httpd

 

이제 브라우저를 실행시키고 (저같은 경우 로컬 윈도우) https://서버ip/dnsadmin 을 입력하면 아래와 같은 창이 나옵니다.

Database Host는 localhost로 되어 있을텐데 APM, bind, fmDNS를 설치한 리눅스의 IP를 적어주시고 아래의 ID/PW는 위에서 mysqld 설정 시 생성했던 mysql ID/PW를 적어주셔야 합니다.

그리고 Database Name은 위에서 생성했던 dns 가 될겁니다. 저와 같은 설정을 했다면 아래 코드블럭 위아래 순서대로 적으시면 됩니다.

192.168.0.10  (APM, bind, fmDNS 설치한 리눅스 IP)
dns
dnsadmin
mysql 계정 생성 시 입력한 패스워드

 

ID와 PW를 입력하면 아래와 같은 창이 나옵니다.

 

이상태로 그대로 두고, 잠시 리눅스로 돌아와 /var/www/html/dnsadmin/config.inc.php 을 vi 편집기로 열어서 위 이미지에 나왔던 내용들을 모두 붙여넣어줍니다. 저같은 경우 아래 코드들과 같이 될겁니다.

참고로 샘플 파일인 /var/www/html/dnsadmin/config.sample.inc.php 도 있으니 혼동하지 마시기 바랍니다.

vi /var/www/html/dnsadmin/config.inc.php
<?php

/**
 * Contains configuration details for facileManager
 *
 * @package facileManager
 *
 */

/** Database credentials */
$__FM_CONFIG['db']['host'] = '192.168.0.10';
$__FM_CONFIG['db']['user'] = 'dnsadmin';
$__FM_CONFIG['db']['pass'] = '~~~~~~~~';
$__FM_CONFIG['db']['name'] = 'dns';

require_once(ABSPATH . 'fm-modules/facileManager/functions.php');

?>

 

그럼 아래와 같이 체크표시가 되고 Continue를 눌러서 fmDNS에 브라우저로 접근할 때 사용할 계정 정보를 입력 해주면 됩니다.

참고로 Password Validity가 Strong이 되어야하기 때문에 복잡도를 생각하시고 패스워드를 입력해야 합니다. (아마, 패스워드 분실 시 이메일로 찾기 때문에 계속 사용하실 생각이시면 유효한 이메일을 작성 해주세요.)

 

이제 방금 생성한 계정을 입력하여 접속 합니다.

 

fmDNS를 사용할것이기 때문에 Activate를 클릭하여 활성화 해주세요.

 

fmDNS를 활성화하면 아래와 같이 우측 상단 부분이 생길텐데, fmDNS를 눌러주면 fmDNS 화면으로 이동 됩니다.

 

이로써 복잡하면 복잡하다고 할 수 있는 fmDNS 설치가 모두 끝낫습니다.

이후 사용은 webUI 답게 비교적 간단하여 클릭만으로 설정이 가능합니다. 간단한 설정 방법은 이후에 포스팅 하겠습니다.

 

반응형
반응형

 

  • DNS Master & Salve 개념

사실 사용하는대에 있어서 깊은 이해를 필요하는 부분이 아니기 때문에 단순히 Master와 Slave는 주-보조 관계이며 DNS 서버를 이중화 시킨다고만 알고 계셔도 됩니다. (Slave를 여러대 사용할수도 있습니다)

Master-Slave는 동기화 과정을 통해 zone 파일을 관리하게 되는데, zone 파일의 SOA 필드에 있는 serial을 확인하여 이 파일이 업데이트가 되었는지 판단 합니다. serial이 증가 했을 경우 파일이 업데이트된것으로 판단하고 동기화 과정을 통해 Slave 서버로 zone 파일이 전송 됩니다.

이러한 동기화 과정을 zone transfer 라고 하는데 포트 TCP 53번이 바로 여기서 사용 됩니다. (일반 반복 쿼리 시 UDP 53번 사용)

만약, Master 서버에 장애가 발생할 경우 Slave 서버에서 서비스를 중단 없이 지속적으로 제공 합니다.

 

  • Master 서버 설정

  • 1. DNS 서버 구성을 위한 bind 패키지 설치
yum -y install bind*

 

  • 2. vi /etc/named.conf

클라이언트에서 접근할 수 있도록 설정을 진행 합니다. 

 

* /etc/named.conf 파일에 대한 내용은 아래 URL을 참고 해주세요.

[DNS] 리눅스 DNS 서버 구축 (1) : https://nirsa.tistory.com/104?category=872350

 

  • 3. vi /etc/named.rfc1912.zones

서비스할 zone 파일을 등록 합니다. 기존 등록 방식과 같으며 allow-update { [slave서버 IP]; }; 를 입력 합니다.

 

  • 4. vi /var/named/nirsa.com

서비스할 zone 파일을 생성 합니다.

cp -p named.localhost nirsa.com

 

ns1은 Master 서버로, ns2는 Slave 서버로 설정할 것 이기 때문에 각각 알맞게 IP를 넣어주세요. (ns1:Master IP  ,  ns2:Slave IP)

 

이후 DNS 서버를 시작해주시면 되고 만약 에러 발생 시 오타가 없는지 확인 해주세요.

systemctl restart named

 

*/etc/named.rfc1912.zones 와 /var/named.~ 파일에 대한 내용은 아래 URL을 참고 해주세요.

[DNS] 리눅스 DNS 서버 구축 (2) : https://nirsa.tistory.com/108?category=872350

 

  • Slave 서버 설정

Slave 서버를 설정할 때 Master 서버와 별 다를점이 없습니다. 우선 Master 서버 1~2번 항목을 그대로 따라 해주신 후 아래 내용을 따라 해주세요.

vi 편집기로 /etc/named.rfc1912.zones 를 키시고 아래와 같이 작성 해줍니다. 도메인은 똑같이 작성하되 타입은 slave로, allow-update 를 지우고 masters로 작성하여 master 서버 IP를 작성 해주세요.

systemctl restart named

DNS 서버를 실행 후 재대로 작동 하는지 ls -lh /var/named/slaves/ 를 입력하여 재대로 zone 파일을 가져 왔는지 확인 해보시면 됩니다.

 

master 서버의 /var/log/mesagges 에서도 확인하실 수 있습니다.

 

또한 정상적으로 작동하는것을 확인 하였다면 Master 서버 zone 파일의 시리얼 번호를 변경(값이 더 높도록 +1 이상) 후 named 서비스를 재기동하고 Slave 서버로 잘 넘어갔는지 다시 확인 해보시면 됩니다.

 

반응형

+ Recent posts