2009. 5. 3. 06:59

linux- 테터툴즈를 설치하자. 3. 도메인을 세팅하자.


linux- 테터툴스를 설치하자. 3. 도메인을 세팅하자.

 리눅스를 통해 웹서버를 만들었다면 도메인도 있어야 한다. 다만, 웹서버라는것이 고정IP환경에서 움직이는 것이라, 우리가 쓰고 있는 보통의 인터넷으로는 무리가 따른다.

그러나 최근에는 가정집과 사무실에서 2대이상의 컴퓨터를 가지고 운영하는 곳이 많아졌다. 2대이상의 컴퓨터를 하나의 인터넷IP를 가지고 공유해서 쓰는것이다. 이럴경우 공유기라는 작은 리눅스박스를 사용하게 되는데, 공유기 자체가 리눅스의 매스컬레이딩 기능을 기계적으로 만들어놓은것이다.

모든 인터넷어텝터에는 MAC주소라는것이 있다. 실상 인터넷은 이 맥주소를 가지고 연결된다고 보면 된다. MAC주소는 한번 접속한 ip로 계속 통신하고자하는 속성이 있다. 그러므로, 공유기나 컴퓨터를 통해 인터넷에 접속하면, 별다른 ip차단이나 회선변경등이 없으면 계속 기존의 ip로 접속되는것이다.

또한 공유기 자체가 많은 전력을 소모하지 않는 이유로, 공유기의 전원을 OFF하지 않는 곳에 웹서버를 만들면 고정ip와 같은 효과를 얻을수 있다. 그러므로, 웹서버와 DNS서버를 만들기 위해서 고정ip를 꼭 사야하는 비용절감을 얻을수 있다.

하지만 안정적인 상용호스트로서의 기능을 발휘하고자 하면 고정ip의 확보가 절실하다. 정전이나 기타 생길수 있는 사태에 대비해야 하기 때문이다.
최근에는 SK브로드밴드에서 35000에 고정ip를 보급하는 서비스가 생겼다. 개인서버의 운영이 잦아지니 생긴 서비스로 볼수 있다.
SK브로드밴드의 고정ip의 장점은 10M,100M이상의 속도를 보장한다는데 , 유리하다.

고정ip의 확보가 어려운 곳은 VPN서비스를 이용하여, 고정ip를 얻을수 있다. 보통 만원에서 4,5만원사이의 VPN서비스는 유동ip를 고정ip를 서비스하는 업체와 통신하여 자신의 인터넷환경이 고정ip처럼 쓰게 해주는것이다. VPN의 장점은 외국ip를 차단한 서버에 해당국가에서의 접속도 가능하다.

여기서는 리눅스를 이용하여 DNS서버를 구성하는 작업을 할것이다. DNS서버를 구성하면 도메인만 있으면 자신의 입맛대로 도메인을 구성할수 있다.

하지만 DNS서버는 DDOS공격에 노출되기 쉽다는 점을 상기하자. 그만큼 보안이 철저해야 하며, 실제 dns서버를 운영코자 할때도 많은 노력을 해야한다.

DNS서버를 사용하지 않는 테터툴즈는 dynaminIP를 서비스하는 업체에 등록해서 사용하면 간단하다. 실제 최근에는 도메인을 통한 접속보다는 포탈을 통한 접속이 95%이상이기 때문에 구지 독립도메인을 유지해야 하는 절박함은 없다.

간단한 곳으로 http://www.aoo.to가 있으니 간단히 사용자등록하고 도메인을 얻을수 있다.  (단 다이나믹 서비스를 이용할때는 로그인문제가 어려울때가 있다. 포스팅을 하기위하거나 설정을 할때는 ip로 접속하면 된다.)



리눅스에 테터툴즈를 설치했으면, 이제 도메인을 설치해야 한다.

우선 페도라 코어에 DNS서버 데몬이 설치되어있다고 가정한다.
없으면

yum -y install caching-named
yum -y install bind

을 실행해 네임서버를 설치하자.

네임서버를 설치한후, 해야할일..!
도메인을 구입하는 일이다. 가비아나 도레지등 도메인을 사는 업체에서 구입하면 된다. .com .co.kr .pe.kr등.. 자신의 기호에 맞게 도메인을 사면 된다.

여기 까지는 누구나 할수 있는 일.. 다만..
여기서 부터 해야할일...

네임서버를 설정하는것이다.

우선 리눅스의 버젼에 따라 dns서버의 세팅이 다르다.
페도라 버젼 4.0이전에는 /etc/named에서 네임서버를 세팅할수 있었지만. 4.0 이후에는 /etc/named/chroot/var/named에서 세팅해야 한다. 네임서버의 보안때문에 이루어진 알이다. 쓰는 방법은 동일하다..

