본문 바로가기

리눅스(Linux)/미니 프로젝트

[Daily mini pj] 240314 - ssl 보안인증서 발급된 Virtual host 서버 생성(DNS) 및 ssl 보안인증서 발급된 DB HAProxy server 로드밸런싱 및 원격접속(Mariadb)

반응형

# 문제

더보기

Linux1, Linux2 설치완료
1. Linux1 주 DNS 서버
도메인 영역 : keduit.vm
주 네임서버 ns1.keduit.vm.
보조 네임서버 ns2.keduit.vm. => Linux2
보조 네임서버 ns3.keduit.vm. => win2003-1
부모와 같은 호스트 
www1 호스트 생성
www2 호스트 생성
ssl 호스트 생성
Linux1 웹서버 1
버추얼호스트
/www1/index.html <- www1.keduit.vm
/www2/index.html <- www2.keduit.vm

2. Linux2 
웹서버 2
보조 DNS / 웹서버
/var/www/html/index.html => ssl site
SSL 자체 서명된 인증서를 이용해서 보안웹 구성
https://ssl.keduit.vm 으로 사이트 확인

3. win2003-1 => dns 서버 
Linux1의 주 dns 서버에서 보조영역 구성
모든 사이트 확인
http://www1.keduit.vm
http://www2.keduit.vm


4
Linux01, centos8, centos8-2 설치완료 나머지 가상머신은 그대로 사용
centos8, centos8-2 HTTPD 서버와 MariaDB 서버 설치 하시오.
centos8
/var/www/html/index.html => www1 site
/var/www/html/index.html => www2 site
Haproxy로 웹서버 로드벨런싱 구성 후 HAProxy IP 입력헤서 접속
HAProxy 서버에 SSL 인증서를 이용해서 https://192.168.1.10 치면 사이트 접속 확인

centos8과 cento8-2 MariaDB 서버에 원격으로 사용자 root 암호 :1234로 설정 
centos8 로컬에서 로그인해서 
kosa DB 생성
centos8-2 그대로 사용

* HAproxy 서버에 Maria DB 로드벨런서를 구성하시오
mysql -h 192.168.1.10 -u root -p 입력해서 Mariadb서버가 로드벨런싱 되는지 확인 하시오.

 

# 주서버(ns1) - Linux1

## Virtual Host

yum -y install caching-nameserver

vi /etc/named.conf
vi /etc/named.rfc1912.zones
###########################

###########################

cd /var/named/
cp -p named.localhost jh.com.zone
vi jh.com.zone
###########################

###########################
systemctl start named
systemctl enable named

 

# 보조영역(ns2) - Linux2

## Virtual Host

yum -y install caching-nameserver

vi /etc/named.conf
vi /etc/named.rfc1912.zones
###########################

###########################
systemctl start named
systemctl enable named

cd /var/named/slaves
ls

vi /etc/resolv.conf      # 네임서버 바꿔줘야함

rfc1912

 

ping www1.jh.com
ping www2.jh.com

 

 

# 보조영역 (ns3) - Window 2003-01

## Virtual Host

 

# 주서버(ns1) - Linux1

## httpd 웹서버 생성

yum -y install httpd

mkdir /www1
mkdir /www2

cd /www1
echo www1.jh.com > index.html

cd /www2
echo www1.jh.com > index.html

vi /etc/httpd/conf/httpd.conf
##############################################
#127 /

#맨마지막줄
<VirtualHost *:80>
DocumentRoot /www1
ServerName www1.kosa.vm
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www2
ServerName www2.kosa.vm
</VirtualHost>
##############################################

systemctl restart httpd

vi /etc/resolv.conf
##############################################
nameserver   192.168.1.10
##############################################

httpd.conf
win 2003
resolv.conf 수정 후 통신됨(firefox)

 

# 보조영역(ns2) : SSL 자체 서명된 인증서 - Linux2

## httpd 웹서버 생성 및 ssl 인증서 발급

1. yum -y install httpd mod_ssl    # mod_ssl : 자체인증서 만드는 프로그램
2. mkdir -p /etc/ssl/private    # /ssl/private > 디렉토리 이름은 아무거나 만들어도 됨.
3. cd /etc/ssl/private
4. openssl req -x509 -nodes -newkey rsa:2048 -keyout tecmint.local.key -out tecmint.local.crt
#x509 규칙으로 새로운 키를 만들어서 rsa:2048(공개키 48비트를 써라) req(요청한다)
# -out 내보내라. tecmint.local.crt(인증서를) tecmint.local.key(개인키)
ls
tecmint.local.crt  tecmint.local.key

# cat tecmint.local.crt
# cat tecmint.local.key

 

5. echo ssl site > /var/www/html/index.html   # 웹서버 화면에 띄울 내용

