11일차) 4.15 (중요!!실습)

미니멀,xfce 다운받기

교수님 말씀 1 -노드

  • 4개의 vm들을 실제로는 노드라고 표현한다.
  • 호스트,서버,노드,컴퓨터, 등등 여러가지로 불린다
  • ip통신이 되는 장비를 모두 통틀어서 노드라고 한다.
  • 랜카드를 갖춘 네트워크 장비들은 모두 노드
  • 라우터,프린터 등등, 랜카드가 있는 기기들은 모두 노드이다.

교수님 말씀1

앞으로 꾸미게될 퍼블릭 클라우드에서는 모두 가상의 환경이다.
나중이 되면 지금처럼 직접 꾸미지 않고 선택을 해서 제공(?) 하는 SA가 된다

메가존클라우드 제출 평가

  • 다음 주 프로젝트
  • 1) 프로젝트 화면을 동영상 촬영 - 세팅하는 동영상 같은 것
  • 2) 진행됐던 스크립트들(명령어) 잘 정리해서 제출
  • 3) 문서작성 형식(보고서양식 배포예정)

마이박스

http://naver.me/GhPp9QMo

구글드라이브

https://drive.google.com/drive/u/0/folders/18GpyaiiESWLJFkOk2R05k4tcw192nC90

기존환경 삭제

1) 버추얼박스에서 전부 삭제
2) D드라이브 내 vbox 하위의 그룹폴더 모두 삭제
3) .ssh 키 삭제

  • C:\Users\r2com.ssh 폴더 삭제

    실습

    1) CentOSMinimal.ova 가져오기 (교수님 제공)
  • ram : 2기가
  • 모든 네트워크 어댑터에 새 MAC 주소 생성, 완료

2) CentOSMinimal.ova 설정 변경하기

  • 머신 이름변경 : NAT GW_DHCP_HAPROXY

3) NAT GW_DHCP_HAPROXY 복제하기

  • (1)WEB01_SAMBA, (2)WEB02_NFS, (3)NS_DATABASE
  • 완전한 복제
  • 모든 네트워크 어댑터에 새 MAC 주소 생성, 완료

4) 4개의 머신 네트워크 설정 변경하기

  • NAT GW_DHCP_HAPROXY 어댑터1 (어댑터에 브리지), 어댑터2 (내부 네트워크; vSwitch)
  • WEB01_SAMBA 어댑터1(내부 네트워크; vSwitch)
  • WEB02_NFS 어댑터1(내부 네트워크; vSwitch)
  • NS_DATABASE 어댑터1(내부 네트워크; vSwitch)

5) 4개의 머신 그룹에 넣기

  • 그룹명: MY-NETWORK

6) NAT 세팅하기 (NAT>)

  • root 비밀번호 변경하기 Node1752! -> Kosa0401!

#ip a : 192.168.0.106
#passwd root 

1) 보안 키 설정하기

NAT

1) cmd 작업관리자 권한으로 실행
2) ssh로 NAT에 로그인

 #ssh [email protected]

3) ssh 키폴더 만들기

#mkdir /root/.ssh
#exit

cmd (C:\Windows\system32)

1) 공개키(퍼블릭)와 비밀키(프라이빗) 만들기

  • 경로: C:\Users\r2com/.ssh/id_rsa
#ssh-keygen -t rsa

2) .ssh 폴더로 이동

#cd %UserProfile%\.ssh

3) NAT머신의 .ssh 폴더로 자물쇠를 내보내기

#scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys

4) 비밀키(프라이빗키)의 이름 바꾸기

#ren id_rsa my-key.pem

5) 프라이빗 키로 NAT머신으로 접속하기

#ssh -i my-key.pem [email protected]

NAT

1) 암호화 로그인방식 허용 no로 변경 (sshd_config파일 수정)

#vi /etc/ssh/sshd_config
	PasswordAuthentication no

2) 시스템컨트롤 재시작

#systemctl restart sshd

3) 셀리눅스 사용하지 못하도록 하기 (desable 시키기) -영구

#vi /etc/sysconfig/selinux
	SELINUX=disabled

