Information Security Lab

Research on penetration testing and information security

KH 정보교육원 국비지원 과정/Summary of study contents

25-7-7(월) 리눅스 / 네트워크 기초 및 CISCO Packet Tracer 실습

information-security-lab 2025. 7. 7. 12:08
목차

Ⅰ. 리눅스 기초 명령어
      1. find
      2. tar

Ⅱ. 네트워크 기초
      1. 멀티플렉싱 / 디멀티플렉싱
      2. 캡슐화 / 역캡슐화와의 관계

Ⅲ. CISCO Packet Tracer
      1. 네트워크 구성 요약
      2. 네트워크 구성 실습

 


 

Ⅰ. 리눅스 기초 명령어

1. find

가. 파일 시스템에서 조건에 만족하는 파일을 검색하는 명령어

/* 명령어 사용 방법 */

$ find [ 검색_경로 ] [ 검색_조건_1 ] [ 검색_조건_1 ]

 

 

나. 검색 조건

● -name : 파일 명으로 검색(와일드카드 문자 사용)

● -perm : 특정 퍼미션을 가진 파일 검색 // 퍼미션 : 파일 또는 디렉터리에 대한 접근 권한을 의미

● -empty : 빈 파일 검색

● -user : 지정한 사용자가 소유한 파일

● -group : 지정한 그룹이 소유한 파일

● -nouser : 소유자가 없는 파일

● -nogroup : 그룹 소유자가 없는 파일

● -type : 검색하고자 하는 파일의 종류 지정
          * b(block)
          * c(char)
          * d(dir) 
          * l(slink)
          * f(regular)          

● -mount : 마운트된 파일 시스템만 검색

● -mtime / -atime / -ctime : 변경된 파일(-숫자)
                             * mtime : 내용 변경
                             * atime : 정보 변경
                             * ctime : 접근 날짜

 

 

다. find 명령 error

 

find: paths must precede expression:.....   // -name 옵션 사용 시 문자열을 인식하지 못하는 에러임. 이 경우 문자열에 ''를 추가해야 함.
                                               ex) find / -name *.txt → find / -name '*.txt'

 

 

 

2. tar

가. 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성하거나, 기존 아카이브에서 파일을 추출하기 위해 사용

/* 명령어 사용 방법 */

$ tar 기능[ 옵션 ] [ 아카이브_파일 ] [ 파일_명 ]

 

 

나. 기능 / 옵션

/* 기능 */

● c : 새로운 tar 파일을 생성

● t : tar 파일의 내용 출력

● x : tar 파일에서 원본 파일 추출

● r : 새로운 파일 추가

● u : 수정된 파일 업데이트



/* 옵션 */

● f : 아카이브 파일이나 테이프 장치를 지정. 파일명을 ' - '로 지정하면 tar 파일 대신 표준 입력에서 읽어들임

● v : 처리하고 있는 파일의 정보를 출력

● h : 심볼릭 링크의 원본 파일을 포함

● p : 파일 복구 시 원래의 접근 권한 유지

● j : bzip2로 압축하거나 해제

● z : gzip으로 압축하거나 해제

 

 

다. tar 명령어 활용

 

- 아카이브 생성(cvf 옵션)

/* 사용 예시 */

[root@localhost ~]# ls
Test  anaconda-ks.cfg  공개  다운로드  문서  바탕화면  비디오  사진  서식  음악
[root@localhost ~]# tree Test
Test
├── ch2
│   ├── data1.ln
│   ├── data1.ls -> data1.cp
│   ├── temp
│   │   ├── data1.cp
│   │   ├── hosts
│   │   ├── text1
│   │   └── text2
│   ├── test2
│   └── tmp
├── ch3
├── ch4
├── ch5
└── ch6

7 directories, 7 files
[root@localhost ~]# cd Test
[root@localhost Test]# tar cvf ch2.tar ch2
ch2/
ch2/temp/
ch2/temp/text1
ch2/temp/text2
ch2/temp/hosts
ch2/temp/data1.cp
ch2/data1.ln
ch2/data1.ls
ch2/tmp/
ch2/test2
[root@localhost Test]# ls
ch2  ch2.tar  ch3  ch4  ch5  ch6
[root@localhost Test]#

 

- 아카이브 내용 확인(tvf 옵션)

/* 사용 예시 */

[root@localhost Test]# tar tvf ch2.tar
drwxr-xr-x root/root         0 2025-07-07 12:20 ch2/
drwxr-xr-x root/root         0 2025-07-07 12:19 ch2/temp/
-rw-r--r-- root/root         0 2025-07-07 12:18 ch2/temp/text1
-rw-r--r-- root/root         0 2025-07-07 12:18 ch2/temp/text2
-rw-r--r-- root/root       158 2025-07-07 12:18 ch2/temp/hosts
-rw-r--r-- root/root       158 2025-07-07 12:19 ch2/temp/data1.cp
hrw-r--r-- root/root         0 2025-07-07 12:19 ch2/data1.ln ch2/temp/data1.cp(으)로 링크
lrwxrwxrwx root/root         0 2025-07-07 12:19 ch2/data1.ls -> data1.cp
drwxr-xr-x root/root         0 2025-07-07 12:20 ch2/tmp/
-rw-r--r-- root/root         0 2025-07-07 12:20 ch2/test2
[root@localhost Test]#

 