6. vim /etc/httpd/conf.d/ssl.conf    #보안전용(443)
맨 밑줄 붙여넣기
####################################
<VirtualHost *:443> 
ServerAdmin admin@naver.com
ServerName www.tecmint.local 
ServerAlias tecmint.local 
DocumentRoot /var/www/html     # index.html 위치(웹서버 화면에 띄울 내용)
SSLEngine on 
SSLCertificateFile /etc/ssl/private/tecmint.local.crt 	  # 인증서 위치
SSLCertificateKeyFile /etc/ssl/private/tecmint.local.key  # 개인키 위치
</VirtualHost>
####################################저장

7. systemctl start httpd
systemctl restart httpd

8. httpd -t 문법검사

ns2 서버에서 > ssl.jh.com 으로 firefox에서 접근 가능

 

 


여기, 3번까지 OK!


 

# centos8 / 8-02 

## http / mariadb 다운로드 및 실행

# httpd 다운로드 및 설정

yum -y install httpd 
cd /var/www/html      
echo www.centos8 origin > index.html   
systemctl enable --now httpd  # 업데이트 및 enable
systemctl status httpd    # 에러 확인

---------------------------------------------
# mariadb server 다운로드 및 설정

yum -y install mariadb-server    # Mariadb 다운로드
systemctl start mariadb
mysql_secure_installation  =>  enter  =>  y  => 1234 => n => y,y,y     # 로컬에 대한 암호 접속 설정
# = mysqladmin -u root password '1234'

mysql     # 로그인 안됨
mysql -u root -p
>1234     # 로그인

>use mysql
>grant all privileges on *.* to  root@'%' identified by '4321';  #원격 접근 설정
#>select user, host from user where user not like ' ';   #원격접근권한 부여 확인

# centos8에만 생성
>create database centos8888;
>show databases;

centos8888 생성 확인 (centos8-2)    / 생성하지 않음(centos8)
원격 접근 권한 여부 확인

 

 

# linux01

## HAproxy 다운로드 및 설정 완료(로드밸런싱)

yum -y install haproxy
cd /etc/haproxy 
ls
vi haproxy.cfg
#############################
63
81
#############################저장
systemctl start haproxy
systemctl enable haproxy
systemctl status haproxy

curl 192.168.1.10
# 위에 1,2,3번에서 한 httpd는 꺼준 후에 진행해야한다. 아니면 겹쳐서 http index만 나온다.
# systemctl stop httpd
# systemctl restart haproxy

81번
한번씩 번갈아가면서 나옴 > 로드밸런싱 완료
한번씩 번갈아가면서 나옴 > 로드밸런싱 완료

 

 

# https 붙여서 검색해도 나오게 만들기 - https://192.168.1.10

## SSL 인증서 생성

# SSL 인증서 생성
cd /etc/pki/tls/certs  
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/haproxy.pem -out /etc/pki/tls/certs/haproxy.pem -days 365
ls haproxy.pem
cat haproxy.pem     # pem 파일에 인증서와 키가 같이 들어가 있는것 확인
# chmod 600 haproxy.pem   # 권한 수정

 

 

## SSL 전용 HAProxy  구성

vi /etc/haproxy/haproxy.cfg

######################################################
# add in the "global" section
# global
      # max per-process number of SSL connections  # 한번에 동시접속 최대 256명까지 가능
    maxsslconn     256  
      # set 2048 bits for Diffie-Hellman key  # Diffie-Hellman : 키교환 방식 중 하나
    tune.ssl.default-dh-param 2048

#######               #######            #######

## add follows in the "frontend" section
#frontend  http-in
#    bind *:80
      # specify port and certs
    bind *:443 ssl crt /etc/pki/tls/certs/haproxy.pem

#########################################################

systemctl restart haproxy    # 업데이트
systemctl status haproxy    # 에러 여부 확인

haproxy.cfg
https://192.168.1.10 검색시 화면 출력 확인!

 

 

# mariadb 원격접속 가능하게 만들기

## mariadb 클라이언트(프로그램) 다운로드 및 설정

yum -y install mariadb   # 클라이언트 프로그램

vi /etc/haproxy/haproxy.cfg
###################################################
# mode 변경
mode tcp

#맨 마지막 줄에 삽입
frontend mysql-in
        bind *:3306
        default_backend db_servers

backend db_servers
    balance     roundrobin
    server  db1 192.168.1.20:3306 check
    server  db2 192.168.1.30:3306 check
###################################################

systemctl restart haproxy  # 업데이트
systemctl status haproxy   # 에러 확인

 

 

## HAproxy IP로 원격접속

# 원격접속
mysql -h 192.168.1.10 -u root -p
>4321

>show databases;    # 다시 접속하면 centos888 DB가 있다없다한다 > 로드밸런싱 정상작동 확인 가능!
>exit

 

로드밸런싱 정상작동


 

오늘은 앞서 배운 내용을 섞어서 미니프로젝트 실습을 진행해보았습니다. 응용해서 더 활용해보시기 바랍니다. 감사합니다.

반응형