4) 셀리눅스 즉시 사용하지 못하도록 하기 -임시

#setenforce 0 

5) 확인하기

#sestatus

//3) NAT를 나트게이트웨이로서(라우터로서) 세팅하기

6) 호스트명을 localhost에서 nat로 변경하기

#hostnamectl set-hostname nat

7) ifcfg-enp0s3 백업하기

#cp /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-enp0s3.bak

8) 공유기로 받고 있는 어댑터1(외부ip)의 자동ip를 고정ip로 변경하기 ifcfg-enp0s3파일 변경

#vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
- ggdG

  TYPE=Ethernet
  BOOTPROTO=none
  NAME=enp0s3
  DEVICE=enp0s3
  ONBOOT=yes
  IPADDR=192.168.0.106
  NETMASK=255.255.255.0
  GATEWAY=192.168.0.1
  DNS1=8.8.8.8
  DNS2=8.8.4.4

8) 어댑터2(내부ip)의 자동ip를 고정ip로 변경하기 ifcfg-enp0s8파일 변경

#vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

  TYPE=Ethernet
  BOOTPROTO=none
  NAME=enp0s8
  DEVICE=enp0s8
  ONBOOT=yes
  IPADDR=172.31.0.1
  NETMASK=255.255.255.0

9) 시스템컨트롤- 네트워크 리스타트하기

#systemctl restart network

10) 핑 잘 전송되는지 찍어보기

#ping google.com

11) ip가 고정으로 잘 되었는지 확인하기

#ip a
- 0s3 192.168.0.106
- os8 172.31.0.1

12) 두개의 랜카드(enp0s8, enp0s3)가 어느 존(내부/외부)에 있는지 확인

#firewall-cmd --get-active-zone

13) 두개의 랜카드의 존을 지정해주기

  • 1)enp0s3랜카드를 external존으로 지정
 #nmcli c mod enp0s3 connection.zone external
  • 2) enp0s8랜카드를 internal존으로 지정
  #nmcli c mod enp0s8 connection.zone internal

14) 랜카드의 존(내부/외부) 지정상태 확인

#firewall-cmd --get-active-zone

15) 리눅스 시스템을 라우터로 만드는 세팅

#sysctl -w net.ipv4.ip_forward=1

16) 세팅 저장하기

#sysctl -p

17) 세팅 확인하기

#cat /proc/sys/net/ipv4/ip_forward

19) dhcp 세팅으로 ip 자동으로 부여하기 (공유기의 역할수행용이 아닌 ip자동부여로 편리하려고)

  • 1) dhcp 패키지 설치하기
#yum install dhcp -y
  • 2) dhcp 설정하기
#vi /etc/dhcp/dhcpd.conf
  ddns-update-style interim;
  subnet 172.31.0.0 netmask 255.255.255.0 {
  #= 172.31.0.0/24
  option routers 172.31.0.1;
  option subnet-mask 255.255.255.0;
  range dynamic-bootp 172.31.0.100 172.31.0.110;
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  default-lease-time 7200;
  max-lease-time 86400;
  }

20) dhcpd 활성화?

#systemctl enable --now dhcpd

22) 네트워크 재시작

#systemctl restart network

web01

23) 네트워크 재시작

- #systemctl restart network
- #ip a
- 172.31.0.100

web02

24) 네트워크 재시작

#systemctl restart network
- #ip a
172.31.0.102

NS

25) 네트워크 재시작

- #systemctl restart network
- #ip a
 172.31.0.101

cmd도구 -> mobaxterm으로 변경

NAT GW_DHCP_HAPROXY 192.168.0.106
WEB01_SAMBA 172.31.0.100
WEB02_NFS 172.31.0.102
NS_DATABASE 172.31.0.101

1) 새폴더 만들기 - MY-NETWORK
2) NEW session

  • 나트게이트웨이 ip(192.168.0.106)
  • user name: root
  • key : my-key.pem
  • 북마크명 NAT

NAT

교수님 : 100(1) 101(2) 102(ns)
1) 방화벽 설정하기 (firewall-cmd 명령어)

  • (1) web01
