220413

HyeonKi Jo·2022년 4월 13일
0
post-thumbnail

복습

  • XFCE를 Minimal로 바꾸자
  • 강의실환경도 Minimal로 구성을 다시 세팅한다.


네트워크 구성

NAT GW_DHCP_HAproxy

  • 외부 랜카드, 내부 랜카드 이렇게 2개가 필요하다.
  • 외부 랜카드 : 어댑터의 브릿지, 실무에 가깝지만, 실습시 IP주소를 제대로 할당 못받을 가능성이 있다.
  • 내부 랜카드 : 내부네트워크(내부스위치가 생긴다.)

WEB01_SAMBA,WEB02_NFS,DATABASE_DNS

  • VM설정에 들어가서 네트워크설정에서 어댑터2를 끄고, 어댑터1에 내부네트워크 vSwitch로 설정해준다.

SSHD(Secure Shell Daemon; KeyPair 생성 및 활용) - AWS KeyPair

NAT GW_DHCP_HAproxy

  • ip주소가 있는지, 또 ping google.com해서 핑이 나가는지 확인한다.
  • 고정 ip를 만들어준다.
    - 윈도우의 경우 : 제어판 -> 네트워크 및 인터넷 -> 네트워크 연결 -> 랜카드 속성 -> 인터넷 프로토콜 버전 TCPID 클릭 후, 속성 -> IP자동이 아닌 수동으로 변경
    • DNS서버 8.8.8.8 은 구글에서 기본으로 제공하는 DNS서버이다.
      - 보조 DNS는 8.8.8.4
  • 명령프롬프트로 가서 NAT GW_DHCP_HAproxy에 SSH(NAT GW IP)로 접속한다.
  • mkdir /root/.ssh : 키를 넣을 폴더 만들어 놓음
  • 명령프롬프트, ssh-keygen -t rsa
  • cd %UserProfile%\.ssh : 위치 이동
  • dir 명령어로 키 생성확인한다.
  • ren id_rsa my-key.pem : id_rsa를 my-key.pem으로 이름을 바꿔준다.
  • scp id_rsa.pub root@[NAT GW IPaddress]:/root/.ssh/authorized_keys : 자물쇠(id_rsa)를 NAT GW로 보내준다.
  • ssh -i my-key.pem root@[NAT GW IPaddress] : 로 접속해본다.
  • vi /etc/ssh/sshd_config : 를 확인한다.
    - ssh : 22, Http : 80, 등 서버, 프로토콜마다 주로 사용하는 port가 따로있다.
    • 이 포트를 우리가 바꿀 수 있다.
    • vi /etc/ssh/sshd_connfig
      • 아래 #port 22 -> 2222로 바꿔준다.
        • 또, :/으로 PasswordAuthentication을 no로 해준다.
    • systemctl restart sshd : 리스타트 해준다.
    • 만약 port번호를 바꿔 에러가 나면, sestatus를 확인해서 disable되어있는지 확인한다.
      • vi /etc/sysconfig/selinux
      • SELINUX=disabled로 바꿔준다.
  • ss -ant : 연결된 port번호를 확인한다.
    - well-known 알려진 포트번호 : 0~1024 (서버포트)
    • unknown 알려지지 않은 포트 :1025~65535 (클라이언트 포트)
  • port변경 후에 exit로 명령프롬프트로 나간 후, 다시 접속을 시도하면 들어갈 수 없다.
  • ssh -p 2222 -i my-key.pem root@172.30.1.59 : -p옵션을 주어 포트를 시정하고 접속한다.
  • 그러나 방화벽을 설정하지 않아 접속할 수 없다.
  • 명령프롬프트로 접속할 수 없지만 다행히도 우리에겐 Redhat으로 열 수 있다.
  • firewall-cmd --permanent --add-port==2222/tc[ : 방화벽에 port 2222를 추가해준다.
  • firewall-cmd --reload
  • firewall-cmd --list-all
  • 현재 key없이 passwd로 접속하는 방법은 permisson deny가 된다. 만약 된다면, vi /etc/ssh/sshd_connfig 요기서 PasswordAuthentication을 no로 바꿔줘야 한다.


    scp를 이용한 파일전송
    -notepad hello.txt : 로 텍스트파일 하나를 만들어준다.
  • scp -i my-key.pem hello.txt root@[ipaddress]:/root/ : /root/에 hello.txt를 복사해준다.
  • del hello.txt : 또 다시 다운로드 받기위해 삭제해준다.
  • scp -i my-key.pem root@172.30.1.59:/root/hello.txt ./ : 반대로 ./경로로 다운로드 받는다.


    scp를 이용한 dir전송
  • mkdir test-folder : 명령프롬프트 폴더생성
  • scp -i my-key.pem -r test_folder root@172.30.1.59:/root/ : 폴더 옮기기

리눅스 네트워크

Router (IP 공유기; AWS VPC NAT GateWay)

  • 네트워크 주소 변환(NAT; Network Address Translation)은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.

  • 공인IP = Public IP
  • 사설IP = Private IP
  • 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0 ~ 172.31.255.255
  • 192.168.0.0 ~ 192.168.255.255
  • 강의실 네트워크 (Public 네트워크라고 가정)
    - 192.168.0.0/24
    - 192.168.0.0 ~`192.168.0.255 ( 256개의 IP - 2개 = 154개)
    - 각각 고정되어 허락된 범위에서 첫번째, 시작 IP : 네트워크 주소
    - 허락된 범위에서 마지막IP : 브로드 캐스팅 주소 (컴퓨터 전원 On 신호, DHCP에 IP주소 처음 받기)


    localhost 이름 바꾸기
  • hostnamectl set-hostname nat : localhost이름을 nat으로 바꾸기

NAT GW IP 고정으로 만들기

강의실 네트워크
Public Subnet
192.168.0.0/24
192.168.0.0 ~ 192.168.0.255 (256개 IP - 2개 = 254개)
192.168.0.0 네트워크 주소(시작 IP)
192.168.0.255 브로드캐스팅 주소(마지막 IP)

Private Subnet
172.31.0.0/24
172.31.0.0 ~ 172.31.0.255 (256개 IP - 2개 = 254개)
172.31.0.0 네트워크 주소(시작 IP)
172.31.0.255 브로드캐스팅 주소(마지막 IP)

  • ip a 해서 ip를 받는 랜카드를 설정한다.
  • vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=none :원래 "dhcp"로 되어있다.
NAME=[브릿지연결 랜카드 이름(enp0s3)]
DEVICE=[브릿지연결 랜카드 이름(enp0s3)]
ONBOOT=yes
IPADDR=192.168.0.85
NETMASK=255.255.255.0
GATEWAY=172.30.1.254
DNS1=8.8.8.8
DNS2=8.8.4.4
  • 내부네트워크도 꾸며준다.
  • vi /etc/stsconfig/network-scripts/ifcfg-enp0s8
TYPE=Ethernet
BOOTPROTO=none
NAME=[내부네트워크 랜카드 이름(enp0s8)]
DEVICE=[내부네트워크 랜카드 이름(enp0s8)]
ONBOOT=yes
IPADDR=172.31.0.1
NETMASK=255.255.255.0
  • systemctl restart network : 위 설정을 마치고 restart를 한다.

단어정리

  • 내부 : private, internal, backend
  • 외부 : public, external, frontend

firewall 설정

  • firewall-cmd --get-active-zone : 현재 방화벽이 작동하고 있는 랜카드 반환, 아래와 같이 출력되어야 한다.
  • nmcli c mod enp0s3 connection.zone external : enp0s3을 external 외부를 바라보는 랜카드로 설정
  • nmcli c mod enp0s8 connectino.zone internal : enp0s8을 내부 네트워크로 설정
  • firewall-cmd --get-active-zone : 다시 확인하면 아래와 같이 나뉜 것을 볼 수 잇다.

리눅스 시스템을 라우터로 만든다.

  • sysctl -w net.ipv4.ip_forward=1 : 리눅스 시스템을 라우터로 만드는 세팅, 뒤에 1은 활성(Active), 0이면 비활성(Deactive)이다.
  • cat /proc/sys/net/ipv4/ip_forward : 출력으로 1(Active)이 나온다.

DHCP

  • 동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol, HDCP)은 호스트 IP 구성 관리를 단순화 하는 IP 표준입니다. 동적 호스트 구성 프로토콜 표준에서는 DHCP서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공합니다.

DHCP 작동순서


1. DHCP Discover
- 출발지 주소(SIP=MAC주소), 목적지 주소 (DIP=255.255.255.255)로 DHCP Discover신호를 보낸다.
2. DHCP Offer
- 아직 단말이 IP주소가 없기 때문에, Discover신호를 받은 DHCP의 MAC주소를 출발지주소로 브로드캐스트 한다.
3. DHCP Request
- 단말이 1번과 같이 출발지 = MAC 으로 브로드캐스트 하여 2에서 받은 MAC주소를 넣어 IP주소 할당 요청을 한다. 이때, DHCP의 IP주소와 2번에서 받은 IP주소 및 임대할 시간을 넣어 보낸다.
4. DHCP Ack
- DHCP에서 출발지=MAC으로 브로드캐스트하여 임대할 IP주소와 기타 정보를 전달한다.

DHCP 설치 및 설정

  • yum install dhcp -y : dhcp 설치
  • vi /etc/dhcp/dhcpd.conf
ddns-update-style interim;
subnet 172.25.0.0 netmask 255.255.255.0 {
option routers 172.25.0.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 172.31.0.2 172.31.0.254; ##우리 네트워크는 많아봤자 3개 뿐이다. 그래서 IP부여 범위를 정해준다.
option domain-name-servers 8.8.8.8, 8.8.4.4; ## DNS정보까지 같이 넣어줄 수 있다.
default-lease-time 7200; ## 기본 IP대여 시간, 만약 대여가 끝나도 그 IP를 다른사람이 사용하고 있지 않으면 그대로 다시 부여한다. (사용자가 적음 집에서는, 왠만해서는 같은 IP가 부여된다.)
max-lease-time 86400; ## 반대로 사용자가 IP대여 요청한다면 최대 이시간 만큼 요청할 수 있다.
}
  • DHCP 네트워크를 생성할 때, DHCP에 대한 요청이 한번에 몰릴경우 DHCP에 부하가 가게된다.
  • systemctl enable --now dhcpd

MobaXterm설치

  • 설치 후 탭-> 오른쪽마우스 -> 복제하여 4개로 늘린다.
  • 각 탭에 4가지 서버들을 연결한다.

각 서버 이름 변경하기

  • DNS : ns

rsa키 복제

  • nat에서 /root/.ssh로 이동하여, 각 서버에 키를 복사해준다.
  • 먼저 NAT GW에 key를 복사해야 하고, .pub도 각 서버에 올라와있어야 한다.
  • 그러나 키로 SSH로 접속하니 접속이 안되어 비밀번호를 입력해야 한다.
  • 이때, chmod 400한 후, 다시 접속을 시도하면 제대로 된다.
  • NAT GW에 key가 올라와있어야 한다.
# cp authorized_keys authorized_keys.pub
# ssh-copy-id -i authorized_keys.pub root@172.31.0.101
# chmod 400 my-key.pem
# ssh -i my-key.pem root@172.31.0.101
profile
Talking Potato

0개의 댓글