/etc/ssh/sshd_config 파일은 ssh 데몬에 대한 설정파일이다

각 행에 대한 내용은 이렇다

Port 22 -> 포트설정부분

 

Protocol 2 -> SSH 서비스 시 이용할 버전 선택

 

ListenAddress 0.0.0.0 -> 시스템에 여러 ip가 존재할 때 특정 ip대역으로 지정할 수 있다. ipv4이다.

 

ListenAddress :: -> ipv6

 

KeyRegenerationInterval 1h -> 자동으로 생성된 키의 유효 기간을 지정할 수 있는데 지금 1시간으로 지정되어 있다.

 

ServerKeyBits 1024 -> 서버의 암호키 생성시 이용하는 bit수를 지정할 수 있다. 최소값 512bit

 

LogLevel INFO ->로그기록 수준을 의미하는 항목이다.

warning이 실무에서 가장 많이 사용하는데, 단순 경고 메시지 수준이다.

info는 정보를 보여줘야 하는 수준이다.

 

LoginGraceTime 2m -> 사용자가 로그인 시 시간을 지정하는 항목, 2분이 지나면 접속을 해제한다.

 

PermitRootLogin yes -> 관리자의 로그인을 허용할 것인가에 대한 항목

기본값으로 관리자의 접근을 허용하였지만 권장하지는 않는다.



 

 

StrictModes yes -> 사용자의 홈 디렉토리인 /home/username의 권한값 등을 체크하도록 설정되어 있는 지시자인데, 감시모드이다.(누가 접속했는지 로그 정보를 남김)

어디에? /var/log/secure or message -> secure는 접속관련 로그, message는 시스템 에러 메시지

/etc/logrotate.d/syslog -> 로그기록방식 설정

 

MaxAuthTries 6 -> ssh 클라이언트 프로그램으로 로그인을 시도할 경우 인증 실패 횟수를 의미. 기본값은 6(6회이상 실패시 로그인 못함)

 

PasswordAuthentication no -> 로그인할 때 password를 사용하게끔 하는 부분

 

PermitEmptyassword no -> 패스워드 없이 접속 허용 여부를 설정

 

SubSystem sftp /usr/libexec/openssh/sftp-server -> sshd 데몬을 통하여 다른 프로그램, sftp-server를 실행할 수 있도록 설정하는 항목



LIST

1. configure

configure는 소스파일에 대한 환경설정을 해주는 명령어다.(configure뒤에 옵션을 넣음) 서버환경에 맞쳐 makefile을 생성해주는 과정이다.

소스를 사용할 컴퓨터와 사용자의 환경에 맞게 내 컴퓨터는 어떤 기종이고 컴파일에 필요한 시스템 파일들은 어디에 위치해 있으며, 어떤곳에 설치를 하겠다고 지정을 하는 것이다.

)

# ./configure --prefix = /usr/local/mysql 하게 되면 어떤 파일을 /usr/local/mysql 이라는 곳에 설치 하겠다는 뜻.

 

 

2. make

make는 소스를 컴파일 하는 것이다. 컴파일이란 것은 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정을 말한다. make 과정이 끝나고 나면 설치파일(Setup 파일 같은 것)이 생성된 상태라고 볼 수 있다.

여기서 중요한 것은 make에게 어떤 프로그램을 컴파일하고 링크해야 하는지 그 방법을 설명한 것이 makefile이다.

mafefile이란 것은 소스파일의 의존성이라던가 필요한 명령등 신경써야할 부분이 많게된다. 매번 각 소스파일을 따로 컴파일 하는 것도 매우 힘든일이다. 프로그램의 빌드과정을 표준 문법으로 기술한 파일을 makefile이라고 부른다.

 

 

3. make install

make installmake를 통해 만들어진 설치파일(setup)을 설치를 하는 과정이다. 한마디로 build된 프로그램을 실행 할 수 있게 파일들을 알맞은 위치에다가 복사를 한다.

 

make dep 이란 것은 의존성 검사라고 하는 것인데 커널 컴파일을 하기 전에 이것들의 소스들에 문제가 있는지 검사하는 것이다. ( 설치에 필요한 것들이 제대로 있나 확인하는 것)

LIST

sendmail.cf가 원래 sendmail의 설정파일이다. sendmail.mc는 설정을 좀 더 용이하게 하기 위한 설정 보조파일로서 sendmail.mc에서 설정을 해주고 다음의 명령으로 sendmail.cf를 생성할 수 있다.

sendmail.mc의 첫부분 주석(dnl)을 보면 자세하게 설명이 되어있다.

m4 sendmail.mc >sendmail.cf        // m4유틸 사용

>sendmail.mc에서  > DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA') >sendmail.cf에서 > O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA

 


따라서 위의 두 내용은 같은 내용이다.

sendmail.mc를 거치지 않고 곧바로 sendmail.cf를 위에서 두번째와 같이 설정하거나 sendmail.mc를 위의 첫번째와 같이 설정하고 m4 명령으로 sendmail.cf를 생성하거나 결과적으로 같은 효과를 가지게 된다

위 설정의 뜻은 sendmail 데몬이 smtp port(25)를 통해 0.0.0.0의 주소 (모든 ip주소)listen 하게 한다는 뜻이다

redhat의 경우 디폴트로 위의 Addr 값이 127.0.0.1로 되어 있기 때문에 외부로부터 메일을 수신할 수 없고 오직 local에서 보내진 메일만 수신할 수 있다.

 


출처 : http://blog.naver.com/wooya510

LIST

</etc/named.conf>

이 파일은 named 데몬의 설정파일이다. DNS 서버를 구축하고자 할 때 가장많이 접근해야 하는 파일이며, 가장 중요한 파일중의 하나이다.

이 파일에는 개별도메인 설정을 위한 zone파일의 위치, named.ca파일, named.local파일 등에 대한 정보가 있다.



 

1. directory "/var/named"

이 부분은 DNS서버에 있는 zone파일들의 위치를 나타낸다. , 네임서버 DB파일들이 존재하는 위치를 지정해주는 부분이다. /var/named 디렉토리에 가보면 zone파일들이 있을 것이다. zone파일에 대해선 나중에 설명하겠다.

 

 

2. allow-query {any;}

네임 서버는 하나의 네임서버만 있는 것이 아니고 하나의 DNS 서버에는 여러개의 네임서버를 가져올수 있다. 이 항목을 허용하겠냐는 것이다. , 추가 되는 네임서버를 허용하겠느냐 라는 것!

 

3. recursion no;

재시도를 말한다. 예를 들어 1차 네임서버에 대해 요청을 했을때 2차 그다음 3차로 계속 간 후 마지막을 4차로 하자... 그렇게 되면 4차 네임서버 까지 요청을 했을 때 다시 1차 네임서버로 질의를 할 것인지를 yes no하는 항목이다.

 

 

4. zone "." IN {

   type hint;

   file "named.ca";

};

이 부분은 DNS의 루트도메인에 대한 설정을 named.ca 파일에 하고 있다라는 설정이다.

hint는 루트도메인 지정, master1차 네임서버, slave2차 네임서버이다.

 

5. include "/etc/rndc.key";

이 부분은 namedrndc가 사용할 인증키값을 저장하고 있는 파일의 이름으로 /etc/rndc.key파일을 지정한 것이다. (원격접속)

 

6. zone "naver.com" IN {

   type master;

   file "naver.com.db";

};

이 부분은 개별도메인에 대한 설정이다. naver.com이라는 도메인에 대해서 설정한다 라는 의미이며 naver.com.db파일을 zone파일로 하여 네임 서비스를 하겠다 라는 설정이다. file에 명시되어 있는 파일은 /var/named/chroot/var/named/디렉토리내에 존재하게 된다. typemaster이기 때문에 지금 설정하고 있는 서버가 naver.com의 도메인에 대한 1차 네임서버라는 의미이다. (naver.com은 사설네트워크에서 조작하고 있기 때문에 실제 우리가 사용하는 naver.com과는 완전 다르다.)

 

</etc/named.rfc1912.zones>

이 파일은 Caching-nameserver package파일이다. DNS서버에 IP와 도메인을 비교해주는 파일인 zone파일과 rev파일이 있는 경로와 정보가 있는 파일이다.





 