#firewall-cmd --permanent --zone=external --add-forward-port=port=221:proto=tcp:toport=22:toaddr=172.31.0.100
  • (2)web02
#firewall-cmd --permanent --zone=external --add-forward-port=port=222:proto=tcp:toport=22:toaddr=172.31.0.102
  • (3) ns
#firewall-cmd --permanent --zone=external --add-forward-port=port=223:proto=tcp:toport=22:toaddr=172.31.0.101

** 지웠다가 다시 삭제할때는 add 대신 remove

2) 재시작

#firewall-cmd --reload

#firewall-cmd --list-all --zone=external

4) 키방식으로만 접근 가능하도록 하기

#pwd
- /root
- 현재 폴더에 c\사용자\id_rsa.pub 업로드하기

5) nat의 .ssh 폴더위치에서 공개키 복사+ 이름변경후 web01서버,web02,ns서버에 공개키 전송하기

#cp authorized_keys authorized_keys.pub
  • (web01)
#ssh-copy-id -i authorized_keys.pub [email protected]

(web02)

#ssh-copy-id -i authorized_keys.pub [email protected]

(ns)

#ssh-copy-id -i authorized_keys.pub [email protected]

6) WEB01,WEB02,WEB03 포트번호 넣어주기

  • 외부에서 접속하는거라 똑같이
  • NEW session
  • 나트게이트웨이 ip(192.168.0.106)
  • user name: root
  • key : my-key.pem
  • 북마크명 WEB01
    -포트번호 :221

7) web01, web02, ns 호스트명 변경(localhost~>) 후 다시 붙기

#hostnamectl set-hostname web01           
- #exit
- #r

NS

1) bind 패키지 설치

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

2) named.conf 세팅하기

#vi /etc/named.conf
- ggdG
  options {
          listen-on port 53 { 127.0.0.1; 192.168.0/24; 172.31.0/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; 172.31.0/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/yejinkim.shop.zones"; # 호스팅 영역 생성
  };

3) yejinkim.dshop.zones 파일 새로 만들어주기. (정방향과 역방향 두가지 존 설정)

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

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

4) db파일 새로 만들어주기 (레코드)

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

          IN      NS      ns.yejinkim.shop.
          IN      MX 10   ns.yejinkim.shop.
  ns      IN      A       172.31.0.101
  web01   IN      A       172.31.0.100
  web02   IN      A       172.31.0.102

#* IP LIST
#WEB01_SAMBA 172.31.0.100
#WEB02_NFS 172.31.0.102
#DNS_DATABASE 172.31.0.101

5)db에 붙여넣기

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

      IN	NS	ns.yejinkim.shop.
  101	IN	PTR	ns.yejinkim.shop.

6) 설정 끝난 후 enable 하기

#systemctl enable --now 

7) 포트번호 열기

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

8) 리로드하기

#firewall-cmd --reload

여기까지가 ns 세팅


9) web01 가서 내가 만든 서버 ip 확인해보기

# cat /etc/resolv.conf
  #Generated by NetworkManager
  nameserver 8.8.8.8
  nameserver 8.8.4.4

NAT

1) 내가 만든 서버 ip 등록해주기 dhcp에..

  • 부분 수정해주기
#vi /etc/dhcp/dhcpd.conf

  option domain-name-servers 172.31.0.101, 8.8.8.8, 8.8.4.4;

2) dhcpd.conf 파일 수정 후, 해당되는 리스타트 해주기

#systemctl restart dhcpd

3) ns 서버 확인하기

[[email protected] .ssh]# cat /etc/resolv.conf
  #Generated by NetworkManager
  nameserver 8.8.8.8
  nameserver 8.8.4.4

4) ifcfg-enp0s3파일 수정해서 ns 서버 적어주기

  • 부분수정
#vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

- DNS1=172.31.0.101   #ns서버

5) network 설정 변경후 리스타트

 #systemctl restart network

6)ns 서버 등록된거 확인

  #Generated by NetworkManager
  nameserver 172.31.0.101
  nameserver 8.8.4.4

