[클라우드 With네트워크/GNS실습(7)]

SooYeon Yeon·2022년 7월 19일
0

실습하기

시나리오

  1. 우리 회사는 본사-지사간 WAN으로 연결

  2. 본사, 지사는 공인주소 211.183.3.0/24를 사용할 수 있다.

    • 211.183.3.2가 ISP 주소

    • 211.183.3.3은 라우터 주소

    • 211.183.3.1은 ISP-우리라우터 간 연결된 스위치 주소

    • 본사 내부에 있는 서버의 주소 172.16.1.100은 외부 통신시 211.183.3.100과 1:1로 정적 매핑 됨

    • 본사 내부 PC들은 211.183.3.101 하나를 이용하여 인터넷을 사용한다.

    • 지사 내부 PC들은 211.183.3.102 하나를 이용하여 인터넷을 사용한다.

    → 동적 PAT

  3. DSW1-DSW2에 연결된 서버들은 vlan 10에 할당, PC들은 vlan 20에 할당된다.

  4. 본사와 지사의 위치한 PC들은 DHCP를 통하여 IP 주소를 할당 받는다. DHCP 서버는 본사에서 통합, 관리 한다. (HQ 라우터가 DHCP 서버로 동작한다)

Step

IP설정 → VLAN 구성 → 라우팅(본-지사 통신) → NAT(인터넷(외부)와 연결 설정) & PAT → 필터링, 보안 (지정된 트래픽만 이동하도록)

IP 설정

[HQ 라우터] - 인터페이스 구성

conf t

# 인터넷 연결 부분
int fa0/0
ip add 211.183.3.3 255.255.255.0
no sh

# HQ - BR 연결 부분 
int fa1/0
ip add 10.10.10.1 255.255.255.252
no sh

# 밑 연결 부분 - Encapsulation dot1q
int fa0/1
no sh

int fa0/1.10
encap dot1q 10
ip add 172.16.1.2 255.255.255.0

int fa0/1.20
encap dot1q 20
ip add 172.16.2.2 255.255.255.0

# 확인
do show ip int br 
  • 10.10.10.0/30 N—-.N——.N——.NNNN NNHH 네트워크 0 , 4 , 8 ~~이런식으로 되니까 범위는 0~3이고, 0과 3은 쓰면 안되고, 1과 2를 쓸 수 있기 때문에 .1과 .2 사용
  • Encapsulation dot1q

[BR 라우터] - 인터페이스 구성

BR#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
BR(config)#int fa0/0
BR(config-if)#ip add 10.10.10.2 255.255.255.252
BR(config-if)#no sh
BR(config-if)#
*Mar  1 00:09:37.991: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:09:38.991: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
BR(config-if)#int fa0/1
BR(config-if)#ip add 192.168.114.2 255.255.255.0
BR(config-if)#no sh
BR(config-if)#

[HQ 라우터] - 통신 확인

#우리 회사에서 ISP와 연결 확인
do ping 211.183.3.2
# 본사-지사 연결 확인
do ping 10.10.10.2

VLAN 구성

[DSW1]

# vlan 생성하기
DSW1#vlan dat
DSW1(vlan)#vlan 10 name SERVER
VLAN 10 added:
    Name: SERVER
DSW1(vlan)#vlan 20 name PC
VLAN 20 added:
    Name: PC
DSW1(vlan)#exit
APPLY completed.
Exiting....
# Trunk Port와 Access 구성
conf t
# Trunk Port 구성
int fa1/10
sw mode trunk

int fa1/15
sw mode trunk

# 확인
do show int trunk

# Access Port 구성
int fa1/1
sw mode access
sw access vlan 10

# 확인
do show vlan-sw br

[DSW2]

위와 동일, int fa1/2의 Access Port를 vlan 20으로

# VLAN 구성
vlan dat
vlan 10 name SERVER
vlan 20 name PC
exit
conf t

# Trunk Port 구성
int fa1/15
sw mode trunk

# Access Port 구성
int fa1/2
sw mode access
sw access vlan 20

라우팅

