์ƒˆ์†Œ์‹

๐Ÿณ 42 SEOUL

Born2beroot

  • -

 

 

Project Overview

 

#Signature.txt (sha1sum)

(๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” sha1sum , ๋งฅ(์œ ๋‹‰์Šค)์—์„œ๋Š” shasum์ด๋‹ค.)

์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€ ํ˜น์€ CD / DVD ํŒŒ์ผ์„ ๊ณต์œ ํ• ๋•Œ, shasum ํŒŒ์ผ์„ ํ•จ๊ป˜ ๋ฐฐํฌ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. shasum ํŒŒ์ผ์€ ์›๋ณธ ํŒŒ์ผ๊ณผ ์ •ํ™•ํžˆ ๋™์ผํ•œ ํŒŒ์ผ์ธ์ง€ ํ™•์ธํ• ๋•Œ ์ฒดํฌ๋˜๋Š” ํŒŒ์ผ์ด๋‹ค. ์ฒดํฌ์„ฌ(checksum)์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋‹ค. (160bit)

  • ์ฒดํฌ์„ฌ(checksum) : ์ค‘๋ณต ๊ฒ€์‚ฌ์˜ ํ•œ ํ˜•ํƒœ๋กœ, ๊ณต๊ฐ„์ด๋‚˜ ์‹œ๊ฐ„์†์—์„œ ์†ก์‹ ๋œ ์ž๋ฃŒ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณดํ˜ธํ•˜๋Š” ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์ฆ‰, Born2beroot ํ”„๋กœ์ ํŠธ๋ฅผ ์ œ์ถœํ• ๋•Œ์˜ ์‹œ์ ์˜ ๊ฐ€์ƒ๋จธ์‹ ๊ณผ, ๋™๋ฃŒํ‰๊ฐ€๋ฅผ ๋ฐ›์„๋•Œ์˜ ๊ฐ€์ƒ๋จธ์‹ ์ด ์ •ํ™•ํžˆ ๋™์ผํ•œ ํŒŒ์ผ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ shasum์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋ฅผ signature.txt์— ๋‹ด์•„ ์ œ์ถœํ•˜๊ฒŒ๋œ๋‹ค.

 

#๊ฐ€์ƒ๋จธ์‹ (Vritual machine)์€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ํ•„์š”ํ• ๊นŒ?

์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋งฅ๋ถ์€ ํ˜ธ์ŠคํŠธ์ด๋‹ค. ๋‚ด๋ถ€์—๋Š” ๋งฅ ์šด์˜์ฒด์ œ๊ฐ€ ์žˆ๋‹ค. ๋งŒ์•ฝ ๊ณผ์ œ์ฒ˜๋Ÿผ CentOS ํ˜น์€ Debian์ด๋ผ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด ๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€์ด๋‹ค.

  1. ์ƒˆ๋กœ์šด ๊ธฐ๊ธฐ๋ฅผ ๊ตฌ๋งคํ•˜์—ฌ ํ•„์š”ํ•œ OS๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ๊ฐ€์ƒ ๋จธ์‹ ๋ณด๋‹ค ํšจ์œจ์„ฑ, ์„ฑ๋Šฅ์ด ๋†’์„๊ฒƒ์ด๋‹ค.
  2. ๊ฐ€์ƒ๋จธ์‹ ์„ ํ™œ์šฉํ•˜์—ฌ ํ˜„์žฌ ์žˆ๋Š” ๋งฅ๋ถ์— ๊ฐ€์ƒํ™”๋œ ์šด์˜์ฒด์ œ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์ƒˆ๋กœ์šด ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ตฌ๋งคํ•˜๋Š”๊ฒƒ๋ณด๋‹ค ๊ฒฝ์ œ์ ์œผ๋กœ ํšจ์œจ์ ์ด๋‹ค. (๋ฌผ๋ฆฌ์  ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝ)
    • VM์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์™„์ „ํžˆ ์ƒˆ๋กœ ํ”„๋กœ๋น„์ €๋‹ ํ•˜๋Š”๊ฒƒ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๋‹ค.
    ์ฆ‰, ๊ฐ€์ƒ ๋จธ์‹ ์€ ๋ฌผ๋ฆฌ์  ์ปดํ“จํ„ฐ์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ปดํ“จํ„ฐ์ด๋‹ค. ์›๋ž˜ ์‚ฌ์šฉํ•˜๋˜ OS์™€๋Š” ๋ณ„๋„๋กœ ์ƒˆ๋กœ์šด ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑ๋œ ๊ฐ€์ƒํ™˜๊ฒฝ์€ sandboxํ™” ๋˜๋ฏ€๋กœ, ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ๋ฅผ ๋ณ€์กฐํ•  ์ˆ˜ ์—†๋‹ค.
  • ํ•˜์ดํผ๋ฐ”์ด์ €(hypervisor) : ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ตฌ๋™ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งํ•œ๋‹ค. ํ•˜์ดํผ ๋ฐ”์ด์ €๊ฐ€ CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฒŒ์ŠคํŠธ(๊ฐ€์ƒ ๋จธ์‹ )์— ํ• ๋‹นํ•˜์—ฌ VM ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•ด์ค€๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฒŒ์ŠคํŠธ OS๋“ค์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • ํ”„๋กœ๋น„์ €๋‹(provisioning) : ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋งž๊ฒŒ ์‹œ์Šคํ…œ ์ž์›์„ ํ• ๋‹น, ๋ฐฐ์น˜, ๋ฐฐํฌํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ํ•„์š” ์‹œ ์‹œ์Šคํ…œ์„ ์ฆ‰์‹œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“œ๋Š”๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

 

#Debian vs CentOS

๋ฐ๋น„์•ˆ๊ณผ ์„ผํ† ์Šค ๋ชจ๋‘ ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์€ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ + ์ž์œ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ตฌ์„ฑ๋œ ์œ ๋‹‰์Šค ๊ณ„์—ด์˜ ์šด์˜์ฒด์ œ๋ฅผ ๋งํ•œ๋‹ค.

  • ๋ฆฌ๋ˆ…์Šค ์ปค๋„ (linux kernel) : ์ปค๋„์˜ ๋œป์€ ๊ป์งˆ ์† ์•Œ๋งน์ด๋‹ค. ์ฆ‰, ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์— ์œ„์น˜ํ•˜๋ฉฐ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์™€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž‡๋Š” ํ•ต์‹ฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งํ•œ๋‹ค. ์ฃผ์š” ๊ธฐ๋Šฅ์œผ๋กœ๋Š” 4๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, (1) ๋ฉ”๋ชจ๋ฆฌ๊ด€๋ฆฌ , (2) ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ (3) ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ ๊ด€๋ฆฌ (4) ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋ฐ ๋ณด์•ˆ ์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ ๋ฐ๋น„์•ˆ๊ณผ ์„ผํ† ์Šค๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์ด๋ผ๋Š” ๊ณตํ†ต์ ์„ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ฐจ์ด์ ์€ ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ๋ถ€๋ถ„์ธ๋ฐ, ํŒจํ‚ค์ง€ ํฌ๋งท, ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ํˆด ๋“ฑ์ด ์ฐจ์ด์ ์— ํ•ด๋‹น๋œ๋‹ค.
$ cat /etc/os-release # os-release

 

 

Debian

  • ๋ฐ๋น„์•ˆ์€ ์™„์ „ํ•œ ์ž์œ  ์šด์˜์ฒด์ œ์ด๋ฉฐ, ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์˜ํ•ด์„œ ๊ฐœ๋ฐœ๋˜๊ณ  ๋””๋ฒ„๊น…๋œ๋‹ค.
  • ๊ฐœ์ธ์šฉ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค.
  • ์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค์˜ ๊ธฐ๋ฐ˜
  • 2๋…„๋งˆ๋‹ค ๋ฆด๋ฆฌ์ฆˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์•ˆ์ •ํ™” ๋ฐ ๋””๋ฒ„๊น… ์ž‘์—…์— ์‹œ๊ฐ„์ด ์ถฉ๋ถ„ํ•˜๋‹ค.
  • https://www.debian.org/index.ko.html
  • ํŒจํ‚ค์ง€ ํฌ๋งท : DEB ํŒจํ‚ค์ง€ (deb๋ผ๋Š” ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ปดํŒŒ์ผ์ด ์™„๋ฃŒ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ + ํŒŒ์ผ ์ •๋ณด๋ฅผ ์˜๋ฏธํ•œ๋‹ค.)
  • ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ํˆด : apt, dpkg, aptitude

 

 

CentOS

  • ๊ธฐ์—…์šฉ(๋ฐ์Šคํฌํƒ‘/์„œ๋ฒ„)์ด๋‹ค.
  • RHEL(Red Hat Enterprise Linux)๋ฅผ ๋˜‘๊ฐ™์ด ์นดํ”ผํ•˜์—ฌ ๋ฐฐํฌ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ RHEL ๋ณด๋‹ค ์ด์Šˆ ํ•ด๊ฒฐ์ด ๋Š๋ฆฌ๋‹ค. ์•ˆ์ •ํ™” ์ž‘์—…, ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋Š๋ฆฌ๋‹ค
  • https://www.centos.org/
  • ํŒจํ‚ค์ง€ ํฌ๋งท : RPM
  • ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ํˆด : YUM/DNF

 

 

#Package Managing Tool (Apt vs Aptitude)

 

์†Œํ”„ํŠธ์›จ์–ด(ํŒจํ‚ค์ง€)์˜ ์„ค์น˜, ์ œ๊ฑฐ, ์—…๋ฐ์ดํŠธ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํˆด์„ ๋งํ•œ๋‹ค. ๋ฐ๋น„์•ˆ์—์„œ๋Š” ์‚ฌ์šฉ๋˜๋Š” ํˆด์€ Apt์™€ Aptitude, dpkg๊ฐ€ ์žˆ๋‹ค.

 

Apt (Advanced Packaging Tool)

$ sudo apt-get install <package name>
  • ์˜จ๋ผ์ธ ์ €์žฅ์†Œ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋ฐ›์•„ ์„ค์น˜ํ•˜๋ฉฐ ์ž๋™์œผ๋กœ ์˜์กด์„ฑ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค. ์„ค์น˜, ์ œ๊ฑฐ, ์—…๋ฐ์ดํŠธ๋Š” Apt๋‹จ๋…์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๋””์Šคํฌ ๋‚ด๋ถ€์— ์ €์žฅ๋œ debํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์ฒดํฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์งˆ์ ์œผ๋กœ dpkg์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ ํŠน์ • ํŒŒ์ผ์ด ์–ด๋–ค ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜๋Š”์ง€ ํ™•์ธ ํ• ๋•Œ๋„ dpkg๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

Aptitude