7) 리붓하기

#reboot

WEB01,WEB02, NS

1) 리눅스의 dns 세팅 확인하기 (ns 등록된거 확인하기)

#cat /etc/resolv.conf

2) 확인해봤을 때 안뜰 때

#systemctl restart NetworkManager

NS

1) 핑 나가는지 확인

 #ping web01.yejinkim.shop

2) 핑 안나갈때 확인

#cat /etc/resolv.conf

3) 핑 안나갈때 방화벽 dns 열려있는지 확인

#firewall-cmd --list-all

4) 안될때 disabled로 변경하기 + 오타찾기 + 네트워크매니저!

#vi /etc/sysconfig/selinux
	SELINUX=disabled
#systemctl restart NetworkManager
#firewall-cmd --permanent --add-service=dns
#firewall-cmd --reload
#vi /var/named/yejinkim.shop.db
#reboot
#setenforce 0

HAproxy - AWS ELB

High Availability Proxy)는 여러 서버에 요청을 분산시키는 TCP 및 HTTP 기반 애플리케이션을 위한 고가용성 로드 밸런서 및 역방향 프록시를 제공하는 무료 오픈 소스 소프트웨어 입니다. C로 작성되었으며 빠르고 효육적(프로세서 및

연결고리. 고가용성: 보안용어이며 끊김 없이 사용!
프론트엔드와 백엔드를 연결해준다.
시간에 따른 쿠키를 주고, 다른 1분동안 쿠키를 줘서 1분동안은 한쪽으로만 오게끔!
서버가 나누어져 있는데 왔다갔다 하다가 영원히 로그인안될수도 있으니까..! 같은 세션으로 유지될 수 있도록 쿠키를 준다.

NAT

1) 설치하기

#yum install -y haproxy

2) haproxy 설정파일 수정하기 (프론트엔드와 백엔드를 연결)

# vi /etc/haproxy/haproxy.cfg
- ggdG
   global
      daemon

  defaults
      mode               http

  frontend  http-in
      bind *:80
      default_backend    backend_servers

  backend backend_servers
      balance            roundrobin
  #cookie  SVID insert indirect nocache maxlife 1m #고정세션(stickiness)
      server             web01 172.31.0.100:80 cookie check
      server             web02 172.31.0.102:80 cookie check

3)systemctl enable --now haproxy

#systemctl enable --now haproxy

4) web01,web02 세팅하기

WEB01, WEB02 동시설치

1) WEB01, WEB02 httpd 설치
멀티exam - 4개의 세션 nat, ns는 체크해서 적용안되게 하기

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

2)WEB01, WEB02 방화벽 열기

#firewall-cmd --permanent --add-service=http

3) 폴더 만들고 설치하기 wget을

- #cd /var/www/html
- # mkdir images && cd $_
- #yum install -y wget

4) webshare에 두마리토끼 이미지 올리고 링크주소 복사하기

////////html 폴더에 두마리토끼 넣어놓기
5) WEB01, WEB02 에 wget 토끼사진 있는 웹쉐어주소 쳐서 이미지 다운받기

#wget http://192.168.0.10/files/two-rabbit.jpg
#cd ..

6) index.html 파일 수정해서 web1과 web2 구분주기

  • html 폴더에 두마리토끼 있는지 확인하기!
#vi index.html
  <!DOCTYPE html>
  <html>
  <head>
    <meta charset="utf-8">
    <title>Sample Deployment</title>
    <style>
      body {
        color: #ffffff;
        background-color: #0188cc;
        font-family: Arial, sans-serif;
        font-size: 14px;
      }
      h1 {
        font-size: 500%;
        font-weight: normal;
        margin-bottom: 0;
      }
      h2 {
        font-size: 200%;
        font-weight: normal;
        margin-bottom: 0;
      }
    </style>
  </head>
  <body>
    <div align="center">
      <h1>Congratulations</h1>
      <h2>This application was deployed using AWS ECS, EKS.</h2>
      <p>For next steps, read the <a href="https://aws.amazon.com/ko">AWS Management Console.</a></p>
      <p><img src="images/two-rabbit.jpg" alt="두마리 토끼" height="350"></p>
    </div>
  </body>
  </html>
  • #curl ??

