블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2024/5 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

 
 

IP공유기, DNSEVER, DDNS, NS(NAMESERVER), XE

보안/서버관리 | 2011. 12. 20. 22:59 | Posted by youGom

- IP 공유기에서 개인 서버 돌리기
- DNSERVER의 NS 서버 도움받기
- 개인서버에 네임서버 설정하기
- 네임서버 설정된 경로에 XE 적용하기

즉, 개인 서버를 돌리려고 한다. 집에 공유기가 있고, 서버 돌리려고 하니, 포트가 막힌다. 그 포트를 열었다.

그리고나서, 도메인 서비스를 원활하게 하고 싶었다. 
 domain.com이 있다. 여기에 www.domain.com 도 사용하고 싶고, blog.domain.com 도 사용하고 싶다. 앞으로 더 나아가서 news.domain.com도 추가하고 싶다.
 이를 해결하기 위해 DDNS를 이용했으며, DDNS가 설정된 상태에서 Bind9를 이용하여 네임서버를 구동시켰다.
DDNS는 Dynamic DNS로써 유동 IP를 도메인에 원활하게 연결하기 위한 하나의 방법이다. 그리고 Bind9는 네임서버 구축 툴이다. 
 www.domain.com을 최종 접근하기 위해서는 두번의 네임서버를 거쳐서 들어오게 된다. 첫번째는 DNSEVER에서 개인서버로 포워드하고, 개인서버에서 해당하는 ( 여기서는 www ) 경로로 안내해준다. 즉, www.domain.com URL 입력 -> dnserver -> mypc -> mysite ( www.domain.com )


* 공유기 위에 서버 설치 방법을 간략히 나열한다.
 - DHCP에 해당 서버 MAC 주소 등록, 사용할 외부 Port 등록 ( 포트 방화벽 해제됨 )
* DNSEVER에 추가할 SubDomain을 추가 등록한다. ( 당연히 기존 www는 살려준다. )
* Bind9 설치 한다. ( Apach2, php, MySql 등은 기본으로 설치 되어있다고 가정한다. )
 - /etc/bind/named.conf.local 에 domain.com의 ns 정보 파일 등록
 - /etc/bind/db.domain.com 에 domain.com의 ns정보 등록 또는 수정 ( SubDomain 등 세세한 설정 )
   # /etc/init.d/bind9 restart 로 재시작
 - /etc/apache2/sites-available/domain에 site 정보 등록 또는 수정
   # sudo a2ensite domain으로 sites-enabled 등록
   # /etc/init.d/apache2 restart 로 재시작
 - 기존 등록한 domain.com이 이미 존재한다면, subDomain만 더 등록해주면 된다. ( db.domain.com, sites-available/domain )

* XE 설치는 www.xpressengine.com에 잘 나와 있진 않았다. 나도 검색해서 설치했다 ^^; ( 비교적 설치하기 편하게 되어 있었다. 내 경우, 라이브러리와 퍼미션 설정만 잘 해주면 됐었다. )
:

우분투 Bind9 설치 / 네임서버 설정

보안/서버관리 | 2011. 12. 20. 20:12 | Posted by youGom

1. Bind9 설치

 

$ sudo apt-get install bind9

 

2. zone 파일 등록

$ sudo gedit /etc/bind/named.conf.local

//
// Do any local configuration here
//
zone "domain.com" {
        type master;
        file "/etc/bind/db.domain.com";
};   // <- 괄호 뒤 세미콜른 잊지 말것


3. zone 파일 작성

$ sudo cp /etc/bind/db.local /etc/bind/db.domain.com

 


$ sudo vi /etc/bind/db.domain.com

$ vi /etc/bind/db.domain.com

;
; BIND data file for local loopback interface
;

$TTL    604800
@       IN      SOA   ns.domain.com.    root.domain.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS     ns.domain.com.
@       IN      A       111.222.333.444
www  IN      A       111.222.333.444
mail    IN      A       111.222.333.444
*        IN      A       111.222.333.444

 

4. bind9 재시작

      설정이 잘 되었는지 확인하는 방법 ( 재시작 전에 확인해 본다 )

