Born2beroot
- -
Project Overview
#Signature.txt (sha1sum)
(๋ฆฌ๋ ์ค์์๋ sha1sum , ๋งฅ(์ ๋์ค)์์๋ shasum์ด๋ค.)
์ํํธ์จ์ด ํจํค์ง ํน์ CD / DVD ํ์ผ์ ๊ณต์ ํ ๋, shasum
ํ์ผ์ ํจ๊ป ๋ฐฐํฌ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. shasum ํ์ผ์ ์๋ณธ ํ์ผ๊ณผ ์ ํํ ๋์ผํ ํ์ผ์ธ์ง ํ์ธํ ๋ ์ฒดํฌ๋๋ ํ์ผ์ด๋ค. ์ฒดํฌ์ฌ(checksum)์ ๋ณด๊ฐ ํฌํจ๋์ด์๋ค. (160bit)
- ์ฒดํฌ์ฌ(checksum) : ์ค๋ณต ๊ฒ์ฌ์ ํ ํํ๋ก, ๊ณต๊ฐ์ด๋ ์๊ฐ์์์ ์ก์ ๋ ์๋ฃ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํ๋ ๋จ์ํ ๋ฐฉ๋ฒ์ด๋ค.
- ์ฆ, Born2beroot ํ๋ก์ ํธ๋ฅผ ์ ์ถํ ๋์ ์์ ์ ๊ฐ์๋จธ์ ๊ณผ, ๋๋ฃํ๊ฐ๋ฅผ ๋ฐ์๋์ ๊ฐ์๋จธ์ ์ด ์ ํํ ๋์ผํ ํ์ผ์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ผ๋ก shasum์ด ์ฌ์ฉ๋๋ฉฐ, ์ด๋ฅผ signature.txt์ ๋ด์ ์ ์ถํ๊ฒ๋๋ค.
#๊ฐ์๋จธ์ (Vritual machine)์ ๋ฌด์์ด๋ฉฐ ์ ํ์ํ ๊น?
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋งฅ๋ถ์ ํธ์คํธ์ด๋ค. ๋ด๋ถ์๋ ๋งฅ ์ด์์ฒด์ ๊ฐ ์๋ค. ๋ง์ฝ ๊ณผ์ ์ฒ๋ผ CentOS ํน์ Debian์ด๋ผ๋ ์ด์์ฒด์ ๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค๋ฉด ๋ฐฉ๋ฒ์ ๋๊ฐ์ง์ด๋ค.
- ์๋ก์ด ๊ธฐ๊ธฐ๋ฅผ ๊ตฌ๋งคํ์ฌ ํ์ํ OS๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ
- ๊ฐ์ ๋จธ์ ๋ณด๋ค ํจ์จ์ฑ, ์ฑ๋ฅ์ด ๋์๊ฒ์ด๋ค.
- ๊ฐ์๋จธ์ ์ ํ์ฉํ์ฌ ํ์ฌ ์๋ ๋งฅ๋ถ์ ๊ฐ์ํ๋ ์ด์์ฒด์ ๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ
- ์๋ก์ด ํ๋์จ์ด๋ฅผ ๊ตฌ๋งคํ๋๊ฒ๋ณด๋ค ๊ฒฝ์ ์ ์ผ๋ก ํจ์จ์ ์ด๋ค. (๋ฌผ๋ฆฌ์ ๋ฆฌ์์ค ์ ์ฝ)
- VM์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ํ๊ฒฝ์ ์์ ํ ์๋ก ํ๋ก๋น์ ๋ ํ๋๊ฒ๋ณด๋ค ๊ฐ๋จํ๋ค.
- ํ์ดํผ๋ฐ์ด์ (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)๋ฅผ ๋ํ๋ธ๋ค.
'๐ณ 42 SEOUL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(netwhat) - IP Adress , class (0) | 2021.07.04 |
---|---|
(Netwhat) - ํ๋ก์ ํธ ๋ด์ฉ ๋ฐ ๋ชฉ์ฐจ (0) | 2021.07.04 |
[C / 42seoul / ft_printf] - ์์ ์ง์ ์ (format specifier) (0) | 2021.06.01 |
[C / 42seoul / ft_printf] - ๊ฐ๋ณ์ธ์ (variable argument) (0) | 2021.05.27 |
[42seoul / ft_printf] ํ๋ก์ ํธ ๋ด์ฉ ๋ฐ ์์์ผ ํ ๋ด์ฉ (0) | 2021.05.27 |
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค