DAY_36 DNS

2021. 2. 16. 18:20

체크리스트

● nginx 웹서버에서 가상호스트를 설정하는 방법을 설명하시오.

- /etc/nginx/conf.d 에 설정하고자 하는 가상호스트 정보를 작성한다.

형식은 아래와 같다.

server {

listen 80;

server_name sbs.com www.sbs.com;

 

# 캐릭터셋 변경

charset utf-8;

 

# WEb root 디렉터리 변경

root /home/sbsuser/public_html;

 

location / {

index index.html index.php;

}

 

location ~ \.(php|html)$ {

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /home/sbsuser/public_html$fastcgi_script_name;

include fastcgi_params;

}

}

 

● 네임서버 설정 파일명은 무엇인가 ?

- /etc/named.conf

- /etc/named.rfc1912.zones

 

● /etc/named.conf 파일은 어떤 역할의 파일인가 ?

- DNS의 설정을 가지고 있는 파일이다.

 

● /etc/named.rfc1912.zones 파일은 어떤 역할의 파일인가 ?

- zone 파일에 대한 정보를 가지고 있는 파일이다.
- 도메인주소를 등록하는 파일이다.

● 도메인을 설정하는 순서를 적으시오.

1. /etc/named.rfc1912.zones 파일에 도메인을 등록한다.

2. /var/named/정방향존파일 파일에 정방향 도메인을 설정한다.

3. named-checkzone, named-checkconf 명령어로 설정파일을 검사한다.

4. systemctl reload named 명령어로 네임서버를 리로드한다.

5. nslookup, dig, host 명령어로 도메인을 확인한다.

 

● DNS란 무엇인가 ?

- Domain Name System 으로 도메인명을 ip주소로 변환하는 것이다.

● DNS가 사용하는 프로토콜과 포트번호는 무엇인가 ?

- 사용하는 프로토콜 : TCP/UDP

- 포트번호 : 53

 

● bind 패키지는 무엇인가 ?

- bind 패키지란 Berkeley Internet Name Domain 의 약자로 DNS시스템을 구축하는 패키지이다.

 

● 도메인 질의 명령어는 무엇인가 ?

- nslookup
- dig

- host

 

● naver.com 도메인의 IP주소를 확인하는 명령어는 무엇인가 ?

- nslookup naver.com

- dig naver.com

- host naver.com

 

● /etc/skel 디렉터리의 역할은 무엇인가 ?

- 뼈대 디렉터리로 사용자를 생성할 때 이 디렉터리 밑에 있는 파일들이 복사된다.

 

● root 사용자가 sbsuser 사용자의 권한으로 명령어를 사용하는 방법은 무엇인가 ?

- su - sbsuser -c 명령어

 

● nginx의 버전정보를 감추는 옵션은 무엇인가 ?

- server_token off;

- nginx.conf에 넣어주면 된다.

 

● php의 버전정보를 감추는 옵션은 무엇인가 ?

- expose_php = Off

 

● curl -I sbs.com 은 어떤 명령어인가 ?

- sbs.com 도메인에 대한 HTTP 헤더 정보를 가져온다.

 

● CentOS에서 DNS를 사용하는 패키지명은 무엇인가 ?

- bind, bind-chroot

● netstat -nltup | grep --color 53 명령어의 의미를 설명하시오.

- 현재 listen상태인 tcp/udp 프로토콜중 53번 포트만 출력한다.

- n : 숫자

- l : 리슨

- t : TCP

- u : UDP

- p : program 

 

● /etc/resolv.conf 파일에는 어떤 내용이 들어가는가 ?

- 도메인을 질의할 nameserver의 IP주소가 들어간다.

 

● 1차, 2차 DNS의 정보를 저장하는 곳은 어느 파일인가 ?

- /etc/sysconfig/network-script/ifcfg-ens33

 

● DNS를 1차,2차 2개를 설정하는 이유는 무엇인가 ?

- 혹시 1차 dns가 이상이 발생할 시 2차 dns 주소를 사용한다.

- 평소에도 1차 2차 모두 사용한다.

 

● listen-on port 지시어는 무엇인가 ?

- 서버에 설정된 주소로 53번 포트가 열린다는 의미이다.

 

● listen-on port 53 { any; }; 와 listen-on port 53 { 192.168.1.102; }; 의 차이점은 무엇인가 ?

- listen-on port 53 { any; } : 시스템에 설정된 주소 모두 53번 포트로 바인딩 되어서 열리게 된다.
- listen-on port 53 { 192.168.1.102; } : 192.168.1.102 ip주소로 53번 포트가 바인딩 되어서 열리게 된다.

 

● allow-query 지시어는 무엇인가 ?

- query를 날릴 클라이언트의 IP주소를 지정한다.

 

● allow-query { any; }; 와 allow-query { 192.168.1.1; };의 차이점은 무엇인가 ?

- allow-query  { any; }; : 모든 사용자가 dns에게 도메인주소를 보내고 ip 정보를 요청할 수 있다.
- allow-query  { 192.168.1.1; }; : 192.168.1.1 주소만 dns에게 요청을 보낼 수 있다. 나머지는 거부된다.

 

● recursion 지시어는 무엇인가 ?

- 자신에게 요청하는 도메인을 resolving 을 통해서 IP주소를 알려 것인가를 결정한다. 실제 운영상에서는 보안상 no 라고 설정하고 운영한다.

 

● recursion no; 와 recursion yes;의 차이점은 무엇인가 ?

- recursion no; : 자신이 가진 도메인정보가 아니면 resolving을 거부한다.
- recursion yes; : 자신이 가진 도메인정보 이외의 요청을 resolving해준다.

 

● 리눅스에서 아래 IP주소를 추가로 설정하기 위한 명령어는 무엇인가 ?

ens33:1 : 192.168.1.210 : ifconfig ens33:1 192.168.1.210

ens33:2 : 192.168.1.211 : ifconfig ens33:2 192.168.1.211

 

● ens33:1 에 설정된 IP주소를 다운시키는 명령어는 무엇인가 ?

- ifconfig ens33:1 down

 

● ens33:2 에 설정된 IP주소를 다운시키는 명령어는 무엇인가 ?

- ifconfig ens33:2 down

 

● 루트 도메인은 전세계 몇개를 가지고 있는가 ?

- 13개

 

● 루트 도메인이란 무엇인가 ?

- dns는 자신이 가진 도메인정보, 캐쉬정보 이외의 요청이 들어오면 이 루트 도메인을 거쳐 ip 주소를 찾으러 간다.
- 루트 도메인은 가장 상단에 있는것으로 먼저 이곳을 거치게 된다. 꼭대기에 있는 도메인이다.

 

● 루트 도메인이 저장된 파일명은 무엇인가 ?

- /etc/named/named.ca

 

● /etc/named.rfc1912.zones 파일에 도메인을 등록하는 형식은 무엇인가 ?

-  
zone "도메인명" IN{
  type 네임서버 종류;
  file 설정할 zone파일명;
  allow-update{}
}

● /etc/named.rfc1912.zones 파일에 sbs.com 을 등록하는 형식은 무엇인가 ?

zone "sbs.com" IN {

   type master;

   file "sbs.com.zone";

  allow-update { none; };

};

● /var/named 디렉터리는 어떤 디렉터리인가 ?

- dns가 여기에 있는 zone정보를 확인하여 요청이 들어왔을때 여기에 있는 zone정보가 있다면 resolving을 
거치지않고 바로 보내준다.
- 포워드 존파일과 리버스 존파일의 그리고 루트 도메인의 정보를 저장하는 디렉터리 실질적은 네임서버의 중요 디렉터리이고 웹서버로 한마디로 말하면 /var/www/html 디렉터리라고 할 수 있다.

 

● 포워드 존파일이란 무엇인가 ?

- 도메인주소에 해당하는 ip주소를 가지고 있는 파일이다.

 

● 포워드 존파일을 생성하고 문법을 검사하는 명령어는 무엇인가 ?

- named-checkzone 도메인명 설정한 zone파일명

 

● /etc/named.rfc1912.zones 파일의 문법을 검사하는 명령어는 무엇인가 ?

- named-checkconf /etc/named.rfc1912.zones

 

● 도메인 resolving이란 무엇인가?

- 요청한 도메인을 찾아가는 과정이다.

 

●  resolving을 누가 담당하는가?

- os에 라이브러리 형태로 들어있어서 프로그램에서 도메인으로 요청하는 모든것을 받아서 처리한다.


실습 > 패킷트레이서를 이용한 DNS/WEB

 

장비를 꺼내고 연결한다.
더블클릭

 

 

CMD창에서 실행 가능
서버

 

sbs,kbc,mbc 모두 설정한다.
도메인을 하면 무조건 dns를 거친다. ip주소로하면 dns를 거치지않는다.
cmd창에서 하고 싶다면 ICMP로 체크한다.
CMD창에서 ping kbs.com을 치면 확인할 수 있다.


파란색 : 바뀌지않음

빨간색 : 바뀐다.

도메인    IN    SOA    1차네임서버    관리자이메일( serial refresh retry expire minimum )

 

도메인 :

관리자가 구입해서 도메인명을 넣는다. 도메인명 끝에 . 이 반드시 들어간다.

도메인은 @로 대체할 수 있다.

 

IN : INTERNET 클래스명을 무조건 적는다.

 

SOA : sbs.com에 대해 네임서버가 인증(authoritative)된 자료를 갖고 있음을 의미한다.

 

1차네임서버 :

도메인명에 대한 1차 네임서버를 설정한다.

1차 네임서버는 관리자가 설정한다.

도메인명은 생략하면 도메인명. 이 자동으로 붙는다. (ns1.sbs.com. -> ns1)

 

예전에는 1차 네임서버를 ns.sbs.com. 으로 사용했지만 요즘은

1차 네임서버를 ns1.sbs.com. 으로도 사용한다.

 

관리자이메일 : 관리자가 설정한다.

이메일의 @는 사용하면 안된다. @이는 도메인명이므로 사용할 수 없다.

(webmaster@sbs.com. -> webmaster.sbs.com.sbs.com.)

 

( : 소괄호로 열고 시작한다.

 

serial : 2차 네임서버가 있다면 필요하다. 존 파일의 버전 / 2차 네임서버와 비교할 버전을 적는다. 형식은 YYYYMMDDNN 

             2021021601  ->  2021021602

 

refresh : 2차 네임서버가 있다면 필요하다. 2차 네임서버가 1차 네임서버의 변경을 확인하는 시간 (기본 단위 초)

 

retry : 2차 네임서버가 있다면 필요하다. 2차 네임서버가 1차 네임서버에 접속을 시도했을 때 다시 접속하는 재접속 주기 

            retry 주기는 refresh 주기보다 짧아야한다.

 

expire : 2차 네임서버가 있다면 필요하다. 만료시간 / 2차 네임서버가 1차 네임서버에 접근을 계속 시도 했을때 계속실패 하면 이 시간이 지나면 끝난다.

 

minimum : 캐쉬 시간으로 상대방이 도메인을 요청해서 받아갔다면 가지고 있을 TTL(Time To Live) 값을 의미한다.

 

) : 끝날때는 소괄호로 닫는다.

 

평소에 저렇게 적었다면 

아래와 같이 줄여서 사용이 가능하다.

 

 

 

 

 

 

설정된 모든 존파일 정보를 가지고 오는것

# dig sbs.com axfr

 

 


TTL

TTL 값이 없었을때

TTL 값을 작게 잡아주는것이 좋다. 과부화가 걸리지 않을정도로 

DDOS 공격이 발생될 수 도 있고 너무 크게 잡으면 도메인에 해당하는 DNS는 좋겠지만 문제가 발생할 수 있다.

 

TTL 값을 도메인별로 다르게 줄 수 있다.

 


RR : 리소스 레코드

 

SOA     : 도메인의 시작을 의미한다.

NS       : 네임서버를 의미한다.

A         : IPv4 주소를 의미한다. (정방향)

AAAA   : IPv6 주소를 의미한다. (정방향)

PTR      : 도메인 주소를 의미한다. (역방향)

MX       : 메일서버를 의미한다.

TXT      : 스패메일을 확인할 때 사용한다.

CNAME : 별칭을 의미한다.

 

 

-- /var/named/sbs.com.zone --

@ IN SOA ns root ( 2021021501 1D 1H 1W 3H )

IN NS ns

IN A 192.168.1.102

ns IN A 192.168.1.102

www IN A 192.168.1.102

-- /var/named/sbs.com.zone --

 

형식 : 

도메인명 IN SOA SOA정보

도메인명 IN NS  1차네임서버도메인명

도메인명 IN NS  2차네임서버도메인명

도메인명 IN A    IPv4 주소

도메인명 IN MX 우선순위  메일서버도메인명

도메인명 IN CNAME 도메인명

도메인명 IN TXT      "TXT 정보"

 

정보를 짧게 보고 싶다면 +short

레코드를 아무것도 적지 않으면 기본적으로 A가 보여지게 된다.

 


 

실습> 조건에 맞는 네임서버를 설정하시오.

 

-- 조건 --

1. 도메인 : ebs.com

2. 2차 도메인 정보 :

1차 네임서버 : ns1.ebs.com 192.168.1.102

2차 네임서버 : ns2.ebs.com 192.168.1.103

웹서버 : www.ebs.com 192.168.1.104

웹서버 : www.ebs.com 192.168.1.105

메일 서버 : mail.ebs.com 192.168.1.106

자료 서버 : data.ebs.com 192.168.1.107

DB 서버 : db.ebs.com 192.168.1.108

DNS 관리자 : webadmin@ebs.com

TTL 값 : 300초 (5M)

3. 설정 후 dig으로 확인한다.

-- 조건 --

 

-- /etc/named.rfc1912.zones --

:

:

zone "ebs.com" IN {

type master;

file "ebs.com.zone";

allow-update { none; };

};

-- /etc/named.rfc1912.zones --

 

# cd /var/named

 

-- ebs.com.zone --

$TTL 300

@ IN SOA ns1 webadmin ( 2021021601 1D 1H 1W 3H )

IN NS ns1

IN NS ns2

IN MX 10 mail

IN A 192.168.1.104

ns1 IN A 192.168.1.102

ns2 IN A 192.168.1.103

www IN A 192.168.1.104

www IN A 192.168.1.105

mail IN A 192.168.1.106

data IN A 192.168.1.107

db IN A 192.168.1.108

-- ebs.com.zone --

 

# chmod o= ebs.com.zone

# chgrp named ebs.com.zone

# ls -l ebs.com.zone

-rw-r-----. 1 root named 345 2월 11 15:53 ebs.com.zone

# named-checkconf /etc/named.rfc1912.zones

# named-checkzone ebs.com ebs.com.zone

zone ebs.com/IN: loaded serial 2021021601

OK

 

# systemctl reload named

 

# dig ebs.com soa

# dig ebs.com ns

# dig www.ebs.com

# dig ebs.com mx

# dig mail.ebs.com

# dig data.ebs.com

# dig db.ebs.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'정보보안(시스템,네트워크) > 리눅스' 카테고리의 다른 글

DAY_104 실장비 서버 구축  (0) 2021.05.26
DAY_103 실장비 설정  (0) 2021.05.25
DAY_35 DNS 도메인 설정  (0) 2021.02.15
DAY_34 MPM, Nginx  (0) 2021.02.10
DAY_33 CGI  (0) 2021.02.09

BELATED ARTICLES

more