NAT

1) 방화벽 열기

  • 방화벽 열어준 목록에 http 서비스 포함되어 있는지 확인
#firewall-cmd --list-all --zone=external

2) 방화벽 열기 (4개 전부다!)

#firewall-cmd --permanent --zone=external --add-service=http

3) 방화벽 리로드하기

#firewall-cmd --reload

4) 안될떄, 방화벽 잘 열린거 맞는지 확인하기

  • web01에서
#curl web02.yejinkim.shop
#curl 127.0.0.1
  • 위 명령어 쳤을때 페이지 내용 보이면 방화벽 열기!

5) HAproxoy - 쿠키주기

#cd ~

6) 쿠키주기 시간 30초로 부분 수정하기

#vi /etc/haproxy/haproxy.cfg
- cookie  SVID insert indirect nocache maxlife 30ss #고정세션(stickiness)
- #systemctl restart haproxy

web01

1) cd ~ 홈으로가기

#cd ~

2) samba 설치

#yum install -y samba

3) 폴더 만든 후 권한주기

#mkdir -p /var/samba/share
#chmod 777 /var/samba/share

4) 유저 정하고 비밀번호 주기

#adduser kosa
#passwd kosa
- 비밀번호 입력하기

5) 삼바를 위한 사용자의 아이디를 만들어주기

#smbpasswd -a kosa
- 비밀번호 입력하기

6) 제어판가기

  • 제어판\네트워크 및 인터넷\네트워크 및 공유 센터
  • 활성 네트워크명(네트워크 2) 복사

6) smb.conf 파일에 워크그룹읍 활성네트워크명으로 수정하고 맨 밑에 share추가하기

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

7) 삼바 방화벽 열어주기

#systemctl enable --now smb
#systemctl enable --now nmb
#firewall 
#firewall-cmd --permanent --add-service=samba
#firewall-cmd --reload

8) 삼바 포트 유추하기

[[email protected] html]# ss -ant
  State      Recv-Q Send-Q          Local Address:Port                         Peer Address:Port
  LISTEN     0      128                         *:22                                      *:*
  LISTEN     0      100                 127.0.0.1:25                                      *:*
  ESTAB      0      0                172.31.0.102:22                           192.168.0.10:49373
  LISTEN     0      128                      [::]:80                                   [::]:*
  LISTEN     0      128                      [::]:22                                   [::]:*
  LISTEN     0      100                     [::1]:25                                   [::]:*

web02

8) 삼바 포트 유추하기

[[email protected] ~]# ss -ant
  State      Recv-Q Send-Q          Local Address:Port                         Peer Address:Port
  LISTEN     0      50                          *:139                                     *:*
  LISTEN     0      128                         *:22                                      *:*
  LISTEN     0      100                 127.0.0.1:25                                      *:*
  LISTEN     0      50                          *:445                                     *:*
  ESTAB      0      0                172.31.0.100:22                           192.168.0.10:49159
  ESTAB      0      0                172.31.0.100:22                           192.168.0.10:49370
  LISTEN     0      50                       [::]:139                                  [::]:*
  LISTEN     0      128                      [::]:80                                   [::]:*
  LISTEN     0      128                      [::]:22                                   [::]:*
  LISTEN     0      100                     [::1]:25                                   [::]:*
  LISTEN     0      50                       [::]:445                                  [::]:*
  [[email protected] ~]#

NAT

1) NAT에서 samba를 위한 포트포워딩 설정하기 (포트번호 설정하기)

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

2) 윈도우 검색에서 \192.168.0.106\share 들어가지는지 확인

  • \나트게이트웨이 아이피
  • \192.168.0.106
  • 사용자 아이디 : kosa
  • 비밀번호 : Kosa0401!

WEB01

3) 테스트해보기

  • share 폴더에 텍스트 파일(test.txt) 생성해보기
#cd /var/samba/share/
#ls
#cat test.txt
  • 잘 열린다