Security

OS Security(์šด์˜์ฒด์ œ ๋ณด์•ˆ)

์šด์˜์ฒด์ œ ๋ณด์•ˆ(OS Security) ์€ ์•…์˜์ ์ธ ๊ณต๊ฒฉ, ๋ฌด๋‹จ ์ ‘๊ทผ, ๋ฐ์ดํ„ฐ ์œ ์ถœ ๋“ฑ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์‹œ์Šคํ…œ์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ๊ฐ€์šฉ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ํฌํ•จํ•จ.

ํ•ต์‹ฌ ๊ฐœ๋…

1. ์‚ฌ์šฉ์ž ๋ฐ ์ ‘๊ทผ ์ œ์–ด(User & Access Control)

  • Root ๊ณ„์ • ์ œํ•œ : root ๊ณ„์ •์œผ๋กœ ์ง์ ‘ ์ž‘์—…ํ•˜์ง€ ์•Š๊ณ  sudo ๋ฅผ ํ™•์šฉ

  • ๊ถŒํ•œ ์ตœ์†Œํ™”(Principle of Least Privilege, PoLP) : ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌ

  • ACL(Access Control List)ํ™œ์šฉ : ํŠน์ • ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œํ•œ์„ ์„ธ๋ถ„ํ™”

2. ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋ณด์•ˆ(FIle & Directory Security)

  • chmod, chown , umask ๋ฅผ ์‚ฌ์šฉํ•ด ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ๊ถŒํ•œ์„ ์ ์ ˆํ•˜๊ฒŒ ์„ค์ •

  • /etc/passwd , /etc/shadow ํŒŒ์ผ ๋ณดํ˜ธ : ์‚ฌ์šฉ์ž ๊ณ„์ • ์ •๋ณด ์œ ์ถœ ๋ฐฉ์ง€

  • ๋กœ๊ทธ ํŒŒ์ผ ์ ‘๊ทผ ์ œํ•œ(/var/log/ ๊ด€๋ฆฌ)

3. ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ(Network Security)

  • ๋ฐฉํ™”๋ฒฝ ์„ค์ • : iptables, firewalld, ufw ๋“ฑ์„ ์‚ฌ์šฉํ•ด ํŠน์ • ํฌํŠธ ์ฐจ๋‹จ ๋ฐ ํ—ˆ์šฉ

  • SSH ๋ณด์•ˆ ๊ฐ•ํ™” :

    • ๊ธฐ๋ณธ ํฌํŠธ(22) ๋ณ€๊ฒฝ(/etc/ssh/sshd_config )

    • ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ ๋Œ€์‹  SSH Key ์ธ์ฆ ์‚ฌ์šฉ

    • Fail2Ban ์œผ๋กœ SSH ๊ณต๊ฒฉ ๋ฐฉ์ง€

  • VPN ๋ฐ SSH ํ„ฐ๋„๋ง ํ™œ์šฉํ•ด ๋ณด์•ˆ ๊ฐ•ํ™”

4. ํ”„๋กœ์„ธ์Šค ๋ฐ ์„œ๋น„์Šค ๋ณด์•ˆ(Process & Service Security)

  • ๋ถˆํ•„์š”ํ•œ ์„œ๋น„์Šค ๋น„ํ™œ์„ฑํ™” : systemctl disable ์„œ๋น„์Šค๋ช…

  • ๋ฆฌ์†Œ์Šค ์ œํ•œ ์„ค์ • : ulimit ์„ ํ™œ์šฉํ•ด ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ์ž์› ์‚ฌ์šฉ ์ œํ•œ

  • ์ปจํ…Œ์ด๋„ˆ ๋ณด์•ˆ : Docker, Kubernates ํ™˜๊ฒฝ์—์„œ ๋„คํŠธ์›Œํฌ ๋ฐ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ ๊ถŒํ•œ ์ œํ•œ

5. ๋กœ๊ทธ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง(Logging & Monitoring)

  • syslog , journald , auditd ํ™œ์šฉํ•ด ์‹œ์Šคํ…œ ๋กœ๊ทธ ๊ด€๋ฆฌ

  • ์นจ์ž… ํƒ์ง€ ์‹œ์Šคํ…œ(IDS) : OSSEC , Snort ๋“ฑ ํ™œ์šฉ

  • ๋กœ๊ทธ ๋ถ„์„ ๋ฐ ์•Œ๋ฆผ : Graylog , ELK ํ™œ์šฉ

6. ํŒจ์น˜ ๋ฐ ์—…๋ฐ์ดํŠธ ๊ด€๋ฆฌ(Patch & Upadte Management)

  • ๋ณด์•ˆ ํŒจ์น˜ ์ ์šฉ : apt update && apt upgrade ๋˜๋Š” yum update

  • ์ปค๋„ ์—…๋ฐ์ดํŠธ(kexec ํ™œ์šฉํ•ด ๋น ๋ฅธ ์ ์šฉ)

  • ์ž๋™ ์—…๋ฐ์ดํŠธ ์ •์ฑ… ์„ค์ •(unattended-upgrades ํ™œ์šฉ ๊ฐ€๋Šฅ)

7. ์•…์„ฑ์ฝ”๋“œ ๋ฐ ์ทจ์•ฝ์  ์Šค์บ๋‹

  • ํŒŒ์ผ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ : tripwire , AIDE

  • ๋ฐฑ๋„์–ด ํƒ์ง€ : rkhunter, chkrootkit

  • ์ทจ์•ฝ์  ์Šค์บ๋‹ ๋„๊ตฌ : Lynis , OpenVAS , Nessus


์ ์šฉ ๋ฐฉ๋ฒ•

1. SSH ๋ณด์•ˆ ๊ฐ•ํ™”

sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo systemctl restart sshd

2. ๋ฐฉํ™”๋ฒฝ ์„ค์ •(UFW)

sudo ufw enbale

# SSH(2222 port)๋งŒ ํ—ˆ์šฉ
sudo ufw allow 2222/tcp

# ํŠน์ • IP ๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ
sudo ufw allow from 192.168.1.10 to any port 2222

3. ๋ถˆํ•„์š”ํ•œ ์„œ๋น„์Šค ์ค‘์ง€

sudo systemctl list-units --type=service --start=running

# ๋ถˆํ•„์š”ํ•œ ์„œ๋น„์Šค ๋น„ํ™œ์„ฑํ™” (์˜ˆ : FTP)
sudo systemctl disable vsftpd

4. ๋กœ๊ทธ ๋ถ„์„ ์ž๋™ํ™”

# ํŠน์ • ๋กœ๊ทธ ํŒŒ์ผ์—์„œ ์ด์ƒ ์ง•ํ›„ ์ฐพ๊ธฐ(์˜ˆ : SSH ์‹คํŒจ ๋กœ๊ทธ)
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head

Last updated

Was this helpful?