자신이 산 도메인 가령 koreaboy.com이라 하자.

koreaboy.com의 도메인 파킹을 위해서 해야할일... 도메인을 산곳에서 자신의 ip를 네임서버로 세팅하는 것이다. 이것은 시간이 약간 걸리는데 약 하루정도면 처리된다. 즉 세팅후 네임서버로의 기능은 약 하루정도후에 기능하는것이다.



각 도메인구입 사이트에서 도메인설정란을 보면 네임서버 설정 부분이 있다. 그곳에서 자신의 네임서버를 등록한다. 만약 koreanboy.com을 구입했다면 네임서버 설정 부분에서 ns.koreaboy.com으로 등록하고 네임서버의 ip설정에서 자기 자신의 서버의 ip를 등록한다. 그리고 나서 약 하루정도 기다리면 자신의 ip가 네임서버로 등록될것이다.

*주의할점 : 포트포워딩- 공유기를 쓰는 사람은 53번 포트를 포트포워딩해야 한다. DNS서버의 포트는 53번임을 주의하자..

참조: 리눅스의 서버설정 포트포워딩
http://bestakas.tistory.com/9
원격 로그인을 통해 서버에 접속하는 경우에는 vncserver를 통해서 포트포워딩 설정이 가능하다. 물론 웹호스팅을 하는 사람들은 호스팅업체에서 자동으로 도메인파킹을 해주므로 이런 설정은 불필요하다.

