DAY_35 DNS 도메인 설정

2021. 2. 15. 18:20

체크리스트

● 아파치 웹서버에서 MPM방식이란 무엇인가 ?

- 멀티 프로세싱 모듈로 클라이언트가 웹 서버에 요청을 보낼시 자식 프로세스가 어떻게 처리할 것인가에
대한 방식이다.

● 아파치 웹서버에서 MPM방식에서 아래 3가지 방식을 적으시오.

prefork 방식 :  미리 fork(자식)을 많이 만들어 놓고 요청을 처리하는 방식이다.

worker 방식  : 멀티 쓰레드 방식으로 많은 요청이 들어오면 한번에 여러 쓰레드가 처리하는 방식이다. 
event  방식  : 아파치 버전에서 추가된것으로 worker방식을 기반으로 한다.

 

● 현재 구동중인 아파치 웹서버의 MPM방식을 알아보는 명령어는 무엇인가 ?

- httpd -V

● 아파치 웹서버를 yum으로 설치했을 때 MPM방식의 모듈 파일명은 무엇인가 ?

prefork 방식 : /lib64/httpd/modules/mod_mpm_prefork.so

worker 방식 : /lib64/httpd/modules/mod_mpm_worker.so

event 방식 : /lib64/httpd/modules/mod_mpm_event.so

 

● 아파치 웹서버의 구동을 prefork 방식이 아니고 worker, event 방식으로 구동시키면

PHP가 실행되지 않는다 이를 해결할 수 있는 방법은 무엇인가 ?

- php-fpm을 설치한다.
(더 빠른 cgi를 제공하는 것으로 이를 설치 함으로써 다른 worker,event 방식을 구동시키면서
php를 실행할 수 있다.)

 

● Nginx 란 무엇인가 ?

- apache보다 더 경량화 된 웹서버이다.

- 요즘 많이 사용하고 있는 웹서버이다.

 

● yum을 이용해서 nginx를 설치하는 방법을 기술하시오.

- yum repository에는 기본적으로 nginx가 없으므로 yum으로 설치하기 위해서는 yum이 끌어오는
저장소에 nginx를 가지고 올 수 있는 위치를 저장하고 yum을 실행하면 된다.

1. nginx 저장소를 추가한다.
2. nginx를 yum을 이용해서 설치한다.
3. 설정파일을 수정한다.
4. nginx를 실행하고 운영한다.

 

● nginx 설정파일명은 무엇인가 ?

- /etc/nginx/conf/default.conf

- /etc/nginx/nginx.conf

 

● nginx 설정파일에서 아파치의 DocumentRoot에 해당하는 지시어는 무엇인가 ?

- root

 

● nginx 설정파일에서 웹문서가 제공되는 디렉터리를 /var/www/html로 설정하는 지시어는 무엇인가 ?

- root /var/www/html;


실습 > nginx에서 가상호스트 설정해보기

 

1. hosts 파일 편집

테스트이기 때문에 자신의 ip주소에 해당하는 것으로 설정한다.

 

# vi /etc/hosts

2. 가상 도메인 사용자 생성

사용자를 만들때 그룹명이 사용자이름으로 생성되지 않게 하기 위해서는 /etc/login.defs 파일을 수정한다.

# sed -i 's/USERGROUPS_ENAB/#USERGROUPS_ENAB/' /etc/login.defs

# mkdir -m711 /etc/skel/public_html

# useradd sbsuser

# useradd kbsuser

# useradd mbcuser

# chmod o+x /home/{sbs,kbs,mbc}user

# ls -ld /home/{sbs,kbs,mbc}user

drwx-----x. 3 kbsuser users 81 2월 10 21:25 /home/kbsuser

drwx-----x. 3 mbcuser users 81 2월 10 21:25 /home/mbcuser

drwx-----x. 3 sbsuser users 81 2월 10 21:25 /home/sbsuser

 

# passwd sbsuser

# passwd kbsuser

# passwd mbcuser

 

# su - sbsuser -c 'echo sbsuser > public_html/index.html'

# su - kbsuser -c 'echo kbsuser > public_html/index.html'

