본문 바로가기
IT/Network

Network IV - NAT, Security , VPC

by 스마일엔지니어 2025. 3. 16.

NAT (Network Address Translation)

: 공인 ip 주소와 사설 ip주소를 상호 변환해주는 기술 → IPv4 주소 절약 가능!

 

- Topology

 

목적지를 모르는 거에 대해선 ISP라우터로 보내겠다.

그리고 위 네트워크에서 PC1 -> Server0 통신 안된다.

? ISP 라우터에서 172.16.10.0 네트워크 정보를 안받았기 때문이다.

 

-Static NAT Command

ip nat inside source static 172.16.10.10(local ip) 3.3.12.1(global ip)

inside에서 오는 트래픽의 출발지가 172.16.10.10이면 3.3.12.1로 바꾸겠다.

 

int f0/0

ip nat inside   // 출발지 패킷이 해당 라우터 인터페이스 안으로 들어가기 때문

 

int f0/1

ip nat outside // 출발지 패킷이 해당 라우터 인터페이스 밖으로 나오기 때문

 

ip nat inside source static tcp 172.16.10.100 80 3.3.12.1 80

80번 포트끼리 포트 포워딩 (Port Forwarding)

접근할 포트 (목적지 포트)는 수정 가능하나 출발지 포트는 수정 불가

출발지 ip만 보는 게 아니라 프로토콜과 포트번호까지 보겠다.

목적지 프로토콜과 포트 번호과 일치하면 NAT 발생

 

 

-Dynamic NAT: 다수의 내부 IP 1개 또는 몇 개의 공인 IP로 바꾸는 것

 

1)    ACL로 변환할 네트워크 지정

ip access-list standard nat-acl

permit 172.16.10.0 0.0.0.255

 

 

 

2-1)  인터페이스의 IP 주소(라우터 기준 나가는 주소)로 변경하는 경우

 

NAT :

ip nat inside source list nat-acl interface f0/1

(nat-acl에 해당되는 건 int f0/1로 바꿔서 내보내라. -> 내부에서 외부 접근가능)

 

 

여러 ip 주소를 하나의 ip 주소로 변환해야 하기에 포트까지 이용해서 구분지어 다수의 시스템이 이용할 수 있게 하는 overload가 있음

 

2-1) NAT pool(공인주소 pool)을 이용하는 경우

NAT pool 생성:

ip nat pool TestPool 3.3.12.9 3.3.12.10 netmask 255.255.255.0

NAT :

ip nat inside source list nat-acl pool TestPool

 

 

overload 자리에 TestPool이 있는 것을 확인 하지만 PAT (Port Address Translation)를 하기 위해선 overload를 뒤에 붙여줘야 함.

, NAT PAT 변경하는 옵션 , NAT 동시 사용 세션 수가 변환할 ip주소 개수임. 따라서 다수의 시스템이 동시에 변환을 사용하려면 PAT로 설정해서 포트까지 사용한 변환을 해야 함.

인터페이스의 IP 주소로 변경하는 경우는 자동으로 PAT가 됨.

 

 

vty (Virtual Terminal) / 0 1은 라인 수 즉 2개가 됨.

 

PC0, PC1 접속 상황

 

하지만, 라인(터미널) 수가 2개이기 때문에 3번째인 서버는 접속 불가능하다는 메시지 뜸

 

3)  인터페이스에 NAT 적용

int f0/0

ip nat inside

int f0/1

ip nat outside

 

-터널링

 

R1)

conf t

int tunnel 1

ip unnumbered f0/0

tunnel source 2.2.12.1

tunnel destination 2.2.23.3

 

ip route 172.16.20.0 255.255.255.0 tunnel 1

 

R3)

conf t

int tunnel 3

ip unnumbered f0/0

tunnel source 2.2.23.3

tunnel destination 2.2.12.1

 

ip route 172.16.10.0 255.255.255.0 tunnel 3

 

 

ip config 했는데 R1 ~ R3 핑이 안됐다. 그 원인은?

 

내가 IP만 집어넣고 게이트웨이 안집어 넣었기 때문이다. 이 점을 꼭 유의하자!!

PC 1 -> PC 2 PING

R1-R2 와이어샤크에서 ICMP 패킷에 IP 헤더가 2개 붙은 것을 확인할 수 있다.

 

 

밑에 것이 원본, 위에 것이 터널링을 통해 변환한 것

터널링을 통해 통신이 가능하나, 안에 정보들이 다 노출됨. 이를 암호화 해야 함 (IPSec)

R3 – Switch2 와이어샤크에선 ip가 하나만 붙은 것을 확인할 수 있다.

 

 

-R1 Dynamic NAT설정

R1)

conf t

ip access-list standard r1-natacl

permit 172.16.10.0 0.0.0.255

 

ip nat inside source list r1-natacl interface s1/0

 

int f0/0

ip nat inside

int s1/0

ip nat outside

 

R4)

conf t

no ip routing

ip default-gateway 172.16.20.254

int f0/0

ip add 172.16.10.30 255.255.255.0

no sh

enable password cisco

 

line vty 0 4

password cisco

login

 

ip http login

 

R5)

conf t

no ip routing

ip default-gateway 100.100.100.254

int f0/0

ip add 100.100.100.200 255.255.255.0

 

R5에서 R4의 웹서비스와 텔넷서비스에 접속 가능하도록 R3에 포트포워딩 설정

R3)

ip nat inside source static tcp 172.16.20.30 80 2.2.23.3 80

ip nat inside source static tcp 172.16.20.30 23 2.2.23.3 23

 

int f0/0

ip nat inside

int s1/1

ip nat outside

 

 

TEST)

