서버 구성 · 4 min read · Oct 09, 2025
완벽한 로드 밸런스 및 고가용성 웹 클러스터: 2대의 서버에서 Xen을 Ubuntu 8.04 하디 헤론으로 실행 - 페이지 3
8. DNS 서버 (web1, web2)
8.1 DNS 서버 설치
실행:
apt-get install bind9
보안상의 이유로 BIND를 chrooted로 실행하고 싶으므로 다음 단계를 수행해야 합니다:
/etc/init.d/bind9 stop
파일 /etc/default/bind9를 편집하여 데몬이 비특권 사용자 bind로 실행되고 /var/lib/named로 chroot되도록 합니다. 다음 줄을 수정합니다: OPTIONS=”-u bind”를 OPTIONS=”-u bind -t /var/lib/named”로 변경:
vi /etc/default/bind9
OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes/var/lib 아래에 필요한 디렉토리를 생성합니다:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
그런 다음 /etc에서 /var/lib/named/etc로 구성 디렉토리를 이동합니다:
mv /etc/bind /var/lib/named/etc
구성 디렉토리의 이전 위치에서 새 구성 디렉토리로 심볼릭 링크를 생성합니다(향후 bind가 업데이트될 때 문제를 피하기 위해):
ln -s /var/lib/named/etc/bind /etc/bind
null 및 random 장치를 만들고 디렉토리의 권한을 수정합니다:
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind
중요한 메시지가 시스템 로그에 기록될 수 있도록 /etc/default/syslogd를 수정해야 합니다. 다음 줄을 수정합니다: SYSLOGD=””를 SYSLOGD=”-a /var/lib/named/dev/log”로 변경:
vi /etc/default/syslogd
#
# syslogd의 상위 구성 파일
#
# 가능한 인수에 대한 전체 문서는 manpage syslogd(8)에 있습니다.
#
# 원격 UDP 로깅을 사용하려면 SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"로깅 데몬을 재시작합니다:
/etc/init.d/sysklogd restart
BIND를 시작하고 /var/log/syslog에서 오류를 확인합니다:
/etc/init.d/bind9 start
8.2 bind 구성
우리는 두 개의 도메인으로 bind를 구성할 것입니다. example.com은 네임서버가 되고, yoursite.com도 구성할 것입니다.
이제 BIND의 주요 구성 파일은 named.conf입니다. 그러나 named.conf.local은 이미 named.conf에 포함되어 있으며 사용자 정의 구성을 위해 존재하므로 named.conf.local을 편집하고 우리의 존을 추가할 것입니다. 여기서는 tm.local이라는 존과 192.168.1.0에 대한 역방향 존을 추가했습니다:
vi /etc/bind/named.conf.local
#EXAMPLE.COM
zone "example.com" {
type master;
file "/etc/bind/zones/example.com.db";
};
#YOURSITE.COM
zone "yoursite.com" {
type master;
file "/etc/bind/zones/yoursite.com.db";
};
# 역방향 DNS에 대한 존 정의입니다. 1.168.192를 역방향 표기법으로 귀하의 네트워크 주소로 교체하십시오 - 예: 내 네트워크 주소는 192.168.1.X입니다.
zone "1.168.192.in-addr.arpa." {
type master;
file "/etc/bind/zones/rev.1.168.192.in-addr.arpa";
};참고: ISP가 서브넷 맵을 위임하는 경우(예: ip 192.168.1.100에서 192.168.1.112까지) 역방향 존에 대해 읽어보십시오(고객/사용자 존 파일 참조):
http://www.zytrax.com/books/dns/ch9/reverse.html
8.3 존 구성
mkdir /etc/bind/zones
vi /etc/bind/zones/example.com.db
그리고 다음과 같이 만듭니다:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2008060902 ; serial, todays date + todays serial #
28800 ; refresh, seconds
7200 ; retry, seconds
604800 ; expire, seconds
86400 ) ; minimum, seconds
;
NS ns1.example.com. ; 네임 서버 1의 Inet 주소
NS ns2.example.com. ; 네임 서버 2의 Inet 주소
;
MX 10 example.com.
example.com. A 192.168.1.106
www A 192.168.1.106
ns1 A 192.168.1.106
ns2 A 192.168.1.106
dom01 A 192.168.1.100
dom02 A 192.168.1.101
lb1 A 192.168.1.102
lb2 A 192.168.1.103
web1 A 192.168.1.104
web2 A 192.168.1.105
example.com. TXT "v=spf1 ip4:192.168.1.104 ip4:192.168.1.105 a ptr a:web1.example.com a:web2.example.com ~all"이제 yoursite.com에 대한 존을 생성하겠습니다:
vi /etc/bind/zones/yoursite.com.db
다음과 같이 만듭니다:
$TTL 86400
@ IN SOA ns1.example.com. admin.yoursite.com. (
2008060902 ; serial, todays date + todays serial #
28800 ; refresh, seconds
7200 ; retry, seconds
604800 ; expire, seconds
86400 ) ; minimum, seconds
;
NS ns1.example.com. ; 네임 서버 1의 Inet 주소
NS ns2.example.com. ; 네임 서버 2의 Inet 주소
;
MX 10 yoursite.com.
yoursite.com. A 192.168.1.107
www A 192.168.1.107
yoursite.com. TXT "v=spf1 ip4:192.168.1.104 ip4:192.168.1.105 a ptr a:web1.example.com a:web2.example.com ~all"이제 역방향 존으로 진행하겠습니다.
vi /etc/bind/zones/rev.1.168.192.in-addr.arpa
$TTL 86400
@ IN SOA ns1.example.com. hostmaster.example.com. (
2008060901 ; serial, todays date + todays serial #
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS ns1.example.com.
NS ns2.example.com.
100 PTR dom01.example.com.
101 PTR dom02.example.com.
102 PTR lb1.example.com.
103 PTR lb2.example.com.
104 PTR web1.example.com.
105 PTR web2.example.com.
106 PTR example.com.
107 PTR yoursite.com.이제 서버가 ISP 서버에 요청을 전달하여 외부 IP를 확인할 수 있도록 구성합니다.
vi /etc/bind/named.conf.options
forwarder 섹션의 주석을 제거하여 다음과 같이 만듭니다:
[...]
forwarders {
# 아래 주소를 귀하의 ISP DNS 서버 주소로 교체하십시오
123.123.123.123;
};
[...]8.4 서버가 DNS로 자신을 사용하도록 구성
vi /etc/resolv.conf
search example.com
nameserver localhostBIND를 재시작해야 합니다:
/etc/init.d/bind9 restart
8.5 DNS 서버 테스트
먼저 dnsutils 패키지에 포함된 dig를 설치합니다:
apt-get install dnsutils
이제 우리의 DNS 서버가 올바른 답변을 제공하는지 확인해 보겠습니다:
web1에서
dig yoursite.com @192.168.1.105
web2에서
dig yoursite.com @192.168.1.104
두 경우 모두 다음과 같은 출력이 표시되어야 합니다:
; DiG 9.4.2-P1 yoursite.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4547
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;yoursite.com. IN A
;; ANSWER SECTION:
yorsite.com. 86400 IN A 192.168.1.107
;; AUTHORITY SECTION:
yorsite.com. 15090 IN NS ns2.example.com.
yorsite.com. 15090 IN NS ns1.example.com.
;; ADDITIONAL SECTION:
ns2.example.com. 162439 IN A 192.168.1.106
ns1.example.com. 162439 IN A 192.168.1.106
;; Query time: 27 msec
;; WHEN: Sun Sep 21 19:07:17 2008
;; MSG SIZE rcvd: 124이제 역방향 조회를 테스트하겠습니다:
web1에서
dig -x 192.168.1.107 @192.168.1.105
web2에서
dig -x 192.168.1.107 @192.168.1.104
출력은 다음과 유사해야 합니다:
; DiG 9.4.2-P1 -x 192.168.1.107
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22614
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;107.1.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
;107.1.168.192.in-addr.arpa. 86400 IN PTR yoursite.com.
;; AUTHORITY SECTION:
;1.168.192.in-addr.arpa. 86400 IN NS ns2.example.com.
;1.168.192.in-addr.arpa. 86400 IN NS ns1.example.com.
;; ADDITIONAL SECTION:
ns1.example.com. 162147 IN A 192.168.1.106
ns2.example.com. 162147 IN A 192.168.1.106
;; Query time: 88 msec
;; WHEN: Sun Sep 21 19:12:09 2008
;; MSG SIZE rcvd: 172dig 사용법에 대한 더 많은 정보:
http://www.madboa.com/geek/dig/
9. Proftpd (web1, web2)
9.1 Proftpd 설치
Proftpd를 설치하려면 다음을 실행합니다:
apt-get install proftpd ucf
질문이 표시됩니다:
Run proftpd: <– standalone
9.2 Proftpd 구성
vi /etc/proftpd/proftpd.conf
보안상의 이유로 /etc/proftpd/proftpd.conf에 다음 줄을 추가합니다:
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."그런 다음 Proftpd를 재시작합니다:
/etc/init.d/proftpd restart
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.