자 먼저, 가운데에 0.0.0.0.0.0.0.0.0으로 되어 있는 부분은 정방향과 역방향 매칭을 구분하는 것이다.

위가 정방향(zone파일), 아래가 역방향(rev파일)이라고 생각하면 된다.

zone "localhost" IN {        type master;        file "named.localhost";        allow-update { none; };};이 부분과

zone "1.0.0.127.in-addr.arpa" IN {        type master;        file "named.loopback";        allow-update { none; };};이 부분을 맨 밑에 복사한다.



이렇게 수정해서 넣어준다. 기존은 지우지 말고 이렇게 써넣어주거나 복사하여 수정해주면 된다.

그 후에... abc.zone파일과 abc.rev파일을 수정해주면 된다.



LIST

<zone파일 설정>

/etc/named.conf파일에 zone파일의 경로를 명시해 줬다. 그렇다면 zone파일의 작성법에 대해서 알아보자.

[abc.zone파일]



 

[abc.rev파일]



이 파일이 /var/named디렉토리에 있는 abc.zone파일이다.

1. $TTL 1D

abc.com 도메인에 대한 정보를 다른 네임서버에서 가져간 다음 가져간 네임서버에 얼마나 보관할 것인가를 지정한 것이다. 위는 하루를 말한다. , 이 정보(abc.zone) 가져간 네임서버에서는 가져간 후로부터 하루 동안에는 다시 질의하지 않고 그 서버에 캐시에 저장하여 캐시에 저장된 값으로 계속 서비스를 한다.

 

2. SOA

start of authority의 약어로 abc.com 도메인에 대하여 여기서 설정한 네임서버가 모든 정보를 가지고 있음을 선언하는 것이다. , abc.com에 대한 모든 권한이 여기에 있다라는 것이다.

 

3.@

@origin도메인을 의미하는 것으로 /etc/named.conf 파일에 설정되어 있는 도메인 명을 의미한다. (여기서는 abc.com) @기호 대신에 abc.com.이라는 도메인을 지정해도 된다.

 

4. NS

해당 도메인의 네임서버를 지정하는 레코드이다.

위에 보면 IN    NS    @라고 되어있다.

이 말은 IN    NS    abc.com.이라고 풀어 쓸수 있는데, 이 도메인에 대한 1차 네임서버가 abc.com.라는 것이다.

 

5. A

해당 도메인의 실제 IP주소를 설정하는 레코드이다.

IN   A   192.168.1.10으로 지정한 것을 볼 수 있는데, abc.com.에 대한 IP주소가 192.168.1.10이라는 것이다.

 

6. MX

Mail eXchanger의 약어로 해당 도메인의 메일서버로 사용하게될 메일서버를 지정하는 것이다예를 들어보면 IN   MX   10   mail.naver.com.이라고 되어있다고 가정하자. 이 내용은 xxx@naver.com에 대한 해당 메일들은 mail.naver.com.이라는 메일서버에서 받도록 지정한 것이다.

 

7. 맨 마지막줄 www   IN   A   192.168.1.10의 의미는 www.abc.com.IP주소는 192.168.1.10으로 하겠다는 의미이다.

 

 

모든 설정을 마친후에 named 데몬을 재실행 해야한다.

이때 아무 오류가 안뜨면 성공이다!

방화벽 풀어주고 다같이 www.abc.com에 접속해보자.



혹시 데몬이 정상적으로 작동 했는데도 접속이 되지 않는 다면 첫번째... 방화벽을 풀어줘야한다.

그렇게 했는데도 문제가 발생할 경우 zone파일과 rev파일의 권한을 바꿔줘야한다.



 

그 후, 다시 데몬을 재실행 한 후, 하면 잘 될것이다.



LIST

</etc/host.conf>

이 파일은 어떤 특정 도메인에 대해 IP주소값을 찾을 때, 주소 값을 어디에서 찾을 것인가를 결정하는 파일이다.

파일을 보면 다음과 같다.





hosts : /etc/hosts파일을 말한다.

bind : DNS를 말한다. , /etc/resolv.conf에 정의된 nameserver를 의미한다.