R5에서

telnet 2.2.23.3

telnet 2.2.23.3 80

 

Site to Site IPSec VPN

R1, R3 IPSec 설정하여 172.16.10.0/24 네트워크와 172.16.20.0/24 네트워크 간 암호화 통신이 가능하도록 하기.

 

*tunnel 1,3 지우기

 

no int tunnel 1(3)

 

-1단계 정책

 

R1)

crypto isakmp policy 10

encryption aes

hash md5

group 2

authentication pre-share

 

crypto isakmp key cisco address 2.2.23.3(R3 s1/1 address)

 

-2단계 정책

 

ip access-list extended r1-vpn

permit ip 172.16.10.0 0.0.0.255 172.16.20.0 0.0.0.255

 

crypto ipsec transform-set r1-ts(이름) esp-3des esp-sha-hmac

 

-크립토맵 작성

'

crypto map r1vpn 10 ipsec-isakmp

match address rq-vpn

set peer 2.2.23.3

set transform-set r1-ts

 

-인터페이스 적용

int s1/0

crypto map r1vpn

 

 

 

 

R3)

-1단계 정책

crypto isakmp policy 10

encryption aes

hash md5

group 2

authentication pre-share

 

crypto isakmp key cisco address 2.2.12.1(R3 s1/1 address)

 

-2단계 정책

ip access-list extended r1-vpn

permit ip 172.16.10.0 0.0.0.255 172.16.20.0 0.0.0.255

 

crypto ipsec transform-set r3-ts(이름) esp-3des esp-sha-hmac

 

-크립토맵 작성

crypto map r1vpn 10 ipsec-isakmp

match address rq-vpn

set peer 2.2.12.1

set transform-set r3-ts

 

-인터페이스 적용

int s1/1

crypto map r3vpn

-R1 NAT 적용: IPSec VPN 트래픽인 경우 NAT 제외 처리함.

R1)

no access-list standard r1-natacl

 

ip access-list extended nat-acl (standard 쓰면 목적지까지 체크 못 함)

deny ip 172.16.10.0 0.0.0.255 172.16.20.0 0.0.0.255 (여기로 가는 트래픽은 제외 처리)

permit ip 172.16.10.0 0.0.0.255 any (나머지는 NAT 기능 허용)

 

no ip nat inside source list r1-natacl interface s1/0

ip nat inside source list nat-acl interface s1/0

 

int f0/0

ip nat inside

>     R1, R3에서 인증방식을 rsa-sig로 변경

 

R5를 시간서버 겸 인증기관(CA) 동작

R5)

conf t

clock timezone KOR 9

end

clock set 16:00:00 dec 19 2024

 

conf t

ntp master

 

R1, R3)

conf t

ntp server 100.100.100.254 (통신가능한 ip면 됨!)

 

 

-R5를 디지털 인증서 서버로

ip http server

crypto pki server CA(이름)

issuer-name cn=CertServer, l=Seoul, c=KR

grant auto

no sh

비번: 오투마니아

 

-CA 인증서 발급

ip domain-name cloudwave.com

crypto key generate rsa general-keys modulus 2048

공개키와 개인키 생성

 

 

 

-R1R3에서 인증서 발급 요청

R1)

crypto pki trustpoint CA   # 인증서 서버 지정

enrollment url http://100.100.100.200 # 등록 (ip http server 동장)

subject-name cn=R1, l=Incheon, c=KR

exit

 

-CA의 인증서 다운로드하고 자신의 공개키 인증을 요청하여 다운로드  (http://100.100.100.254한테)

crypto pki authenticate CA

 

 

crypto pki enroll CA

 

> 비밀번호 등록

 

 

 

Cisco Open Sample -> 1 networking -> vpn -> vpn easy

 

1단계 정책

 

ciscogroup: 그룹 네임이자 그룹 키

key 발급

VPNCLIENTS: ip 주소

 

2단계 정책

 

크립토맵

 

 

10.0.0.3 ping을 보냈을 때 TTL=126인 것을 확인 , 즉 사이에 라우터가 2개라는 건데 갔다가 왔다 보면 됨.

 

 

 

vpn에 disconnect한다면?

 

시뮬레이션에도 봤을 때 ESP 헤더가 붙은 것을 확인할 수 있음!!

 

 

vpc 생성

 

cloudwave-vpc

172.25.0.0

pub_psh 172.25.10.0/24

pri_psh 172.25.110.0/24

고급 네트워크 ip 172.25.10.100/24

 

ubuntu 22 / micro / keypair 생성

 

 

우분투)

smile

1234

 

 

-MobaXterm

 

서버접속 확인

52.78.233.183 -> pub 인스턴스의 퍼블릭 IPv4 주소 입력

 

세션 생성해서 SSH -> IP 주소 복사 및 ID: smile 집어넣고 패스워드까지 입력하면 접속한게 뜸

 

Eeasy-rsa : 인증서 만들기

인증기관, 서버용 및 클라이언트 인증 ( 3개가 필요)

./easyrsa build-server(client)-full psh_server(client) no pass

yes

비번 (1234)

발급 확인

 

 

 

클라이언트명 적을 때 언더바 넣지말기!! 도메인안뜸

대쉬(-) 집어넣는게 젤 무난!!

 

 

Private 안 리소스 이용하기 위해 Public Private 간 트래픽이 암호화되어 전송하는 것을 함.

'IT > Network' 카테고리의 다른 글

CCNA 취득!!  (0) 2025.05.08
Network III - OSPF, ACL  (2) 2025.03.14
Network ll - Subnetting  (0) 2025.03.11
Network I - Packet Tracer, WireShark  (0) 2025.03.10