0502-ESXi

hyejin·2022년 5월 3일
0

-Tenant 임차인(사용자)

<복습>
1. ESXi 망도

  1. 설정편집 확인


-네트워크 어댑터1 = EXTERNAL (vSwitch0 포트그룹)
-네트워크 어댑터 = INTERNAL (vSwitch1 포트그룹)


-네트워크 어댑터1 = INTERNAL (vSwitch1 포트그룹)


-네트워크 어댑터 = INTERNAL (vSwitch1 포트그룹)


-네트워크 어댑터 = INTERNAL (vSwitch1 포트그룹)


-네트워크 어댑터 = INTERNAL (vSwitch1 포트그룹)

3.네트워킹 - 가상스위치 확인


vSwitch0

-물리적 어댑터 = 업링크 (LAN카드 연결)

*EXTERNAL
-내가 설정 가능
-NAT는 두개의 포트그룹과 연결(external, internal)

*Management Network (관리포트그룹)
-관리를 위한 IP를 설정하고 있는 포트그룹
-web 관리 IP

INTERNAL
-NAT는 두개의 포트그룹과 연결(external, internal)
-내부 네트워크로 연결되어있어서 NAT가 없으면 통신불가능
-(보안상의 이유)로 격리된 내부 네트워크

※NAT로 연결
-DHCP, DNS, HAProxy 역할

<학습>
1. 라우터 설정

  • NAT GW_DHCP_HAPROXY_NS(CentOS7) ip 확인
    (192.168.0.53)
  • mobaxterm 실행(본인의 프라이빗키로 접속하기 위함)
    ->새폴더 생성 : MZ-NETWORK
    ->NAT 세션 접속 (접속IP, username, key가 있으면 접속 가능)

▶NAT에서 실행

# hostnamectl

# ip a //ip 확인 후 ens 변경값 확인
# hostnamectl set-hostname nat //호스트네임 변경
# exit

//첫번째 LAN카드 설정
# vi /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=none
NAME=ens192
DEVICE=ens192
ONBOOT=yes   //no일 경우 LAN카드 꺼짐
IPADDR=192.168.0.53
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4

//두번째 LAN카드 설정
# vi /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
BOOTPROTO=none
NAME=ens224
DEVICE=ens224
ONBOOT=yes
IPADDR=10.0.24.1  //본인 IP 대역(internal 게이트웨이를 통과할 주소)
                  //꼭 1이 아니어도 됨(0,255는 불가/ 1~254 가능) -> 나중에 설정시 동기화해야함
NETMASK=255.255.255.0 //기본 서브넷 마스크, 앞의 3자리를 픽스하기 위해 마스크 씌움

# systemctl restart network

# yum install -y bash-completion  //필요한 파일들 알아서 설치
# exit

-방화벽 설정

# firewall-cmd --get-active-zones
public
  interfaces: ens192 ens224
# systemctl status NetworkManager   //nmcli를 쓰기 위해 활성화되어 있어야함
# nmcli c mod ens192 connection.zone external
# nmcli c mod ens224 connection.zone internal
# firewall-cmd --get-active-zones   //분리된거 확인
internal
  interfaces: ens224
external
  interfaces: ens192
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1  // 리눅스 시스템을 라우터로 만드는 셋팅
# sysctl -p
  1. DHCP 설정

▶nat에서

# yum install dhcp -y

# vi /etc/dhcp/dhcpd.conf
ddns-update-style interim;
subnet 10.0.24.0 netmask 255.255.255.0 {
option routers 10.0.24.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.0.24.2 10.0.24.254;  //브로드캐스트용 주소 255 불가
option domain-name-servers 10.0.24.1, 8.8.8.8, 203.248.252.2;
default-lease-time 7200;
max-lease-time 86400;
}

# systemctl enable --now dhcpd

ip 확인
web01 : 10.0.24.4
web02 : 10.0.24.2
web03 : 10.0.24.3
db : 10.0.24.5

//포트포워드
# firewall-cmd --permanent --zone=external --add-forward-port=port=221:proto=tcp:toport=22:toaddr=10.0.24.4  //web01
# firewall-cmd --permanent --zone=external --add-forward-port=port=222:proto=tcp:toport=22:toaddr=10.0.24.2  //web02
# firewall-cmd --permanent --zone=external --add-forward-port=port=223:proto=tcp:toport=22:toaddr=10.0.24.5  //db
# firewall-cmd --permanent --zone=external --add-forward-port=port=3389:proto=tcp:toport=3389:toaddr=10.0.24.3  //web03
# firewall-cmd --permanent --zone=external --add-forward-port=port=3306:proto=tcp:toport=3306:toaddr=10.0.24.5 //mariaDB
# firewall-cmd --reload
# firewall-cmd --list-all --zone=external //확인

▶mobaxterm /home/mobaxterm/.ssh에서