nis : NIS에 의한 도메인 쿼리를 말한다.

 

위의 내용으로 예를 들면 어떤 PC로 부터 자신(DNS서버)에게 도메인 주소를 IP로 알려달라는 질의 요청이 왔다맨 처음은 /etc/hosts파일에서 찾아본 후, 없으면 /etc/resolv.conf파일에 정의된 nameserver에게 쿼리하는 순서이다.

 

, 도메인네임서비스를 어디서 받을 것인가를 정의해 놓은 파일이라는 것이다.

 

 

 

</etc/resolv.conf>

이 파일은 사용하고자 하는 네임서버를 지정하는 파일이다.

구성을 보도록 하자.





search는 호스트+도메인으로 사용할 도메인 명을 지정해둔 것이다. 거의 모두 호스트명과 도메인 명을 함께 사용한다. 하지만 특별하게 호스트명만 사용되었을 때 사용하게될 기본 도메인명을 의미하는 것이다.

예를 들어 search abc.com 이라고 가정하자. 그럼 "telnet 호스트명"과 같이 "telnet www"라고 하였을 경우에 자동으로 "telnet www.abc.com"으로 인식하는 것이다.

 

nameserver는 말 그대로 이 서버에서 사용할 네임서버를 지정해둔 것이다.

windows같은 경우는 어디서 DNS서버를 설정할까?



이 창을 많이 보았을 것이다.


밑에 보면 DNS 서버 주소 라고 되어있는 곳에 DNS주소를 넣어주면 된다.


이렇듯 리눅스에서는 /etc/resolv.conf파일에 사용하고자 하는 DNS 서버의 IP주소를 넣어주는 것이다.


LIST

8. paran.com 메일 서버와 naver.com 메일 서버를 구축해보자

sendmail을 설치해보자.

설치해야 할 것은 sendmail, sendmail-cf, dovecot을 설치해야 한다.



 

9. 설치 후, /etc/mail/sendmail.cf파일을 수정해야 한다.

 파일은 복잡하기 때문에 중요한 구문만 요약해서 설명하겠다.

Cw도메인 이름 : 도메인 이름에 대한 메일 서버로 사용하겠다는 것.

MaxMessageSize=용량 : 메일 한개의 본문과 첨부 파일을 합친 용량을 제한하는 것(Byte)

Mlocal 설정 내용 : 전체 메일 공간의 제한

O QueueDirectory=/var/spool/mqueue : 메일 전송 시에 임시 저장 디렉토리, 디렉토리 명을 바꾸면 그곳에 저장됨

O DaemonPortOptions=Port=smtp, Addr=127.0.0.1, Name=MTA : 자기 자신만 메일을 보낼 수 있다는 의미이다. localhost127.0.0.1이기 때문에... "Addr=127.0.0.1"이 부분을 삭제하면 외부에서도 메일을 보낼 수 도있음.

 

CwlocalhostCwparan.com으로 변경하고, O DaemonPortOptions=Port=smtp, Addr=127.0.0.1, Name=MTA"Addr=127.0.0.1"를 지워준다.

 

CwlocalhostCwparan.com으로 변경



 O DaemonPortOptions=Port=smtp, Addr=127.0.0.1, Name=MTA"Addr=127.0.0.1"를 지워준다


 

 

10. /etc/mail/access파일에 내용을 추가해야 한다.

/etc/mail/access파일은 메일 서버를 통해 메일을 전송하기 전에 이 파일을 통해 걸러내어 진다. 보낼것과 보내지 말아야 할것... 우선적으로 /etc/mail/access파일에 지정된 네트웍크 주소에만 메일의 전송이 가능하기 때문에 자신의 네트워크를 우선적으로 이 파일안에 지정해 주어야 한다.





 

11. 이번에는 사용자에게 메일 박스의 내용을 보내주는 dovecot데몬을 알아보자.

dovecot의 설정파일은 /etc/dovecot.conf이다.

이 파일은 좀 복잡하기 때문에 수정해야 할 부분만 정리해보았다...

저 자세한 내용은 www.dovecot.org에 들어가서 확인해보도록...



모두 주석을 제거하고, 추가해 줄 부분은 넣어주었다.

 

12. 이제 데몬들을 모두 재실행 시켜주자.

 

13. 이번에는 계정을 만들어 주자.(메일 계정)



 

14. 방화벽에서 포트를 열어주자.




 

 

 

LIST

<메일서버>

메일 서버는 우리가 현재 메일을 보내고 받을때중간에 서비스 해주는 것이 메일서버다.

 

동작 순서를 설명하기 전에 용어에 대해서 알아보자.

MTA (Mail Transfer Agent)인터넷 상에 있는 컴퓨터 A로부터 컴퓨터 B로 전자 메일을 전송하는 서버 프로그램

MUA (Mail User Agent)사용자가 전자 메일을 송수신할 때 사용하는 클라이언트 프로그램

MDA (Mail Delivery Agent)MTA가 수신한 메시지를 사용자의 우편함에 쓰기 위한 프로그램(얘가 전송해줌)

MRA (Mail Retrieval Agent)멀리 떨어진 서버에 있는 우편함으로부터 사용자의 MUA로 메시지를 가져오는 프로그램


 

<일반적인 메일의 순서

1. 사용자가 MUA를 이용하여 MTA로 보낸다.

2. MTA는 센드메일 데몬을 이용해 메일을 "메일 큐(/var/spool/mqueue)"에 넣어놓는다.

3. 센드메일 데몬은 시간이 지난 후, MDA에게 메일을  상대편 MTA에게 보내달라고 요청한다.

4. 목적지 MTA에 도달된 메시지는 MDA로 전송 되며, MDA는 메시지를 메일박스(/var/spool/mail/사용자명)에 저장해놓는다.

5. 수신자는 메시지를 읽기 위해서 자신의 메일 서버에 직접 접근하거나 MUA를 사용하여 자신의 메일을 보게 된다. (이 때 MUA가 메시지를 분류하거나 정렬하기도 한다.)

 

 SMTP(Simple Mail Transfer Protocol) : MUA로부터 MTA까지 전송할 때 혹은MTAMTA 사이에 전송할 때사용하는 프로토콜

POP(Post Office Protocol)IMAP (Internet Message Access Protocol) : MUA가 센드메일(MTA)로 부터 메일을 받아올때 사용하는 프로토콜

 

 

<실습 - 구축>

인터넷 상에 paran.com의 메일서버와 naver.com의 메일서버가 있다고 하자.

클라이언트 Aparan.com의 계정으로 사용하고 있고, 클라이언트 Bnaver.com의 계정을 사용하고 있다고 가정하자.

이 두 계정 사이에 메일을 보내고 받기 위해서는 메일서버를 사용해야 하는데, 이 과정과 서버 구축을 실습해보자.

 

우리가 현재 사용하는 구간은 공인 IP를 살 수 없기 때문에 사설 네트워크인 VM ware를 사용하고 있다. , 이 사설 네트워크 공간을 따로 보지 말고 여기를 그냥 인터넷 공간이라고 생각하고 실습하자. (naver.comparan.com을 사용해도댐. 왜냐? 인터넷 공간이라고 생각하니까) 사설 네트워크를 인터넷 공간이라고 생각하는 것 뿐이지 정말 인터넷 공간이 아니다... 진짜 외부에서는 사설 네트워크로 못들어오니까...

 

필요한 것은 메일 서버 2클라이언트 PC 2,  네임서버 1개가 필요하다.

클라이언트 PCwindows 클라이언트1개와, linux 클라이언트 1개로 하며리눅스에 만들어 놓은 server paran.com메일서버 겸 네임서버로 하고, server(B)naver.com 메일서버로 하겠다.

 

1. paran.com 메일서버의 호스트 이름을 mail.paran.com이라고 설정하자.

/etc/hosts파일을 수정해주고, /etc/mail/local-host-names 파일을 수정해주자.

/etc/mail/local-host-names에 대해 간략히 설명하면하나의 도메인으로 운영을 하는 시스템은 host_name만 도메인명과 같게 설정해 주고 zone파일만 제대로 설정했다면 해당도메인으로 오는 메일을 아무런 문제없이 받을 수 있을 것이다. 하지만 2개 이상의 도메인이 하나의 시스템에 등록되어 있고 그 도메인으로 메일을 받아야 될 때는 반드시 local-host-names 파일에 도메인을 등록 시켜 줘야 된다. 즉 메일 수신자를 추가 시켜 줘야 되는 것이다.

예를들어 abc.co.kr의 서버에는 zxcv.ac.krqwer.net 이라는 도메인이 함께 운영중이다. 이 시스템의 host_name abc.co.kr로 설정되어 있어서 ID@abc.co.kr로 오는 메일은 아무런 설정없이 메일을 받을수 있다하지만 ID@zxcv.ac.kr ID@qwer.net으로 오는 메일은 local-host-names zxcv.ac.krqwer.net을 등록을 함으로써 메일을 받을 수 있기 때문에 아래와 같이 등록해 놓은 상태이다.

 

/etc/hosts 설정


 

/etc/mail/local-host-names 설정




 

호스트 명을 바꿔준다.




 

2. 재부팅 하면 호스트 명이 mail.paran.com으로 변경된 것을 확인할 수 있다.



 

3. naver.com의 메일서버를 paran.com의 메일서버에 한 것 처럼 똑같이 적용해보자.

따로 설명은 안하겠다. (paran.com에 한거랑 거의 똑같음)

 

4. 이번에는 네임서버를 설정해보자. server(paran.com 메일서버 겸 네임서버)로 돌아와 네임서버를 설정해보자.

네임서버를 통해 paran.com 메일서버와 naver.com의 메일서버에 접근해야 하기 때문에 paran.comnaver.com의 도메인 네임 서버를 설정해주자.



 

5. 4번의 경로 설정 후에, 해당하는 경로에 파일을 만들어주자.

빈 파일을 생성 후, 빈 파일 안에 다음과 같은 내용을 써주자.





 

6. 데몬 재실행!



 

7. 네임서버의 설정이 끝났다. nslookup을 통해 잘 적용되는지 알아보자.


에러가 나지 않으면 /etc/resolv.conf파일에 각각 네임서버의 IP를 넣어주자. 





네임서버의 설정 




리눅스 클라이언트의 네임서버 설정 



 

윈도우 클라이언트의 네임서버 설정



LIST

 

<마스터 네임 서버>

같은 도메인 (예로 abc.com)에 속해 있는 컴퓨터들의 이름을 관리하고, 외부에서 xxx.abc.com에 관련된 컴퓨터의 IP주소를 의뢰 했을때(알려달라고) 해당 컴퓨터의 IP주소를 알려주는 역할을 하는 네임 서버를 말한다. (네임서버와 별 다른것이 없음)

예를 들어보자.

우리는 대부분 VM ware로 실습하기 때문에 사설 네트워크에서 작동하는 것이다. VM ware라는 사설 네트워크를 구축해놓고 그 안에 서버, PC 등을 만들어 실습하는 것이다. 쉽게 말해 가상공간이다.

이런 사설 네트워크에서는 사설 네트워크 내에서는 사설 IP를 사용 하다가 외부 인터넷 세상에 있는 naver.com에 접속을 하기 위해서는 공인 IP가 필요하다. 이때 잠시 사설 IP->공인 IP로 변경시킨 후, naver.com에 접속하게 된다.

VM ware안에 클라이언트 한개와 FTP서버를 만들고, 웹서버 겸 네임서버를 구축해서 실습해보자.

그림을 대충 그리면 이렇다.



 

각 네임서버(DNS)에는 DB가 존재하며, DB를 토대로 자신에게 의뢰한 IP를 알려준다.

사설 네트워크 상에있는 저 3(클라이언트, ftp server, DNS)VM ware에 구축하자.

 

전체적인 흐름을 살펴보자.

1. ftp 서버를 1.1.1.1이라고 가정하고, DNS1.1.1.2라고 가정하자.

클라이언트가 www.naver.com으로 접속을 시도하면 자신의 네임서버인 1.1.1.2에게 www.naver.comIP를 의뢰한다.

 