라우터는 기본적으로 직접 연결되는 네트워크에 대하여 통신이 가능하다. 떨어져 있는 네트워크에 대하여 해당 정보를 라우터에 입력이 되도록 해 주어야 한다.

  1. 정적 라우팅

    • 관리자 또는 사용자가 원격지 네트워크 정보를 직접 입력하는 방식
    • 단방향
    • 네트워크 정보를 유지하기 위하여 불필요한 트래픽 발생하지 않으므로 빠르다.

    <일반적인 구성 방법>

    ip route 2.2.2.0 255.255.255.9 3.3.3.3

    “2.2.2.0” : 목적지 네트워크 주소 or 목적지 IP 주소

    “255.255.255.0” : 서브넷 마스크, 만약 1대만 지정하고 싶다면 255.255.255.255

    “3.3.3.3” : 목적지 네트워크로 찾아가기 위해 선택할 다음(바로 옆) 라우터 주소

  2. 동적 라우팅

    • 라우터가 라우팅 프로토콜을 이용하여 자신들이 알고있는 네트워크 정보를 서로에게 광고한다.
    • 동일 목적지에 대하여 여러 경로를 전달 받는다면 해당 경로 중 가장 빠른 경로를 선택하고, 해당 경로를 라우팅 테이블에 INSTALL 한다. 최신 경로를 계속해서 유지하려고 한다.

동일 목적지에 대하여 서로 다른 방법으로 도달이 가능한 경우 이에 대한 우선 순위가 결정되어 있다.

connected(직접연결) : 0

static route : 1

routing protocol : 프로토콜 별로 다름

  • ex) RIP 120, OSPF 110
  • 숫자는 작을 수록 우선 선택됨

HQ 라우터

  1. 인터넷과의 통신을 위한 default route
  2. 지사 내부와의 통신을 위한 정적 route 필요

BR 라우터

  1. default route (HQ 외에는 다 모르기 때문)

확인

HQ에서

ping 192.168.X.2 source 172.16.1.2 (vlan10쪽에서 보내기)

ping 192.168.X.2 source 172.16.2.2 (vlan20쪽에서 보내기)

[HQ 라우터]

# 인터넷 통신 default route / HQ에서 모든 IP를 ISP주소로 보냄
ip route 0.0.0.0 0.0.0.0 211.183.3.2

# static route / HQ에서 지사와의 통신 , 지사PC쪽에서 오는 것은 10.10.10.2로
ip route 192.168.114.0 255.255.255.0 10.10.10.2

[BR 라우터]

# 알지 못하는 모든 것은 10.10.10.1(HQ 라우터)로 보냄
ip route 0.0.0.0 0.0.0.0 10.10.10.1

하지만 현재까지는 지사에서 인터넷 연결은 X → NAT, PAT를 통해 연결 할 수 있음

  1. 공인주소
  • 공인주소는 ISP에게 비용을 지불하고 인터넷 서비스를 제공 받을 수 있다.
  • 인터넷 공간에서 unique한 주소를 사용해야 한다.
  1. 사설 주소는 별도의 제약없이 내부에서 원하는 대로 사용 가능하다.
  • 일반적인 사설 주소 대역 A : 10.X.X.X B : 172.16.X.X ~ 172.31.X.X C : 192.1668.X.X

VXLAN 정리

오픈스택이 뭔지정도 정리

NAT & PAT

공인주소와 사설주소 매핑 1 : 1 - NAT , 1:N - PAT

[HQ] - NAT

# 공인주소 pool에 담기, 여기서는 1개 이므로 범위를 211.183.3.100 211.183.3.100
ip nat pool HQSRV 211.183.3.100 211.183.3.100 prefix-length 24

# 정적으로 매핑 - IP 주소를 1:1로 매핑 할 것임
# 172.16.1.100(사설주소)로 접근한다면 211.183.3.100(공인주소)로
# 여기서는 1:1이라 공인주소 IP를 그냥 써줬음. Pool 써도되고, 안써도 됨
ip nat inside so static 172.16.1.100 211.183.3.100

# outside 1개, inside는 총3개(오른쪽에서 오는거 한개, 밑에서 2개(10,20))
int fa0/0
ip nat outside

int fa1/0
ip nat inside

int fa0/1.10
ip nat inside

int fa0/1.20
ip nat outside

# nat 확인
do show ip nat tr

리눅스 centOS1의 웹서버 켜져 있는 지 확인

켜져있지 않다면

systemctl enable httpd —now

systemctl disable firewalld —now

putty 접속해서 211.183.3.100의 22번 포트로 접속 시도 하면 172.16.1.100:22로 넘겨줌 (SSH연결)

이후에 지정된 IP의 접속만 허용할 것임

VM에서 제공하는 DHCP 말고, 우리가 만든 서버로 부터 해야하므로 vm에서 vmnet2,3번 dhcp는 꺼줌

DHCP 서비스

서버-DHCP-클라이언트

클라이언트는 부팅시 DHCP 프로토콜 내에 discover 메시지를 포함하여 목적지 MAC FF:FF:FF:FF:FF:FF (L2 broadcast 주소, 동일 네트워크)로 전송한다.

