네트워크 + 23
네트워크 프로토콜
2023. 8. 27.

네트워크에서의 프로토콜

컴퓨터나 다른 장치 간에 데이터를 교환하고 통신하기 위한 규칙과 규약의 집합을 의미합니다.

데이터의 전송방식, 형태, 오류 처리, 보안 등을 정의하여 효율적이고 안정적인 통신을 가능하게 합니다.

프로토콜은 통신 과정에서 송신 측과 수신측이 서로 이해하고 준수해야 할 규칙들입니다.

네트워크에서 데이터를 보내고 받는 방식을 명확하게 정의합니다.

 

TCP / IP 5계층에서 사용되는 프로토콜

제 5계층 응용 계층 (Application Layer)

HTTP (Hyper Text Transfer Protocol) : 웹에서 데이터를 주고받을 때 사용되는 프로토콜 중 하나로, 웹 브라우저와 웹 서버 사이의 통신을 담당. 클라이언트와 서버 간에 요청(Request) 과 응답(Response) 을 주고받는데 사용.

 

DNS (Domain Name System) : 인터넷에 연결된 모든 장치는 고유한 IP 주소를 가지고 있는데, IP 주소는 숫자로 되어있어서 읽거나 기억하기 어려움. 이러한 불편함을 해소하기 위해 사람이 읽기 쉬운 도메인 이름을 IP 주소로 변환하는 역할을 함.


제 4계층 전송 계층 (Transport Layer)

TCP (Transmission Control Protocol) :

  • 신뢰성 있는 연결 지향형 프로토콜. 데이터의 정확한 전달과 순서를 보장.
  • 데이터의 분할과 재조립, 오류 검출 및 복구를 지원하여 안정적인 데이터 전송.
  • 대부분의 웹 브라우징, 이메일 전송, 파일 다운로드 등과 같은 신뢰성이 중요한 응용 프로그램에서 주로 사용.

UDP (User Datagram Protocol) :

  • 비연결성 프로토콜로, 데이터의 신뢰성과 순서를 보장하지 않음.
  • 데이터를 패킷으로 나누어 전송하고, 오류 검사 기능만 제공하여 일부 데이터 손실이나 순서 변경이 발생할 수 있음.
  • 실시간 스트리밍, 온라인 게임, DNS 쿼리와 같이 신속한 데이터 전달이 중요한 상황에서 사용.
  • UDP는 TCP보다 더 빠른 데이터 전송을 가능하게 하지만, 데이터의 정확한 도착과 순서는 응용 프로그램에서 직접 관리 필요.

제 3계층 네트워크 계층 (Network Layer)

ICMP (Internet Control Message Protocol) :

  • 네트워크 상에서 컴퓨터 간에 제어 및 에러 메시지를 전송하기 위해 사용
  • ICMP 메시지는 네트워크 단절, 호스트 도달 불가능, 패킷 크기 초과와 같은 상황을 알려줌
  • 'ping' : 호스트가 동작하고 네트워크에 연결되어 있는지를 확인하는 ICMP 메시지

ARP (Address Resolution Protocol) :

  • IP 주소와 MAC 주소 간의 매핑을 수행하는 프로토콜
  • 주로 LAN 에서 목적지 IP 주소를 가지고 해당 호스트의 MAC 주소를 찾는 데 사용

제 2계층 데이터링크 계층 (Datalink Layer)

Ethernet :

  • 장치 간에 데이터를 전송하기 위해 LAN 에서 사용되는 유선 네트워크 기술
  • CSMA / CD (Carrier Sense Multiple Access with Collision Detection) 방식을 사용해 여러 장치가 동시에 네트워크를 공유할 수 있고, 충돌을 감지하여 처리하는 기능을 제공
  • 주로 유선 연결을 통해 데이터를 전송하며, Ethernet 프레임의 형태로 패킷화하여 전송

