DNS 서버를 구축하여 웹 서버 IP 주소가 아닌 도메인명으로 접근할 수 있게 한다.
DNS 서비스를 위한 패키지 설치
bind, bind-utils 패키지를 설치해준다.
[root@dns ~]# yum -y install bind bind-utils
DNS 서비스를 설정해준다.
[root@dns ~]# nmcli con add con-name static3 ifname enp0s3 type ethernet
연결 'static3' (fe2d96ed-14fc-42d0-a759-48e7301899af)이 성공적으로 추가되었습니다.
[root@dns ~]# nmcli con mod static3 ipv4.addresses 10.0.2.10/24 ipv4.gateway 10.0.2.2 ipv4.dns 10.0.2.10 ipv4.method manual
[root@dns ~]# nmcli con up static3
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@dns ~]# ip addr show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:02:7f:20 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.10/24 brd 10.0.2.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::dcfb:8a12:fd17:61d8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
사용하려는 네임 서버가 지정되었는지 확인한다.
[root@dns ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search test.example.com
nameserver 10.0.2.10
정방향 DNS을 구성한다.
/etc/named.conf 를 설정해준다.
listen-on port 53 { 127.0.0.1; }; => { any; } DNS port 53에 어떤 IP가 접근할 수 있는지 설정한다. 불특정 다수의 유저에게 서비스할 땐 listen-on port 53 {any;}; 로 설정하고 사설 DNS 서버로 사용할 때에는 서비스할 사설 IP대역만을 고정시켜 설정해야 보안이 상승한다. |
|
listen-on-v6 port 53 { ::1; }; => { none; } IPv6 DNS port 53번에 대한 설정이다. |
|
allow-query { localhost; }; => { any; } 재귀 질의가 올 때 응답여부에 대한 설정이다. 보안상의 문제가 있을 경우 재귀 쿼리를 받을 IP대역만을 허용하며 일반적으로 allow-query { any; }; 를 사용한다. |
파일의 하단에 zone을 추가해준다.
zone "ssh.wp.com" IN {
type master;
file "ssh.wp.com.zone";
};
서비스 활성화
zone 파일을 구성하여 도메인에 대한 정보를 설정한다.
/var/namd/로 이동하면 named.empty라는 파일이 있다. 위에서 설정한 zone 파일명으로 복사해준다.
[root@dns ~]# ls /var/named/
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@dns ~]# cd /var/named/
[root@dns named]# cp named.empty ssh.wp.com.zone
[root@dns named]# vi ssh.wp.com.zone
zone 파일을 복사, 생성 시에는 권한에 주의해야한다. 기본적으로 DNS 서버 패키지인 BIND는 프로세스가 실행될 때 named 계정으로 동작하기 때문에 named 계정이 zone 파일에 대한 권한을 가져야 한다.
zone 파일 설정 시에 도메인 명은 항상 (.) 또는 ORIGIN(@)으로 끝나야 한다.
아직 ssh.web.com.zone의 소유자가 root이므로 사용 권한을 주기 위해 다음 명령줄을 입력한다.
[root@dns named]# chmod 660 ssh.wp.com.zone
[root@dns named]# chown :named ssh.wp.com.zone
[root@dns named]# ls -l ssh.wp.com.zone
-rw-rw----. 1 root named 224 3월 18 00:28 ssh.wp.com.zone
네임 서버의 구축이 끝났다면 방화벽 설정을 통해 53번 포트를 열어줘야 한다.
named 시스템을 활성화한다.
[root@dns named]# firewall-cmd --add-service=dns --permanent
success
[root@dns named]# firewall-cmd --reload
success
[root@dns named]# systemctl start named
DNS 서버 동작 확인
[root@dns named]# host www.ssh.wp.com
www.ssh.web.com has address 192.168.56.107
[root@dns named]# nslookup
> server
Default server: 10.0.2.9
Address: 10.0.2.9#53
> www.ssh.wp.com
Server: 10.0.2.9
Address: 10.0.2.9#53
Name: www.ssh.wp.com
Address: 192.168.56.107
Web 서버와 DB 서버에 DNS를 설정해준다.
Web 서버 설정
[root@web ~]# nmcli con add con-name static3 ifname enp0s3 type ethernet ipv4.addresses 10.0.2.200/24 ipv4.gateway 10.0.2.2 ipv4.method manual ipv4.dns 10.0.2.9
연결 'static3' (b81523e8-256b-42aa-97a5-ed8ba8c4e573)이 성공적으로 추가되었습니다.
[root@web ~]# nmcli con up static3
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/12)
[root@web ~]# host dns.ssh.wp.com
DB 서버 설정
[root@db ~]# nmcli con add con-name static3 ifname enp0s3 type ethernet ipv4.addresses 10.0.2.10/24 ipv4.gateway 10.0.2.2 ipv4.metho
d manual ipv4.dns 10.0.2.9
연결 'static3' (54dd9cd3-7aef-49d7-84e2-0907854f30aa)이 성공적으로 추가되었습니다.
[root@db ~]# nmcli con up static3
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@db ~]# host db.ssh.wp.com
db.ssh.wp.com has address 192.168.56.101
접속 과정에서 로컬 컴퓨터의 hosts 파일을 가장 먼저 확인하고 hosts 파일내에 없는 정보는 DNS 서버를 이용하기 때문에 브라우저를 통해 도메인 네임을 입력해 wordpress 페이지에 접속하기 위해서는 로컬 컴퓨터의 hosts 파일을 수정해줘야 한다.
C:\Windows\System32\drivers\etc 경로로 이동하여 hosts 파일을 열어 수정해준다.
hosts 파일 수정 시에는 관리자 권한이 필요하다.
메모장을 "관리자 권한으로 실행" 시켜 [파일] - [열기] 를 클릭해 hosts 파일의 위치로 이동하고 hosts 파일을 수정한다.
https 설정하기
https로 접속하기 위해 SSL 인증서를 생성한다.
mod_ssl 패키지를 설치하고 RSA priavate key를 생성한다.
[root@web ~]# yum install -y mod_ssl
[root@web ~]# openssl genrsa -out private.key 2048
Generating RSA private key, 2048 bit long modulus
........................................................................................................................................................+++
....................+++
e is 65537 (0x10001)
생성된 private key로 csr을 생성한다.
private key와 csr을 이용해 인증서를 생성한다.
[root@web ~]# openssl x509 -req -signkey private.key -in cert.csr -out cert.crt
Signature ok
subject=/C=KR/ST=Seoul/L=Seoul/O=DGU/OU=Admin/CN=www.ssh.wp.com/emailAddress=skysohe@naver.com
Getting Private key
crs, crt, key 파일 디렉터리 변경 및 SELinux 설정
/etc/pki/tls/private/keyname.key : 개인 키 600 또는 400 사용권한과 cert_t로 유지
/etc/pki/tls/certs/certname.csr : 서명 요청할 때만 생성, CA로 보내는 파일(서명용)
/etc/pki/tls/cert/cretname.crt : 공개 인증서, 자체 서명된 인증서가 요청될 때만 생성 서명 요청이 있고 CA로 전송될 때 CA에서 반환되는 파일 644 cert_t로 유지
개인키와 인증서 저장
[root@web ~]# chmod 600 private.key cert.csr
[root@web ~]# mv cert.* /etc/pki/tls/certs/
[root@web ~]# mv private.key /etc/pki/tls/private/
https 방화벽 설정
[root@web ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client http ssh
ports: 3306/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@web ~]# firewall-cmd --add-service=https --permanent
success
[root@web ~]# firewall-cmd --reload
success
https로 접속 확인
'Project' 카테고리의 다른 글
AWS 서비스를 이용해 고가용성 Wordpress를 배포해보자 ! (2) (0) | 2022.04.09 |
---|---|
AWS 서비스를 이용해 고가용성 Wordpress를 배포해보자 ! (1) (0) | 2022.04.08 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 3 (0) | 2022.03.15 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 2 (0) | 2022.03.15 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 1 (0) | 2022.03.15 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!