# su - mbcuser -c 'echo mbcuser > public_html/index.html'

 

3. 설정파일 수정

 

/etc/nginx/conf.d 디렉터리 밑에 .conf로 되어 있는 파일은 모두 include 하기 때문에 

가상호스트 서버파일을 각자 sbsuser.conf kbsuser.conf mbcuser.conf 로 만든다.

 

# vi /etc/nginx/nginx.conf

nginx 버전 정보 숨기기

server_tokens off; 를 넣어준다.

 

# vi /etc/nginx/conf.d/sbsuser.com.conf

 

: r default.com 을 하면 default.com 파일이 붙여넣기(끼어넣기)가 된다.

아래와 같이 수정한다.

# systemctl restart php-fpm

# systemctl restart nginx

 

 

 

4. 도메인 테스트

# yum -y install lynx

# setenforce 0

 

# echo /var/www/html > /var/www/html/index.php

# lynx --dump 192.168.1.102

/var/www/html

 

# lynx --dump sbs.com

sbsuser

 

# lynx --dump kbs.com

kbsuser

 

# lynx --dump mbc.com

mbcuser


#######

# DNS #

#######

 

DNS (Domain Name System) : 도메인 주소를 해석하는 시스템

nslookup : 도메인에 대한 IP주소를 확인하는 명령어

 

# yum -y install bind bind-chroot

 

# vi /etc/named.conf

listen-on port 53{any;};

- 네임서버의 포트번호(53)와 접근할 수 있는 IP(any)를 설정하는 지시어이다.

- 외부에서 네임서버에 접근하여 도메인을 질의하여야 함으로 127.0.0.1 에서 any로 설정한다.

 

directory "/var/named";

- DNS의 zone 파일의 위치를 지정하는 지시자이다.

- 기본값 그대로 사용한다.

 

allow-query {any;};- 네임서버 query를 허용할 IP 대역을 설정하는 지시자이다.- 도메인에 대한 외부 query를 받아야함으로 localhost에서 any로 변경한다.

 

recursion no;- 외부에서 현재의 네임서버를 지정해서 사용 유무를 설정하는 지시자이다.- 이 부분은 보안상 no로 하는게 좋다.- 네임서버를 테스트하는 경우에는 동작확인을 위해서 yes로하고 운영시에는 no로 하는게 좋다.

 

zone "." IN {

    type hint;

    file "named.ca";

};

루트 도메인을 지정한다.

 type 지시자에는 3가지 값이 온다.

   - hint : 루트 도메인

   - master : 1차 네임서버

   - slave : 2차 네임서버

 

include "/etc/named.rfc1912.zones";

- include 지시자는 네임서버 시작 시 파일을 불러와 이 설정파일에 붙여주는 역할을 한다.

- named.rfc1912.zones : 도메인을 설정하는 파일이다.

 

 

# systemctl enable named

# systemctl start named

 

# netstat -ntulp | grep 53

# vi /etc/resolv.conf

 

 

# nmtui 

dns 설정 127.0.0.1 로 설정해주기

 

혹은 

 

/etc/sysconfig/network-scripts/ifcfg-ens33 여기서 설정을 바꿔준다.

 


실습 > listen-on port 53 { any; }

 

-- /etc/named.conf --

listen-on port 53 { any; }

------------------------

 

any; 로 설정하면 모든 IP주소가 53번 포트가 열리게 된다.

IP주소가 1개만 있으면 상관없지만 여러개의 IP주소가 설정되어 있을때는 any;로 설정함녀 모든 IP주소에 

53번 포트가 열리게 되므로 특정 IP만 열리게 하는것이 좋다.

 

 

any로 해놓았기 때문에 설정한 ip 주소가 전부 올라온다.

 


실습 > allow-query

 

any로 설정하는 이유는 어떤 ip 주소에서 dns서버에 요청을 보낼지 모르기 때문에 any로 설정하는것이 일반적이다.

 

# vi /etc/named

 

# systemctl restart named

 

# nslookup naver.com

호스트 OS's IP 주소 : 192.168.1.1가 아니므로 DNS서버에 거절당했다.

 

cmd 창에서 확인 할 수 있다.