PPP (Point-to-Point Protocol) :

  • 시리얼 라인이나 전화 회선과 같은 포인트 투 포인트 연결을 통해 사용
  • 주로 인터넷 서비스 제공자 (ISP) 와 사용자 사이의 연결 설정을 위해 제공

 

 

'네트워크 > 기초' 카테고리의 다른 글

트리니티 - IP주소와 서브넷팅  (1) 2024.05.07
IP 주소  (1) 2023.09.04
OSI 7계층  (0) 2023.08.27
네트워크 기초 이론  (0) 2023.08.27
네트워크 기초 이론
2023. 8. 27.

네트워크의 의미

네트워크란?

여러 장치들이 전송 매체를 통해 연결되어 멀리 떨어져 있어도 필요한 정보를 교환할 수 있도록 구성된 시스템

 

*노드 : 정보를 교환하기 위해 연결되어 있는 장치

*링크 : 노드들을 서로 연결하는 회선

*데이터 : 장치들 간에 교환이 이루어지는 정보

 


네트워크의 분류

  1.  PAN : Personal Area Network, 개인이 전용으로 사용하는 장치 ( USB, 블루투스 등) 들을 연결하는 규모의 네트워크
  2.  LAN : Local Area Network, 한정된 공간 및 건물 정도 규모의 네트워크, 일반적인 네트워크 토폴로지에서 라우터 이전까지의 범위
  3.  WAN : Wide Area Network, 지역 및 국가 정도 규모의 네트워크, 여러 LAN 을 연결하여 구축, 일반적인 네트워크 토폴로지에서 라우터 이후부터의 범위

프로토콜의 의미

프로토콜이란?

네트워크에 속한 장치들 간 데이터 통신을 진행하기 위해 지켜야 할 규칙 및 절차를 미리 정의해둔 것

  여러 종류가 존재하며 하나의 데이터를 전송하는 경우에도 다양한 프로토콜이 적용

 


TCP/IP 5계층

: Transfer Control Protocol / Internet Protocol

  네트워크 상에서 이루어지는 데이터 통신을 5단계로 구분지어 정의한 계층 구조

  각 계층은 독립적인 역할을 담당하며 역할 수행을 위한 프로토콜이 각 계층별로 정의됨

 

제 5계층 - 응용 계층 (Application Layer)

사용자와 컴퓨터 간의 상호작용 (= 인터페이스) 를 담당

주요 프로토콜 : HTTP, DNS ...

제 4계층 - 전송 계층 (Transport Layer)

데이터 분할 및 재조립, 데이터 통신의 흐름 및 오류 제어 등을 담당

포트 번호를 관리하며 데이터를 처리해야 하는 프로그램을 확인

주요 프로토콜 : TCP, UDP ...

 

제 3계층 - 네트워크 계층 (Network Layer)

데이터 패킷을 목적지까지 전달하기 위한 경로 선택과 패킷 전달을 담당

IP 주소를 관리하며 데이터가 전달되는 종단 장치를 확인

주요 프로토콜 : ICMP, ARP ...

 

제 2계층 - 데이터링크 계층 (Datalink Layer)

장치 간의 데이터 전송 순서 결정, 데이터의 오류 검출 및 정정 등을 담당

MAC 주소를 관리하며 데이터가 전달되는 중간 장치를 확인

주요 프로토콜 : Ethernet, PPP ...

 

제 1계층 - 물리 계층 (Physical Layer)

장치 간의 물리적인 연결 방법, 사용할 전송 매체의 종류, 변환 방식 등 데이터 통신의 물리적 / 기계적 / 전기적 측면을 담당

프로토콜을 직접적으로 사용하지 않음

 


 

캡슐화 / 탈캡슐화

캡슐화 (Encapsulation)

데이터를 하위 계층으로 전달하며 헤더를 덧붙이는 작업

 

탈캡슐화 (Decapsulation)

데이터를 상위 계층으로 전달하며 헤더를 제거하는 작업

 