//키전송
/home/mobaxterm/.ssh> ssh-copy-id -p 221 -i id_rsa.pub root@192.168.0.53
/home/mobaxterm/.ssh> ssh-copy-id -p 222 -i id_rsa.pub seo@192.168.0.53
/home/mobaxterm/.ssh> ssh-copy-id -p 223 -i id_rsa.pub root@192.168.0.53

▶nat에서
-세션 접속 후 이름 바꿔주기

▶web03
-allow remote access to your computer->라디오버튼 2번째->체크박스 해제->apply->ok

-new session-> RDP(window)-> (Username:administrator)

-방화벽 열기
-'windows firewall with advanced security'-> inbound rules-> new rules->

-80포트 열기

  1. DNS 설정

▶nat에서

# yum -y install bind bind-chroot bind-utils

# vi /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; 192.168.0/24; 10.0.24/24; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { localhost; 192.168.0/24; 10.0.24/24; };
        forwarders { 8.8.8.8; 8.8.4.4; };

        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view "internal" {
        zone "." IN {
                type hint;
                file "named.ca";
        };

        include "/etc/named.rfc1912.zones";
        include "/var/named/hyejin.shop.zones"; # 호스팅 영역 생성
};

# vi /var/named/hyejin.shop.zones
zone "hyejin.shop" IN {
        type master;
        file "hyejin.shop.db";
        allow-update { none; };
};

zone "24.0.10.in-addr.arpa" IN {
        type master;
        file "24.0.10.in-addr.arpa.db";
        allow-update { none; };
};

# vi /var/named/hyejin.shop.db
$TTL    86400
@       IN      SOA     hyejin.shop.   root.hyejin.shop.(
                        2022041401 ; Serial
                        3h         ; Refresh
                        1h         ; Retry
                        1w         ; Expire
                        1h )       ; Minimum

        IN      NS      ns.hyejin.shop.
        IN      MX 10   ns.hyejin.shop.
ns      IN      A       10.0.24.1
web01   IN      A       10.0.24.4
web02   IN      A       10.0.24.2
web02   IN      A       10.0.24.3
db      IN      A       10.0.24.5
//첫째줄과 3번째줄 동기화되어야함

# vi /var/named/24.0.10.in-addr.arpa.db
$TTL	86400
@	IN	SOA	hyejin.shop.	root.hyejin.shop.(
			2022041401 ; Serial
			3h         ; Refresh
			1h         ; Retry
			1w         ; Expire
                        1h )       ; Minimum

	IN	NS	ns.hyejin.shop.
1	IN	PTR	ns.hyejin.shop.

# systemctl enable --now named

# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload

# vi /etc/sysconfig/network-scripts/ifcfg-ens192
DNS1=10.0.24.1
DNS2=8.8.8.8
DNS3=203.248.252.2
PEERDNS=no
//추가

# ping db.hyejin.shop //ping 나가는지 확인

▶db에서

# vi /etc/yum.repos.d/MariaDB.repo

# yum install -y MariaDB
# mariadb --version
# systemctl enable --now mariadb
# mysql_secure_installation
비밀번호 : Kosa0401!

# mysql -u root -p
CREATE USER 'kosa'@'%' IDENTIFIED BY 'kosa0401';
CREATE DATABASE IF NOT EXISTS wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'kosa'@'%';
quit

# firewall-cmd --permanent --add-service=mysql
# firewall-cmd --reload

# ss -ant //방화벽 확인

▶web02

$ sudo apt update
$ sudo apt install -y openssh-server
  1. SAMBA 설정 (윈도우형 파일시스템, 윈도우 내에서는 smb라고 부름)

▶web01에서

# yum install -y samba
# mkdir -p /var/samba/share
# chmod 777 /var/samba/share/
# adduser kosa
# passwd kosa //위에서 만든 kosa에 비밀번호 설정
비밀번호 : kosa0401
# smbpasswd -a kosa //smb kosa의 비밀번호 설정
비밀번호 : kosa0401

# vi /etc/samba/smb.conf
[share]
        comment = Share Directory
        path = /var/samba/share
        browserable = yes
        writable = yes
        valid users = kosa
        create mask = 0777
        directory mask = 0777

# systemctl enable --now smb nmb

# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload

★확인
▶web03에서
-돋보기에 \db.hyejin.shop 검색-> kosa/kosa0401 입력
-share 폴더에 새폴더 생성

?win10이 samba를 이용하려면?
-139, 445 포트로 포트포워딩

# firewall-cmd --permanent --zone=external --add-forward-port=port=139:proto=tcp:toport=139:toaddr=10.0.24.5
# firewall-cmd --permanent --zone=external --add-forward-port=port=445:proto=tcp:toport=445:toaddr=10.0.24.5
# firewall-cmd --reload

win10에서 확인
\192.168.0.53 검색

  1. NFS 설정

▶web02에서