Host OS에서 실행하면 DNS 서버에게 정상적으로 질의한 도메인 주소에 대해서 IP주소를 알려준다.

확인해봤으면 any로 다시 설정한다.

 


실습 > recursion 

 

DNS 서버 운영중에는 recursion 은 no 로 설정한느것이 보안상 좋다.

 

recursion yes : 자기가 가진 도메인이 아니더라도 resolving을 통해서 IP주소를 알려준다.

recursion no : 자기가 가진 도메인이 아니면 resolving을 하지 않는다. / 거부한다.

# dig naver.com  ---> 접근 거부됨

 

실습이 끝나면 다시 yes로 만든다.


실습 > filetype 설정하기

# vi /usr/share/vim/vim74/filetype.vim

 

설정파일(named.rfc1912.zones)을 열때 색상이 있게 하기 위해서


실습 > sbs.com 도메인 등록하기

 

포워드 존 파일 : 도메인을 요청했을 때 IP정보를 저장하고 있는 파일

리버스 존 파일 : IP정보를 요청했을 때 도메인 정보를 저장하고 있는 파일

 

1. 도메인 등록

/etc/named.conf 에 저장된 지시어 directory 에 설정된 곳에 생성해야한다.

 

# vi /etc/named.rfc1912.zones

 

 

 

 

2. 포워드 존 파일 생성

/etc/named.rfc1912.zones 에 저장된 도메인에 해당하는 파일을 생성한다.

 

# cd /var/named

# vi sbs.com.zone

:r named.localhost ----> 기존에 있는 named.localhost 끼어넣기

 

약간만 수정하면 된다.

sbs,kbs,mbc 파일을 모두 만들고 

cp -a sbs.com.zone kbs.com.zone 으로 복사하면 된다.

 

사용자를 named로 바꿔야한다. apache처럼 named도 named라는 사용자로 실행되기 때문에 파일의 권한에서 x를 없애고 그룹을 named로 바꾼다.

 

3. 네임서버 재시작

 

에러가 발생할 수 있기 때문에 확인하고 이상이 없을 시 재시작한다.

 

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

 

아무것도 안나와서 이상이 없다는 의미이다.

 

 

# named-checkzone sbs.com sbs.com.zone

 

# systemctl reload named

 

4. 도메인 질의 

네임서버에 설정된 sbs.com 에 대한 도메인을 질의한다.

 

# vi /etc/hosts sbs.com kbs.com mbc.com 모두 삭제

 

1차 네임서버 정보를 /etc/resolv.conf 파일에  127.0.0.1 로 설정한다.

# cat /etc/resolv.conf

# iptables -F

# systemctl reload named

# nslookup sbs.com

# dig sbs.com


실습 > 도메인 등록하기

-- 조건 --

1. 웹서버 IP주소 : 192.168.1.102

 

2. 도메인 설정 정보

도메인명 2차 도메인명 IP주소

kbs.com www.kbs.com 192.168.1.102 (webserver's IP address)

mbc.com www.mbc.com 192.168.1.102 (webserver's IP address)

 

3. nslookup 의 결과가 192.168.1.102으로 출력되어야 한다.

nslookup kbs.com

nslookup www.kbs.com

nslookup mbc.com

nslookup www.mbc.com

 

4. 각 도메인의 결과가 웹페이지가 출력되어야 한다.

lynx --dump kbs.com

lynx --dump www.kbs.com

lynx --dump mbc.com

lynx --dump www.mbc.com

-- 조건 --

 

===================

지울 때  

# systemctl stop named

# vi /etc/named.rfc1912.zones 

sbs.com

kbs.com

mbc.com 

삭제

 

# rm -f /var/named/sbs.com.zone

# rm -f /var/named/kbs.com.zone

# rm -f /var/named/mbc.com.zone

 

# systemctl start named

 

반응형

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

DAY_103 실장비 설정  (0) 2021.05.25
DAY_36 DNS  (0) 2021.02.16
DAY_34 MPM, Nginx  (0) 2021.02.10
DAY_33 CGI  (0) 2021.02.09
DAY_32 apache  (0) 2021.02.08

BELATED ARTICLES

more