헤더 (Header)

목적지 주소와 출발지 주소, 에러체크 등 필요한 정보

 

*헤더와 데이터 중 데이터에 해당하는 부분을 페이로드 (Payload) 라고 함

 


계층별 PDU 명칭

PDU (Protocol Data Unit)

각 계층에서 처리하는 데이터 단위

 

응용 계층 (Application Layer)

: 메시지 (Message) - 태초의 데이터로 헤더 없이 페이로드만 존재

 

전송 계층 (Transport Layer)

: 세그먼트 (Segment) - 전송계층 헤더 + 메시지

 

네트워크 계층 (Network Layer)

: 패킷 (Packet) or 데이터그램 (Datagram) - 네트워크 계층 헤더 + 세그먼트

 

데이터링크 계층 (Datalink Layer)

: 프레임 (Frame) - 데이터링크 계층 헤더 + 패킷 + 데이터링크 계층 트레일러

*데이터링크 계층에서만 페이로드 뒷부분에 트레일러 (Trailer) 라는 것을 덧붙임

 

물리 계층 (Physical Layer)

물리 계층에서는 주기적으로 캡슐화를 진행하지 않음

  완성된 데이터 신호 0과 1의 비트열을 전기적 신호로 변환

 


네트워크 장비

스위치 

  • 데이터링크 계층 (제 2계층) 에서 동작하는 장비
  • MAC 주소를 확인해 목적지로 향하는 적절한 포트로 전송하는 장비
  • 데이터를 수신할 때마다 MAC 테이블에 MAC 주소와 포트 정보를 저장

스위치의 기능들

  • 플러딩 (Flooding) : 데이터를 모든 포트로 내보내는 기능, 수신한 데이터의 MAC 주소 정보가 MAC 테이블에 없을 때 수행
  • 포워딩 (Forwarding) : 데이터를 특정 포트로 내보내는 기능, 수신한 데이터의 MAC 주소 정보가 MAC 테이블에 있을 때 수행
  • 필티링 (Filtering) : 포워딩이 수행되는 포트 외의 나버지 포트로는 데이터를 내보내지 않고 차단하는 기능

 라우터

  •  네트워크 계층 (제 3계층) 에서 동작하는 장비
  • IP 주소를 확인해 목적지 네트워크로 향하는 최적의 포트로 전송하는 장비
  • 라우팅 테이블에 저장된 정보에 따라 최적 경로로 데이터를 전송

게이트웨이 (Gateway)

한 네트워크에서 다른 네트워크로 나가는 출입문 역할을 하는 장치

  일반적으로 네트워크의 가장 바깥쪽에 위치한 라우터 (= 기본 게이트웨이)

 

NAT (Network Address Translation)

공인 IP 와 사설 IP 를 나눠주는 기능

  IPv4 체계의 주소 부족 문제를 해결하기 위함

 

DHCP (Dynamic Host ConfigurationProtocol)

네트워크 내부 컴퓨터에 자동으로 DNS, IP, 게이트웨이 주소를 할당해주는 기능

  효율성이 높고 자동으로 할당되기 때문에 IP 충돌 방지 가능

'네트워크 > 기초' 카테고리의 다른 글

트리니티 - IP주소와 서브넷팅  (1) 2024.05.07
IP 주소  (1) 2023.09.04
OSI 7계층  (0) 2023.08.27
네트워크 프로토콜  (0) 2023.08.27
CBAC (컨텍스트 기반 액세스 제어)

ACL

2023.07.29 - [네트워크/라우터] - ACL

 

ACL

ACL 이란 Access Control List는 접근 제어 목록 또는 액세스 제어 목록이라고 합니다. 라우터에서 트래픽을 필터링합니다. 허가되지 않은 이용자의 접근을 차단합니다. 패킷을 필터링하는 기준은 출

frankenkitty.tistory.com

 

상태 저장 검사

ACL은 출발지, 목적지 주소와 포트에만 의존하고, 트래픽을 검사하는 현재 상태만을 보고 필터링하는 비 상태 저장 검사입니다.

 

상태 저장 검사는 독립적인 패킷 구조가 아닌 하나의 세션을 저장하고 추적하여 일반적으로 더 안전합니다.

 

CBAC

기존의 Reflexible ACL은 단순히 3계층과 4계층의 헤더 정보를 기반으로 단일 채널 어플리케이션만 제어할 수 있습니다.

그래서 FTP 처럼 두개 이상의 포트를 사용하는 동적 포트 서비스들은 정상적으로 처리할 수 없습니다.

 

이를 해결하기 위해 등장한 SPI는 세션 정보와 특정 프로토콜의 동작을 인식할 수 있어 위의 문제점을 해결할 수 있고, 응용 계층의 정보도 어느 정도 제어가 가능합니다.

 

CBAC는 CISCO에서 지원하는 상태 저장 검사 방화벽 기법입니다.

SPI를 지원하고 3계층과 4계층의 트래픽을 처리하며 응용 계층의 트래픽도 제어할 수 있습니다.

 

동작원리

CBAC는 모든 TCP 및 UDP 패킷을 검사하고 패킷의 ‘상태’또는 ‘연결상태’를 모니터합니다.

검사를 통과하는 패킷은 방화벽을 통과하고 통과된 패킷에 대한 상태테이블(State Table)을 생성하여 세션 상태 정보를 유지합니다.

CBAC은 상태테이블의 정보를 바탕으로 ACL 항목들을 동적으로 생성하고 삭제합니다.

 

즉, 허용된 정책의 내용만 세션을 저장하고 임시 ACL을 생성하여 통신합니다.

일정 시간이 지나거나 통신이 종료되면 생성했던 임시 ACL을 폐기합니다.

 

설정 방법

Router(config)#

ip inspect name [ rule name ] [protocol]
int [ 인터페이스 ]
ip inspect [name] [in/out]
show ip inspect session detail

 

'네트워크 > 라우터' 카테고리의 다른 글

Frame relay  (0) 2023.11.04
PPP (Point to Point Protocol)  (0) 2023.11.04
BGP (eBGP 설정)  (0) 2023.09.20
Standard ACL, Extended ACL 실습  (0) 2023.07.30
ACL  (0) 2023.07.29
Standard ACL, Extended ACL 실습

ACL 이론 정리

2023.07.29 - [네트워크/라우터] - ACL

 

ACL

ACL 이란 Access Control List는 접근 제어 목록 또는 액세스 제어 목록이라고 합니다. 라우터에서 트래픽을 필터링합니다. 허가되지 않은 이용자의 접근을 차단합니다. 패킷을 필터링하는 기준은 출

frankenkitty.tistory.com

Standard ACL

이렇게 토폴로지를 만들어 주고 주소 할당을 해줍니다.

 

이제 표준 acl을 사용하여 ssh 접속을 허용하거나 막아보겠습니다.

 

//전역 설정 모드
hostname < choeun >
ip domain-name < pce >
crypto key generate rsa
< 1024 >
username < pce > secret < 0000 >
line vty < 0 4 >
//서브 설정 모드
login local
transport input ssh
exit
//전역 설정 모드
enable secret < 1111 >

먼저 라우터에 ssh 설정을 해줍니다.

<> 안의 내용은 자신이 하고싶은 내용으로 입력합니다.

 

pc와 서버에서 잘 접속이 되는 것을 확인할 수 있습니다.

 

그럼 다시 라우터로 돌아와 acl 설정을 해주겠습니다.

 

//전역 설정 모드
access-list < 1 > permit < 192.168.10.0 > < 0.0.0.255 >
int g0/0
//서브 설정 모드
ip access-group < 1 > in
int g0/1
ip access-group < 1 > in

acl 번호 1 - 99는 표준 acl입니다. 192.168.10.0 에서 오는 요청만 허용하도록 설정했습니다.

인터페이스 기준으로 ssh 요청은 들어오는 요청이므로 인바운드로 했습니다.

 

다시 접속을 시도해보면 네트워크 주소가 192.168.10.0 인 pc에서는 접속이 잘 되지만 주소가 192.168.20.0 인 서버에서는 접속이 안됩니다.

acl에서는 먼저 적용된 규칙 외에는 모두 무시하기 때문입니다.

//전역 설정 모드
no access-list 1
access-list 1 permit 192.168.30.0 0.0.0.255
int g0/0
ip access-group 1 in
int g0/1
ip access-group 1 in

위에서 만들었던 acl을 없애고 192.168.30.0에서 오는 요청만 허용하도록 acl을 새로 만들어 적용했습니다.

 

그리고 다시 접속해보면 pc와 서버 모두 접속이 차단됩니다.

192.168.30.0 주소를 가진 요청만 허용했기 때문에 192.168.10.0, 192.168.20.0 주소를 가진 요청들이 거부됩니다.

 

standardACL.pkt
0.06MB

Extended ACL

토폴로지는 standard acl과 똑같이 만들었습니다.

확장 acl은 출발지 주소로만 필터링할 수 있었던 표준 acl과 달리 프로토콜, 목적지 주소, 포트와 같은 옵션도 사용할 수 있습니다.

그래서 핑을 보내는데 사용되는 icmp를 막아보겠습니다.

 

//전역 설정 모드
access-list < 100 > deny icmp 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
access-list < 101 > permit ip any any
int g0/0
//서브 설정 모드
ip access-group 100 in
ip access-group 101 out
int g0/1
ip access-group 100 out
ip access-group 101 in

라우터에 192.168.10.0 에서 192.168.20.0 으로 보내는 icmp를 막는 acl 100과 모든 프로토콜을 허용하는 acl 101을 만들어서 각각 인터페이스에 적용했습니다.

 

그리고 핑을 보내면 pc에서 서버로 핑을 보내지 못합니다.

192.168.10.0 에서 오는 요청을 차단했기 때문에 서버에서 request 패킷을 보내도 pc로부터 reply 패킷을 받지 못해 핑이 실패합니다.

 

 

시뮬레이션모드로 보면 pc에서 보내는 파란색 패킷은 서버에 도달하기 전에 라우터에서 acl정책에 따라 차단됩니다.

그리고 서버에서 보내는 보라색 패킷은 pc까지 갔다가 돌아오는 길에 출발지 주소가 192.168.10.0, 목적지 주소가 192.168.20.0으로 되기 때문에 라우터에서 acl 정책에 따라 막힙니다.

 

비밀번호를 까먹어서 다시 설정 했습니다..

그리고 아까 icmp 프로토콜은 막았지만 모든 프로토콜을 허용하는 acl 101을 만들었기 때문에 ssh는 접속이 잘 되는 것을 볼 수 있습니다.

 

extendedACL.pkt
0.06MB

 

확장 acl에서 ssh가 아니라 웹 접속이나 ftp로 테스트하려고 했는데 왜인지 브라우저 접속이 잘 안되는 바람에..

ssh로 계속 우려먹게 돼서 기분이 별로다 ㅜㅜ

'네트워크 > 라우터' 카테고리의 다른 글

Frame relay  (0) 2023.11.04
PPP (Point to Point Protocol)  (0) 2023.11.04
BGP (eBGP 설정)  (0) 2023.09.20
CBAC (컨텍스트 기반 액세스 제어)  (0) 2023.08.06
ACL  (0) 2023.07.29
ACL

ACL 이란

Access Control List는 접근 제어 목록 또는 액세스 제어 목록이라고 합니다.

라우터에서 트래픽을 필터링합니다. 허가되지 않은 이용자의 접근을 차단합니다.

