320x100

OSI 모델은 분업화가 되어있다 호환성과 속도를 위해서.

예를들어, 하드디스크가 고장이 났을 경우 하드디스크만 교체하면 된다. 이처럼, 한 계층이 고장이 나도 그 부분만 바꾸면 되기 때문 효율이 좋음 + 개별적으로 패치,업그레이드가 가능하다.

 

 

(송신자 - 모니터)

  • software layer- 응용프로그램 (웹브라우져, 카톡 ..)

7계층 | 응용계층 - (http 웹브라우저)

 

6계층 | 표현계층 - (압축, 암호기능)

5계층 | 세션계층 - (압축, 암호기능)

 

  • Heart of OSI - OS (하드웨어 구동 - 램카드는 하드웨어이기 떄문에 램카드 위에 있어야함)

4계층 | 전송계층 - (1,2,3계층까지의 작업에 에러나 오류가 생기면 고쳐주는 것)

 

  • Hardware layer - LAN카드(데이터가 램카드에 저장됩니다. // 컴퓨터 안에서 통신담당)

3계층 | 네트워크계층 - (IP 주소)

 

2계층 | 데이터 링크 계층 - (에러와 오류를 복구,수정을 위함) → 데이터링크와 물리계층을 하나의 계층으로 봐도 상관없다.

 

1계층 | 물리계층 - (신호를 주고 받으면 끝남)

 

 

통신은 크게 3가지 방법으로 한다 --> 무선: 주파수 // 유선 : 전기 // 광통신 : 매체가 모인 것


Media (매체) : 정보가 흘러나가는 공간

데이터의 헤더 : 데이터의 부가정보 (계층에서 받은 데이터를 잘 표현하기 위함, 해석이 된다.)

계층 간 프로토콜: 계층 간에 알아 먹을 수 있는 통신규약

시스템공간: 컴퓨터가 컴퓨터 역할을 하기 위해 정의한것

시용자 공간: OS 밑단에 대해 사용자가 필요로 하는것

프로세스: 프로그램에서 지금 실행되고 있는 것

ICMP : internet control management protocol

 

OSI 모델은 크게 4계층으로도 불려진다.

 

이를 OSI 산업표준 이라고 한다.

1,2계층 이더넷 프로도콜

3계층 아이피 프로토콜

4계층 TCP 프로토콜을 사용

7계층 프로토콜이 너무 많다

 

 

1 bite = 2^8 = 0 ~ 255

 

  • 4계층

TCP/UDP : 전송 계층 프로토콜

TCP : 신뢰성 o - 말한대로 전달한다

UDP: 신뢰성 x - 말한대로 전달하지 않는다

  • 3계층

ARP (Address resolution protocol) - IP를 MAC주소으로 변환

RARP - MAC주소를 IP으로 변환

 

URL은 알고 있는데 IP 주소(destination code )는 모른다. 그떄 DNS 에게 URL 주소를 물어보면 IP주소로 변환을 해줌

source MAC 1.1.1.1.1.1 내가 알고 있음 (6 bite) + destination MAC ( 여기서 말하는 MAC주소는 PC와 가장 근접한 라우터의 MAC주소를 물어보는것)

 

routing table :

라우터를 키면 BGP protocol 을 이용해 routing table에 가는 길들을 다운받는다.

라우터는 포트가 4개가 있다.

 

subnet mask:

서브넷 마스크(subnet mask)는 네트워크에서 IP 주소를 서브넷으로 나누는 데 사용되는 값입니다

내 아이피 주소를 가지고 어디까지가 네트워크 주소인지를 판단할때 사용 ( 네트워크 주소와 호스트 주소 나눈 것을 판별하는 것)

 

게이트웨이 (Gateway): 우리 PC가 인터넷 세상으로 나가기 위해서 처음 만나는 라우터(별명)

000.000.000 | 000

network | host

 

Host : 한번 물어본 것은 기록하는 것

보조 DNS : 메인 DNS가 고장났을 때 사용하기 위함

 

결론

내 PC에서 MAC 주소를 가지고 ARP 를 사용해서 → 게이트웨이(처음만나는라우터)의 IP 주소를 알 수있다.

** PC에서 ARP 를 가지고 나에게 연결된 모든 라우터에게 브로드캐스트를 보낸다

예를들어, google에 접속시도를 하는 중일경우, 구글로 가는 길목에 해당되는 라우터에서만 응답을 받는다.

 

브로드캐스트(broadcast)는 네트워크에서 특정 정보를 모든 장치에 동시에 전송하는 방식입니다.

unicast :한 사람의 특정 수신자에게만 데이터 패킷을 전송하는 방식

받는 쪽으로 리마인드

랜카드에서 받았을때 (내가 첫 게이트웨이일경우)


토막상식 : 4계층에서는 데이터를 푸쉬해서 7계층으로 올린다.

 

7계층 : URL

4계층 : port 주소 (어느 프로그램에게 가야 하는지를 알려줌) (2 bite)

3계층 : IP (4 bite)

1,2계층 : MAC (6bite)

 

- 7계층 URL

송신자는 PC에서 Google에 접속하기 위해 웹 브라우저를 열고 URL 을 입력한다.

DATA 만 내려줌

 

- 4계층 port 주소 (어느 프로그램에게 가야 하는지를 알려줌) (2 bite)

header를 붙임| DATA

Soruce port(ex 2000 port) + Destination port (ex 80 port) | DATA

작업이 끝난 후 DATA 만 내려줌

 

- 3계층 IP (4 bite)

header를 다시 붙임 | DATA

Source IP + Destination IP | DATA

URL을 입력하면, 먼저 DNS(Domain Name System)에 쿼리를 보내 해당 도메인의 IP 주소를 조회합니다.

DNS 서버는 해당 도메인에 대한 IP 주소를 반환합니다. 이 IP 주소가 목적지 IP가 됩니다.

 

DATA 만 내려줌

 

- 1.2계층 MAC (6bite)

header를 다시 붙임 | DATA

Source MAC+ Destination MAC | DATA

 

게이트웨이(처음만나는 라우터)의 IP 주소는 알고 있고 있지만, 난 MAC 주소를 알고 싶기때문에

ARP를 사용해서 브로드캐스팅 -> 해당 IP 주소를 가진 장치가 자신의 MAC 주소를 포함한 ARP 응답을 송신 장치에게 전송합니다.

 


송신과정

 

PC→A→B→C→D->Google

 

A라우터 -> B라우터 로 가는 과정

  • 1,2계층에서 씌운 헤더 해석후 데이터만 3계층으로 보냄
  • 3계층 네트워크계층(os)에서 데이터를 확인후 본인에게 온 것이 아니므로 다시 1,2 계층으로 보냄

Source MAC(A라우터의 MAC주소)+ Destination MAC(B라우터의 MAC주소) | DATA

 

 

A라우터가 브로드캐스트해서 google 로 가는 다음 목적지 라우터 B의 IP주소를 받고 ARP를 통해 MAC주소를 받음

 

source MAC + Destin MAC 가 완성이 되었으면 header를 떼고 전송하여 다음 라우터 B로 간다.

 

라우터 B 는 네트워크계층(os)에서 데이터를 확인후 본인에게 온 것이 아니므로 다시 1,2 계층으로 보냄

 

위의 작업을 반복하고 C->D 로 넘김

300x250
320x100

 

SFTP란

 

SFTP는 호스트간에 파일을 전송하기위한 보안 채널을 제공하며 보안 파일 전송 프로토콜입니다.

 

SFTP 프로토콜은 SSH 프로토콜 (원격 로그인 응용 프로그램)의 일부입니다.

 

SFTP는 클라이언트와 서버간에 SSH 프로토콜에 의해 설정된 연결로 파일을 전송합니다.

 

SFTP는 전송하기 전에 데이터를 암호화하는 특징이 있습니다.

 

그래서 SFTP는 한 호스트에서 다른 호스트로 파일을 전송하는 안전한 방법을 제공합니다.

 

 

SFTP 서버 접속하는법

 

 

Bitvise SSH Client 설치

 

아래와 같은 창이 나오면 주어진 Host, Port, Username을 입력

주어진 패스워드를 활용하여 Log in 진행

 

 

 

커멘드 서버를 사용하기 위해 [New terminal console]을 선택합니다.

 

커멘드 서버를 열면 같이 초기화면을 확인할 수 있습니다.

 

- ls: 현재 디렉토리 또는 지정된 디렉토리의 파일 및 디렉토리 목록을 표시하는 명령어입니다. 

- /data: 확인하고자 하는 특정 디렉토리의 경로입니다.

 

/data 디렉토리에 포함된 모든 파일과 하위 폴더의 이름이 화면에 출력됩니다.

 

1. cp /data/delegaged .

cp /data/delegated-* . // 아시아 지역 IP 할당기관에 접속하여 최신 IP 할당 정보 다운

 

cp: 파일 복사를 수행하는 명령어입니다. 

/data/delegaged: 복사할 원본 파일의 경로입니다. 여기서는 /data 디렉토리에 있는 delegaged 파일을 지정하고 있습니다.

 

즉, delegaged 파일을 현재 위치(현재 디렉토리)로 복사하라는 뜻입니다.

 

2. cat delegaged

 

cat: "concatenate"의 줄임말로, 파일의 내용을 출력하거나 여러 파일을 연결하는 명령어입니다. 

delegaged: 출력하고자 하는 파일의 이름입니다. 현재 작업 중인 디렉토리에서 이 파일의 내용을 보여줍니다. 

 

따라서 이 명령어를 입력하면 delegaged 파일의 모든 내용이 터미널에 표시됩니다.

 

 

wget https://ftp.apnic.net/stats/apnic/delegated-apnic-extended-latest 

 

wget + 링크 = 원하는 링크의 파일을 설치 할 수 있습니다.

 

** edu9@edu:~$ rm delegated-* // 잘못 다운받아서 지우고 싶을때

** ctrl + c // 작업중인 프로세스가 끝남

 

cat delegated-* | wc -l

 

wc는 "word count"의 약자

결과적으로 이 명령어는 delegated-로 시작하는 모든 파일의 내용을 연결한 후, 그 내용의 줄 수를 세는 기능을 수행한 것입니다.

 

cat delegated-* | less

 

less: 출력된 내용을 페이지 단위로 볼 수 있는 프로그램입니다. less를 사용하면 출력된 내용을 스크롤하면서 확인할 수 있어, 긴 파일의 내용을 쉽게 탐색할 수 있습니다.

 

위의 명령어를 입력했을 때 아래와 같은 창을 볼 수 있다.

 

 

cat ipv4.log

ipv4.log 파일의 모든 내용이 터미널에 표시됩니다.

 

 

cat ipv4.log | awk -F"|" '$2!=""{print $0}' | head

 

cat ipv4.log: ipv4.log 파일의 내용을 출력합니다. 

|: 파이프(pipe) 기호로, 앞의 명령어의 출력을 다음 명령어의 입력으로 전달합니다. 

awk -F"|" '$2!=""{print $0}': awk: 텍스트 파일을 처리하고 분석하는 데 사용되는 프로그래밍 언어입니다. 

-F"|": 필드 구분자를 |로 설정합니다. 즉, 각 행이 | 기호로 구분된 여러 필드로 나뉘게 됩니다. 

'$2!=""{print $0}': 두 번째 필드($2)가 비어 있지 않은 경우(즉, 값이 있는 경우) 해당 행($0)을 출력하라는 의미입니다. 

| head: 앞의 명령어의 결과에서 첫 10줄을 출력합니다. 기본적으로 head는 10줄을 출력합니다. 

 

결과적으로 이 명령어는 ipv4.log 파일에서 두 번째 필드가 비어 있지 않은 행을 찾아 그 중 처음 10줄을 출력합니다.

 

 

 

 

cat delegated-* | awk -F"|" '$3=="ipv4"{print $0}'

 

delegated-로 시작하는 파일들에서 세 번째 필드가 "ipv4"인 행을 출력하게 됩니다.

 

 

 

 

 

cat ipv4.log | awk -F"|" '$2!=""{print $2}' | sort -u 

 

'$2!=""{print $2}': 두 번째 필드($2)가 비어 있지 않은 경우(즉, 값이 있는 경우) 해당 필드의 값을 출력하라는 의미입니다.

| sort -u: 앞의 명령어의 결과를 정렬하고 중복된 값을 제거하여 고유한 값만 출력합니다. -u 옵션은 "unique"의 약자로, 중복된 값을 제거합니다.

 

결과적으로 이 명령어는 ipv4.log 파일에서 두 번째 필드가 비어 있지 않은 모든 값을 추출하고, 그 중복을 제거한 후 정렬하여 출력합니다.

 

 

 

 

 

cat delegated-* | tr"|"\t" | head

 

tr "|" "\t": tr: 문자 변환(transliterate) 명령어로, 특정 문자를 다른 문자로 변환하는 데 사용됩니다. 

 

"|" "\t": 이 부분은 | 문자를 탭 문자(\t)로 변환하라는 의미입니다. 즉, | 기호를 탭으로 바꿉니다. 

 

결과적으로 이 명령어는 delegated-로 시작하는 모든 파일의 내용을 출력하면서 | 문자를 탭 문자로 변환한 후, 그 결과의 처음 10줄을 화면에 표시합니다.

 

 

 

cat delegated-* | awk -F"|" '$3=="ipv4"{print $0}' | head

 

'$3=="ipv4"{print $0}': 세 번째 필드($3)가 "ipv4"인 경우 해당 행($0)을 출력하라는 의미입니다.

결과적으로 이 명령어는 delegated-로 시작하는 파일들에서 세 번째 필드가 "ipv4"인 행을 찾아 그 중 처음 10줄을 출력합니다.

 

 

 

 

 

cat ipv4.log | awk -F"|" '$2!=""{print $0}' | grep -v '*'

 

| grep -v '*':

grep: 텍스트에서 패턴을 검색하는 명령어입니다.

-v: 패턴이 일치하지 않는 행을 출력합니다.

즉, * 문자가 포함된 행을 제외합니다. 

 

결과적으로 이 명령어는 ipv4.log 파일에서 두 번째 필드가 비어 있지 않은 행을 출력한 후, * 문자가 포함된 행을 제외합니다. 이 결과는 ipv4.log 파일에서 유효한 데이터만 필터링하여 보여줍니다.

 

 

 

ls -lth

 

ls -lth 명령어를 실행하면, 현재 디렉토리 내의 파일과 디렉토리 목록이 최신 수정 시간 순으로 정렬되어 상세 정보와 함께 표시됩니다.

 



 

 

cat ipv4.log | awk -F"|" '$2!=""{print $0}' | grep -v '\' | awk -F"|" '{sum+=$5} END{print sum "\t" sum/2^32100 "%"}'

 

 

1. cat ipv4.log

  • 이 명령어는 ipv4.log 파일의 내용을 출력합니다. 이 파일이 존재하고 읽을 수 있는 상태여야 합니다.

2. awk -F"|" '$2!=""{print $0}'

  • F"|": 필드 구분자로 파이프(|)를 설정합니다.
  • $2!="": 두 번째 필드가 비어 있지 않은 행을 필터링합니다.
  • {print $0}: 필터링된 행 전체를 출력합니다.

이 명령어는 두 번째 필드가 비어 있지 않은 모든 행을 출력합니다.

3. grep -v '\*'

  • v: 이 옵션은 패턴이 일치하는 행을 제외합니다.
  • '\*': 별표(``)가 포함된 행을 제외합니다.

이 명령어는 별표가 포함된 행을 모두 제외한 결과를 출력합니다.

4. awk -F"|" '{sum+=$5} END{print sum "\t" sum/2^32*100 "%"}'

  • F"|": 다시 한 번 필드 구분자로 파이프(|)를 설정합니다.
  • {sum+=$5}: 다섯 번째 필드의 값을 sum 변수에 누적합니다. 이 부분에서 $5는 다섯 번째 필드를 의미합니다.
  • END{print sum "\t" sum/2^32*100 "%"}': 모든 입력이 처리된 후, 누적된 합계 sum과 그 값을 2^32로 나눈 후 100을 곱한 값을 퍼센트로 출력합니다.

 

문제

 

1. 대한민국이 최초로 IPv4를 할당받은 년도는 언제인가?

 

cat delegated-* | grep KR | awk -F"|" '{print $6}' | sort | head

 

19860630

 

 

2. 대한민국 최초의 통신사는 어디인가?

 

cat delegated-* | grep KR | grep 19860630

 

apnic|KR|ipv4|128.134.0.0|65536|19860630|allocated|A92DDC30

 

KT

 

 

 

------

dig www.naver.com - ip를 확인가능 

DNS = 분산 db 라서 route DNS가 필요하다

ns = name sever

prefix = 목적지의 주소

from 누가 이야기해줬는가

ASpath 네트워크 path

zcat access.gz | wc -l // 몇줄인지 나옴

cd works // change directory 약자로, 현재 작업 중인 디렉토리를 변경하는 명령어입니다. works: 이동하려는 대상 디렉토리의 이름입니다. 이 디렉토리는 현재 위치한 디렉토리 내에 존재해야 합니다.

 

 

awk ‘{print $7}’ | sort | uniq -c | sort -rn | head -n 20 | awk ‘{print $2 “\t” $1}’ | feedgnuplot+bargraph.sh

 

awk '{print $7}': 입력된 데이터의 각 행에서 7번째 필드를 추출하여 출력합니다. 주로 로그 파일에서 특정 컬럼을 선택할 때 사용됩니다.

| sort: 추출된 결과를 정렬합니다. 기본적으로 오름차순으로 정렬됩니다.

| uniq -c: 중복된 행을 제거하고 각 행이 나타난 횟수를 세어 출력합니다. 이때 각 행의 앞에 그 숫자를 추가합니다.

| sort -rn: 숫자 기준으로 내림차순으로 정렬합니다. -r은 역순, -n은 숫자 형식으로 정렬하라는 의미입니다.

| head -n 20: 정렬된 결과에서 상위 20개의 행만 출력합니다.

| awk '{print $2 "\t" $1}': 상위 20개의 행에서 두 번째 필드(원래의 7번째 필드)와 첫 번째 필드(횟수)를 출력합니다. 이때 두 필드 사이에 탭 문자를 추가합니다.

| feedgnuplot+bargraph.sh: 최종 결과를 feedgnuplot+bargraph.sh 스크립트로 전달하여 바 그래프를 생성합니다. 이 스크립트는 데이터 시각화를 위해 Gnuplot을 사용하는 도구입니다.

전체적인 흐름
이 명령어는 특정 데이터에서 7번째 필드를 추출하고, 그 필드의 발생 빈도를 계산한 후, 가장 많이 발생한 상위 20개의 값을 바 그래프로 시각화하는 과정입니다.

 

 

 

 

zcat access.gz | grep /xampp/img/flash.gif | awk ‘{print $1}’ | sort -u | wc -l

 

zcat access.gz: access.gz 파일의 내용을 압축 해제하여 출력합니다.

| grep /xampp/img/flash.gif: 압축 해제된 데이터에서 /xampp/img/flash.gif라는 패턴이 포함된 행만 필터링하여 출력합니다. 즉, 이 경로에 대한 요청을 찾습니다.

| awk '{print $1}': 필터링된 결과에서 첫 번째 필드(일반적으로 IP 주소)를 추출하여 출력합니다.

| sort -u: 추출된 IP 주소를 정렬하고, 중복된 값을 제거하여 고유한 IP 주소만 남깁니다.

| wc -l: 고유한 IP 주소의 수를 계산하여 출력합니다.

 

 

bot.ip - ip를 모으는 방법

 

 

 

 

 

 

Layer 2
통신 방식: Layer 2에서는 MAC 주소를 통해 통신합니다.
신뢰성: MAC 주소는 모두 다르기 때문에 서로 간의 신뢰관계가 형성됩니다.
공격 방식:

 

ARP (Address Resolution Protocol)**는 네트워크에서 IP 주소를 MAC 주소로 변환하는 프로토콜입니다. 주로 IPv4 네트워크에서 사용되며, 데이터 링크 계층에서 호스트 간의 통신을 가능하게 합니다.


ARP Spoofing: MAC 주소를 기반으로 하는 공격으로, 네트워크에서 ARP를 조작하여 데이터 전송을 가로채는 방식입니다.
Man-in-the-Middle Attack: 공격자가 게이트웨이 주소를 변경하여 패킷에 URL을 삽입하고, 이를 통해 데이터를 가로채거나 변조합니다.
Layer 3
BGP (Border Gateway Protocol) Hijacking:
네트워크 경로를 악의적으로 변경하여 트래픽을 가로채는 공격입니다.
DNS (Domain Name System):
TTL (Time to Live):
TTL이 짧으면 DNS 질의에 부하가 걸립니다.
TTL이 길면 DNS 질의가 줄어들어 서버에 가는 부하가 적습니다.
DNS Sinkhole: 악성 트래픽을 차단하기 위해 DNS 요청을 조작하여 가짜 IP 주소로 유도하는 기술입니다.
BGP 하이재킹 탐지
BGP 하이재킹을 탐지하기 위해서는 자신이 소유한 prefix보다 하나 작은 prefix를 모니터링해야 합니다.

300x250

+ Recent posts