$ named-checkzone example.com /etc/bind/db.example.com
zone example.com/IN: loaded serial 5
OK

$ sudo /etc/init.d/bind9 restart

 

5. VirtualHost 설정

 

$ sudo vi /etc/apache2/sites-available/domain-name

 

<VirtualHost *:80>

ServerAdmin admin@localhost

DocumentRoot /home/유저폴더

ServerName domain.com

ServerAlias www.domain.com

CustomLog /home/유저폴더/access.log combined

ErrorLog /home/유저폴더/error.log

<Directory /home/유저폴더/ >

Options FollowSymLinks MultiViews

AllowOverride All

php_admin_value open_basedir /home/유저폴더/public_html/:/var/tmp/:/tmp/

</directory>

</VirtualHost>

 

$ sudo a2ensite domain-name

 

$ /etc/init.d/apache2 restart 

 

 

참고) 유저가 모든 활동을 할 수 있게 만드는 과정

  1. 우분투 로컬 계정 생성
    adduser 유저명, passwd 유저명 
  2. 유저 mysql 계정 생성
    1. mysql 접속 ( mysql -u root -p : 루트계정으로 접속 )
    2. 데이터베이스 생성 ( CREATE DATABASE 디비명; )
    3. mysql 계정 생성
    ( GRANT ALL PRIVILEGES ON 디비명.* TO 계정명@localhost IDENTIFIED BY ‘계정암호’ WITH GRANT OPTION; )
  3. 생성된 유저폴더에 가상호스트를 설정합니다.

'보안 > 서버관리' 카테고리의 다른 글

IP공유기, DNSEVER, DDNS, NS(NAMESERVER), XE  (0) 2011.12.20
xshell  (0) 2011.12.20
ubuntu_server에서 할글 깨짐 현상 해결  (0) 2011.12.19
DB, MySQL 계정 생성  (0) 2011.12.19
우분투 원격 부팅 설정  (0) 2011.12.17
:

개인도메인만들기/네임서버설정

보안/서버관리 | 2011. 12. 16. 17:54 | Posted by youGom

/개인도메인등록 과정이 끝나면, 이 도메인을 홈페이지가 있는 호스트로 연결하기 위하여 최소 하나의 네임서버에 이 도메인을 위한 엔트리를 설정해 주어야 한다.

1. 상황
2. 어느 네임서버를 이용할 것인가
3. 네임서버 설치와 설정
3.1. /etc/named.conf 변경
3.2. /var/named/zone-gypark.pe.kr 추가
3.3. 네임서버 구동
4. 네임서버 동작 확인

[edit]1. 상황

  • 도메인 : gypark.pe.kr
  • 실제주소 : http://HHHHHH.snu.ac.kr/~gypark새 창으로 열기
  • 실제호스트 : HHHHHH.snu.ac.kr (147.46.15.HHH)
  • 네임서버 : NNNNNN.snu.ac.kr (147.46.15.NNN)

[edit]2. 어느 네임서버를 이용할 것인가

