본문 바로가기

Linux

DNS + HTTP

Linux에 기본적으로 존재하는 DNS 관련 파일

1. /etc/hosts
   - 컴퓨터에 문자주소가 입력되면 가장 먼저 확인하는 파일
     이 문서에 해당 FQDN이 저장되어 있다면 매핑된 IP 주소로 연결

   - 형식
       <IP address> <FQDN>
 

 2. /etc/resolv.conf
   - 내가 어느 DNS server에게 FQDN을 질의할 것인지 결정하는 파일

   - network 데몬이 실행될 때 마다 IP 설정 중 DNS 주소에 작성한 내용이 이 파일 안에 기록
      -> 직접 입력한 주소가 있다면 재부팅 및 network 데몬 재실행 후 반드시 확인(원상복구됨)

   - 형식
       nameserver <DNS IP>

        * DNS 주소를 여러개 입력하여 하나가 안되는 경우 다른 DNS 서버로 연결 가능

 

 

[DNS]

  - 정보
     패키지 : bind-*
     데몬 : named
     방화벽 : port=53/tcp,udp service=dns
     설정파일 : /etc/named.conf

 

 

/etc/named.conf

listen-on-port 53         : 53번 port(DNS)를 누구에게 열어줄 것인지(누구로부터 오는걸 받을 것인지)
directory                      : 설정파일 내용 중 절대경로가 아닌 것들은 전부 이 디렉토리 안에 있다는 의미
allow-query                  : 누구로부터 질문 받는것을 허용할지 설정
include                        : 파일을 사용할 수 있게 가져옴



/etc/named.rfc1912.zones

  - DNS에서 사용하는 zone 영역들을 정리한 파일

 

정방향 zone 영역


    zone "도메인 이름" IN {                                             FQDN -> IP address 으로 변환
               type master;
               file "상세설정 파일";
               allow-update { ; };                                           none, any, ip 주소 지정
            };

 

                  * type master : read + write
                              slave  : read only, copy from master

 

                    상세설정 파일은 실제로 존재하지 않는 파일이기 때문에 생성 해야함

 

역방향 zone 영역


      zone "도메인 ip의 역순.in-addr.arpa" IN {                     IP address -> FQDN 으로 변환
               type master;  
               file "상세설정 파일";
               allow-update { ; };                                                 none, any, ip 주소 지정
            };

                  * 역방향 같은 경우 신뢰성을 높이기 위해 사용

 

 

[web server]
  - client에게 web page를 제공해주는 서버
    -> client가 web browser 프로그램을 이용하여 web server에 접근하면
        접근한 client에게 알맞는 web page를 전송하고, client는 전송받은 페이지를 browser에 출력


  - web server 프로그램 중 점유율이 가장 높은 apache web server를 사용

  - 정보
     패키지 : httpd-*
     데몬 : httpd
     방화벽 : port=80/tcp, service=http        * https : http + ssh
     설정파일 : /etc/httpd/conf/httpd.conf

 


ServerRoot "/etc/httpd"                     : 설정파일에서 절대경로가 아닌 것들은 /etc/httpd 하위에 속해있음
Listen 12.34.56.78:80                         : 지정한 IP만 80번 port로 들어올 수 있음
Listen 80                                             : 모든 IP가 80번 port로 들어올 수 있음
include conf.modules.d/*.conf           : /etc/httpd/conf.modules.d 디렉토리 안에 .conf가 붙은

                                                             LoadModule 파일들을 가져와서 사용
ServerName www.example.com:80  : 주소창에 뭘 띄울건지 설정
DocumentRoot "/var/www/html"        : index.html을 /var/www/html에 넣는 이유
        -> DocumentRoot 설정을 바꿀 때는 설정되어 있던 DocumentRoot 상위 디렉토리에 대한 설정도 같이 변경해줘야 함
DirectoryIndex index.html                  : DocumentRoot에 넣을 index 파일의 이름을 설정

                                                            ( html 파일 이름을 index로 한 이유)
ErrorLog "logs/error_log"                   : error log를 어디에 저장할 것인지 설정
IncludeOptional conf.d/*.conf            : /etc/httpd/conf/httpd.conf 파일에 없는 설정을 /etc/httpd/conf.d 디렉토리 안에

                                                            .conf가 붙은 LoadModule 파일들을 끌어와서 사용함

 


도메인 네임 생성 후 웹 페이지까지 띄워보자

dns와 apche 패키지를 설치 해준 후 진행한다

 

/etc/named.conf

대상을 any로 누구든지 53번 port 접근과 질문이 가능하도록  설정한다

/etc/named.rfc1912.zones

정방향과 역방향 zone 영역을 생성 해준다

named.conf 파일에서 볼수 있었다 시피 절대경로가 아닌 파일들은 /var/named에 위치 한다

해당 zone 영역에 대한 상세설정 파일은 실제로 있는 파일이 아니기 때문에 생성 해주도록 한다

zone 상세설정 파일

 

$TTL 1D
@       IN SOA {DNS서버주소}  {DNS관리자메일주소} (
                                                                                          0       ; serial
                                                                                          1D    ; refresh
                                                                                          1H    ; retry
                                                                                          1W   ; expire
                                                                                          3H )  ; minimum
                  IN      NS  {DNS 서버 도메인 주소}
                  IN      MX  {우선순위번호} {메일 서버 도메인 주소}

{호스트명} IN      A      {서버 IP 주소}

 

 

@           : 사용할 도메인 명을 의미하는 대체문자

TTL         : 정보의 생존 시간

NS          : 해당 네임서버의 이름을 정의

MX          : 메일 서버

A             : IPv4   (IPv6는 AAA)

PTR        : IP에 질의

 

serial       : 파일 개정 번호

refresh    : 파일 갱신 주기

retry        : 재시도 주기

expire      : 만료 기간

 

other 권한 설정
dns 데몬 시작 및 방화벽 설정

파일 작성시 문자열의 뒤에 .를 붙여주는 것에 주의하며

생성한 zone 상세 설정 파일의 other에게 읽기 권한을 추가 해주는 것을 명심한다

 

Client win10 nslookup

client로 사용할  win10에서 도메인이 잘 검색되는 것을 확인할 수 있다

이제 웹 페이지까지 띄워 보도록 하자

 

apache 서비스 실행 후 도메인 이름으로 접속함으로써 웹 서비스가 실행되고 있고

ip주소 10.0.0.1가 도메인 이름으로 잘 동작하는 것을 확인할 수 있다

index.html

/var/www/html 디렉토리에 index.html 파일까지 추가 해서 마무리 하도록 한다

www.rwj.com

'Linux' 카테고리의 다른 글

HTTP - 인증, 접근 제어  (0) 2022.10.10
주, 보조 DNS + VirtualHost  (0) 2022.10.09
DNS 이론 정리  (0) 2022.10.06
FTP-passive mode  (0) 2022.10.05
firewall 정리  (0) 2022.10.04