패킷을 필터링하는 기준은 출발지 주소, 목적지 주소, 포트 번호, 프로토콜입니다.

ACl은 방화벽 구축의 가장 중요한 요소입니다.

AAA ?

ACL에서는 사용자 인증을 위해 AAA를 사용합니다.

 

Authentication(인증) : 사용자가 접근할 때 신뢰할 수 있는지 신원을 확인하고, 인증에 실패하면 접근이 거부됩니다.

Authorization(인가) : 인증이 성공하면 허용된 사용자가 특정 서비스나 기증 등에 접근할 수 있는 권한을 부여합니다. 허용된 사용자여도 허용되지 않은 서비스에 접근하는 것을 막을 수 있습니다.

Accounting(관리) : 사용량 정보를 수집, 검색 보관합니다. 메트릭 및 정보를 기반으로 사용자 경험과 시스템 리소스를 관리합니다.

 

역할 기반 접근제어

ACL에서 사용되는 접근제어 방식은 강제적 접근제어, 임의적 접근제어, 역할 기반 접근제어가 있습니다.

강제적 접근제어(MAC) : 엄격한 규칙을 적용하여 보안 등급이 높은 자원에 보안 등급이 낮은 사용자가 접근할 수 없도록 합니다.

임의적 접근제어(DAC) : 특정 자원에 대해 소유자가 직접 권한을 부여합니다.

역할 기반 접근제어(RBAC) : 사용자의 역할에 따라서 권한을 제공합니다. 

 

역할 기반 접근제어를 사용하면 필요한 최소한의 권한만 부여하기 때문에 보안 강화에 도움이 됩니다.

또한 사용자의 권한을 일일이 설정하거나 수정하지 않아 관리가 용이합니다.

중앙 집중적으로 권한 부여를 처리해 오류 발생 가능성이 줄어듭니다.

 

역할에 따라 권한을 부여하다 보니 각 상황에 따른 세부적인 권한 설정의 어려움이 있습니다.

 

ACL 3대 규칙

  1. 정책은 위에서부터 아래로 적용됩니다.
  2. 먼저 적용된 정책 외에는 모두 무시합니다.
  3. 명시된 정책 외에는 모두 거부합니다.

 

인바운드 아웃바운드

네트워크 인터페이스의 관점에서 들어오는 것은 인바운드, 나가는 것은 아웃바운드라고 합니다.

데이터의 흐름 방향에 따라 인바운드와 아웃바운드가 바뀔 수도 있습니다.

 

인바운드(Inbound) :  ACl 정책 검사 후 라우팅을 실행하기 때문에 cpu 자원을 절약할 수 있습니다.

연결된 네트워크 또는 들어오는 트래픽이 유일한 패킷 소스일 때 필터링에 적합합니다.

아웃바운드(Outbound) : 라우팅 후에 ACL 정책을 적용합니다.

여러 인바운드 트래픽을 한 번에 처리할 때 적합합니다.

 

ACL 타입

Standard : 표준 acl이고, 출발지 ip 주소만을 필터링할 수 있습니다.

기능이 간단하고 구성이 쉽습니다.

라우터를 통한 nat에서 사용하기 적합합니다.

Extended : 확장 acl이고, 출발지와 목적지 주소, 사용하는 프로토콜과 포트번호에 따라 필터링할 수 있습니다.

더 많은 유형의 패킷을 제어하고 복잡한 트래픽 정책을 구성할 수 있습니다.

기술적으로 복잡하며 구성이 어렵습니다.

 

다음 글에서 acl을 실습해 보겠습니다.

'네트워크 > 라우터' 카테고리의 다른 글

Frame relay  (0) 2023.11.04
PPP (Point to Point Protocol)  (0) 2023.11.04
BGP (eBGP 설정)  (0) 2023.09.20
CBAC (컨텍스트 기반 액세스 제어)  (0) 2023.08.06
Standard ACL, Extended ACL 실습  (0) 2023.07.30
myoskin