문제는 어느 네임서버에서 그 설정을 해 줄 것인가 하는 점. 크게 네 가지 길이 있었다.

  • 서울대 네임서버 (147.46.80.1,147.46.80.2) 를 사용
    • 호스트가 서울대 내에 있는 것이기 때문에, 호스트가 위치한 전산망의 공식 네임서버를 사용하는 것이니 개념상 꽤 합당해보였다.
    • 전산원에서 관리하는 학내 공식 서버인만큼, 안정성이 보장된다.
    • but, 전산원에 전화로 문의한 결과, 서울대 전산원에서는 snu.ac.kr 로 끝나는 도메인 이외의 다른 도메인을 사용하는 것은 지원을 해 줄 수 없다는 답변을 받았다. 이 때 처음 알았는데, 학내에 있는 호스트에 다른 도메인을 사용한 경우는 전부 몰래(?) 하는 것이고, 전산원에서는 현재는 이를 묵인하고 있지만, 나중에 정책 변경 여하에 따라 이런 경우를 적발하여 차단할 수 있다고 한다.

  • 외부 업체에서 제공하는 도메인 포워딩을 이용
    • (주)아이네임즈에서는 도메인 포워딩 서비스에 별도의 이용료를 받고 있었고, (주)아사달에서는 무료로 서비스를 제공하고 있었다. 그래서 일단 아사달에 회원 가입을 하고, 도메인 포워딩 서비스를 신청하였다.
    • /개인도메인의네임서버지정 과정을 통해서, 내 도메인의 네임서버를 아사달에서 공지한 네임서버로 설정하였다. (p1.asadal.net 211.233.39.186 , p2.asadal.net 211.233.38.28)
    • but, 결과가 상당히 불만족스러웠다. "유동 포워딩"과 "고정 포워딩" 두 가지 방식 중에서 선택할 수 있도록 되어 있었는데, 유동 포워딩 방식에서는, 웹브라우저의 주소창에 gypark.pe.kr 을 입력하면 그 주소를 실제 주소로 변경하여 refresh 하는 방식이다. 따라서 주소창에 실제 주소가 나타나 버린다. 고정 포워딩 방식에서는, gypark.pe.kr 로 접속했을 때 아사달 측의 서버에서 하나의 프레임으로 구성된 프레임셋을 출력하고, 그 프레임 안에 실제 주소의 페이지를 집어넣는 방식이다. 주소창의 도메인은 바뀌지 않지만, 내부에 있는 링크들은 모두 원래의 주소 그대로 나온다. 게다가 두 방식 모두, gypark.pe.kr/DateBK5/index.html 과 같이 하위 디렉토리나 파일을 직접 주소에 적어서 억세스하는 것이 불가능하다.

  • 다른 네임서버를 이용
    • 누군가의 컴퓨터에 설치되어 동작하고 있는 네임서버를 이용하는 방법
    • 실제로 특정한 동호회나 동문회 사람들끼리 하나의 네임서버를 운영하여 구성원들의 도메인을 담당하게 하는 경우를 볼 수 있다.
    • but, 네임서버 관리자와 친분이 있지 않으면 부탁하기 힘들다. :-) 게다가, 그 네임서버의 안정성을 신뢰하기 힘들다.

  • 홈페이지가 있는 서버 (HHHHHH.snu.ac.kr) 에서 직접 네임서버를 운영
    • 네임서버 관리의 권한이 연구실에 있으므로 설정 변경 등을 맘대로 할 수 있다.
    • 네트웍 안정성이 큰 문제가 되지 않는다. (네임서버가 접속이 안 되는 상황이라면 어차피 홈페이지도 접속이 안 된다는 것이니..)
    • but, 네임서버 설정하는 것에 전혀 문외한이었고, 무엇보다도 네임서버는 외부 공격에 매우 취약하여 보안상 문제점이 많다. 웬만한 해킹 사례를 보면 bind 나 기타 nameserver 의 헛점을 노렸다는 얘기는 빠지지 않고 나온다. 항상 보안 관련 뉴스에 귀기울여야 함.

처음에는 네번째 방법, 즉 HHHHHH에 직접 네임서버를 설치하는 것을 택했는데, HHHHHH가 연구실에서 꽤 중요한 비중을 차지하는 서버이기 때문에 아무래도 맘에 걸려서, 세번째 방법과 결합하였다. 즉 연구실 내 다른 서버(NNNNNN)에 네임서버를 설치하고 운영하기로 하였다.

[edit]3. 네임서버 설치와 설정