# yum install -y nfs-utils //nfs 서버, 클라이언트 가능
# mkdir /share && cd $_ //만든 폴더로 바로 이동
# echo "Hello" > test.txt
# vi /etc/exports
/share 10.0.24.0/24(rw,sync)  //내부네트워크만 사용가능
# chmod 707 /share
# systemctl enable --now nfs-server
# exportfs -v

//방화벽 해제
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpc-bind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload

★확인
▶nat, web01 에서(CentOS)

# yum install -y nfs-utils
# showmount -e db.hyejin.shop


마운트 가능한지 확인

# mkdir share
# ls

# mount -t nfs db.hyejin.shop:/share share     //도메인의 share폴더와 지금 share폴더와 마운트시킴
# df -h

# cp /etc/fstab /etc/fstab.bak
# echo "db.hyejin.shop:/share /root/share nfs defaults 0 0" >> /etc/fstab

▶ web02에서 (클라이언트-Ubuntu) / 설치명령어, 경로가 CentOS랑 다름

$ sudo apt-get update
$ sudo apt-get install -y nfs-common
$ pwd
$ mkdir /home/seo/share
$ sudo showmount -e db.hyejin.shop
$ sudo mount -t nfs db.hyejin.shop:/share /home/seo/share
$ df -h
$ ls share
$ sudo cp /etc/fstab /etc/fstab.bak
$ sudo vi /etc/fstab
db.hyejin.shop:/share /home/seo/share nfs defaults 0 0

  1. HAProxy 설정

▶web01 에서

# yum install -y httpd
# systemctl enable --now httpd

▶web02에서

$ sudo apt update && sudo apt upgrade -y
$ sudo reboot
$ sudo apt install -y nginx php7.2 php7.2-mysql php7.2-fpm php7.2-mbstring php7.2-gd wget unzip
$ sudo mkdir -p /var/www/html/wordpress/public_html //wordpress/public_html html 루트 폴더를 만들어서 관리하겠다.
$ cd /etc/nginx/sites-available //환경설정 파일 포함
$ sudo vi wordpress.conf  //정의를 하고. hyejin
server {
            listen 80; //80포트 이용
            root /var/www/html/wordpress/public_html;  //내가 정의한 루트경로
            index index.php index.html; //index.php를 최우선으로(우선순위)
            server_name nat.hyejin.shop; //이 도메인으로 들어오는 트래픽만 허용

       access_log /var/log/nginx/SUBDOMAIN.access.log; 
           error_log /var/log/nginx/SUBDOMAIN.error.log;

            location / {
                         try_files $uri $uri/ =404; //not found 표시
            }

            location ~ \.php$ {
                         include snippets/fastcgi-php.conf;
                         fastcgi_pass unix:/run/php/php7.2-fpm.sock;
            }
            
            location ~ /\.ht {
                         deny all; //접근제어
            }

            location = /favicon.ico {
                         log_not_found off;
                         access_log off;
            }

            location = /robots.txt {
                         allow all;
                         log_not_found off;
                         access_log off;
           }
       
            location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                         expires max;
                         log_not_found off;
           }
}

$ sudo nginx -t //nginx 의 상태를 보는 명령어(test), uccessful 나와야함

$ cd /etc/nginx/sites-enabled    //.conf 파일을 enabled에 링크를 걸것임
$ sudo ln -s ../sites-available/wordpress.conf . ///sites-available/wordpress.conf를 현재경로에 링크 걸기-> nginx에 적용 가능
$ ls -al  //링크가 걸렸는지 확인

$ sudo systemctl reload nginx
$ cd /var/www/html/wordpress/public_html

※db 에서 (wordpress 파일 복사)

# cd /share/
# cp /var/samba/share/files/wordpress-5.9.3-ko_KR.zip .

다시 web02에서

$ sudo cp ~/share/wordpress-5.9.3-ko_KR.zip .
$ ls

$ sudo unzip wordpress-5.9.3-ko_KR.zip
$ sudo mv wordpress/* .   

$ sudo chown -R www-data:www-data *      //모든 사용자와 그룹명을 www-data로 변경
$ sudo chmod -R 755 *

reload -> 아파치서버를 종료하지 않은채 conf 설정 파일들만 새로 갱신
restart -> 서버를 stop하고 start해주는 작업

▶web03에서
-서류가방 클릭-> manage클릭->





-> Add Features 클릭


-> client for NFS 체크


-> 그대로 next

-> Install

※db에서

# cd /var/samba/share/files/

-.msi파일을 저 경로에 넣어주기

※web03에서
-검색창에 \db.hyejin.shop검색
-\db.hyejin.shop\share\files에 .msi있는거 확인
-파일 설치

*PHP설치 방법

-서류가방 클릭후-> Tools 클릭-> 'Internet Information Services Manager' 클릭

-> no 선택

-> 두번 클릭해 설치

-> php 검색-> add 클릭-> Install 클릭-> I Accept 클릭

0개의 댓글