- 아카이브 풀기(xvf 옵션)

/* 아카이브 파일을 적당한 디렉터리에 옮겨서 푸는 예시 */

[root@localhost Test]# ls
ch2  ch2.tar  ch3  ch4  ch5  ch6  tar_practice
[root@localhost Test]# mv ch2.tar tar_practice
[root@localhost Test]# ls
ch2  ch3  ch4  ch5  ch6  tar_practice
[root@localhost Test]# tree tar_practice
tar_practice
└── ch2.tar

0 directories, 1 file
[root@localhost Test]# cd tar_practice/
[root@localhost tar_practice]# ls
ch2.tar
[root@localhost tar_practice]# tar xvf ch2.tar
ch2/
ch2/temp/
ch2/temp/text1
ch2/temp/text2
ch2/temp/hosts
ch2/temp/data1.cp
ch2/data1.ln
ch2/data1.ls
ch2/tmp/
ch2/test2
[root@localhost tar_practice]# ls
ch2  ch2.tar
[root@localhost tar_practice]#

 

- 아카이브 파일 추가(rvf 옵션)

/* 새로운 파일을 생성하여 기존 아카이브 파일에 추가하는 예시 */

[root@localhost tar_practice]# echo "Rocky Linux" > new_file.txt
[root@localhost tar_practice]# ls
ch2  ch2.tar  new_file.txt
[root@localhost tar_practice]# tar rvf ch2.tar new_file.txt 
new_file.txt
[root@localhost tar_practice]# tar tvf ch2.tar
drwxr-xr-x root/root         0 2025-07-07 12:20 ch2/
drwxr-xr-x root/root         0 2025-07-07 12:19 ch2/temp/
-rw-r--r-- root/root         0 2025-07-07 12:18 ch2/temp/text1
-rw-r--r-- root/root         0 2025-07-07 12:18 ch2/temp/text2
-rw-r--r-- root/root       158 2025-07-07 12:18 ch2/temp/hosts
-rw-r--r-- root/root       158 2025-07-07 12:19 ch2/temp/data1.cp
hrw-r--r-- root/root         0 2025-07-07 12:19 ch2/data1.ln ch2/temp/data1.cp(으)로 링크
lrwxrwxrwx root/root         0 2025-07-07 12:19 ch2/data1.ls -> data1.cp
drwxr-xr-x root/root         0 2025-07-07 12:20 ch2/tmp/
-rw-r--r-- root/root         0 2025-07-07 12:20 ch2/test2
-rw-r--r-- root/root        12 2025-07-07 12:31 new_file.txt
[root@localhost tar_practice]#

 

- 아카이브 생성 및 압축 동시 수행

● gzip으로 압축 시

[root@localhost tar_practice]# ls
ch2  ch2.tar  new_file.txt
[root@localhost tar_practice]# tar czvf _gzip_.tar.gz ch2
ch2/
ch2/temp/
ch2/temp/text1
ch2/temp/text2
ch2/temp/hosts
ch2/temp/data1.cp
ch2/data1.ln
ch2/data1.ls
ch2/tmp/
ch2/test2
[root@localhost tar_practice]# ls
_gzip_.tar.gz  ch2  ch2.tar  new_file.txt
[root@localhost tar_practice]#

● bzip2로 압축 시

[root@localhost tar_practice]# ls
_gzip_.tar.gz  ch2  ch2.tar  new_file.txt
[root@localhost tar_practice]# tar cvjf _bzip2_.tar.bz2 ch2
ch2/
ch2/temp/
ch2/temp/text1
ch2/temp/text2
ch2/temp/hosts
ch2/temp/data1.cp
ch2/data1.ln
ch2/data1.ls
ch2/tmp/
ch2/test2
[root@localhost tar_practice]# ls
_bzip2_.tar.bz2  _gzip_.tar.gz  ch2  ch2.tar  new_file.txt
[root@localhost tar_practice]#

 

 


 

 

Ⅱ. 네트워크 기초

1. 멀티플렉싱 / 디멀티플렉싱

가. 멀티플렉싱(송신 측)

 

- 개념

● 여러 개의 서로 다른 데이터 스트림(여러 어플리케이션에서 발생한 데이터 등)을 하나의 공유된 전송 매체를 통해 동시에 전송할 수 있도록 묶는 기술

● 송신 측에서 여러 데이터를 하나로 묶어 효율적으로 전송하는 과정

 

- 목적

● 한정된 네트워크 자원을 여러 애플리케이션이나 사용자 간에 효율적으로 공유하여 네트워크 활용도를 높이고 비용을 절감하기 위함

 

- 과정

● 데이터 수집 : 다양한 애플리케이션(각기 다른 포트 번호를 가진 소켓)에서 발생하는 데이터를 전송 계층으로 보냄

● 헤더 부착 및 캡슐화 : 전송 계층(TCP, UDP 등)은 각 데이터에 해당 데이터를 식별할 수 있는 정보(주로 포트 번호)를 포함하는 헤더를 붙여 하나의 세그먼트(TCP) 또는 데이터그램(UDP)으로 캡슐화

