12.DNS 서버 구축하기, 도메인 이름과 IP 주소의 매핑 설정

DNS(도메인 네임 시스템)는 인터넷의 전화번호부와 같은 역할을 합니다. 사용자가 웹사이트에 접속할 때 도메인 이름을 입력하면, DNS 서버가 해당 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해줍니다. 이 글에서는 우분투 서버에서 DNS 서버를 구축하고, 도메인 이름과 IP 주소의 매핑을 설정하는 방법에 대해 자세히 설명하겠습니다.

1. DNS 서버의 필요성

현대의 인터넷에서는 도메인 이름이 사용자에게 더 익숙하고 사용하기 편리합니다. 그러나 컴퓨터는 숫자로 구성된 IP 주소를 사용합니다. 따라서 DNS 서버는 도메인 이름과 IP 주소 간의 매핑을 관리하여 사용자의 편의를 돕습니다. DNS의 주요 기능은 다음과 같습니다:

  • 도메인 이름을 IP 주소로 변환
  • IP 주소로 도메인 이름을 찾기
  • 서브도메인 관리
  • 부하 분산과 캐싱

2. 우분투에서 DNS 서버 구축하기

우분투에서 DNS 서버를 구축하기 위해 BIND9(Berkeley Internet Name Domain)를 사용할 것입니다. BIND는 가장 널리 사용되는 DNS 서버 소프트웨어 중 하나로, 다양한 기능과 높은 안정성을 제공합니다.

2.1 BIND9 설치

우분투 서버에서 BIND9를 설치하기 위해 다음 명령어를 실행합니다:

sudo apt update
sudo apt install bind9 bind9utils bind9-doc

설치가 완료되면 BIND 서비스가 자동으로 시작됩니다.

2.2 BIND9 구성 파일

BIND9의 주요 구성 파일은 /etc/bind/named.conf이며, 이 파일에서 다양한 설정을 관리합니다. BIND는 여러 개의 구성 파일을 포함할 수 있으며, 대부분의 설정은 다음 파일들에 위치합니다:

  • named.conf.options: 옵션 설정
  • named.conf.local: 개인 도메인 설정
  • db.local: 루프백 영역 파일
  • db.127: IPv4 루프백 주소에 대한 설정

2.3 예제 도메인 설정

예를 들어, example.com 도메인을 관리한다고 가정해 보겠습니다. 먼저, named.conf.local 파일에 도메인을 추가해야 합니다:

sudo nano /etc/bind/named.conf.local

여기서 다음 내용을 추가합니다:

zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
};

2.4 DNS 자료 파일 생성

이제 도메인에 대한 자료 파일을 생성합니다:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

파일을 편집하여 필요한 설정을 추가합니다:

sudo nano /etc/bind/db.example.com

내용을 다음과 같이 업데이트합니다:

\$TTL    604800
@       IN      SOA     ns.example.com. admin.example.com. (
                             2         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.example.com.
@       IN      A       192.168.1.10  ; 이곳에 당신의 서버 IP 주소를 입력하세요
ns      IN      A       192.168.1.10  ; 네임서버의 IP 주소
www     IN      A       192.168.1.10  ; www 서브도메인에 대한 IP 주소

3. BIND9의 재시작

구성을 완료한 후에는 BIND 서비스를 재시작해야 합니다:

sudo systemctl restart bind9

이제 DNS 서버가 작동하고 있어야 하며, 다음 명령을 사용하여 DNS 동작을 확인할 수 있습니다:

dig @localhost example.com

4. DNS 클라이언트 설정

DNS 서버가 구축되면 클라이언트 컴퓨터에서 DNS 서버를 사용하도록 설정해야 합니다. Ubuntu의 경우 /etc/resolv.conf 파일을 편집하여 DNS 서버를 추가할 수 있습니다:

sudo nano /etc/resolv.conf

파일에 다음 내용을 추가합니다:

nameserver 192.168.1.10  ; 이곳에 DNS 서버의 IP를 입력하세요

5. DNS 서버 테스트

설정이 끝난 후 IP 주소가 올바르게 매핑되었는지 테스트할 수 있습니다. 다음 명령어를 사용하여 도메인이 올바른 IP 주소로 변환되는지 확인합니다:

ping example.com

응답이 돌아오면 DNS 서버가 정상적으로 작동하고 있는 것입니다.

6. 문제 해결

DNS 서버 구축 과정에서 발생할 수 있는 일반적인 문제와 해결 방법은 다음과 같습니다:

  • 서비스가 시작되지 않는 경우: 로그 파일을 확인하여 에러 메시지를 확인하세요. journalctl -xe 명령어로 로그를 확인할 수 있습니다.
  • 도메인이 구분되지 않는 경우: 각각의 구성 파일을 검토하고 문법적 오류가 없는지 확인하세요.
  • 호스트 이름이 반환되지 않는 경우: dig로 직접 쿼리해보며 문제를 추적할 수 있습니다.

7. 결론

이 글에서는 우분투 서버에서 DNS 서버를 구축하고 도메인 이름과 IP 주소 간의 매핑을 설정하는 방법에 대해 다루었습니다. DNS는 인터넷에서 필수적인 구성 요소이며, 올바르게 설정되면 안정적인 웹 서비스를 제공하는 기초가 됩니다. 이제 DNS 서버를 통해 도메인 이름을 손쉽게 관리할 수 있습니다.

8. 참고 자료

12.DNS 서버 구축하기, 캐시 DNS 서버를 이용한 빠른 도메인 확인

1. DNS의 기본 이해

DNS(도메인 네임 시스템)는 인터넷의 전화번호부와 같은 역할을 합니다. 사람은 도메인 이름(예: www.example.com)을 사용하여 웹사이트에 접근하지만, 컴퓨터는 IP 주소(예: 192.0.2.1)를 사용하여 서로 통신합니다. DNS는 이 도메인 이름을 IP 주소로 변환하는 시스템입니다.

1.1 DNS의 작동 원리

DNS의 작동 원리는 다음과 같습니다:

  1. 사용자가 웹 브라우저에 도메인 이름을 입력합니다.
  2. 브라우저는 캐시에서 해당 도메인의 IP 주소를 찾습니다.
  3. 캐시에서 찾지 못할 경우, DNS 쿼리가 DNS 서버로 전송됩니다.
  4. DNS 서버는 도메인 이름을 IP 주소로 변환하여 응답합니다.
  5. 브라우저는 IP 주소를 사용하여 웹사이트에 접속합니다.

2. 캐시 DNS 서버의 필요성

캐시 DNS 서버는 동일한 DNS 쿼리에 대해 빠른 응답을 제공함으로써 네트워크의 성능을 향상시키는 역할을 합니다. 다음은 캐시 DNS 서버를 이용하는 주요 이점입니다:

  • 응답속도 향상: 자주 요청되는 도메인에 대한 IP 주소를 캐시하여, 반복 요청시 빠른 응답 가능.
  • 트래픽 감소: 외부 DNS 서버에 대한 쿼리 수를 줄여 네트워크 대역폭을 절약.
  • 신뢰성 증가: 내부 네트워크의 요청에 대해 독립적으로 응답함으로써 외부 DNS 서버 장애 시에도 네트워크 운영 가능.

3. 우분투에서 캐시 DNS 서버 구축하기

우분투에서 캐시 DNS 서버를 구축하기 위해 DNSMasq를 사용할 것입니다. DNSMasq는 경량의 DNS 포워더 및 DHCP 서버로, 간단한 구성과 사용으로 유명합니다.

3.1 DNSMasq 설치

sudo apt update
sudo apt install dnsmasq

3.2 DNSMasq 설정

설치가 완료되면, DNSMasq의 설정 파일을 편집해야 합니다. 텍스트 편집기를 사용하여 /etc/dnsmasq.conf 파일을 엽니다:

sudo nano /etc/dnsmasq.conf

아래의 기본 설정을 추가합니다:

domain-needed
bogus-priv
no-resolv
server=8.8.8.8  # 구글 DNS 사용
server=8.8.4.4  # 구글 DNS 사용
listen-address=127.0.0.1
cache-size=1000

3.3 DNSMasq 서비스 시작

설정이 완료되면, DNSMasq 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다:

sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq

3.4 DNSMasq 테스트

DNSMasq가 제대로 작동하는지 확인하기 위해, DNS 쿼리를 실행하여 응답이 오는지 테스트합니다:

dig @127.0.0.1 www.example.com

4. 클라이언트 설정

DNSMasq 서버를 사용하기 위해, 클라이언트 시스템의 DNS 설정을 변경해야 합니다. 각 클라이언트에서 DNS 서버 주소를 127.0.0.1로 설정합니다.

4.1 Ubuntu 클라이언트 설정

우분투에서는 /etc/resolv.conf 파일을 수정하여 DNS 서버를 설정할 수 있습니다:

sudo nano /etc/resolv.conf

파일의 내용을 다음과 같이 변경합니다:

nameserver 127.0.0.1

5. 성능 테스트 및 모니터링

성능을 모니터링하여 캐시 DNS 서버의 효과를 확인할 수 있습니다. 다음은 유용한 명령어입니다:

sudo systemd-resolve --status

5.1 로그 파일 확인

DNSMasq의 로그 파일을 확인하여 쿼리와 응답을 모니터링할 수 있습니다. 로그가 활성화되어 있지 않으면, 설정 파일에 추가해야 합니다:

log-queries
log-facility=/var/log/dnsmasq.log

이후 로그 파일을 확인하여 쿼리 내용을 검토할 수 있습니다:

cat /var/log/dnsmasq.log

6. 보안 강화

DNS 서버를 구축할 때 보안을 강화하는 것이 중요합니다. 다음은 몇 가지 팁입니다:

  • 서버 방화벽을 설정하여 외부 접근을 제한.
  • DNSSEC를 사용하여 DNS 쿼리의 무결성을 검증.
  • DNS 요청을 로그하고 정기적으로 확인하여 이상 징후를 파악.

결론

이번 포스트에서는 우분투에서 캐시 DNS 서버를 구축하는 방법에 대해 알아보았습니다. DNSMasq를 이용한 캐시 DNS 서버는 네트워크 성능을 크게 향상시킬 수 있으며, 설정이 간편하여 다양한 환경에서 쉽게 활용할 수 있습니다. 또한, 서버와 클라이언트의 보안을 강화하여 안전한 DNS 서비스를 제공하는 것이 중요합니다.

추가적으로, 더 복잡한 DNS 설정이나 성능 개선 전략에 대해서도 지속적으로 학습하고 적용해 나가길 권장합니다.

11.메일 서버 구축 및 설정, 메일 필터링과 스팸 방지 설정

메일 서버는 이메일을 전송하고 받을 수 있는 컴퓨터 시스템으로, 조직이나 개인이 이메일 서비스를 관리하고 운영하는 데 필수적인 요소입니다. 이 글에서는 우분투를 기반으로 메일 서버를 구축하는 방법, 메일 필터링 기법 및 스팸 방지 설정에 대해 구체적으로 설명하겠습니다.

11.1 메일 서버 개요

메일 서버는 주로 두 가지 역할을 수행합니다: SMTP(단순 메일 전송 프로토콜)를 사용하여 메일을 전송하고, POP3(우편함에 접근하는 프로토콜) 또는 IMAP(인터넷 메시지 접근 프로토콜)를 사용하여 메일을 수신합니다. 일반적으로 메일 서버는 다음과 같은 구성 요소를 포함합니다:

  • 메일 전송 에이전트(MTA): 메일을 외부로 전송하고 외부에서 받은 메일을 내부 사용자에게 전달하는 역할을 합니다. 예: Postfix, Exim
  • 메일 전달 에이전트(MDA): 수신된 메일을 특정 사용자에게 전달하는 역할을 합니다.
  • 메일 사용자 에이전트(MUA): 사용자가 메일을 작성하고 읽는 애플리케이션을 의미합니다.

11.2 우분투에 메일 서버 설치

우분투에서 메일 서버를 설치하는 과정은 여러 단계로 나뉩니다. 여기서는 Postfix와 Dovecot을 사용하여 SMTP 및 IMAP/POP3 서비스를 설정할 것입니다.

11.2.1 Postfix 설치

Postfix는 안정적이고 효율적인 MTA로 널리 사용됩니다. 설치는 다음과 같이 진행합니다:

sudo apt update
sudo apt install postfix

설치 중, General type of mail configuration에서 Internet Site를 선택하고, System mail name에는 도메인 이름을 입력합니다.

11.2.2 Dovecot 설치

Dovecot은 POP3 및 IMAP 서비스를 제공하는 MDA입니다. 다음 명령어로 설치할 수 있습니다:

sudo apt install dovecot-core dovecot-imapd dovecot-pop3d

11.2.3 메일 서버 구성

Postfix와 Dovecot을 설치한 후, 설정 파일들을 수정하여 서버를 구성해야 합니다.

Postfix 설정

/etc/postfix/main.cf 파일을 열어 다음과 같은 내용을 추가하거나 수정합니다:

myhostname = your_domain.com
mydomain = your_domain.com
myorigin = /etc/mailname
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost,
    $mydomain
relayhost =

Dovecot 설정

/etc/dovecot/dovecot.conf 파일을 열어 다음과 같은 내용을 추가합니다:

mail_location = maildir:~/Maildir
service imap-login {
   inet_listener imap {
     port = 0
   }
   inet_listener imaps {
     port = 993
     ssl = yes
   }
}
ssl_cert = 
ssl_key = 

이제 Postfix와 Dovecot 서비스를 시작하고, 시스템 부팅 시 자동으로 시작되도록 설정합니다:

sudo systemctl restart postfix
sudo systemctl restart dovecot
sudo systemctl enable postfix
sudo systemctl enable dovecot

11.3 메일 필터링 및 스팸 방지 설정

메일 서버를 운영하면서 스팸 메일로부터 보호하는 것은 매우 중요합니다. 다음에서는 메일 필터링 및 스팸 방지 방법에 대해 설명합니다.

11.3.1 SpamAssassin 설치

SpamAssassin은 스팸 메시지를 감지하여 차단하는 데 사용하는 오픈 소스 소프트웨어입니다. 다음 명령어로 설치합니다:

sudo apt install spamassassin

11.3.2 SpamAssassin 구성

설치 후, /etc/default/spamassassin 파일을 열어 다음과 같이 설정합니다:

ENABLED=1

SpamAssassin을 시스템 서비스로 실행하기 위해 다음 명령어를 입력합니다:

sudo systemctl start spamassassin
sudo systemctl enable spamassassin

11.3.3 Postfix와 SpamAssassin 연동

Postfix가 SpamAssassin과 연동되도록 하기 위해 다음과 같은 설정을 추가합니다. /etc/postfix/master.cf 파일을 열어 다음과 같이 수정합니다:

spamassassin unix -  n  n - - pipe
  flags=R user=mail null_sender=yes argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -t

이제 Postfix를 다시 시작합니다:

sudo systemctl restart postfix

11.3.4 메일 필터링 규칙 작성

SpamAssassin의 필터링 규칙은 /etc/mail/spamassassin/local.cf 파일에 설정할 수 있습니다. 이 파일에 다음과 같은 내용을 추가하여 기본 필터링 규칙을 설정할 수 있습니다:

required_score 5.0
rewrite_header Subject [SPAM]
use_bayes 1
bayes_auto_learn 1

11.3.5 피드백 시스템 설정

사용자로부터 피드백을 받아 스팸 및 정상 메일을 학습할 수 있습니다. 이를 위해 ‘sa-learn’ 명령어를 사용합니다. 사용자가 스팸 메일로 분류한 메일을 ‘spam’ 폴더로 이동 시킨 다음, 다음 명령어로 학습시킬 수 있습니다:

sa-learn --spam /path/to/spam-folder/*
sa-learn --ham /path/to/ham-folder/*

11.4 테스트 및 모니터링

메일 서버가 제대로 동작하는지 확인하기 위해 이메일 클라이언트 소프트웨어나 웹 메일 클라이언트를 사용하여 간단한 테스트를 수행할 수 있습니다. 메일 발송 및 수신을 테스트하고 스팸 메일의 차단 기능이 정상적으로 작동하는지 점검합니다.

11.메일 서버 구축 및 설정, 보안 메일 전송을 위한 SSL 설정

메일 서버는 인터넷을 통해 전자 메일을 주고받을 수 있는 시스템으로, 개인적인 용도나 기업의 메일 시스템 등 다양한 용도로 사용됩니다. 이번 섹션에서는 우분투(Ubuntu) 서버에서 메일 서버를 구축하고 설정하는 방법, 그리고 보안 메일 전송을 위한 SSL 설정에 대해 자세히 설명하겠습니다.

1. 메일 서버의 개요

메일 서버는 SMTP(Simple Mail Transfer Protocol) 프로토콜을 통해 메일을 발송하고, POP3(Post Office Protocol) 또는 IMAP(Internet Message Access Protocol) 프로토콜을 통해 메일을 수신합니다. 메일 서버를 구축하기 위해 필요한 주요 소프트웨어는 다음과 같습니다:

  • Postfix: SMTP를 이용한 메일 발송 서버
  • Dovecot: IMAP 및 POP3를 이용한 메일 수신 서버
  • OpenSSL: SSL/TLS 암호화를 위한 도구

2. 환경 설정

메일 서버를 구축하기 위해서는 먼저 우분투 서버를 준비하고, 필요한 소프트웨어를 설치해야 합니다. 우분투 20.04 LTS 버전을 기준으로 설명하겠습니다.

2.1 우분투 서버 설치

우분투 서버를 설치한 후, 다음 명령어를 통해 시스템을 업데이트합니다.

sudo apt update && sudo apt upgrade -y

2.2 Postfix 설치

Postfix를 설치하기 위해 다음 명령어를 이용합니다.

sudo apt install postfix -y

설치 과정 중에 메일 서버 유형을 선택하라는 메시지가 나타나면 “인터넷 사이트”를 선택하고, 시스템의 FQDN(Fully Qualified Domain Name)을 입력합니다. 예를 들어, mail.example.com과 같이 입력합니다.

2.3 Dovecot 설치

Dovecot을 설치하기 위해 다음 명령어를 사용합니다.

sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y

2.4 메일 서버 기본 설정

Postfix와 Dovecot의 설정 파일을 수정하여 기본적인 메일 서버 기능을 설정합니다. /etc/postfix/main.cf 파일을 편집합니다.

sudo nano /etc/postfix/main.cf

파일 내에 다음과 같은 내용을 추가하거나 수정합니다:


myhostname = mail.example.com
mydomain = example.com
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

2.5 Dovecot 설정

/etc/dovecot/dovecot.conf 파일을 수정하여 Dovecot의 기본 설정을 완료합니다.

sudo nano /etc/dovecot/dovecot.conf

내용을 다음과 같이 수정합니다:


mail_location = maildir:~/Maildir
service imap {
    executable = imap-login
}
service pop3 {
    executable = pop3-login
}

3. SSL 설정을 통한 보안 메일 전송

메일 서버의 보안을 강화하기 위해 SSL 인증서를 사용하여 SMTP 및 IMAP/POP3 연결을 암호화합니다. Let’s Encrypt를 이용하여 무료 SSL 인증서를 발급받고 설정하는 방법을 설명하겠습니다.

3.1 Certbot 설치

SSL 인증서를 발급받기 위해 Certbot을 설치합니다.

sudo apt install certbot python3-certbot-nginx -y

3.2 SSL 인증서 발급

다음 명령어를 사용하여 Certbot으로 SSL 인증서를 발급받습니다. example.com은 사용하고자 하는 도메인 이름으로 교체해야 합니다.

sudo certbot certonly --standalone -d mail.example.com

인증서 발급이 완료되면 인증서의 위치는 /etc/letsencrypt/live/mail.example.com/fullchain.pem/etc/letsencrypt/live/mail.example.com/privkey.pem입니다.

3.3 Postfix SSL 설정

Postfix에 SSL을 설정하기 위해, 아래와 같이 main.cf 파일을 수정합니다.

sudo nano /etc/postfix/main.cf

아래와 같은 줄을 추가합니다:


smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_use_tls=yes
smtpd_tls_security_level=may

3.4 Dovecot SSL 설정

Dovecot에서도 SSL을 설정합니다. /etc/dovecot/conf.d/10-ssl.conf 파일을 수정합니다.

sudo nano /etc/dovecot/conf.d/10-ssl.conf

아래와 같은 내용을 추가하거나 수정합니다:


ssl = required
ssl_cert = 

3.5 서비스 재시작

설정이 완료되면 Postfix와 Dovecot 서비스를 재시작합니다.


sudo systemctl restart postfix
sudo systemctl restart dovecot

4. 메일 클라이언트 설정

이제 메일 클라이언트를 설정하여 메일 기능을 테스트할 수 있습니다. 일반적으로 Outlook이나 Thunderbird와 같은 메일 클라이언트를 사용합니다. 다음은 클라이언트 설정의 예시입니다.

  • IMAP 설정:
    • 서버: mail.example.com
    • 포트: 993
    • 보안: SSL/TLS
    • 사용자 이름: 사용자이메일@example.com
    • 비밀번호: 사용자 비밀번호
  • SMTP 설정:
    • 서버: mail.example.com
    • 포트: 587
    • 보안: STARTTLS
    • 사용자 이름: 사용자이메일@example.com
    • 비밀번호: 사용자 비밀번호

5. 결론

이번 글에서는 우분투 서버에서 메일 서버를 구축하고, SSL을 이용한 보안 메일 전송 설정을 설명했습니다. 메일 서버의 다양한 설정과 보안 강화는 사용자의 필요에 따라 달라질 수 있으며, 추가적인 요구 사항에 맞춰 설정을 변경해야 합니다. 이를 통해 이메일 통신의 보안을 보장하고, 개인 및 기업의 가용성을 높일 수 있습니다.

12.DNS 서버 구축하기, BIND9를 이용한 자체 DNS 서버 구축

DNS(Domain Name System)는 인터넷 인프라의 기본 구성 요소로, 도메인 이름을 IP 주소로 변환하는 역할을 합니다. 즉, 사용자가 웹사이트 주소를 입력할 때, 그에 해당하는 IP 주소를 찾아주는 시스템입니다. 이번 글에서는 BIND9를 이용해 우분투 서버에서 자체 DNS 서버를 구축하는 방법에 대해 자세히 설명하겠습니다.

1. BIND9란 무엇인가?

BIND(Berkley Internet Name Domain)는 가장 널리 사용되는 DNS 서버 소프트웨어 중 하나로, 전 세계적으로 수많은 DNS 서버에서 BIND를 사용하고 있습니다. BIND9는 BIND의 최신 버전으로, IPv6 지원, 보안 기능 향상 및 동적 DNS 업데이트 등의 기능이 추가되었습니다.

2. BIND9 설치하기

우분투에서 BIND9를 설치하는 방법은 매우 간단합니다. 다음 단계를 따르면 됩니다.

sudo apt update
sudo apt install bind9 bind9utils bind9-doc

설치가 완료되면 BIND9 서비스가 자동으로 시작됩니다. 아래 명령어로 상태를 확인할 수 있습니다.

sudo systemctl status bind9

3. BIND9 기본 설정

설치가 완료된 후에는 BIND9의 기본 설정 파일을 수정해야 합니다. 기본 설정 파일은 /etc/bind/named.conf.options입니다.

sudo nano /etc/bind/named.conf.options

파일을 열어 아래와 같이 수정합니다. 이 설정은 DNS 요청을 수신하는 서버의 IP 주소를 지정합니다.

options {
    directory "/var/cache/bind";

    // DNS 요청을 수신할 IP 주소
    listen-on { any; };
    listen-on-v6 { any; };

    // Forwarding 설정
    forwarders {
        8.8.8.8; // Google DNS
        8.8.4.4; // Google DNS
    };
    
    // DNSSEC 설정
    dnssec-validation auto;

    // 기본적인 동작 설정
    auth-nxdomain no;    
    listening-on-v6 { any; };
};

4. 존 파일(Zone File) 설정

BIND는 존 파일을 통해 도메인 이름과 그에 해당하는 IP 주소를 관리합니다. 존 파일을 설정하려면 먼저 /etc/bind/named.conf.local 파일을 열어야 합니다.

sudo nano /etc/bind/named.conf.local

존 파일을 추가하려면 아래와 같이 입력합니다.

zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
};

여기서 “example.com”은 관리할 도메인 이름으로 원하는 도메인으로 변경합니다. 얼마든지 자신이 관리하고 싶은 도메인을 추가할 수 있습니다.

5. 존 파일 생성하기

존 파일을 생성하려면 아래 명령어를 사용하셔야 합니다.

sudo cp /etc/bind/db.empty /etc/bind/db.example.com

그 다음, 생성한 파일을 열어 필요한 값을 편집합니다.

sudo nano /etc/bind/db.example.com

기본적인 존 파일은 아래와 같습니다.

$TTL    604800
@       IN      SOA     ns.example.com. admin.example.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.example.com.
@       IN      A       192.168.1.1
ns      IN      A       192.168.1.1

여기서 192.168.1.1는 서버의 실제 IP 주소로 변경해야 합니다. 또한, admin.example.com.은 관리자 이메일을 의미하며, 여기에선 “@”가 “.”으로 대체되어야 합니다.

6. DNS 서버 재시작 및 테스트

모든 설정을 마친 후에는 BIND 서비스를 재시작해야 합니다. 다음 명령어를 통해 수행할 수 있습니다.

sudo systemctl restart bind9

DNS 서버가 정상적으로 작동하는지 확인하려면 dig 명령어를 사용하여 확인할 수 있습니다.

dig @localhost example.com

정상적으로 작동하고 있다면, 응답으로 A 레코드가 반환됩니다.

7. 방화벽 설정

DNS 서버가 외부에서 접근할 수 있도록 하기 위해 방화벽 설정을 확인해야 합니다. UFW를 사용하는 경우, 다음 명령어로 DNS 포트를 열 수 있습니다.

sudo ufw allow 53

8. 정리 및 요약

이제 우분투 서버에서 BIND9를 이용하여 자체 DNS 서버를 성공적으로 구축하였습니다. 자체 DNS 서버는 빠르고 안전하게 도메인 이름을 관리할 수 있는 훌륭한 방법입니다. BIND의 강력한 기능을 활용하여 복잡한 환경에서도 효율적인 DNS 서비스를 제공할 수 있습니다.

이 문서를 통해 BIND9의 설치, 기본 설정, 존 파일의 생성 및 DNS 서버의 테스트까지 모든 과정을 안내하였습니다. 이를 바탕으로 보다 심화된 DNS 서버 관리 및 보안 설정 등을 고려해 보시기 바랍니다.

© 2023 우분투 서버 구축 및 관리