NNNNNN 에는 레드햇 리눅스가 설치되어 있었고, bind-9.*.* 이 이미 설치되어 있었다. 따라서 설정만 변경해 주고 구동하면 되었다. (소스를 직접 컴파일하는 경우는 http://www.isc.org새 창으로 열기 에서 최신 버전을 다운로드 할 수 있다. (이 사이트는 하나로통신을통해접속할수없는웹사이트들 중 하나이다.)

다음의 화일들을 수정 또는 추가하였다. 전혀 모르는 상태에서 여러 웹사이트들을 뒤지면서 끙끙대었음...

[edit]3.1. /etc/named.conf 변경

options {
    directory "/var/named";
    /*
     * If there is a firewall between you and nameservers you want
     * to talk to, you might need to uncomment the query-source
     * directive below.  Previous versions of BIND always asked
     * questions using port 53, but BIND 8.1 uses an unprivileged
     * port by default.
     */
    // query-source address * port 53;
    // 아래 네 줄을 추가
    allow-transfer { none; };   // 다른 네임서버에서 zone 설정을 가져가지 못하게 한다
    allow-query { none; };      // 기본적으로 모든 네임서버 질의에 응답하지 않는다. 
                                // 따라서 이 서버를 DNS 서버로 지정하여 사용할 수는 없다.
    recursion no;               // 역시 보안을 고려하여 recursive 모드 금지
    version "No!!";
};

(중략)

// 아래의 zone 설정을 추가
zone "gypark.pe.kr" IN {
    type master;
    file "zone-gypark.pe.kr";    // 이 화일을 /var/named 에 추가해주어야 함
    notify no;
    allow-query { any; };        // 이 도메인에 대한 질의에만 응답한다.
    allow-update { none; };
    allow-transfer { none; };
};

(이하 생략)

[edit]3.2. /var/named/zone-gypark.pe.kr 추가

$TTL  3600
@   IN    SOA    ns.gypark.pe.kr.     gypark.HHHHHH.snu.ac.kr.    (
    2002091501         ; Serial
    84600              ; Refresh
    1800               ; Retry
    1209600            ; Expire
    3600  )            ; Minimum

    IN    NS     ns.gypark.pe.kr.

ns                   IN    A    147.46.15.NNN   ; ns.gypark.pe.kr 은 NNNNNN
gypark.pe.kr.        IN    A    147.46.15.HHH   ; gypark.pe.kr 은 HHHHHH
www.gypark.pe.kr.    IN    A    147.46.15.HHH   ; www.gypark.pe.kr 도 HHHHHH 의 IP 를 사용

[edit]3.3. 네임서버 구동

/etc/init.d/named start

부팅시 자동으로 구동되도록 하기 위해 /etc/rc.local 화일에 다음의 항목을 추가하였다.

/etc/init.d/named start &

[edit]4. 네임서버 동작 확인

nslookup 을 사용하여 네임서버의 동작을 확인한다. 다음의 과정을 통해서 새로 설치한 네임서버가 제대로 동작하는 것을 알 수 있다.
raymundo@raymundus:~$ nslookup
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
> server 147.46.15.NNN               (NNNNNN 을 네임서버로 지정)
Default server: 147.46.15.NNN
Address: 147.46.15.NNN#53
> ns.gypark.pe.kr
Server:         147.46.15.NNN
Address:        147.46.15.NNN#53

Name:   ns.gypark.pe.kr
Address: 147.46.15.NNN               (ns.gypark.pe.kr 질의 - 성공)
> gypark.pe.kr
Server:         147.46.15.NNN
Address:        147.46.15.NNN#53

Name:   gypark.pe.kr
Address: 147.46.15.HHH               (gypark.pe.kr 질의 - 성공)
> www.gypark.pe.kr
Server:         147.46.15.NNN
Address:        147.46.15.NNN#53

Name:   www.gypark.pe.kr
Address: 147.46.15.HHH               (www.gypark.pe.kr 질의 - 성공)
> plaza1.snu.ac.kr
Server:         147.46.15.NNN
Address:        147.46.15.NNN#53

** server can't find plaza1.snu.ac.kr: REFUSED    (그 외의 도메인에 대한 질의 - 설정에 의해 거부됨)

네임서버설정이 완료되면, 이 네임서버를 내가 등록한 도메인의 네임서버로 지정해 주어야 한다. /개인도메인의네임서버지정 참조





출처 : http://gypark.pe.kr/wiki/%EA%B0%9C%EC%9D%B8%EB%8F%84%EB%A9%94%EC%9D%B8%EB%A7%8C%EB%93%A4%EA%B8%B0/%EB%84%A4%EC%9E%84%EC%84%9C%EB%B2%84%EC%84%A4%EC%A0%95

: