DAY_36 DNS
체크리스트
● 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

















파란색 : 바뀌지않음
빨간색 : 바뀐다.
도메인 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 정보"

레코드를 아무것도 적지 않으면 기본적으로 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 |



