커리큘럼 > 네트워크
네트워크
1.
Telnet설정하기
enable
configure terminal
hostname Router7200
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
no shutdown
exit
enable secret p@ssw0rd!@123
line vty 0 4
password p@ssw0rd!@123
login
transport input telnet
exit
copy running-config startup-config
ip domain-name VICTIM.kr
username admin privilege 15 secret p@ssw0rd!@123
enable secret p@ssw0rd!@123
crypto key generate rsa
2048
ip ssh version 2
line vty 0 4
login local
transport input ssh
exec-timeout 10 0
exit
line vty 0 4
login local
transport input telnet ssh
2.
ACL적용방법
Standard ACL, Extended ACL, Named ACL
Standard ACL : 출발지IP만
Extended ACL : 출발지,목적지,프로토콜,포트
Named ACL : Source,Destination,Port모두
예제
125.246.95.152만 Telnet 가능
access-list 10 permit 125.246.95.152
access-list 10 deny any
100.100.100.1 차단
access-list 10 deny 100.100.100.1
access-list 10 permit any
적용
interface FastEthernet0/0
ip access-group 10 in
interface FastEthernet0/0
ip access-group 10 in
특정 네트워크 허용
access-list 10 permit 100.100.100.0 0.0.0.255
Extended ACL로 SSH만 허용
access-list 100 permit tcp any any eq 22
access-list 100 deny ip any any
interface FastEthernet0/0
ip access-group 100 in
HTTP만 허용
access-list 100 permit tcp any any eq 80
access-list 100 deny ip any any
HTTPS만 허용
access-list 100 permit tcp any any eq 443
access-list 100 deny ip any any
ICMP차단
access-list 100 deny icmp any any
access-list 100 permit ip any any
특정 서버만 SSH허용
access-list 100 permit tcp host 192.168.1.10 host 10.10.10.10 eq 22
access-list 100 deny tcp any host 10.10.10.10 eq 22
access-list 100 permit ip any any
관리자PC에서만 SSH허용
관리자 PC : 192.168.0.1
access-list 10 permit host 192.168.0.1
line vty 0 4
access-class 10 in
login local
transport input ssh
Named ACL
ip access-list extended BLOCK_ATTACK
deny ip host 200.200.200.1 any
deny ip host 210.210.210.10 any
permit ip any any
interface FastEthernet0/0
ip access-group BLOCK_ATTACK in
ACL확인
show access-lists
show ip access-lists
인터페이스 적용 확인
show ip interface FastEthernet0/0
ACL삭제
no access-list 100
interface FastEthernet0/0
no ip access-group 100 in
3.
기본 보안 설정
enable
configure terminal
hostname VICTIM
enable secret p@ssw0rd!@123
username admin privilege 15 secret p@ssw0rd!@123
line console 0
login local
exec-timeout 5 0
logging synchronous
exit
ip domain-name VICTIM.KR
crypto key generate rsa
2048
ip ssh version 2
line vty 0 4
login local
transport input ssh
exec-timeout 5 0
exit
service password-encryption
banner motd #
****************************************
Unauthorized Access Prohibited
All access is monitored.
****************************************
login block-for 120 attempts 3 within 60
60초 동안 로그인 3회 실패 120초 차단
login on-success log
login on-failure log
interface FastEthernet0/1
shutdown
description UNUSED
ICMP 제한
access-list 100 deny icmp any any echo
access-list 100 permit ip any any
interface FastEthernet0/0
ip access-group 100 in
차단할 항목
no ip source-route
interface FastEthernet0/0
no ip proxy-arp
interface FastEthernet0/0
no ip directed-broadcast
no cdp run
interface FastEthernet0/0
no cdp enable
no ip http server
no ip http secure-server
Syslog서버 설정
logging host 192.168.1.100
logging trap informational
service timestamps log datetime msec
ntp server 192.168.1.200
보안설정확인
show running-config
show ip ssh
show access-lists
show users
show login
show logging
show version
4.
한방설정 예시 본인 환경에 맞춰 변경하세요!
hostname Router7200
enable secret C1sco@123
service password-encryption
username admin privilege 15 secret Adm1n@123
ip domain-name lab.local
crypto key generate rsa
2048
ip ssh version 2
login block-for 120 attempts 3 within 60
login on-success log
login on-failure log
no ip http server
no ip http secure-server
no ip source-route
banner motd #
Unauthorized Access Prohibited
#
line console 0
login local
exec-timeout 5 0
logging synchronous
line vty 0 4
login local
transport input ssh
exec-timeout 5 0
logging host 192.168.1.100
ntp server 192.168.1.200
5.
스위치보안
사용하지 않는 포트 shutdown
interface range FastEthernet0/10 - 24
shutdown
description UNUSED PORT
Port Security
interface FastEthernet0/1
switchport mode access
switchport port-security
switchport port-security maximum 1
switchport port-security violation shutdown
switchport port-security mac-address sticky
show port-security
show port-security interface fa0/1
DHCP Snooping
DHCP Snooping은 Cisco 스위치에서 제공하는 보안 기능으로, 허가되지 않은 DHCP 서버(Rogue DHCP Server)를 차단하고 DHCP 관련 공격을 방어하는 기능
DHCP Snooping은 특히 다음과 같은 환경에서 매우 유용
학교 실습실: 학생이 임의로 DHCP 서버를 실행하는 것을 방지
기업 사무실: 무단 공유기나 노트북 DHCP 서버 연결 방지
공공기관 및 연구실: 내부 네트워크의 IP 할당 무결성 보장
대규모 캠퍼스 네트워크: DAI, IP Source Guard와 연계하여 2계층 보안 강화
Gi0/1
ip dhcp snooping
ip dhcp snooping vlan 10
interface FastEthernet0/2
ip dhcp snooping limit rate 20'
Dynamic ARP Inspection(DAI)
ip arp inspection vlan 10
BPDU Guard
spanning-tree portfast default
spanning-tree portfast bpduguard default
Root Guard
interface FastEthernet0/2
spanning-tree guard root
Broadcast 공격 방지
interface FastEthernet0/2
storm-control broadcast level 10
storm-control multicast level 10
storm-control action shutdown
보안설정확인
show running-config
show interfaces status
show port-security
show mac address-table
show spanning-tree
show ip dhcp snooping
show ip arp inspection
show logging
show users
6.
IP충돌시 PC찾는 방법
192.168.0.1이 발생했을 경우
show ip arp 192.168.0.1
Protocol Address Age Hardware Addr Type Interface
Internet 192.168.0.1 15 0011.2233.4455 ARPA Vlan10
show mac address-table address 0011.2233.4455
Mac Address Table
Vlan Mac Address Type Ports
10 0011.2233.4455 DYNAMIC Fa0/18
show interface fa0/18
show ip device tracking all
show logging
7.
nmap을 이용한 보안점검
nmap -sn 125.246.95.0/24
nmap -sS 125.246.95.152
nmap -Pn 125.246.95.152
nmap -sV 125.246.95.152
sudo nmap -O 125.246.95.152
nmap -sC 125.246.95.152
sudo nmap -A 125.246.95.152
nmap -p- 125.246.95.152
sudo nmap -sU 125.246.95.152
nmap --script vuln 125.246.95.152
nmap -oX result.xml 125.246.95.152
점검 후 반드시 확인할 항목
불필요한 서비스가 열려 있는가?
최신 버전인가?
예상한 OS와 일치하는가?
오래된 버전이나 약한 설정은 없는가?
Apache/Nginx 버전이 최신인가?
외부에 노출되어 있지 않은가?
SMBv1 등 오래된 프로토콜이 활성화되어 있지 않은가?
기본 Community String을 사용하는가?
오래된 프로토콜이나 약한 암호군을 사용하는가?
이 과정을 한번에 체크할 수 있는 파이썬 스크립트를 완성하라!
8.
서버기본보안설정
☑ 최신 보안 업데이트 적용
☑ Root SSH 로그인 비활성화
☑ SSH 공개키 인증 사용
☑ 강력한 비밀번호 정책 적용
☑ 로그인 실패 잠금 정책 적용
☑ 방화벽 활성화
☑ 불필요한 서비스 제거
☑ Fail2Ban 설치 및 동작 확인
☑ 로그 정상 수집 및 검토
☑ 파일 권한 점검
☑ SELinux/AppArmor 활성 상태 확인
☑ 정기 백업 및 복구 절차 검증
☑ Lynis 또는 유사 도구로 보안 점검 수행
0. 최신 보안 업데이트를 적용
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
1. 시스템 점검 명령어
who
w
last
lastb
uptime
free -h
df -h
ps aux
top
journalctl -p err
2. 자동 보안 업데이트
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
3.보안점검도구
sudo apt install lynis
sudo lynis audit system
4.시스템 무결성 검사
sudo apt install aide
sudo aideinit
sudo aide --check
5.백업
tar czvf backup_$(date +%F).tar.gz /etc 6.시간동기화
timedatectl sudo systemctl status systemd-timesyncd 7.포트확인
ss -tulnp
netstat -tulnp
8.cron 확인
crontab -l sudo ls /etc/cron.* 9.중요한 파일 권한
ls -l /etc/passwd ls -l /etc/shadow /etc/passwd 644 /etc/shadow 640 또는 600 10.파일 권한 확인
find / -perm -4000 -type f
find / -perm -2000 -type f
find / -perm -2 -type f
11. Fail2Ban설치
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo fail2ban-client status
12.로그확인
인증 로그
sudo tail -f /var/log/auth.log 시스템 로그
journalctl -xe 13.자동 시작 확인
systemctl list-unit-files --state=enabled
14.사용하지 않는 서비스 제거
systemctl list-unit-files --type=service
sudo systemctl disable 서비스명
sudo systemctl stop 서비스명
15.방화벽 설정
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable
16.불필요한 계정 확인
cat /etc/passwd
grep "/bin/bash" /etc/passwd
sudo passwd -l username
17.계정잠금정책
sudo vi /etc/pam.d/common-auth
auth required pam_faillock.so preauth deny=5 unlock_time=600
auth sufficient pam_unix.so
auth [default=die] pam_faillock.so authfail deny=5 unlock_time=600
18.비밀번호 정책강화
sudo apt install libpam-pwquality
sudo vi /etc/security/pwquality.conf
minlen = 12
minclass = 3
maxrepeat = 3
retry = 3
19.sudo 사용
sudo adduser admin
sudo usermod -aG sudo admin
20.SSH 공개키 인증 사용
ssh-keygen -t ed25519
ssh-copy-id user@server
21. SSH보안강화
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 30
X11Forwarding no
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
22.Root 직접 로그인 금지
sudo vi /etc/ssh/sshd_config
PermitRootLogin no
sudo systemctl restart ssh
미션1
점검을 자동화해서 메일로 보내는 스크립트를 만들어라!
미션2
tcp 0 0 10.10.10.20:40594 47.86.197.116:13333 ESTABLISHED 1225/syst3md 를 분석하는 방법 찾기
ps -fp 1225
UID PID PPID C STIME TTY TIME CMD master 1225 1 99 Jul14 ? 06:03:38 /home/master/..o/.Documents/.sync.ffs_db/syst3md
readlink -f /proc/1225/exe
/home/master/..o/.Documents/.sync.ffs_db/syst3md
sudo ufw deny out to 47.86.197.116
sudo iptables -A OUTPUT -d 47.86.197.116 -j DROP
sudo iptables -A INPUT -s 47.86.197.116 -j DROP
sudo kill 1225
sudo kill -9 1225
systemctl list-unit-files | grep syst3md
crontab -l
sudo ls -al /etc/cron*
find / -name "syst3md*" 2>/dev/null
sha256sum /경로/syst3md
ss -tulnp
sudo rm -f /경로/syst3md
systemctl status syst3md journalctl -u syst3md
sudo iptables -A OUTPUT -d 47.86.197.116 -j DROP
sudo kill -9 1225
systemctl disable syst3md
systemctl stop syst3md
ps aux | grep syst3md
sha256sum /proc/1225/exe
file /proc/1225/exe
strings /proc/1225/exe | head
패킷 수집방법
sudo tcpdump -i any host 47.86.197.116 -nn -s0 -w syst3md.pcap
sudo tcpdump -i any host 47.86.197.116 and port 13333 -nn -s0 -w syst3md.pcap
sudo tcpdump -i any 'host 47.86.197.116 and (port 13333 or port 40594)' -nn -s0 -w syst3md.pcap
watch -n1 'ss -antp | grep 1225'
sudo lsof -i -P -n | grep 1225
sudo tcpdump -i any host 47.86.197.116 -w attack.pcap
포렌식 관점에서 추천하는 수집 순서
ps -fp 1225 > ps.txt
readlink -f /proc/1225/exe > exe_path.txt
cat /proc/1225/maps > maps.txt
lsof -p 1225 > lsof.txt
ss -antp > ss.txt
sudo tcpdump -i any host 47.86.197.116 -s0 -w attack.pcap
sha256sum /proc/1225/exe > hash.txt
sudo apt update sudo apt install bpfcc-tools linux-headers-$(uname -r) sudo tcplife sudo tcpdump -i any \ 'host 47.86.197.116 and port 13333' \ -s0 \ -w syst3md.pcap #!/bin/bash PID=1225 echo "[*] Process information" ps -fp "$PID" echo "[*] Current TCP connections" ss -ntp | grep "pid=$PID" echo echo "Run tcpdump with the remote IP/port shown above."