2. 만약 자신이 알고 있으면 바로 알려주겠지만, 대부분 갖고 있지 않기 때문에 DNS서버는 밖에 있는(인터넷상) root네임서버에게 www.naver.comIP를 의뢰한다.

 

3. Root 네임서버는 잘 모르지만 자기 부하?com 네임서버는 알고 있을 거라고 하며 com의 네임서버 IP를 알려준다.

 

4. com 네임서버는 naver.comIP주소를 알고 있기 때문에 naver.comIP주소를 알려준다.

 

5. naver.com 네임서버는 마지막으로 www.naver.comIP주소를 알려주게된다.

 

6. 이것을 알게된 abc.com네임서버는 마치 자신이 알고 있던것 처럼 하여 클라이언트에게 www.naver.comIP주소를 알려준다.

 

1. 이번에는 거꾸로 클라이언트가 www.abc.com의 서버에 접속할때를 알아보자.

 

2. 외부 인터넷에 있는 컴퓨터는 자신의 로컬 네임 서버에게 ftp.abc.comIP주소를 의뢰한다.

 

3. 로컬 네임 서버A ftp.abc.comIP주소를 모르기 때문에, 루트 네임서버에게 의뢰를 할 것이다.(앞에 있는 방법과 똑같이)

 

4. 루트 네임서버는 COM네임서버의 주소를 알려주면서 그쪽에 의뢰해보라고 한다

 

5. 로컬 네임 서버A는 다시 COM네임서버에게 의뢰한다. 그럼 COM네임서버는 john.com의 도메인을 관리하는 john.com네임서버의 IP주소를 알려준다.

 

6. 로컬 네임 서버A는 다시 john.com 네임서버에게 의뢰한다. 그때 john.com네임서버는 ftp.john.comIP주소인 192.168.111.200을 알려주는 것이다.

 

7. 접속한다~

LIST

'OS > Linux' 카테고리의 다른 글

리눅스 - 메일서버 구축2  (0) 2016.02.22
리눅스 - 메일서버 구축1  (0) 2016.02.22
리눅스 - DNS 서버 개념  (0) 2016.02.20
리눅스 - 부팅 순서 정리  (0) 2016.02.20
리눅스 - Telnet(텔넷) 서버  (0) 2016.02.19

 

<DNS 서버>

네임서버를 DNS서버라고도 부른다.

DNS서버가 무엇일까?

우리는 현재 인기 포털 사이트 daum, naver를 접속할 때 URL창에다가 뭐라고 입력하는가?

네이버를 접속하고자 할 때는 www.naver.com... 다음에 접속하고자 할 때는www.daum.net을 사용한다.

하지만 컴퓨터라는 것은 각종 웹서버에 접속하고자 할때 IP주소로만 접속할 수 있다.

그렇다면 www.naver.com이라는 희기한 문자를 컴퓨터는 어떻게 이해한 것일까?

바로 네임 서버때문이다.

간단하게 말하면 네임서버에는 이러한 URLIP주소를 매칭시켜놓는 데이터베이스와 같은 큰 자료가 있다. 그것이 네임서버가 할 일이다.

사용자가 www.naver.com을 입력하면 바로 네이버의 웹서버로 전송되는 것이 아니고, 네임서버에게 먼저 물어본다. "네임서버야 www.naver.comIP주소좀 알려줄래?" 이렇게 질문을 하고 받은 IP주소로 여행을 떠나게 된다.

그렇다면 옛날에 컴퓨터가 활성화 되지 않은 시대에 네임 서버같은것이 없었을 것이다.

그렇다면 그때는 어떻게 했을까?

당연히... 거의 모든 IP주소를 외우고 다녔을 것이다. ... 지금 곁에 있는 엄마, 아빠의 번호는 쉽게 외우고 다니는 것처럼 네이버도 그만큼 대중적이니... 아마 외우고 다녔을 것이다. (아니면 수첩같은 곳에 메모를 해놓고 다니던가...?)

 

1. 시대를 거슬러 올라가보면 맨 처음에는 정말 수첩이나 머릿속에 수많은 IP를 넣고 다니면서 외웠을 것이다. 아니면... 통신이 안돼기 때문에 (상대방 휴대전화 번호를 모르는데 전화를 어떻게 할것인가?)

 

