협업 > 관리 > chfi
2025_비교과(chfi)
일정 : 2025.09.19 ~ 2025.12.XX(10주)
시간 : 16:00 ~ 20:00(4시간*10 : 40시간) / 금
금남TV : 실습 영상
상세진행사항(실기위주 설명)
실습을 위한 필수 프로그램
1. GNS3 받기 (네트워크 실습을 위한 필수 프로그램 / 회원가입 필요함)
2. XSHELL 받기(리눅스 접속을 위한 프로그램)
3. VirtualBox 받기(리눅스나 윈도우 설치를 위한 프로그램)
4. 우분투서버(이미지)
5. 럭키리눅스서버(이미지)
6. 윈도우서버(이미지)
1일차 강의 : 파일 받기1
1일차 강의 : 파일 받기2
1일차 강의 : 파일 받기3
리눅스 서버 구축
위치 : /home/master
sudo hostnamectl set-hostname chfi
sudo reboot
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
sudo apt update
sudo apt install python3-venv
mkdir projects
mkdir venvs
cd venvs
nano mysite.env
FLASK_APP=chfi
FLASK_DEBUG=true
APP_CONFIG_FILE=/home/master/projects/flask/config/production.py
nano mysite.sh
#!/bin/bash
cd ~/projects/flask
export FLASK_APP=chfi
export FLASK_DEBUG=true
export APP_CONFIG_FILE=/home/master/projects/flask/config/production.py
. ~/venvs/mysite/bin/activate
nano .profile
alias mysite='export FLASK_APP=chfi;export FLASK_DEBUG=true;export APP_CONFIG_FILE=/home/master/projects/flask/config/production.py;cd ~/projects/flask;. ~/venvs/mysite/bin/activate'
cd venvs
python3 -m venv mysite
cd mysite
cd bin
. activate
pip install wheel
pip install flask
pip install flask-migrate
pip install flask-wtf
pip install email_validator
pip install flask-markdown
cd ~/projects
unzip flask.zip
cd flask
flask db init
flask db migrate
flaks db upgrade
flask run --host=0.0.0.0
pip install gunicorn
cd ~/projects/flask
gunicorn --bind 0:5000 "chfi:create_app()"
gunicorn --bind unix:/tmp/mysite.sock "chfi:create_app()"
[파일명: /etc/systemd/system/mysite.service]
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=master
Group=master
WorkingDirectory=/home/master/projects/flask
EnvironmentFile=/home/ubuntu/venvs/mysite.env
ExecStart=/home/ubuntu/venvs/mysite/bin/gunicorn \
--workers 2 \
--bind unix:/tmp/mysite.sock \
"chfi:create_app()"
[Install]
WantedBy=multi-user.target
sudo systemctl start mysite.service
sudo systemctl enable mysite.service
sudo apt install nginx
cd /etc/nginx/sites-available/
sudo nano mysite
server {
listen 80;
server_name XXX.XXX.XXX.XXX;
location = /favicon.ico { access_log off; log_not_found off; }
location /static {
alias /home/master/projects/flask/chfi/static;
}
location / {
include proxy_params;
proxy_pass http://unix:/tmp/mysite.sock;
}
}
cd /etc/nginx/sites-enabled/
sudo rm default
sudo ln -s /etc/nginx/sites-available/mysite
sudo systemctl restart nginx
sudo nginx -t
sudo systemctl stop nginx
sudo systemctl start nginx
윈도우 환경 구축
C:\> mkdir venvs
C:\> cd venvs
C:\venvs> python -m venv mysite
C:\venvs> cd C:\venvs\mysite\Scripts
C:\venvs\mysite\Scripts> activate
(mysite) C:\venvs\mysite\Scripts>
pip install flask
python -m pip install --upgrade pip
pip install flask_migrate
pip install requests
pip install flask_wtf
pip install pymysql
[파일명: C:/venvs/mysite.cmd]
@echo off
cd c:/projects/flask
set FLASK_APP=chfi
set FLASK_DEBUG=true
set APP_CONFIG_FILE=c:\projects\flask\config\development.py
c:/venvs/mysite/scripts/activate
C:\projects\flask
flask run <윈도우+R> 키를 입력하여 다음처럼 sysdm.cpl
참고사이트
https://wikidocs.net/book/4542(점프투플라스크)
2일차 강의 프로그램 만들기
3일차 E01 분석하기 (파일 다운받기)
4일차 강의
라우터란
라우터는 네트워크와 네트워크를 연결해주는 장치
라우터의 주요 역할
네트워크 연결 내부 네트워크(예: 집, 회사 LAN)와 외부 네트워크(예: 인터넷)를 연결
패킷 전달 (Routing) 목적지 IP 주소에 따라 데이터를 가장 적절한 경로로 전달
IP 주소 할당 DHCP 기능을 통해 내부 장치에 자동으로 IP 주소 할당
NAT 기능 내부 사설 IP를 외부에서 인식 가능한 공인 IP로 변환 (보안 및 자원 절약)
방화벽 기능 트래픽을 제어하고 악의적인 접근을 차단
라우터의 위치는?