$ sudo aptitude install <pakage name>
  • ํŒจํ‚ค์ง€ ์ž‘์—… ๊ณผ์ •์ด Apt๋ณด๋‹ค ๋” ์ž๋™ํ™” ๋˜์–ด์žˆ๋‹ค. (๋” ์ƒ์œ„ ์ˆ˜์ค€์˜ ํˆด์ด๋‹ค.)
  • ๋Œ€ํ™”ํ˜• ์ธํ„ฐํŽ˜์ด์Šค, ๋น„ ๋Œ€ํ™”ํ˜•(command line interface)์„ ๋ชจ๋‘ ์ œ๊ณตํ•œ๋‹ค.
  • ๋Œ€๋ถ€๋ถ„์˜ apt-get ๊ตฌ๋ฌธ์ด ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜์–ด Aptitude๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์กŒ๋‹ค. (๋งŽ์€ ๋ช…๋ น์–ด์—์„œ apt-get๋งŒ aptitude๋กœ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค๋Š” ์˜๋ฏธ)
  • ํ˜„์žฌ๋Š” ์•„์ง ์ž๋ฃŒ๋“ค์ด apt-get์„ ์‚ฌ์šฉํ•œ ์ •๋ณด๋“ค์ด ๋งŽ์•„ apt๊ฐ€ ๋” ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

 

 

#AppArmor

  • ๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ๋ณด์•ˆ๋ชจ๋“ˆ์ด๋‹ค.
  • ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœํ•„ ๋ณ„๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์—ญ๋Ÿ‰์„ ์ œํ•œํ•˜๋„๋ก ํ•ด์ค€๋‹ค.
  • ํ”„๋กœํ•„๋“ค์€ ๋„คํŠธ์›Œํฌ ์—‘์„ธ์Šค, raw ์†Œ์ผ“ ์—‘์„ธ์Šค, ํŒŒ์ผ์˜ crud ๋“ฑ์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Enforce mode : ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์— ์ ‘๊ทผ์„ ๊ฑฐ๋ถ€ํ•œ๋‹ค.
  • Complain mode : ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ํ–‰๋™์„ ํ•˜๋ฉด ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธด๋‹ค.
$ aa-enabled # ํ˜„์žฌ ํ™œ์„ฑํ™” ์—ฌ๋ถ€ ํ™•์ธ
$ sudo aa-status # enforced/ complain ๋ชจ๋“œ ํ™•์ธ
$ pa auxZ | grep -v '^unconfined' # ์ ‘๊ทผ ์ œํ•œ๋œ ์‹คํ–‰ํŒŒ์ผ ํ™•์ธ

%๋™๋ฃŒํ‰๊ฐ€๋ฅผ ๋ฐ›์„๋•Œ AppAromor๋Š” ์‹คํ–‰์ค‘์ด์–ด์•ผ ํ•œ๋‹ค.%

 

 

#์œ ์ €์˜ ๊ถŒํ•œ๊ณผ ๊ทธ๋ฃน , Sudo , Su

๋ฆฌ๋ˆ…์Šค ๊ณ„์—ด์˜ ์šด์˜์ฒด์ œ์—์„œ๋Š” ํŠน์ • ๋‹จ๊ณ„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด root ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋•Œ root ๊ณ„์ •์ด ์•„๋‹Œ ์ผ๋ฐ˜ ์œ ์ €๋กœ ๋กœ๊ทธ์ธ ๋˜์–ด์žˆ๋‹ค๋ฉด su ํ˜น์€ sudo ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Su (Switch user) vs Sudo

ํ˜„์žฌ ๋กœ๊ทธ์ธ ๋˜์–ด์žˆ๋Š” ๊ณ„์ •์„ ๋กœ๊ทธ์•„์›ƒํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ์ฆ‰, Su๋Š” ๊ณ„์ •์„ ๋ณ€ํ™”ํ•œ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ”๊ฟ€ ๊ณ„์ •์˜ Password๋ฅผ ์š”๊ตฌํ•œ๋‹ค.

Sudo๋Š” ํ•ด๋‹น ๋ช…๋ น์–ด์— ๋Œ€ํ•ด์„œ๋งŒ root ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š”๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž์˜ Password๋ฅผ ์š”๊ตฌํ•œ๋‹ค.

 

 

#Sudoer ์„ค์ • (/etc/sudoers.tmp)

$ sudo visudo # sudoers ํŒŒ์ผ ์—‘์„ธ์Šค
```
# User privilege specification
root    ALL=(ALL:ALL) ALL
user01  ALL=(ALL:ALL) ALL
# ์œ„์™€๊ฐ™์ด ์ˆ˜์ •ํ•ด๋†“์œผ๋ฉด user01๋„ sudo ๋ช…๋ น์–ด๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

Defaults    authfail_message="Authentication attempt failed."
# ๊ถŒํ•œํš๋“ ์‹คํŒจ์‹œ ๋ฉ”์‹œ์ง€
Defaults    badpass_message="Wrong password!"
# ๋น„๋ฐ€๋ฒˆํ˜ธ ํ‹€๋ ธ์„์‹œ ๋ฉ”์‹œ์ง€
Defaults    log_input
Defaults    log_output
# Sudo์™€ ํ•จ๊ป˜ ์“ฐ์ธ input, output์„ ๋กœ๊ทธ์— ๊ธฐ๋กํ•œ๋‹ค.
Defaults    requiretty # tty๋ฅผ ํ•„์ˆ˜๋กœ ์š”๊ตฌํ•œ๋‹ค. ์ฆ‰, ๋ฐ˜๋“œ์‹œ ์ฝ˜์†”(ํ„ฐ๋ฏธ๋„)์—์„œ sudo๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. (shell script์—์„œ๋Š” sudo ์‚ฌ์šฉ ๋ถˆ๊ฐ€)
Defaults    iolog_dir="/var/log/sudo/"
# input, ouput ๋กœ๊ทธ ์ €์žฅํ•  ๊ฒฝ๋กœ. 
# (๋ฏธ๋ฆฌ mkdir๋กœ ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ค์–ด๋†”์•ผํ•œ๋‹ค.)

 

 

#Sudo, User, Group ์„ค์ •

$ dpkg -l sudo # sudo ์„ค์น˜ ํ™•์ธ
$ id <user> # user์˜ ๊ทธ๋ฃน ํ™•์ธ

$ sudo useradd -g sudo <new user> # ์œ ์ € ์ƒ์„ฑ(์ถ”๊ฐ€) + sudo ๊ทธ๋ฃน์— ๋„ฃ๊ธฐ
$ passwd <user> # ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •


$ getent group sudo # sudo ๊ทธ๋ฃน์— ์†ํ•ด์žˆ๋Š”์ง€ ํ™•์ธ
$ groupadd <new group> # group ์ถ”๊ฐ€ํ•˜๊ธฐ
$ usermod -aG <group> <user> # user๋ฅผ group์— ํฌํ•จ์‹œํ‚ค๊ธฐ.
# G: ๋ช…๋ น์–ด์— ๋ช…์‹œํ•œ ๊ทธ๋ฃน๋“ค์—๋งŒ ์‚ฌ์šฉ์ž๋ฅผ ํฌํ•จ์‹œํ‚จ๋‹ค. ์ฆ‰, ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ์›๋ž˜ ์žˆ๋˜ ๊ทธ๋ฃน์—์„œ ๋น ์ง€๊ธฐ ๋•Œ๋ฌธ์— a :append์˜ต์…˜์„ ์ถ”๊ฐ€

$ cat /etc/group   # ๊ทธ๋ฃน ์กฐํšŒ

 

# ์œ ์ € ์ƒ์„ฑ

 

 

 

#UFW (Uncomplicated FireWall)

UFW๋Š” ๋ฐ๋น„์•ˆ ๊ณ„์—ด ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๋Š” ์ด๋ฆ„๋Œ€๋กœ "๋ณต์žกํ•˜์ง€ ์•Š์€" ๋ฐฉํ™”๋ฒฝ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ฐ„๋‹จํžˆ ๋ฉ”๋‰ด์–ผ์„ ๋ดค๋Š”๋ฐ ์„œ๋น„์Šค๋ช…(ex: SSH), IP ์ฃผ์†Œ, ํฌํŠธ ๋ฒˆํ˜ธ, Ping ์š”์ฒญ ๋“ฑ์„ ํ—ˆ์šฉ/๊ฑฐ๋ถ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

๋ณธ ๊ณผ์ œ์—์„œ๋Š” ๊ธฐ๋ณธ SSH ํฌํŠธ์ธ 22๋ฒˆ ํฌํŠธ๋ฅผ ๋‹ซ๊ณ , 4242๋ฒˆ ํฌํŠธ๋ฅผ ๊ฐœ๋ฐฉํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.

$ sudo apt install ufw # ์„ค์น˜
$ sudo ufw status verbose # ์ž‘๋™ ์ƒํƒœ ํ™•์ธ
$ sudo ufw enable # ๋ถ€ํŒ…์‹œ ufw ํ™œ์„ฑํ™”
$ sudo ufw allow 4242 # 4242 Port ๊ฐœ๋ฐฉ
$ sudo ufw default deny # ๊ธฐ๋ณธ ์ •์ฑ…์„ ์ฐจ๋‹จ
$ sudo ufw status numbered # ์ •์ฑ…๋“ค์— ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ ๋‚˜์—ดํ•˜์—ฌ ํ™•์ธ
$ sudo ufw delete <๊ทœ์น™๋ฒˆํ˜ธ> # ์ •์ฑ…๋ฒˆํ˜ธ๋กœ ์‚ญ์ œ

 

 

#SSH (Seucure Shell)

์›๊ฒฉ์ง€์—์„œ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์ด๋‹ค. 1995๋…„์— ๋‚˜์˜จ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ๊ธฐ๋ณธ ํฌํŠธ๋Š” 22๋ฒˆ์ด๋‹ค. ์ด๋ฆ„๋Œ€๋กœ Shell๋กœ ์›๊ฒฉ ์ ‘์†์„ ํ•˜๋Š”๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ‘์† ํ›„์—๋„ CLI(Command line interface)์—์„œ ์ž‘์—…์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ธฐ์กด์— ์‚ฌ์šฉ๋˜๋˜ Telnet, FTP๋“ฑ์€ ์•”ํ˜ธํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•„ ๊ณ„์ •์ •๋ณด ํƒˆ์ทจ์œ„ํ—˜์ด ๋†’์•˜์ง€๋งŒ, SSH๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ์˜ ์•”ํ˜ธํ™”๊ฐ€ ๋ณด์žฅ๋œ๋‹ค. 

Key๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ SSH key๋Š” public key, private key ๋‘๊ฐ€์ง€๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ๋น„๊ณต๊ฐœ ํ‚ค๋Š” ๋กœ์ปฌ ๋จธ์‹ (๊ฒŒ์ŠคํŠธ)์— ์œ„์น˜ํ•ด์•ผํ•˜๋ฉฐ, ๊ณต๊ฐœํ‚ค๋Š” ๋ฆฌ๋ชจํŠธ ๋จธ์‹ (ํ˜ธ์ŠคํŠธ)์— ์œ„์น˜ํ•ด์•ผํ•œ๋‹ค. SSH ์ ‘์†์„ ์‹œ๋„ํ•˜๋ฉด ๋กœ์ปฌ ๋จธ์‹ ์˜ ๋น„๊ณต๊ฐœํ‚ค์™€ ๋ฆฌ๋ชจํŠธ ๋จธ์‹ ์˜ ๋น„๊ณต๊ฐœํ‚ค๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ฒŒ๋œ๋‹ค.

$ apt search openssh-sever # ssh๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋Š”์ง€ ๊ฒ€์ƒ‰
$ systemctl status ssh # ssh status ํ™•์ธ
$ apt install openssh-server # ์„ค์น˜
$ apt sudo ufw allow 4242 # 4242Port๋ฅผ ๊ฐœ๋ฐฉ
$ sudo systemctl restart ssh # ssh ์žฌ์‹œ์ž‘

Guest SSH ์„ค์ •ํŒŒ์ผ : sshd_config

$ sudo nano /etc/ssh/sshd_config 
# ssh์„ค์ • ํŒŒ์ผ, Port 4242๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
  • PermitRootLogin no ๋กœ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ Root ๊ณ„์ •์œผ๋กœ sshํ†ต์‹ ์„ ๋ชปํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ณด์•ˆ์ƒ์˜ ์ด์œ )
  • ๊ฒŒ์ŠคํŠธ(Virtualbox์˜ ๊ฐ€์ƒ๋จธ์‹ ์€) ip์˜ ๊ธฐ๋ณธ๊ฐ’์€ 10.0.2.15์ด๋‹ค.
  • ํ˜ธ์ŠคํŠธ(iMac) ip๋Š” $ipconfig ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Virual box์—์„œ ๋ฐ๋น„์•ˆ - ์„ค์ • - ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๋กœ ๊ฐ€์„œ ํฌํŠธํฌ์›Œ๋”ฉ์„ ์„ค์ •ํ•ด์ฃผ๊ณ  ๋ฐ‘์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด SSH์—ฐ๊ฒฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. -> ์ฐธ๊ณ  ๊ธ€ : https://mrgamza.tistory.com/506

 

 

iMac (host)์—์„œ

imac$ ifconfig # host ip vboxnet0 ํ™•์ธ (๋ณดํ†ต ๊ฐ€์žฅ ๋ฐ‘์— ๋œฌ๋‹ค.)
imac$ ssh USER@<hostIP> -p 4242 
# USER๋กœ guest์— ์ ‘์†์‹œ๋„. ํฌํŠธ 4242

๋งŒ์•ฝ ์œ„์˜ ๊ฒฝ๊ณ ๋ฌธ๊ตฌ์™€ ํ•จ๊ป˜ ์ ‘์†์ด ์•ˆ๋œ๋‹ค๋ฉด ๋งฅ(host)์—์„œ

/Users/<๋””๋ ‰ํ† ๋ฆฌ>/.ssh/known_hosts ํŒŒ์ผ์—์„œ ssh-rsa ์ดํ›„๋ฅผ ์‚ญ์ œํ•ด์ฃผ๊ณ  ์žฌ์‹œ๋„ํ•˜๋ฉด ๋œ๋‹ค. ssh๊ฐ€ ์—ฐ๊ฒฐ๋ ๋•Œ ํ˜ธ์ŠคํŠธํ‚ค ๊ฒ€์ฆ์— ์‹คํŒจํ•œ๊ฑด๋ฐ ์ด๋ฏธ ์ƒ์„ฑ๋œ key๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒŒ์ŠคํŠธ์˜ ํ‚ค์™€ ๋งž์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ known_hostsํŒŒ์ผ์—์„œ ssh-rsa ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ถ€๋ถ„ ์ดํ›„๋ฅผ ์‚ญ์ œํ•ด์ฃผ๋ฉด ์žฌ์ƒ์„ฑํ•˜๋ฉด์„œ ์—ฐ๊ฒฐ์— ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

 

#Hostname & Partitions (LVM)

$ lsblk # ๋ธ”๋ก๋””์Šคํฌ ๊ตฌ์„ฑ ๋ชฉ๋ก
  • LVM : Logical Volume Manager
  • Logical Volume์„ ํšจ์œจ์ ์ด๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ปค๋„์˜ ํ•œ ๋ถ€๋ถ„์ด์ž ํ”„๋กœ๊ทธ๋žจ
  • ๊ธฐ์กด(์˜›๋‚ ) : ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋ธ”๋ก ์žฅ์น˜์— ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ์“ฐ๋Š” ๋ฐฉ์‹
  • LVM: ํŒŒ์ผ ์‹œ์Šคํ…œ์ด LVM์ด ๋งŒ๋“ค์–ด ๋†“์€ ๊ฐ€์ƒ์˜ ๋ธ”๋ก ์žฅ์น˜์— ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐฉ์‹.

LVM๊ณผ ํŒŒํ‹ฐ์…˜(์˜›๋‚  ๋ฐฉ์‹) ๋น„๊ต

์ฆ‰, ์˜›๋‚  ๋ฐฉ์‹์€ ๋ฌผ๋ฆฌ ๋””์Šคํฌ๋ฅผ ํŒŒํ‹ฐ์…˜์ด๋ผ๋Š” ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ณ , ์ด๋ฅผ OS์— ๋งˆ์šดํŠธ ํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์šดํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒํ‹ฐ์…˜์„ ์ผ์น˜์‹œ์ผœ์ฃผ์–ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์šดํŠธ๋œ ํŒŒํ‹ฐ์…˜์˜ ์šฉ๋Ÿ‰์ด ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์œผ๋กœ ์ฑ„์›Œ์กŒ๋‹ค๋ฉด ๋‹ค์Œ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

  • ์ถ”๊ฐ€ ๋””์Šคํฌ ์žฅ์ฐฉ
  • ์ถ”๊ฐ€ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜ ์ƒ์„ฑ ๋ฐ ํฌ๋งท
  • ์ƒˆ๋กœ์šด ๋งˆ์šดํŠธ ํฌ์ธํŠธ (/home2)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ถ”๊ฐ€ํ•œ ํŒŒํ‹ฐ์…˜๊ณผ ๋งˆ์šดํŠธ(์ผ์น˜ํ™”)
  • ๊ธฐ์กด home ๋ฐ์ดํ„ฐ๋ฅผ home2๋กœ ์ด๋™
  • ๊ธฐ์กด home ํŒŒํ‹ฐ์…˜์„ ์–ธ๋งˆ์šดํŠธ
  • home2๋ฅผ home์œผ๋กœ ๋งˆ์šดํŠธ

ํ•˜์ง€๋งŒ LVM์„ ํ†ตํ•ด ํŒŒํ‹ฐ์…˜ ๋Œ€์‹  ๋ณผ๋ฅจ์œผ๋กœ ์ €์žฅ ๋‹จ์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์œ„์˜ ๊ณผ์ •๋“ค์— ๋Œ€ํ•ด ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. LVM์„ ์‚ฌ์šฉํ•˜๋‹ค ์šฉ๋Ÿ‰์ด ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค๋ฉด ๋‹ค์Œ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

  • ์ถ”๊ฐ€ ๋””์Šคํฌ ์žฅ์ฐฉ
  • ์ถ”๊ฐ€ ๋””์Šคํฌ์— ํŒŒํ‹ฐ์…˜์„ ๋งŒ๋“ค์–ด PV(๋ฌผ๋ฆฌ ๋ณผ๋ฅจ) ์ƒ์„ฑ
  • PV๋ฅผ VG(๋ณผ๋ฅจ ๊ทธ๋ฃน)์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
  • /home์ด ์‚ฌ์šฉํ•˜๋Š” ๋…ผ๋ฆฌ ๋ณผ๋ฅจ์ธ lv_home์˜ ๋ณผ๋ฅจ ์‚ฌ์ด์ฆˆ๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

์ฆ‰, ํŒŒํ‹ฐ์…˜์€ ๊ณ ์ •์ ์ด๊ณ  ๋ฌผ๋ฆฌ์ ์ธ ๊ฐœ๋…์ด ๊ฐ•ํ•˜๊ณ , ํ•œ๋ฒˆ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋ณ€๊ฒฝ์ด๋‚˜ ์ถ”๊ฐ€ํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค. ๋ฐ˜๋ฉด LVM์„ ํ†ตํ•ด ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ์šด ๋””์Šคํฌ๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๋ณต์‚ฌํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š” ์—†๊ณ , ์„œ๋น„์Šค๊ฐ€ ๊ตฌ๋™์ค‘์ธ ์ƒํƒœ์—์„œ๋„ ์œ ๋™์ ์ด๊ณ , ์œ ์—ฐํ•˜๊ฒŒ ๋ณผ๋ฅจ์„ ํ™•์žฅ์‹œํ‚ฌ์ˆ˜ ์žˆ๋‹ค.

System hostname ๋Œ€ํ•œ ๋ช…๋ น์–ด

$ hostnamectl # hostname check
$ sudo hostnamectl set-hostname <์ƒˆ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„>


$ nano /etc/hosts 
$ nano /etc/hostname # ๋‘ ํŒŒ์ผ์—์„œ์˜ hostname์ด ์ผ์น˜ํ•ด์•ผ ์ถฉ๋Œ์ด ์—†๋‹ค.

#Password Policy

๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ทœ์น™์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ ์›น์‚ฌ์ดํŠธ ํšŒ์› ๊ฐ€์ž…์‹œ, "๋Œ€๋ฌธ์ž, ์ˆซ์ž, ์†Œ๋ฌธ์ž๋ฅผ 1๊ฐœ์”ฉ ํฌํ•จํ•œ 8์ž๋ฆฌ ์ด์ƒ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์„ค์ •ํ•˜์„ธ์š”" ๋ผ๋Š”๊ฒƒ๋“ค์ด ๊ทธ ์‚ฌ์ดํŠธ์˜ password policy์ด๋‹ค. ์ •์ฑ…์ด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•˜๋ฉด ๋ณด์•ˆ์— ์ทจ์•ฝํ•  ๊ฒƒ์ด๊ณ , ์ •์ฑ…์ด ๋„ˆ๋ฌด ๋ณต์žกํ•˜๋ฉด ์˜คํžˆ๋ ค ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฉ”๋ชจํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์œ ์ถœ์œ„ํ—˜์„ ๋ฐœ์ƒ์‹œํ‚ค๊ฑฐ๋‚˜, ํ˜น์€ ๋„ˆ๋ฌด ๋ณต์žกํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ถ„์‹คํ•˜๊ฒŒ ๋˜๋Š” ์—ญํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค.

๋ฐ๋น„์•ˆ์—์„œ๋Š” 2๊ฐ€์ง€ ํŒŒ์ผ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

login.defs

$ sudo nano /etc/login.defs

### ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ • 
PASS_MAX_DAYS 30 # 30์ผ ํ›„ ๋งŒ๋ฃŒ
PASS_MIN_DAYS 2  # ์ตœ์†Œ ์‚ฌ์šฉ๊ธฐ๊ฐ„ 2์ผ
PASS_WARN_AGE 7  # 7์ผ์ „์— ๊ฒฝ๊ณ  ๋ณด๋‚ด๊ธฐ
PASS_MIN_LEN 10  # ์ตœ์†Œ 10๊ธ€์ž ์ด์ƒ

libpam-pwquality : ํŒจ์Šค์›Œ๋“œ ์œ ํšจ์„ฑ ์ œํ•œ ํŒจํ‚ค์ง€

$ sudo apt install libpam-pwquality # ํŒจํ‚ค์ง€ ์„ค์น˜
$ sudo nano /etc/pam.d/common-password # ์ด ํŒŒ์ผ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ… ์ˆ˜์ •

### common-passwrod ํŒŒ์ผ ์ˆ˜์ •
retry = 3 # ์•”ํ˜ธ ์žฌ์ž…๋ ฅ์€ ์ตœ๋Œ€ 3ํšŒ๊นŒ์ง€
minlen = 10 # ์ตœ์†Œ ๊ธธ์ด 10
difok = 7 # ๊ธฐ์กด ํŒจ์Šค์›Œ๋“œ์™€ ๋‹ฌ๋ผ์•ผ ํ•˜๋Š” ๋ฌธ์ž ์ˆ˜ 7
ucredit = -1 # ๋Œ€๋ฌธ์ž ํ•œ๊ฐœ ์ด์ƒ ํฌํ•จ
lcredit = -1 # ์†Œ๋ฌธ์ž ํ•œ๊ฐœ ์ด์ƒ ํฌํ•จ
dcredit = -1 # digit ํ•œ๊ฐœ ์ด์ƒ ํฌํ•จ
reject_username # username์ด ๊ทธ๋Œ€๋กœ ํ˜น์€ reversed ๋œ ๋ฌธ์ž๋Š” ํŒจ์Šค์›Œ๋“œ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
enforce_for_root # root ๊ณ„์ •๋„ ์œ„์˜ ์ •์ฑ…๋“ค ์ ์šฉ
$ passwd -e <์œ ์ €๋„ค์ž„> # ๋‹ค์Œ ๋กœ๊ทธ์ธ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋„๋ก ํ•˜๊ฒŒ ๋จ

 

 

#Cron (์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์žก ์Šค์ผ€์ค„๋Ÿฌ)

์œ ๋‹‰์Šค ๊ณ„์—ด OS์˜ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์žก ์Šค์ผ€์ค„๋Ÿฌ์ด๋‹ค. ๊ณ ์ •๋œ ์‹œ๊ฐ„, ๋‚ ์งœ, ๊ฐ„๊ฒฉ์œผ๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด cron์ด ์‚ฌ์šฉ๋œ๋‹ค.

์‹œ๊ฐ„๋‹จ์œ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. cron์ž‘์—…์€ crontab ์ด๋ผ๋Š” ํŒŒ์ผ์—์„œ ์„ค์ •ํ•œ๋‹ค. ์ด ํŒŒ์ผ๋กœ ๊ฐ€์„œ ์‹œ๊ฐ„์„ค์ •์— ๊ด€ํ•œ ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

* * * * * command

์• ์Šคํ„ฐ๋งˆ์Šคํฌ๊ฐ€ 5๊ฐœ ์žˆ๋Š”๋ฐ, ๊ฐ€์žฅ ์™ผ์ชฝ๋ถ€ํ„ฐ ๋ถ„, ์‹œ๊ฐ„, ๋‚ ์งœ(1~31), ์›”(1~12), ์š”์ผ(0~6)์ด๋‹ค. ํ•„์š”ํ•œ ํ•ญ๋ชฉ์—

-(๊ทธ ์‚ฌ์ด์˜ ๋ชจ๋“  ๊ฐ’)

,(์ง€์ • ๊ฐ’)

/ (ํŠน์ • ์ฃผ๊ธฐ๋กœ ๋‚˜๋ˆ„๊ธฐ)

๋“ฑ์˜ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ๊ธฐ๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—์„œ๋Š” 10๋ถ„๋งˆ๋‹ค ํ•œ๋ฒˆ์”ฉ monitoring.sh๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ํ„ฐ๋ฏธ๋„๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” wall๋ช…๋ น๊ณผ ํ•จ๊ป˜ ๋‹ค์Œ ์ฒ˜๋Ÿผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

*/10 * * * * bash Mypath/monitoring.sh | wall

๋˜, 30์ดˆ ๋‹จ์œ„๋กœ๋„ ์„ค์ •ํ•ด์•ผํ•˜๋Š”๋ฐ sleep์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

*/1 * * * * bash Mypath/monitoring.sh | wall # ์ด ๋ช…๋ น์ด ๋งค 1๋ถ„๋งˆ๋‹ค ์‹คํ–‰๋˜๋‹ˆ๊นŒ
*/1 * * * * sleep 30; bash Mypath/monitoring.sh | wall # ์ด ๋ช…๋ น์€ ๋งค 1๋ถ„๋•Œ 30์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์‹คํ–‰๋˜๋ฏ€๋กœ....

๊ฒฐ๊ตญ ์œ„์™€๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด 30์ดˆ๋งˆ๋‹ค ํ•œ๋ฒˆ ์‹คํ–‰๋˜๊ฒŒ ๋œ๋‹ค.

$ systemctl status cron.service # status check


$ sudo service cron start # start
$ /etc/init.d/cron start # ๋ฉˆ์ถ”๊ธฐ
$ sudo systemctl disable cron # ์žฌ๋ถ€ํŒ… ํ›„์— ๋ฉˆ์ถ”๊ธฐ

$ /etc/init.d/cron stop # stop
$ sudo service cron stop # stop

$ sudo crontab -e # edit
$ sudo crontab -l # list

 

 

Monitoring.sh

์œ„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ์ปดํ“จํ„ฐ์˜ ์—ฌ๋Ÿฌ ์ •๋ณด๋“ค์„ ๋งค ์ง€์ •๋œ ์‹œ๊ฐ„๋งˆ๋‹ค ์ถœ๋ ฅํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

#!/bin/bash

echo -ne "#Architecture: "; uname -a

echo -ne "#CPU physical : "; grep -c ^processor /proc/cpuinfo

echo -ne "#vCPU : "; cat /proc/cpuinfo | grep processor | wc -l

echo -ne "#Memory Usage: "; free -m | awk 'NR==2{printf "%s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'

echo -ne "#Disk Usage: "; df -h | awk '$NF=="/"{printf "%d/%dGB (%s)\n", $3,$2,$5}'

echo -ne "#CPU load: "; top -bn1 | grep load | awk '{printf "%.2f%%\n", $(NF-2)}'

echo -ne "#Last boot: "; who | awk '{print $3}' | tr '\n' ' ' && who | awk '{print $4}'

echo -ne "#LVM use: "; if cat /etc/fstab | grep -q "/dev/mapper/"; then echo "yes"; else echo "no"; fi

echo -ne "#Connexions TCP : "; cat /proc/net/tcp | wc -l | awk '{print $1-1}' | tr '\n' ' ' && echo "ESTABLISHED"

echo -ne "#User log : "; w | wc -l | awk '{print$1-2}'

echo -ne "#Network : "; echo -n "IP " && ip route list | grep link | awk '{print $9}' | tr '\n' ' ' && echo -n "(" && ip link show | grep link/ether | awk '{print $2}' | tr '\n' ')' && printf "\n"

echo -ne "#Sudo : "; cat /var/log/sudo.log | wc -l | tr '\n' ' ' && echo "cmd"
printf "\n"
# bash์˜ if๋ฌธ
if [์กฐ๊ฑด์ ˆ]
then
    ์‹คํ–‰์ ˆ
fi

awk : ํŒŒ์ผ์˜ ํŠน์ • ํ•„๋“œ(col), ๋ ˆ์ฝ”๋“œ(row) ์ถœ๋ ฅ

$ awk '{printf $1}' awkfile # 1๋ฒˆ Field
$ awk 'NR>=2' awkfile # 2,3,4.... Record

grep : ํŠน์ • ๋ฌธ์ž์—ด์ด ๋“ค์–ด๊ฐ„๊ฒƒ ์ฐพ์•„์„œ ์ถœ๋ ฅ

  • ^ : ๋ฌธ์ž์—ด ๋ผ์ธ์˜ ์ฒ˜์Œ

tr : ๋ฌธ์ž ๋ณ€ํ™˜ / ์‚ญ์ œ

* - d : ์‚ญ์ œ

wc : ๋ผ์ธ ์„ธ๊ธฐ

printf : ์ค„๋ฐ”๊ฟˆ์„ ์•ˆํ•ด์ค€๋‹ค.

echo : ๊ธฐ๋ณธ์ ์œผ๋กœ ์ค„๋ฐ”๊ฟˆ์„ ํ•ด์ค€๋‹ค. (-n ํ›„ํ–‰ ๊ฐœํ–‰ ์ถœ๋ ฅ ์•ˆํ•˜๊ธฐ , -e : ๋ฐฑ ์Šฌ๋ž˜์‹œ ์ด์Šค์ผ€์ดํ”„ ํ•ด์„ ํ™œ์„ฑํ™”)

 

MAC (Media Access Control) ์ฃผ์†Œ

  • ๋žœ์นด๋“œ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋“ค์ด ํ•˜๋‚˜์‹ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์œ ์ผํ•˜๋ฉฐ ๊ณ ์ •๋œ 48bit ์ฃผ์†Œ์ด๋‹ค.
  • ๋งฅ ์–ด๋“œ๋ ˆ์Šค, ํ˜น์€ ํ•˜๋“œ์›จ์–ด ์–ด๋“œ๋ ˆ์Šค, (๋ฌผ๋ฆฌ์  ์ฃผ์†Œ) ๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.
  • ํ‘œ์‹œ ๋ฐฉ์‹์€ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.
    • 00-56-94-6F-8F-94
    • 00:56:94:6F:8F:94
    • 00.56.94.6F.8F.94
    • ์•ž์˜ 3๋ถ€๋ถ„์€ ์ƒ์‚ฐ์ž, ๋’ค์˜ 3๋ถ€๋ถ„์€ ์ผ๋ จ๋ฒˆํ˜ธ(Host Identifier)๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.