NAT와 TELNET & SSH

정문·2022년 6월 13일
1

Network

목록 보기
10/12

공인 IP & 사설 IP

공인 IP

공인기관에서 인정하는 IP주소, 인터넷을 통한 외부망에서 식별되고 통신 가능한 IP

사설 IP

내부망에서 사용 및 식별 가능한 IP

IP 정보 확인

NAT(Network Address Translation)

네트워크 주소 변환
사설 IP 네트워크를 인터넷으로 연결 -> 라우팅 가능한 공인 IP로 변환

  • 보안 : 내부 IP주소를 외부에 공개하지 않음
  • 유연성 : 공인 IP 대역은 영향을 주지않고 내부 네트워크 구성 변경이 가능
    기존 사용하던 외부에 공개된 공인 IP 주소는 변경되지 않으나 내부 IP만 변경
  • 비용 : 공인 IP 할당 비용 감소
  • L3이상의 장비 or 방화벽에서 NAT 가능

Static NAT

1:1 NAT, 정적 NAT
사설 IP 1개를 공인 IP 1개로 맵핑하며 주로 외부 공개형 서버에 구성


1. 외부에서 211.203.1.100으로 접속 시도
2. 외부 -> 211.203.1.100, 패킷이 eth0에 도달
3. 211.23.1.100 to 192.168.1.100로 1:1 NAT됨을 확인
4. 192.168.1.x 대역인 eth1로 전달
5. 외부 -> 192.168.1.100, 패킷은 Server에 도착

Dynamic NAT

내부 IP 주소와 외부 IP 주소가 범위 내에서 맵핑
내부 PC들은 외부로 통신 시 공인 IP 대역 Pool에서 할당 받는다


1. 내부 192.168.1.0/24 대역의 내부 PC 20대는 웹사이트 접속 시도
2. eth1에 패킷 도달, NAT 테이블의 공인 IP 대역 Pool을 확인하고 맵핑
3. eth0에서 맵핑된 공인 IP 주소 211.203.1.x로 변환되어 외부로 통신 시도
4. 나머지 PC들도 NAT Pool을 확인하고 동일한 방식으로 맵핑

PAT(Port Address Translation)

1:N NAT, 여러개의 내부 사설 IP들이 1개의 공인 IP로 변환
공개형 서버가 아닌 내부 -> 외부로 접속이 필요한 PC들이 사용
IP가 중복되기 때문에 Port로 세션 구분


1. 내부 192.168.1.0/24대역의 내부 PC 20대는 웹사이트 접속 시도
2. eth1에 패킷 도달, NAT 테이블의 PAT 대표 공인 IP:Port를 확인하고 맵핑
3. eth0에서 맵핑된 공인 IP주소 211.203.1.x로 변환되어 외부로 통신 시도
4. 나머지 PC들도 동일한 방식으로 맵핑 - 공인IP는 동일, Port 번호는 다름

Port Forwarding

공인 IP 1개로 여러대의 사설 IP를 Port로 구분하여 연결
공인 IP 1개로 여러대의 공개형 서비스를 구축할 때 사용


1. 외부에서 211.203.1.100으로 웹 접속 시도
2. 외부 -> 211.203.1.100, 패킷이 eth0에 도달
3. 211.203.1.100:80 to 192.168.1.100:80로 포트 포워딩됨을 확인
4. 192.168.1.x 대역인 eth1로 전달되고 패킷은 웹 서버에 도착
5. 외부에서 211.203.1.100으로 이메일 접속 시도
6. 외부 -> 211.203.1.100, 패킷이 eth0에 도달
7.211.203.1.100:25 to 192.168.1.100:25로 포트 포워딩됨을 확인
8. 192.168.1.x 대역인 eth1로 전달되고 패킷은 이메일 서버에 도착

Hairpin NAT

NAT 이슈

동일 사설 네트워크 내 공인 IP로 목적지 서버에 접속하는 경우


1. PC는 211.203.1.200으로 웹 접속 시도
2. NAT 테이블에서 211.203.1.200은 192.168.1.200으로 맵핑됨을 확인
3. 192.168.1.x 대역인 eth1로 전달되고 패킷은 웹 서버에 도착
4. 웹 서버는 응답패킷을 전달 시도, 192.168.1.200 -> 192.168.1.100
5. 목적지 PC는 동일 대역대 IP로 확인 되고 PC에게 바로 응답 패킷 전달, PC입장에서 기존 커넥션이 아닌 신규 패킷으로 판단되서 통신 불가

해결책

NAT장비에서 출발지 IP를 NAT 장비 IP로 변경


1. PC는 211.203.1.200으로 웹 접속 시도
2. NAT 테이블에서 211.203.1.200은 192.168.1.200으로 맵핑됨을 확인
3. 192.168.1.x 대역인 eth1로 전달되고 패킷은 웹 서버에 도착
4. 웹 서버는 응답패킷을 전달 시도, 192.168.1.200 -> 192.168.1.1
5. 192.168.1.100:192.168.1.1 맵핑 정보를 확인하고 PC에게 응답 패킷 전달

  • 소켓 프로그래밍 작성시 사설 IP & 공인 IP의 Flow를 확인 못하여 빈번한 장애 발생

TELNET

원격지 호스트 컴퓨터에 접속하기 위해 사용되는 프로토콜

기능

  • NVT(Network Virtual Terminals) 지원 : 데이터 변환 가상 장치
  • 협상 가능한 옵션
  • 프로세스와 터미널의 1:1 대칭 관계

협상 가능한 옵션(Negotiation Commands)

  • WILL -> 옵션 활성화를 원한다, WON'T -> 옵션 활성화를 원하지 않는다
  • DO -> 옵션 활성화를 요청한다, DON'T -> 옵션 활성화를 요청하지 않는다

접속 및 옵션 ID 협상 확인

  • 원격지 IP:Port로 접속 시도 -> ID:Password 입력 -> 원격지 서버에 연결
  • 윈도우 CMD or 리눅스 터미널에서 접속 가능
  • 무료 오픈소스인 Putty 프로그램을 주로 사용

SSH(Secure Shell)

TELNET을 대체하기 위해 개발
원격지에 있는 컴퓨터를 명령어를 통해서 제어

특징

  • 인증(Authentication) : 사용자가 서버 접속시 패스워드 or 공개키 기반의 인증 방식을 지원
  • 암호화(Encryption) : 대칭키(동일한 키로 암복호화를 동시에 할 수 있는 방식) 방식 사용 - AES, Blowfish, 3DES
  • 무결성(Integrity) : 데이터 위변조 방지 - MAC(Message Authentication Code)
  • 압축(Compression)
  • 다중화 통신
profile
공부 정리 블로그

0개의 댓글