DHCP 시나리오

  1. 본사 내부는 172.16.2.0/24에서 주소를 할당 받는다. 지사 내부는 192.168.1XX.0/24 할당 받는다.
  2. 각 네트워크에서 1~100 까지는 내부적으로 사용이 예약되어 있어 실제로 클라이언트들이 제공받는 주소는 172.16.1.101~, 192.168.1XX.101~ 할당 받는다.
  3. 임대 기간은 2시간으로 한다.
  4. DNS 서버는 8.8.8.8

[HQ 라우터]

# 본사(HQ)를 위한 dhcp 서버 구성
# 해당 주소는 제외
ip dhcp excluded-address 172.16.2.1 172.16.2.100
ip dhcp excluded-address 192.168.114.1 192.168.114.100
# 본사를 위한 주소 pool
ip dhcp pool HQ 
network 172.16.2.0 /24
# default router (PC 입장에서는 default gateway)
default-router 172.16.2.2
lease 0 2 # 임대기간 2시간
dns 8.8.8.8 # dns 서버 8.8.8.8 

[BR]

  • DHCP Relay 구성
ip helper-address 10.10.10.1 # 10.10.10.1에게 유니캐스트에게 가서 요청하면 BR에게 전달하고 받아서 클라이언트에게 전송

[HQ 라우터]

  • 지사를 위한 DHCP 서버 구성
# 지사(BR)를 위한 dhcp 서버 구성
ip dhcp pool BR
network 192.168.114.0 /24
default-router 192.168.114.2
lease 0 2
dns 8.8.8.8
  • CentOS2를 Clone 하여 CentOS3을 생성 (이때, linked clone이 아니라 full clone으로 복제)
  • 복제가 끝났다면 CentOS3에서 vmnet2로 되어있는 인터페이스를 vmnet3으로 변경
  • CentOS2, CentOS3을 모두 실행하고 인터페이스 설정 창에서 정적으로 되어 있는 구성을 DHCP로 변경하여 IP 주소를 받아오는 지 여부를 확인(ifconfig)

현재는 NAT로 인터넷을 해서 인터넷이 연결되지만, 원래는 WAN, 본사PC,지사PC에서 인터넷이 안되어야 함(현재까지)

PC들을 위한 동적 PAT 구성

  • 공인주소와 사설주소 경계에 있는 부분에서 설정해줘야함(HQ)

[HQ]

  • 각 사설 네트워크에서 사용할 공인주소를 pool로 작성
ip nat pool HQPC 211.183.3.101 211.183.3.101 pre 24 # 본사 공인주소
ip nat pool BRPC 211.183.3.102 211.183.3.102 pre 24 # 지사 공인주소

do show run | in ip nat pool # ip nat pool 포함 된 것만 보여줌
  • 각각의 사설 주소를 ACL를 이용하여 분류하기
# 출발지IP만 보면 되니까 standard로
# 본사 내부 주소 분류
ip access-list standard hqadd  # 본사 사설 주소
permit 172.16.2.0 0.0.0.255

# 지사 내부 주소 분류
ip access-list standard bradd # 지사 사설 주소
permit 192.168.114.0 0.0.0.255
  • 매핑하기
exit
# 내부 주소(사설주소:hqadd) 를 pool HQPC(공인주소)로. 사설주소가 더 많으니 overload (PAT)
ip nat inside so list hqadd pool HQPC overload 

# 마찬가지로 bradd를 BRPC로 overload
ip nat inside so list bradd pool BRPC overload
  • 확인하기
exit
# nat를 이용했을 때, 어떤 주소가 어떤 주소를 이용해 빠져나가는 지 확인
show ip nat tr | in 172.16.2.101
show ip nat tr | in 192.168.114.101
  • ACL 적용하기

NACL

aws와 같은 클라우드 환경에서의 기본보안 사항

  1. NACL (네트워크 기반의 ACL)
    • VPC 내에 여러개의 서브넷을 생성하고 각 서브넷에서 다른 서브넷과의 통신 시 필터링이 필요한 경우 NACL을 적용한다. 주 목적은 서브넷 단위에서의 패킷 필터링이며 outbound 적용을 주로 한다.
  2. Security-group
    • 서브넷 단위가 아닌 인스턴스 단위로 보안 사항을 적용하고자 하는 경우
    • 주로 inbound에 대하여 적용하며, outbound는 기본적으로 permit any와 같이 설정되어 있다.(모두 다 빠져나갈 수 있다)
  3. IAM
  • 계정관리
  1. root 사용자
    • aws 모든 서비스에 대하여 접근이 가능하며 계정추가, 삭제, 계정에 대한 권한 부여 등을 진행한다.
    • 즉, 리눅스의 super user인 root와 동일하다고 생각하면 된다.
  2. iam 사용자
    • 특정 aws root 계정 하에서 생성된 일반 사용자(db관리, 개발, 운영자)
    • 각 계정별로 접근할 수 있는 서비스에 대하여 지정할 수 있으며 해당 사용자가 로그인 하는 방법도 선택 할 수 있다. access key id, access key를 사용하여 자신의 개발 환경 또는 리눅스와 같은 환경에서 자신의 로컬 환경과 aws 환경을 연결하여 사용할 수 있다.