[root@localhost ~]# service vncserver restart
VNC ?쒕쾭瑜?醫낅즺?섍퀬 ?덉뒿?덈떎: 1:root            [?ㅽ뙣]
VNC ?쒕쾭 (??瑜??쒖옉?⑸땲?? 1:root                [?ㅽ뙣]
[root@localhost ~]#

vnc서버가 구동되지 않았고 또한 재시동도 되지 않았다.... putty에서는 한글메세지가 제대로 출력되지 않으므로(한글 세팅이 필요하다.) 확인만 하면 된다. [?ㅽ뙣] 이 부분이 빨간색 표시가 된다면 실패라는 뜻이다.

vncserver세팅
 [root@localhost ~]# rpm -qa | grep vnc
vnc-4.1.2-3.fc6
vnc-server-4.1.2-3.fc6
[root@localhost ~]# vi /etc/sysconfig/vncservers
설치유무를 확인하고 vncserver설정화일을 연다. 설치가 안되었을때는 위의 vnc를 yum으로 업데이트내지 설치한다.

# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own).  You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted!  For a secure way of using VNC, see
# <URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html>.

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-nohttpd" to prevent web-based VNC clients connecting.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel.  See the "-via" option in the
# `man vncviewer' manual page.

VNCSERVERS="1:root"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

진한 표시로 된 부분을 입력후 저장한다.
 [root@localhost ~]# cd /root
[root@localhost ~]# pwd
/root
[root@localhost ~]# mkdir .vnc
[root@localhost ~]# cd .vnc
[root@localhost .vnc]# pwd
/root/.vnc
[root@localhost .vnc]# vncpasswd
Password:
Verify:
[root@localhost .vnc]# ls -l
total 4
-rw------- 1 root root 8 May  3 04:48 passwd
외부에서 vncserrver접속을 위해 해야하는 비밀번호 설정이다. 루트디렉로리 아래에서 .vnc디렉토리를 만들고 vncpasswd 화일 생성해서 루트로 접속가능한 비번을 설정해야 한다.

다시 아래의 명령으로 vncserver를 실행하자.

 [root@localhost .vnc]# service vncserver start
VNC ?쒕쾭 (??瑜??쒖옉?⑸땲?? 1:root xauth:  creating new authority file /root/.Xauthority

New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log

                                                           [  OK  ]


OK메세지가 떨어졌다. 이제 클라이언트인 윈도우에서 리눅스의 Xwindows로 접속하자.

나는 tightVNC클라이언트 프로그램을 사용한다. 다운은 http://www.tightvnc.com/download.html에서 할수 있다. 윈도우즈용 tightvnc-1.3.10-setup.exe를 다운받아 설치하면 된다.

서버의 아이피와 :1 을 입력한다. 가령 서버가 211.0.0.1이라면 211.0.0.1:1로 입력한다.
vnc접속도 5901번 포트를 포트포워딩 해주지 않으면 외부에서 접속할수 없다.
접속이 되었으면 root와 비번을 입력하고 xterm메시지가 나오면 firefox &를 입력해 파이어 폭스를 실행한다. 파이어폭스는 자신의 윈도우에서 실행되는것이 아닌 외부의 자신의 서버에서 실행되는것이다. 그러므로 파이어폭스에서의 모든 행위는 서버컴퓨터에서 이루어짐을 이해하자. 공유기나 게이트웨이에 접속해서 53번 포트를 포트포워딩 하자.
이 포스팅은 테터툴즈 네임서버 설정이므로, vnc에 대한 고찰은 이쯤에서 넘어가자.


53번 포트를 포트포워딩 했으면 다음으로 해야 할일은 네임서버 설정이다.

가장 먼저 해야 할일은 named.conf설정하는 일이다.

[root@localhost named]# cd /var/named/chroot/etc
[root@localhost etc]# ls
localtime  named.caching-nameserver.conf  named.rfc1912.zones  rndc.key
[root@localhost etc]#

리눅스버젼에 따라서 named.caching-nameserver.conf 나 named.conf가 있는 시스템이 있다. 페도라코어 4에서는 /var/named/chroot/ 디렉토리가 없고 네임서버가 /etc/에 정의되어 있는 버젼도 있다. (bind버젼 9.2이전버젼은 named.caching-nameserver.conf 화일이 없고 9.3버젼이후에 보안강화를 위해 나타난 기능이다.)

네임서버의 보안을 위해, 네임서버의 설정을 chroot라는곳에 숨겨놓은것인데, 자신의 시스템에서 named.caching-nameserver.conf나 named.conf를 찾자.

named.caching-nameserver.conf가 /var/named/chroot/etc에 있는경우에는 처음 설치됐을때에서 보안을 약간 풀어주어야 한다. 53번 포트의 접속을 localhost외의 다른 곳에서의 접속도 가능하게 만들어 주어야 한다. 아래와 같이 빨간표시로 된곳을 유념하여 named.caching-nameserver.conf을 설정하자.

[root@localhost ~]# cd /var/named/chroot/etc
[root@localhost etc]# vi named.caching-nameserver.conf

//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
        listen-on port 53 { any; };
        //listen-on-v6 port 53 { ::1; };

        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        query-source    port 53;
        //query-source-v6 port 53;

        allow-query     { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      { any; };
        match-destinations { any; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};


named.caching-nameserver.conf
화일의 설정이 끝나면 다음으로 zone화일을 추가해야 한다.

named.caching-nameserver.conf가 없는 시스템은 named.conf를 수정하면 된다.
named.caching-nameserver.conf가 있는 시스템은 named.rfc1912.zones이 named.conf와 같은 역활을 한다.

named.rfc1912.zones나 named.conf 에 자신의 도메인을 설정하자.


zone "자신의 도메인" IN {
        type master;
        file "자신의 도메인.zone";
        allow-update { none; };
};

마지막에 이 부분을 추가하자

다음으로 chroot디렉토리가 있는 시스템에는 /var/named/chroot/named에
chroot가 없는 시스템은 /named에
자신의도메인.zone화일을 만들어야 한다.

$TTL    86400
@               IN SOA  ns.자신도메인. root.자신도메인 (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                IN NS           ns.자신도메인.
                IN MX 10        mail.자신도메인.
                IN A            자신의IP
ns             IN A            자신의IP
www         IN A            자신의IP
ftp             IN CNAME        @
*               IN CNAME        @
mail           IN CNAME        www

설정후에 DNS서버가 모두 설정이 올바른가에 대해 체크해보자

[root@localhost named]# named-checkconf /etc/named.caching-nameserver.conf
[root@localhost named]# named-checkconf /etc/named.rfc1912.zones
[root@localhost named]# named-checkzone 자신도메인 /var/named/chroot/var/named/자신도메인.zone
zone 자신도메인/IN: loaded serial 42
OK
[root@localhost named]#
OK가 떨어지면 /etc/rc.d/init.d/named restart 또는 service named restart로 네임서버를 재기동한다. 
[root@localhost named]# service named restart
named瑜??뺤??⑸땲??                                  [  OK  ]
named瑜??쒖옉?⑸땲??                                  [  OK  ]
[root@localhost named]#

네임서버 설정은 OK명령으로 설정 OK
다음으로 아파치 설정이다.

아파치에서는 httpd.conf에서 버추얼호스팅부분의 주석을 제거한다.
 # Virtual hosts
Include etc/extra/httpd-vhosts.conf

extra디렉토리로 이동해서 httpd-vhosts.conf를 수정하고 예시문은 모두 제거하거나 주석처리한다.

 <VirtualHost *:80>
    ServerAdmin 자신의 메일
    DocumentRoot /home/blog/public_html
    ServerName 자신의 도메인
</VirtualHost>

다시 아파치의 재구동

자신의 도메인으로 접속하여 보자.