$ sudo vi /etc/sysconfig/selinux
(변경전)
SELINUX=enforcing
(변경후)
SELINUX=disabled
$ sudo reboot
# Generated by NetworkManager
search kornet
nameserver 168.126.63.1
nameserver 168.126.63.2
nameserver 8.8.8.8
$ sudo yum -y install epel-release
$ sudo vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
$ sudo yum -y update ## 인덱스 업데이트
$ sudo yum -y install nginx
$ sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-ports
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
💡 vi /etc/nginx/conf.d/default.conf 파일에서 nginx관련 정보를 볼 수 있다.
💡 nginx의 웹 표시 파일은 /usr/share/nginx/html/ 디렉터리에 존재한다 -> index.html 파일도 여기에 존재
💡 apache는 /var/www/html에 존재
-> 웹에 접속할때에는 가상머신내의 ip로 웹페이지에 들어갈 수 있다.
$ sudo yum -y update
$ sudo yum -y install bind bind-chroot bind-utils
수정 전
12 options {
13 listen-on port 53 { 127.0.0.1; };
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 recursing-file "/var/named/data/named.recursing";
20 secroots-file "/var/named/data/named.secroots";
21 allow-query { localhost; };
(생략)
54 zone "." IN {
55 type hint;
56 file "named.ca";
57 };
58
59 include "/etc/named.rfc1912.zones";
60 include "/etc/named.root.key";
수정 후
12 options {
13 listen-on port 53 { **any**; };
14 listen-on-v6 port 53 { **none**; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 recursing-file "/var/named/data/named.recursing";
20 secroots-file "/var/named/data/named.secroots";
21 allow-query { **any**; };
(생략)
## 정방향 도메인 설정
54 zone "goorm-11th.com." IN {
55 type master;
56 file "goorm-11th.com.zone";
57 allow-update { none; };
58 };
59
## 역방향 도메인 설정
60 zone "0.168.192.in-addr.arpa" IN {
61 type master;
62 file "goorm-11th.com.zone";
63 };
64
65 include "/etc/named.rfc1912.zones";
66 include "/etc/named.root.key";
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
allow-query { localhost; };
zone “도메인.” IN {
type master;
→ 도메인 영역을 직업 관리한다.file “~.zone”;
→ 영역 파일의 이름을 지정한다.allow-update { none; };
→ 갱신을 제출하도록 허용된 호스트를 정의하는 인터넷 주소 일치 리스트를 지정한다.수정 전과 같이 기본 설정 값은 localhost 에서만 DNS 요청을 받아들이도록 설정되어 있다. 다른 호스트가 현재 서버의 DNS 서비스를 사용하도록 구성하려면 이 설정 값을 변경해야 햔다. 특정 인터페이스 또는 특정 대상을 지정하려면 적절한 설정 값을 지정해야 하고, 특정 대상을 지정하지 않으려면 any를 입력한다.
## 아래 명령어를 통해 오타 검수한다.
$ named-checkconf
명령형식 : named-checkzone ZoneName FileName
**$ cd /var/named
$ ll**
total 16
drwxr-x--- 7 root named 61 Jan 17 00:25 chroot
drwxrwx--- 2 named named 23 Jan 17 00:27 data
drwxrwx--- 2 named named 60 Jan 17 00:28 dynamic
-rw-r----- 1 root named 2253 Apr 5 2018 named.ca
-rw-r----- 1 root named 152 Dec 15 2009 named.empty
-rw-r----- 1 root named 152 Jun 21 2007 named.localhost
-rw-r----- 1 root named 168 Dec 15 2009 named.loopback
drwxrwx--- 2 named named 6 Oct 4 16:06 slaves
**$ cp named.localhost goorm-11th.com.zone**
$TTL 1D
@ IN SOA goorm-11th.com. root. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.goorm-11th.com.
IN A 192.168.0.20
NS IN A 192.168.0.21
www IN A 192.168.0.20
**$ named-checkzone goorm-11th.com goorm-11th.com.zone**
zone goorm-11th.com/IN: loaded serial 0
OK
[root@localhost named]# chmod -R 754 /var/named
[root@localhost named]# systemctl restart named
$ sudo firewall-cmd --permanent --add-service=dns
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --info-service=dns
$ sudo systemctl restart named
$ sudo systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service
새로 생성한 Client 서버는 보기 편하도록 윈도우로 생성했다.
같은 내부 망에서 DNS 서버는 위에서 구축한 서버로 잡아, nslookup 조회시 DNS쿼리 정상 조회 되는 것과 도메인으로 정상 호출되는 것까지 확인되었다.
💡 만약 Client 에서 DNS가 다른 DNS값으로 설정되어 있다면???
위에서 구축해두었던 Web서버로 쿼리 조회할 수 있는 DNS값이 아니기 때문에, 아래와 같이 쿼리 조회 서버가 KT DNS로 잡히면서 찾을 수 없는 도메인인 것을 확인할 수 있다.
→ goorm-11th.com 도메인은 실제로 존재하는 도메인이 아니라, 테스트 용도로 내부에서 임의 설정한 도메인이기 때문에 외부에서 실제 사용되는 KT DNS 등에서 찾을 수 없는 도메인이다.
위와 같이 DNS 쿼리 조회가 불가능하다면, 웹 접속은 당연히 불가능할 것이다.