● 네트워크 계층으로 전달 : 캡슐화된 세그먼트/데이터그램을 네트워크 계층으로 전달하여 물리적인 전송 매체를 통해 목적지로 보냄

 

 

나. 디멀티플렉싱(수신 측)

 

- 개념

● 하나의 공유된 전송 매체를 통해 수신된 결합된 데이터 스트림을 원래의 개별 데이터 스트림으로 분리하여 해당 데이터를 요청한 정확한 애플리케이션(프로세스)에게 전달하는 기술

● 멀티플렉싱의 반대 과정

● 수신 측에서 하나로 묶여온 데이터를 다시 분리하여 올바른 애플리케이션으로 전달하는 과정

 

- 목적

● 수신된 데이터를 올바른 프로세스(애플리케이션)로 정확히 전달하여 여러 애플리케이션이 동시에 네트워크 서비스를 이용할 수 있도록 함

 

- 과정

● 데이터 수신 : 네트워크 계층에서 수신 호스트로 도착한 세그먼트/데이터그램을 전송 계층으로 전달

● 헤더 정보 확인 : 전송 계층은 수신된 세그먼트/데이터그램에 포함된 헤더 정보(특히 목적지 포트 번호)를 확인

● 정확한 소켓으로 전달 : 확인된 목적지 포트 번호를 사용하여 해당 포트 번호와 연결된 올바른 소켓(애플리케이션)을 찾아 데이터를 전달

 

- TCP와 UDP의 디멀티플렉싱 차이

● TCP

└ TCP는 연결 지향 프로토콜이므로, 연결을 식별하는 데 출발지 IP 주소, 출발지 포트 번호, 목적지 IP 주소, 목적지 포트 번호의 4가지 정보를 모두 사용하여 데이터를 정확한 소켓으로 전달

└ 이는 하나의 서버에 여러 클라이언트가 동시에 연결되어 있어도 각 연결을 명확하게 구분하여 데이터를 전달할 수 있도록 함

● UDP

UDP는 연결 설정 없이 데이터를 주고받기 때문에, 수신된 데이터그램의 목적지 포트 번호만 보고 데이터를 해당 포트 번호와 연결된 소켓으로 전달

출발지 IP 주소나 포트 번호는 미확인

 

 

2. 캡슐화 / 역캡슐화와의 관계

가. 멀티플렉싱 / 디멀티플렉싱은 캡슐화 / 역캡슐화 과정의 일부로 발생하며, 그 과정에서 핵심적인 역할을 함

 

 


 

 

Ⅲ. CISCO Packet Tracer

1. 네트워크 구성 요약

사진 Ⅲ-1-1

 

 

 

2. 네트워크 구성 실습

가. 상단 PC 네트워크 설정

사진 Ⅲ-2-1

C:\>ipconfig

FastEthernet0 Connection:(default port)

   Connection-specific DNS Suffix..: 
   Link-local IPv6 Address.........: ##################
   IPv6 Address....................: ::
   IPv4 Address....................: 1.1.1.3
   Subnet Mask.....................: 255.255.255.0
   Default Gateway.................: ::
                                     1.1.1.1

Bluetooth Connection:

   Connection-specific DNS Suffix..: 
   Link-local IPv6 Address.........: ::
   IPv6 Address....................: ::
   IPv4 Address....................: 0.0.0.0
   Subnet Mask.....................: 0.0.0.0
   Default Gateway.................: ::
                                     0.0.0.0

C:\>

 

 

나. 하단 PC 네트워크 설정

사진 Ⅲ-2-2

C:\>ipconfig

FastEthernet0 Connection:(default port)

   Connection-specific DNS Suffix..: 
   Link-local IPv6 Address.........: ##########################
   IPv6 Address....................: ::
   IPv4 Address....................: 1.1.1.5
   Subnet Mask.....................: 255.255.255.0
   Default Gateway.................: ::
                                     1.1.1.1

Bluetooth Connection:

   Connection-specific DNS Suffix..: 
   Link-local IPv6 Address.........: ::
   IPv6 Address....................: ::
   IPv4 Address....................: 0.0.0.0
   Subnet Mask.....................: 0.0.0.0
   Default Gateway.................: ::
                                     0.0.0.0

C:\>

 

 

다. 스위치 명 변경

Switch>en
Switch#
Switch#
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#
Switch(config)#
Switch(config)#hostname S1
Switch(config)#
Switch(config)#
S1(config)#exit
S1#
S1#
S1#show startup-config
startup-config is not present
S1#
S1#
S1#copy running-config startup-config
Destination filename [startup-config]? 
Building configuration...
[OK]

 

 

라. 라우터 세팅

Router>en
Router#
Router#
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname R1
R1(config)#interface g0/0
R1(config-if)#ip addr 1.1.1.1 255.255.255.0
R1(config-if)#
R1(config-if)#
R1(config-if)#no shutdown
R1(config-if)#^Z
R1#
R1#show startup-config
Using 694 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname R1
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!

R1#

 

 

 

끝.