집에서 사용하는 공유기(라우터)

라우팅
정적라우팅
동적라우팅
RIP
OSPF
라우터 명령어
config t
interface fastethernet 0/0
ip address 192.168.0.254 255.255.255.0
no shutdown
interface serial 1/0
ip address 1.1.1.1 255.255.255.252
no shutdown
ip route 172.16.0.0 255.255.255.0 1.1.1.2
#R2
config t
interface fastethernet 0/0
ip address 172.16.0.254 255.255.255.0
no shutdown
interface serial 1/0
ip address 1.1.1.2 255.255.255.252
no shutdown
ip route 192.168.0.0 255.255.255.0 1.1.1.1
[R1한방설정(OSPF)]
config t
interface FastEthernet0/0
ip address 100.100.100.254 255.255.255.0
no shutdown
exit
interface Serial1/0
ip address 4.4.4.1 255.255.255.192
no shutdown
exit
router ospf 1
network 100.100.100.0 0.0.0.255 area 0
network 4.4.4.0 0.0.0.63 area 0
router-id 1.1.1.1
exit
ip dhcp excluded-address 100.100.100.1 100.100.100.254
ip dhcp pool hacker
network 100.100.100.0 255.255.255.0
default-router 100.100.100.254
dns-server 125.246.95.152
lease 1 0 0 !
exit
[R2한방설정(OSPF)]
config t
interface FastEthernet0/0
ip address 125.246.95.254 255.255.255.0
no shutdown
exit
interface Serial1/0
ip address 4.4.4.2 255.255.255.192
no shutdown
exit
router ospf 1
network 125.246.95.0 0.0.0.255 area 0
network 4.4.4.0 0.0.0.63 area 0
router-id 2.2.2.2
exit
3일차
리눅스 접속 : ssh network.izerone.co.kr
리눅스 명령어
[20250525_28]
Linux 시스템에서 사용자가 내린 명령어를 Kernel에 전달해 주는 역할을 하는 것은?
① System Program
② Loader
③ Shell
④ Directory
[20250525_29]
Linux 디렉터리 구성에 대한 설명으로 옳지 않은 것은?
① /tmp - 임시파일이 저장되는 디렉터리
② /boot - 시스템이 부팅될 때 부팅 가능한 커널 이미지 파일을 담고 있는 디렉터리
③ /var - 시스템의 로그 파일과 메일이 저장되는 위치
④ /usr - 사용자 계정이 위치하는 파티션 위치
[20250525_30]
Linux에서 DNS의 SOA(Start Of Authority) 레코드에 대한 설명으로 옳지 않은 것은?
① Zone 파일은 항상 SOA로 시작한다.
② 해당 Zone에 대한 네임서버를 유지하기 위한 기본적인 자료가 저장된다.
③ Refresh는 주 서버와 보조 서버의 동기 주기를 설정한다.
④ TTL 값이 길면 DNS의 부하가 늘어난다.
[20250525_31]
Linux 시스템에서 모든 사용자에게 'sample' 파일의 쓰기 권한을 금지시키고자 할 때 명령어로 올바른 것은?
① chmod a-w sample
② chmod u-w sample
③ chmod g+rw sample
④ chmod a-r sample
[20250525_32]
Linux 시스템에 새로운 사용자를 등록하려고 한다. 유저 이 름은 ′network′로 하고, ′icqa′라는 기본 그룹에 편입시키는 명령은?
① useradd -g icqa network
② useradd -g network icqa
③ adduser -g network icqa
④ adduser -G icqa network
[20250525_33]
Linux 시스템에서 사용되고 있는 메모리 양과 사용 가능한 메모리 양, 공유 메모리와 가상 메모리에 대한 정보를 볼 수 있는 명령어는?
① mem
② free
③ du
④ cat
[20250525_41]
다음 중 Linux 시스템에서 새로운 하드디스크를 추가하고 사용할 수 있도록 설정하는 과정과 관계가 가장 적은 것은?
① fdisk
② mkfs
③ mount
④ cal
[20250525_42]
다음 중 Linux의 BIND 설치 및 운영 시 수행해야 할 업무로 적절하지 않은 것은?
① 방화벽에서 UDP의 53번 포트만 열면 된다.
② 방화벽 설정은 ′iptables′ 명령어를 통해 설정할 수 있다.
③ BIND 설치여부는 ′rpm -qa | grep bind′ 로 확인할 수
있다.
④ ′/etc/named.conf′ 파일의 오류를 체크하는 명령어는 ′ named-checkconf′ 이다.
[20250525_44]
사용자가 웹사이트에 접속했지만 다음과 같은 메시지가 출 력되었다. 이 오류 상황에 해당하는 HTTP 상태 코드는?
① 400
② 200
③ 403
④ 203
[20250525_45]
Linux Apache 웹서버 httpd.conf 설정값 중 Directory Indexing 공격에 취약할 수 있는 옵션은?
① Options FollowSymLinks Indexes
② ServerAdmin : root@localhost
③ DocumentRoot : ′/var/www/html′
④ ServerRoot : ′/etc/httpd′
[20250223_31]
Linux 시스템에서 데몬(Daemon)에 관한 설명 중 옳지 않은 것은?
① 백그라운드(Background)로 실행된다.
② ′ps afx′ 명령어를 실행시켜 보면 데몬 프로그램의 활동을 확인할 수 있다.
③ 시스템 서비스를 지원하는 프로세스이다.
④ 시스템 부팅 때만 시작될 수 있다.
[20250223_32]
Linux에서 ′manager′라는 파일을, 파일의 소유자가 아닌 사람도 볼 수는 있지만 수정을 못하도록 하는 명령어는?
① chmod 777 manager
② chmod 666 manager
③ chmod 646 manager
④ chmod 644 manager
[20250223_33]
Linux에서 사용자가 현재 작업 중인 디렉터리의 경로를 절대경로 방식으로 보여주는 명령어는?
① cd
② man
③ pwd
④ cron
[20250223_34]
Linux에서 사용자가 현재 작업 중인 디렉터리의 경로를 절대경로 방식으로 보여주는 명령어는?
user1:x:500:500::/home/user1:/bin/bash
① 사용자 계정의 ID는 ′user1′ 이다.
② 패스워드는 ′x′ 이다.
③ 사용자의 UID와 GID는 500번이다.
④ 사용자의 기본 Shell은 ′/bin/bash′ 이다.
[20250223_37]
Linux에서 사용자가 현재 작업 중인 디렉터리의 경로를 절대경로 방식으로 보여주는 명령어는?
user1:x:500:500::/home/user1:/bin/bash
① 사용자 계정의 ID는 ′user1′ 이다.
② 패스워드는 ′x′ 이다.
③ 사용자의 UID와 GID는 500번이다.
④ 사용자의 기본 Shell은 ′/bin/bash′ 이다.
[20250223_37]
네트워크관리사 Kim 사원이 Linux 서버(하드웨어)의 HDD 증설을 위해 서버를 종료하기로 하였다. 이에 Linux 서버를 종료하기 위한 명령어가 아닌 것은?
① shutdown –h now
② poweroff
③ init 6
④ halt
[20250223_39]
Linux에서 열려있는 port 정보를 확인하는 명령어로 옳은 것은?
① ps
② pstree
③ getenforce
④ netstat
[20250223_39]
Linux Apache 웹 서버에서 사용자가 POST Request 메시지를 전송 시 일정 크기 이상 전송하지 못하도록 ′httpd.conf′ 파일에서 설정하는 지시자로 옳은 것은?
① KeepRequestSize
② LimitRequestBody
③ RestrictBodyRequest
④ PostRequestSize
[20250223_39]
Linux 시스템에서 사용자에게 할당되어 있는 디렉터리로, 사용자가 임의로 사용할 수 있는 디렉터리 영역은?
① Root Directory
② Home Directory
③ Temporary Directory
④ Public Directory
4일차
리눅스 접속 : ssh network.izerone.co.kr
서버 운영
sudo nano /etc/netplan/50-cloud-init.yaml
dhcp4:yes #addresses: ctrl+x > shift+y
sudo netplan apply
ip addr
10.0.2.15
nano /etc/resolv.conf
168.126.63.1
sudo apt -y update
sudo apt -y upgrade
su
password
sudo apt -y install lamp-server^
sudo apt -y install php8.3-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
sudo systemctl restart php8.3-fpm apache2
FTP연결하기
외부 ---> 공유기(공인IP) ---> NAT(192.168.219.1 / 포트포워딩) --> 리눅스서버
5일차
윈도우 설치 및 실습
윈도우 설치 후 홈서버 구축 연습

6일차
윈도우 실습







7일차
윈도우 실습
윈도우 클라이언트 다운받기
일정 : 2025.09.19 ~ 2025.12.XX(10주)
시간 : 16:00 ~ 20:00(4시간*10 : 40시간) / 금
금남TV : 실습 영상
상세진행사항(실기위주 설명)
| 회차 | 내용 | 날짜 |
|---|---|---|
| 1회차 | 포렌식실습을 위한 파이썬과 플라스크 설치 | 2025.09.19 |
| 2회차 | 포렌식 프로그램 설치(Autospy,OSForensic) 및 실습 | 2025.09.26 |
| 3회차 | CHFI란(온라인) | 2025.10.10 |
| 4회차 | CHFI 문제와 포렌식 실습 | 2025.10.17 |
| 5회차 | CHFI 문제와 포렌식 실습 | 2025.10.24 |
| 6회차 | CHFI 문제와 포렌식 실습 | 2025.10.31 |
| 7회차 | CHFI 문제와 포렌식 실습 | 2025.11.07 |
| 8회차 | CHFI 문제와 포렌식 실습 | 2025.11.14 |
| 9회차 | CHFI 문제와 포렌식 실습 | 2025.11.21 |
| 10회차 | CHFI 문제와 포렌식 실습 | 2025.11.28 |
| 11회차 | CHFI 문제와 포렌식 실습 | 2025.12.05 |
실습을 위한 필수 프로그램
1. GNS3 받기 (네트워크 실습을 위한 필수 프로그램 / 회원가입 필요함)
2. XSHELL 받기(리눅스 접속을 위한 프로그램)
3. VirtualBox 받기(리눅스나 윈도우 설치를 위한 프로그램)
4. 우분투서버(이미지)
5. 럭키리눅스서버(이미지)
6. 윈도우서버(이미지)
1일차 강의 : 파일 받기1
1일차 강의 : 파일 받기2
1일차 강의 : 파일 받기3
리눅스 서버 구축
위치 : /home/master
sudo hostnamectl set-hostname chfi
sudo reboot
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
sudo apt update
sudo apt install python3-venv
mkdir projects
mkdir venvs
cd venvs
nano mysite.env
FLASK_APP=chfi
FLASK_DEBUG=true
APP_CONFIG_FILE=/home/master/projects/flask/config/production.py
nano mysite.sh
#!/bin/bash
cd ~/projects/flask
export FLASK_APP=chfi
export FLASK_DEBUG=true
export APP_CONFIG_FILE=/home/master/projects/flask/config/production.py
. ~/venvs/mysite/bin/activate
nano .profile
alias mysite='export FLASK_APP=chfi;export FLASK_DEBUG=true;export APP_CONFIG_FILE=/home/master/projects/flask/config/production.py;cd ~/projects/flask;. ~/venvs/mysite/bin/activate'
cd venvs
python3 -m venv mysite
cd mysite
cd bin
. activate
pip install wheel
pip install flask
pip install flask-migrate
pip install flask-wtf
pip install email_validator
pip install flask-markdown
cd ~/projects
unzip flask.zip
cd flask
flask db init
flask db migrate
flaks db upgrade
flask run --host=0.0.0.0
pip install gunicorn
cd ~/projects/flask
gunicorn --bind 0:5000 "chfi:create_app()"
gunicorn --bind unix:/tmp/mysite.sock "chfi:create_app()"
[파일명: /etc/systemd/system/mysite.service]
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=master
Group=master
WorkingDirectory=/home/master/projects/flask
EnvironmentFile=/home/ubuntu/venvs/mysite.env
ExecStart=/home/ubuntu/venvs/mysite/bin/gunicorn \
--workers 2 \
--bind unix:/tmp/mysite.sock \
"chfi:create_app()"
[Install]
WantedBy=multi-user.target
sudo systemctl start mysite.service
sudo systemctl enable mysite.service
sudo apt install nginx
cd /etc/nginx/sites-available/
sudo nano mysite
server {
listen 80;
server_name XXX.XXX.XXX.XXX;
location = /favicon.ico { access_log off; log_not_found off; }
location /static {
alias /home/master/projects/flask/chfi/static;
}
location / {
include proxy_params;
proxy_pass http://unix:/tmp/mysite.sock;
}
}
cd /etc/nginx/sites-enabled/
sudo rm default
sudo ln -s /etc/nginx/sites-available/mysite
sudo systemctl restart nginx
sudo nginx -t
sudo systemctl stop nginx
sudo systemctl start nginx
윈도우 환경 구축
C:\> mkdir venvs
C:\> cd venvs
C:\venvs> python -m venv mysite
C:\venvs> cd C:\venvs\mysite\Scripts
C:\venvs\mysite\Scripts> activate
(mysite) C:\venvs\mysite\Scripts>
pip install flask
python -m pip install --upgrade pip
pip install flask_migrate
pip install requests
pip install flask_wtf
pip install pymysql
[파일명: C:/venvs/mysite.cmd]
@echo off
cd c:/projects/flask
set FLASK_APP=chfi
set FLASK_DEBUG=true
set APP_CONFIG_FILE=c:\projects\flask\config\development.py
c:/venvs/mysite/scripts/activate
C:\projects\flask
flask run <윈도우+R> 키를 입력하여 다음처럼 sysdm.cpl
참고사이트
https://wikidocs.net/book/4542(점프투플라스크)
2일차 강의 프로그램 만들기
| 번호 | 구분 | 기능 |
|---|---|---|
| 1 | 해시분석 | 파일 또는 문자열의 해시값을 구한다. |
| 2 | 메타분석 | 사진,파일의 정보를 분석한다. |
| 3 | 확장자불일치 | 파일확장자와 파일시그니처를 탐지한다. |
| 4 | 암호 | 압축파일 암호가 존재하는지 탐지하고 암호를 해결한다. |
| 5 | 레지스트리 | 윈도우 레지스트리를 분석하여 연결된 USB정보를 분석한다. |
| 6 | 이메일분석 | 썬더버드에 저장되어 있는 INBOX파일을 분석한다. |
| 7 | 암호화 프로그램 | 트루크립터,베라크립터가 있는지 탐지한다. |
| 8 | 윈도우의 초기 설치 | 윈도우 초기 설치시 생성되는 모든 파일을 확인한다. |
| 9 | 키워드 검색 | 분석의 범위를 줄이기 위한 키워드 분석 프로그램 직접 만들어본다. |
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| 15 |
3일차 E01 분석하기 (파일 다운받기)
- FTK Imager 다운로드하기 | 바로받기
- E01의 해시값은 얼마인가?
한글 : HWP, HWPX
엑셀 : xls or xlsx
E01 파일은 뭐냐? Encase라는 포렌식 회사 만든 분석용 이미지 확장자
- 파일시스템은 정상인가?
비정상이다!
이유는?
MBR(Master Boot Record) : 0Sector(512)중에 파티션테이블(64byte : 16byte*4)의 정보를 분석후
VBR(Volumn Boot Record) : (512) 바이트 내용들이 00으로 저장되어 있다라는 뜻은 누군가가 의도적으로
회손했다.!
결론 : VBR 손상되어 있기 때문에 분석 불가능합니다.
VBR > VBR 복구 > 파일 시스템 >
NTFS 파일시스템의 특징 : 백업본 VBR이 그 파티션의 마지막 Sector
FAT32파일시스템의 특징 : 백업본 VBR이 6번째 Sector
MBR을 확인해라!
VBR을 확인해라!
만약에 MBR이 비정상이라면 정상화 시켜라!
단 파이썬 프로그램을 이용해서 정상화 시켜라!
partition1(100MB)
partition2(300MB)
partition3(109MB)
33C08ED0BC007C8EC08ED8BE007CBF00
06B90002FCF3A450681C06CBFBB90400
BDBE07807E00007C0B0F850E0183C510
E2F1CD1888560055C6461105C6461000
B441BBAA55CD135D720F81FB55AA750
9F7C101007403FE46106660807E100074
2666680000000066FF76086800006800
7C680100681000B4428A56008BF4CD13
9F83C4109EEB14B80102BB007C8A5600
8A76018A4E028A6E03CD136661731CFE
4E11750C807E00800F848A00B280EB84
5532E48A5600CD135DEB9E813EFE7D55
AA756EFF7600E88D007517FAB0D1E664
E88300B0DFE660E87C00B0FFE664E875
00FBB800BBCD1A6623C0753B6681FB54
435041753281F90201722C666807BB00
00666800020000666808000000665366
5366556668000000006668007C000066
6168000007CD1A5A32F6EA007C0000CD
18A0B707EB08A0B607EB03A0B50732E4
0500078BF0AC3C007409BB0700B40ECD
10EBF2F4EBFD2BC9E464EB002402E0F8
2402C3496E76616C6964207061727469
74696F6E207461626C65004572726F72
206C6F6164696E67206F706572617469
6E672073797374656D004D697373696E
67206F7065726174696E672073797374
656D000000637B9A6D47ECF000000002
030007C0340C800000000020030000C0
350C0B000D3380200300006009000000
0E3307E4244080800C00006803000000
000000000000000000000000000055AA
13th.E01(비정상)
656D000000637B9A6D47ECF000000002
030007C0340C800000000020030000C0
350C0B000D3380200300006009000000
0E3307E4244080800C00006803000000
000000000000000000000000000055AA
Win2022.vdi(정상)
656D000000637B9ABB608B0E00008020
210007DF130C000800000020030000DF
140C07FEFFFF0028030000702C0600FE
FFFF27FEFFFF00982F060058100000000
00000000000000000000000000055AA
13th.E01(비정상)
파티션테이블
00 020300 07 C0340C 80000000 00200300 (16바이트)
00 C0350C 0B 000D33 80200300 00600900(16바이트)
00 000E33 07 E424408 0800C00 00680300 (16바이트)
00 000000 00 0000000 0000000 00000000 (16바이트)
Win2022.vdi(정상)파이션테이블
80 202100 07 DF130C 00080000 00200300(16바이트)
00 DF140C 07 FEFFFF 00280300 00702C06 (16바이트)
00 FEFFFF 27 FEFFFF 00982F06 00581000 (16바이트)
0000000000000000000000000000000 (16바이트)
- 비정상이라면 복구하는 방법은 무엇인가?
chatgpt와 파이썬을 이용해서
손상된 13th파일의 vbr를 자동으로 복구하는 프로그램
1. 20251010001.001을 읽는다.
2. 0sector중에 파티션 테이블 읽고 정상인지 아닌지 확인후
정상이라면 각각의 파티션테이블로 이동후 VBR을 읽는다.
3. VBR을 읽을때 NTFS라면 첫번째 sector와 마지막 sector의 위치를
찾아 VBR(512)가 일치하는지 검사하고 만약에 조사시 조건이 틀리면
백업본을 이용해서 복구한다.
완성후 코드 제출하시면 됩니다.
- 분석용 프로그램 설치하기(1. Autospy, 2.OSForensic, 3.ForensicExplorer)
- 파일시그니처와 확장자가 불일치하는 파일은 있는가?
- 압축파일은 있는가?
- 압축파일에는 암호가 있는가?
4일차 강의
라우터란
라우터는 네트워크와 네트워크를 연결해주는 장치
라우터의 주요 역할
네트워크 연결 내부 네트워크(예: 집, 회사 LAN)와 외부 네트워크(예: 인터넷)를 연결
패킷 전달 (Routing) 목적지 IP 주소에 따라 데이터를 가장 적절한 경로로 전달
IP 주소 할당 DHCP 기능을 통해 내부 장치에 자동으로 IP 주소 할당
NAT 기능 내부 사설 IP를 외부에서 인식 가능한 공인 IP로 변환 (보안 및 자원 절약)
방화벽 기능 트래픽을 제어하고 악의적인 접근을 차단
라우터의 위치는?
집에서 사용하는 공유기(라우터)
라우팅
정적라우팅
동적라우팅
라우터 명령어
| 번호 | 명령어 | 기능 |
|---|---|---|
| 1 | enable | 관리자모드로 진입 |
| 2 | config t | 설정모드로 진입 |
| 3 | exit | 끝내기 |
| 4 | show ip interface brief | 인터페이스 상태 요약 |
| 5 | show running-config | 현재 설정 확인 |
| 6 | show ip dhcp binding | DHCP로 할당된 IP 목록 확인 |
| 7 | hostname [이름] | 장비 이름 설정 |
| 7 | ip route [목적지 네트워크] [서브넷마스크] [다음 홉 IP 또는 인터페이스] | DNS 캐시 목록 보기 |
| 7 | ping | 대상 서버와의 연결 확인 (응답 시간 포함) |
| 8 | tracert | 목적지까지의 경로 추적 (라우터 경유 확인) |
| 9 | pathping | ping + tracert 기능 통합, 상세 경로 분석 |
| 10 | nslookup | DNS 서버에서 IP 주소 조회 |
| 11 | arp -a | ARP 테이블 확인 |
| 12 | netstat -anbr | 현재 네트워크 연결 상태 확인 (포트, 연결 상태 등) |
| 13 | netsh interface ip show config | 네트워크 인터페이스의 IP 구성 정보 확인 |
| 14 | netsh interface ip set address | 수동 IP 주소 설정 |
| 15 | netsh wlan show profiles | 저장된 Wi-Fi 프로파일 확인 |
| 16 | netsh winsock reset | 소켓 초기화 (네트워크 오류 시 자주 사용) |
| 17 | ipconfig /release | july@example.com |
| 18 | net view | 현재 네트워크에서 공유된 컴퓨터 목록 확인 |
| 19 | net use | 네트워크 드라이브 연결 또는 해제 |
| 20 | net use Z: \\서버이름\공유폴더 | 네트워크 드라이브 연결 |
| 21 | net share | 공유 폴더 목록 확인 또는 공유 설정 |
| 22 | net session | 현재 컴퓨터에 접속한 사용자 확인 |
| 23 | tasklist /fi "imagename eq [이름]" | 특정 프로세스가 동작 중인지 확인 |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
interface fastethernet 0/0
ip address 192.168.0.254 255.255.255.0
no shutdown
interface serial 1/0
ip address 1.1.1.1 255.255.255.252
no shutdown
ip route 172.16.0.0 255.255.255.0 1.1.1.2
#R2
config t
interface fastethernet 0/0
ip address 172.16.0.254 255.255.255.0
no shutdown
interface serial 1/0
ip address 1.1.1.2 255.255.255.252
no shutdown
ip route 192.168.0.0 255.255.255.0 1.1.1.1
[R1한방설정(OSPF)]
config t
interface FastEthernet0/0
ip address 100.100.100.254 255.255.255.0
no shutdown
exit
interface Serial1/0
ip address 4.4.4.1 255.255.255.192
no shutdown
exit
router ospf 1
network 100.100.100.0 0.0.0.255 area 0
network 4.4.4.0 0.0.0.63 area 0
router-id 1.1.1.1
exit
ip dhcp excluded-address 100.100.100.1 100.100.100.254
ip dhcp pool hacker
network 100.100.100.0 255.255.255.0
default-router 100.100.100.254
dns-server 125.246.95.152
lease 1 0 0 !
exit
[R2한방설정(OSPF)]
config t
interface FastEthernet0/0
ip address 125.246.95.254 255.255.255.0
no shutdown
exit
interface Serial1/0
ip address 4.4.4.2 255.255.255.192
no shutdown
exit
router ospf 1
network 125.246.95.0 0.0.0.255 area 0
network 4.4.4.0 0.0.0.63 area 0
router-id 2.2.2.2
exit
3일차
리눅스 접속 : ssh network.izerone.co.kr
리눅스 명령어
| 번호 | 명령어 | 기능 |
|---|---|---|
| 1 | ls | 목록확인 |
| 2 | man ls | ls에 대한 설명 |
| 3 | cat 파일명 | 파일 내용 보기 |
| 4 | nano 파일명 | 파일 편집 |
| 5 | chmod | 권한설정 |
| 6 | useradd | 사용자추가 |
| 7 | free | 메모리확인 |
| 8 | fdisk | 파티션 나누기 |
| 9 | mkfs | 파일시스템만들기 |
| 10 | mount | 연결 |
| 11 | netstat | 네트워트 상태보기 |
| 12 | ip addr | 아이피 확인 |
| 13 | ping | ip 보내기 |
| 14 | pwd | 현재위치확인 |
| 15 | cd | 디렉토리 변경 |
| 16 | /etc/passwd | 수동 IP 주소 설정 |
| 17 | ps | 프로세스확인 |
| 18 | pstree | 프로세스나무확인 |
| 19 | getenforcce | |
| 18 | net view | 현재 네트워크에서 공유된 컴퓨터 목록 확인 |
| 19 | net use | 네트워크 드라이브 연결 또는 해제 |
| 20 | net use Z: \\서버이름\공유폴더 | 네트워크 드라이브 연결 |
| 21 | net share | 공유 폴더 목록 확인 또는 공유 설정 |
| 22 | net session | 현재 컴퓨터에 접속한 사용자 확인 |
| 23 | tasklist /fi "imagename eq [이름]" | 특정 프로세스가 동작 중인지 확인 |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
| 11 | ipconfig /release | july@example.com |
Linux 시스템에서 사용자가 내린 명령어를 Kernel에 전달해 주는 역할을 하는 것은?
① System Program
② Loader
③ Shell
④ Directory
[20250525_29]
Linux 디렉터리 구성에 대한 설명으로 옳지 않은 것은?
① /tmp - 임시파일이 저장되는 디렉터리
② /boot - 시스템이 부팅될 때 부팅 가능한 커널 이미지 파일을 담고 있는 디렉터리
③ /var - 시스템의 로그 파일과 메일이 저장되는 위치
④ /usr - 사용자 계정이 위치하는 파티션 위치
[20250525_30]
Linux에서 DNS의 SOA(Start Of Authority) 레코드에 대한 설명으로 옳지 않은 것은?
① Zone 파일은 항상 SOA로 시작한다.
② 해당 Zone에 대한 네임서버를 유지하기 위한 기본적인 자료가 저장된다.
③ Refresh는 주 서버와 보조 서버의 동기 주기를 설정한다.
④ TTL 값이 길면 DNS의 부하가 늘어난다.
[20250525_31]
Linux 시스템에서 모든 사용자에게 'sample' 파일의 쓰기 권한을 금지시키고자 할 때 명령어로 올바른 것은?
① chmod a-w sample
② chmod u-w sample
③ chmod g+rw sample
④ chmod a-r sample
[20250525_32]
Linux 시스템에 새로운 사용자를 등록하려고 한다. 유저 이 름은 ′network′로 하고, ′icqa′라는 기본 그룹에 편입시키는 명령은?
① useradd -g icqa network
② useradd -g network icqa
③ adduser -g network icqa
④ adduser -G icqa network
[20250525_33]
Linux 시스템에서 사용되고 있는 메모리 양과 사용 가능한 메모리 양, 공유 메모리와 가상 메모리에 대한 정보를 볼 수 있는 명령어는?
① mem
② free
③ du
④ cat
[20250525_41]
다음 중 Linux 시스템에서 새로운 하드디스크를 추가하고 사용할 수 있도록 설정하는 과정과 관계가 가장 적은 것은?
① fdisk
② mkfs
③ mount
④ cal
[20250525_42]
다음 중 Linux의 BIND 설치 및 운영 시 수행해야 할 업무로 적절하지 않은 것은?
① 방화벽에서 UDP의 53번 포트만 열면 된다.
② 방화벽 설정은 ′iptables′ 명령어를 통해 설정할 수 있다.
③ BIND 설치여부는 ′rpm -qa | grep bind′ 로 확인할 수
있다.
④ ′/etc/named.conf′ 파일의 오류를 체크하는 명령어는 ′ named-checkconf′ 이다.
[20250525_44]
사용자가 웹사이트에 접속했지만 다음과 같은 메시지가 출 력되었다. 이 오류 상황에 해당하는 HTTP 상태 코드는?
| Forbidden 이 요청은 서버에 의해 거부되었습니다. 사용자는 이 콘텐츠에 접근할 권한이 없습니다. |
② 200
③ 403
④ 203
[20250525_45]
Linux Apache 웹서버 httpd.conf 설정값 중 Directory Indexing 공격에 취약할 수 있는 옵션은?
① Options FollowSymLinks Indexes
② ServerAdmin : root@localhost
③ DocumentRoot : ′/var/www/html′
④ ServerRoot : ′/etc/httpd′
[20250223_31]
Linux 시스템에서 데몬(Daemon)에 관한 설명 중 옳지 않은 것은?
① 백그라운드(Background)로 실행된다.
② ′ps afx′ 명령어를 실행시켜 보면 데몬 프로그램의 활동을 확인할 수 있다.
③ 시스템 서비스를 지원하는 프로세스이다.
④ 시스템 부팅 때만 시작될 수 있다.
[20250223_32]
Linux에서 ′manager′라는 파일을, 파일의 소유자가 아닌 사람도 볼 수는 있지만 수정을 못하도록 하는 명령어는?
① chmod 777 manager
② chmod 666 manager
③ chmod 646 manager
④ chmod 644 manager
[20250223_33]
Linux에서 사용자가 현재 작업 중인 디렉터리의 경로를 절대경로 방식으로 보여주는 명령어는?
① cd
② man
③ pwd
④ cron
[20250223_34]
Linux에서 사용자가 현재 작업 중인 디렉터리의 경로를 절대경로 방식으로 보여주는 명령어는?
user1:x:500:500::/home/user1:/bin/bash
① 사용자 계정의 ID는 ′user1′ 이다.
② 패스워드는 ′x′ 이다.
③ 사용자의 UID와 GID는 500번이다.
④ 사용자의 기본 Shell은 ′/bin/bash′ 이다.
[20250223_37]
Linux에서 사용자가 현재 작업 중인 디렉터리의 경로를 절대경로 방식으로 보여주는 명령어는?
user1:x:500:500::/home/user1:/bin/bash
① 사용자 계정의 ID는 ′user1′ 이다.
② 패스워드는 ′x′ 이다.
③ 사용자의 UID와 GID는 500번이다.
④ 사용자의 기본 Shell은 ′/bin/bash′ 이다.
[20250223_37]
네트워크관리사 Kim 사원이 Linux 서버(하드웨어)의 HDD 증설을 위해 서버를 종료하기로 하였다. 이에 Linux 서버를 종료하기 위한 명령어가 아닌 것은?
① shutdown –h now
② poweroff
③ init 6
④ halt
[20250223_39]
Linux에서 열려있는 port 정보를 확인하는 명령어로 옳은 것은?
① ps
② pstree
③ getenforce
④ netstat
[20250223_39]
Linux Apache 웹 서버에서 사용자가 POST Request 메시지를 전송 시 일정 크기 이상 전송하지 못하도록 ′httpd.conf′ 파일에서 설정하는 지시자로 옳은 것은?
① KeepRequestSize
② LimitRequestBody
③ RestrictBodyRequest
④ PostRequestSize
[20250223_39]
Linux 시스템에서 사용자에게 할당되어 있는 디렉터리로, 사용자가 임의로 사용할 수 있는 디렉터리 영역은?
① Root Directory
② Home Directory
③ Temporary Directory
④ Public Directory
4일차
리눅스 접속 : ssh network.izerone.co.kr
서버 운영
sudo nano /etc/netplan/50-cloud-init.yaml
dhcp4:yes #addresses: ctrl+x > shift+y
sudo netplan apply
ip addr
10.0.2.15
nano /etc/resolv.conf
168.126.63.1
sudo apt -y update
sudo apt -y upgrade
su
password
sudo apt -y install lamp-server^
sudo apt -y install php8.3-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
sudo systemctl restart php8.3-fpm apache2
FTP연결하기
외부 ---> 공유기(공인IP) ---> NAT(192.168.219.1 / 포트포워딩) --> 리눅스서버
| 번호 | 이름 | IP | 도메인 | 상태 |
|---|---|---|---|---|
| 0 | 이성원 | 125.242.95.11 | 도메인 | 운영중 |
| 1 | 옥설우 | 39.114.136.251 | https://blog.srain.me/ | 성공 |
| 2 | 김영신 | 112.173.227.167 | 도메인 | 운영중 |
| 3 | 최태현 | 124.51.251.146 | 도메인 | |
| 4 | 최재민 | 211.37.87.60 | 도메인 | 성공 |
| 5 | 정하욱 | 221.153.197.70 | 도메인 | |
| 6 | 전승찬 | 125.188.103.180 | 도메인 | 운영중 |
5일차
윈도우 설치 및 실습
윈도우 설치 후 홈서버 구축 연습
6일차
윈도우 실습
7일차
윈도우 실습