NAT없이 빠져나가려는 것 들을 막아야함

주소변경 후 빠져나가게 할 것

Quiz1. 회사 내에 있는 IP 주소들이 NAT 되지 않은 상태에서 외부로 빠져나가려고 한다면 이는 모두 차단해야 한다. (172.16.1.0/24, 172.16.2.0/24, 192.168.114.0/24, 10.0.0.0/8 → 출발지 주소, 목적지 주소는 any)

[HQ]

# 출발지와 도착지의 IP 주소를 확인하고 못나가게 할 것
HQ(config)#access-list 101 deny ip 172.16.1.0 0.0.0.255 any
HQ(config)#access-list 101 deny ip 172.16.2.0 0.0.0.255 any
HQ(config)#access-list 101 deny ip 192.168.114.0 0.0.0.255 any
HQ(config)#access-list 101 deny ip 10.0.0.0 0.255.255.255 any
HQ(config)#
HQ(config)#int fa0/0
HQ(config-if)#ip access-group 101 out

CentOs1,2,3 DNS로 나가는 것 자체가 안됨

주소 변경 된 애들도 못나가고 있음 (맨 밑 줄에 deny ip any any가 생략되어 있기 때문에)

해당 명령어 추가

access-list 101 permit any any

10.10.10.2에서 오는건 되지 않음 (여기서 설정안해서)

U가 뜨는 이유는 Destination Unreachable 방화벽이나 ACL등에 의해 차단되는 경우

Quiz2. fa0/1.10 아래에는 우리 회사 본사에 있는 웹서버가 위치하고 있다. 이 웹서버는 원격 관리를 위하여 SSH를 사용중인데 아무나 접속해서는 안된다. 오직 외부(인터넷)에 있는 211.183.3.1(퇴근한 서버관리자의 집 IP 주소) 와 본사 내부에 있는 172.16.2.100에서는 SSH 연결이 가능하다. 다른 곳으로 부터의 SSH 연결은 모두 차단 SSH를 제외한 나머지 모든 접근(172.16.1.0/24)은 허용된다. 이를 fa0/1.10에 적용하라.

참고 예시)

access-list 112 permit tcp any host 2.2.2.2 eq 80 # 외부에 있는 모든 IP로부터 2.2.2.2:80로 접속 하는 것 허용

access-list 112 permit tcp host 3.3.3.3 host 4.4.4.4 eq 22 # host 3.3.3.3이 host 4.4.4.4:22로 ssh연결 하는 것을 허용

access-list 112 permit ip any any # 외부에 있는 모든 사용자들이 내부 어디든 전부 접속 가능

  1. 외부 211.183.3.1에서 SSH 허용 permit tcp host 211.183.3.1 172.16.1.100 eq 22
  2. 내부 172.16.2.100에서 SSH 허용 permit tcp host 172.16.2.100 host 172.16.1.100 eq 22
  3. 이외에 다른 곳으로 부터 SSH 모두 차단 deny tcp any host 172.16.1.100 eq 22
  4. SSH제외 ping, 등등은 모두(172.16.1.0/24) 허용 permit ip any any

확인

  • 윈도우에서 211.183.3.100으로 ssh,ttp,ping 연결 가능
  • 172.16.1.101, 172.16.2.101에서는 211.183.3.100으로 ssh 연결 불가. 단, http/ping은 가능
  • 172.16.1.101을 정적으로 172.16.1.100으로 IP 주소를 변경한 다음 ssh 연결 시도하면 가능
access-list 102 permit tcp host 211.183.3.1 host 172.16.1.100 eq 22
access-list 102 permit tcp host 172.16.2.100 host 172.16.1.100 eq 22
access-list 102 deny tcp any host 172.16.1.100 eq 22
access-list 102 permit ip any any

int fa0/1.10
ip access-group 102 out

centOs2에서 ping 172.16.1.100 하면 됨, ssh -l root 172.16.1.100은 안됨

만약 172.16.2.100/24에서 접속하면 되어야함

외부에서 연결 putty에서 172.16.1.100에 22로 접속하면 됨

0개의 댓글