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


listen-on-port 53 : 53번 port(DNS)를 누구에게 열어줄 것인지(누구로부터 오는걸 받을 것인지)
directory : 설정파일 내용 중 절대경로가 아닌 것들은 전부 이 디렉토리 안에 있다는 의미
allow-query : 누구로부터 질문 받는것을 허용할지 설정
include : 파일을 사용할 수 있게 가져옴
/etc/named.rfc1912.zones
- DNS에서 사용하는 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 "도메인 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 패키지를 설치 해준 후 진행한다

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

정방향과 역방향 zone 영역을 생성 해준다
named.conf 파일에서 볼수 있었다 시피 절대경로가 아닌 파일들은 /var/named에 위치 한다
해당 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 : 만료 기간


파일 작성시 문자열의 뒤에 .를 붙여주는 것에 주의하며
생성한 zone 상세 설정 파일의 other에게 읽기 권한을 추가 해주는 것을 명심한다

client로 사용할 win10에서 도메인이 잘 검색되는 것을 확인할 수 있다
이제 웹 페이지까지 띄워 보도록 하자

apache 서비스 실행 후 도메인 이름으로 접속함으로써 웹 서비스가 실행되고 있고
ip주소 10.0.0.1가 도메인 이름으로 잘 동작하는 것을 확인할 수 있다

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

'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 |