2. 컴퓨터의 보급이 활발해지고 기하 급수적으로 늘어나는 IP의 수 때문에 수첩에 저장했던 IP들을 컴퓨터에 옮겨서 저장하면 어떨까 라는 생각을 하면서 hosts파일을 만들어낸다.

(어디서 봤을 것이다.) 그렇다! 리눅스에 있는 /etc/hosts파일이다. window에서는 C:\Windows\System32\drivers\etc\hosts이다.

hosts라는 파일안에 정리를 해놓았다. 어떻게?

xxx.xxx.xxx.xxx     www.naver.com

xxx.xxx.xxx.xxx     www.daum.net

...

이런식으로!

 

3. 처음에 hosts 획기적인 방법이었지만 더욱 늘어나는 IP때문에 이런 모든 IP정보들이 하나의 파일에 저장되는 것은 무리가 되었다. 무엇보다, IP가 바뀌면 그 파일을 일일이 수정해줘야 해서 너무 손이 많이 갔다.

그래서 사람들이 고안해낸 방법이 이런 것을 전문적으로 해주는 서버를 만들었다. 그것이 바로 네임서버

... 지금 비교하자면... 지금 114를 예를 들면 될것같다. 알고싶은 전화번호가 있을때 114 전화하면 어떻게 되는가? 바뀐 전화번호도 모두 알고있고, 언제 어디서든 접근할 수 있고 굉장히 비슷한 예군!ㅋㅋㅋㅋㅋ

 

<실습 - 1 네임서버 작동확인>

현재 PC에 어떤 네임서버가 적용되어 있는지 확인해보자.



 

네임서버의 IP192.168.111.2이다. 그렇다면 192.168.111.2IP를 가진 네임서버가 잘 작동하고 있는지 알아보자. 당연히 잘 작동하고 있으면 URLwww.naver.com을 입력하면 네이버 홈페이지가 뜰 것이다.



잘 작동하고 있다.

 

<실습 - 2 네임서버 고장>

그렇다면 이번에는 네임서버가 고장났다고 가정해보자. (현재 사용하고 있는 PC환경에서 네임서버 IP주소를 못 받고오거나 읽지 못해 이상이 발생한 것이다.)

단순히 /etc/resolv.conf안에 설정된 nameserverIP주소를 주석처리 해보겠다.



 

다시 홈페이지에 접속을 시도해보자. 접속이 안될 것이다.



 

 

<실습 - 3 네임서버를 이용하지 않고 IP로 접속하기>

그렇다면 www.naver.com이 아닌 네어버의 웹서버 주소를 직접 입력해보자. (이 실습을 하는 이유는 오류가 발생한 DNS서버를 거치지 않게 하면 홈페이지가 이상없이 잘 뜨는지 확인하는 것이다.)

네이버의 IP주소는 202.131.30.11이다.(nolookup명령어를 이용해서 확인해보자)



 

여기서 네임서버를 부정적으로 말해보면, 단순히 우리에게 URL주소를 외우기 힘든 IP주소로 변경시켜주는 편리한 서비스에 불과하다는 것이다.

 

 

<실습 - 4 /etc/hosts를 이용한 접속>

이번에는 /etc/hosts파일에(예전 과거 방식... 수첩에 써놓은 IP주소들을 컴퓨터에 접목시킨것과 같음) IP주소를 넣고 URL창에 naver.com을 입력했을때 잘 뜨는지 확인해보자. 물론 네임 서버는 고장났다고 가정하는 것이다.

먼저, /etc/hosts파일을 수정해보자.



 

그 후, 웹브라우저를 열어서 www.naver.com을 입력해보자.



이상 없이 잘 뜨고있다.

LIST

'OS > Linux' 카테고리의 다른 글

리눅스 - 메일서버 구축1  (0) 2016.02.22
리눅스 - 마스터 네임 서버 구축  (0) 2016.02.21
리눅스 - 부팅 순서 정리  (0) 2016.02.20
리눅스 - Telnet(텔넷) 서버  (0) 2016.02.19
리눅스 - FTP서버  (0) 2016.02.18

+ Recent posts