๐Ÿ’ก

Born2beroot ๋ณธ๋ฌธ

42

Born2beroot

์•„์˜ณ์ด 2021. 6. 4. 21:57

 Project overview

 

0. ๊ฐ€์ƒ๋จธ์‹ ์ด๋ž€

ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์ž ํ• ๋•Œ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์‹คํ–‰

 

0. debain vs CentOS

- ๋‘˜๋‹ค linux ์šด์˜์ฒด์ œ

- ์„ผํ† ์Šค๋Š” ๋ ˆ๋“œํ–‡์ด ๊ณต๊ฐœํ•œ RHEL์„ ๊ฐ€์ ธ์™€์„œ ๋ ˆ๋“œํ–‡์˜ ๋ธŒ๋žœ๋“œ์™€ ๋กœ๊ณ ๋งŒ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐฐํฌํ•œ ๋ฐฐํฌ๋ณธ. ๋ฌด๋ฃŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ฌธ์ œ ๋ฐœ์ƒ์‹œ ๋ ˆ๋“œํ–‡์ด ์•„๋‹Œ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ†ตํ•ด ์ง€์›๋˜๋ฏ€๋กœ ํŒจ์น˜๊ฐ€ ๋‹ค์†Œ ๋А๋ฆฐ ๊ฐ์ด ์žˆ์Œ. ๋ฐ๋น„์•ˆ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋งŒ๋“ค์–ด์ง„ ๋ฐฐํฌํŒ์ด๋ผ ์‚ฌ์šฉ๋ฒ•์ด ์˜จ๋ผ์ธ ์›น์‚ฌ์ดํŠธ๋‚˜ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ž์„ธํžˆ ๊ธฐ์ˆ ๋˜์–ด ์žˆ๋‹ค

- ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ : ์„ผํ† ์Šค๋Š” RPM ํฌ๋งท๊ณผ YUM/DNF ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์‚ฌ์šฉ. ๋ฐ๋น„์•ˆ์€ DEB ํฌ๋งท๊ณผ dpkg/APT ๋งค๋‹ˆ์ € ์‚ฌ์šฉ

- ์„ผํ† ์Šค๋Š” ๊ธฐ์—…์šฉ, ๋ฐ๋น„์•ˆ์€ ๊ฐœ์ธ

 

0. aptitede vs apt

aptitede : high level ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €

apt : low level ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € gui ์—†์Œ

-apt๋Š” ๋‹ค๋ฅธ ํ•˜์ด๋ ˆ๋ฒจ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์— ์˜ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Œ

aptitude๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํŒจํ‚ค์ง€๋ฅผ ์ž๋™์ ์œผ๋กœ ์ œ๊ฑฐํ•ด์ค€๋‹ค. ๋ฐ˜๋ฉด apt๋Š” ์ถ”๊ฐ€์  ์˜ต์…˜์ด ํ•„์š”ํ•˜๋‹ค. (ex. 'autoremove', '-auto-remove')

aptitude๋Š” why์™€ why-not ์ปค๋งจ๋“œ๋ฅผ ํ†ตํ•ด ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์–ด๋–ค ๊ฒƒ์ด ์š”๊ตฌ๋˜๊ณ , ์–ด๋–ค ๊ฒƒ๊ณผ ์ถฉ๋Œํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

aptitude๋Š” ์„ค์น˜, ์ œ๊ฑฐ, ์—…๋ฐ์ดํŠธ ๊ณผ์ •์—์„œ ์ถฉ๋Œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋Œ€์•ˆ์„ ์ œ์‹œํ•ด์คŒ. apt๋Š” ๊ทธ๋ƒฅ ์•ˆ ๋œ๋‹ค๊ณ ๋งŒ ํ•จ.

 

0. APPArmor

-์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœํ•„ ๋ณ„๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์—ญ๋Ÿ‰์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ณด์•ˆ ๋ชจ๋“ˆ์ด๋‹ค

์•ฑ์•„๋จธ๋Š” ์ •์ฑ… ํŒŒ์ผ์„ ํ†ตํ•ด ์–ด๋–ค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์–ด๋–ค ํŒŒ์ผ/๊ฒฝ๋กœ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ์ง€ ํ—ˆ์šฉํ•ด์ค€๋‹ค.

enforce๋ชจ๋“œ์™€ complain๋ชจ๋“œ ๋‘ ๊ฐ€์ง€ ์กด์žฌ

enforce ๋ชจ๋“œ : ํ—ˆ๊ฐ€๋˜์ง€ ์•Š์€ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ๋ชจ๋“œ

complain ๋ชจ๋“œ : ์‹ค์งˆ์ ์œผ๋กœ ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹˜. ๋Œ€์‹  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•ด์•ผ ํ•  ํ–‰๋™์ด ์•„๋‹Œ ๋‹ค๋ฅธ ํ–‰๋™์„ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์•ฑ์•„๋จธ๋Š” ๋กœ๊ทธ๋ฅผ ๋‚จ๊ฒจ์ค€๋‹ค(์ค‘์ง€ํ•˜์ง€๋Š” ์•Š์Œ).

sudo aa-status     : apparmor ์ƒํƒœ ํ™•์ธ

 

 Mandatory part

 

1. sudo ์„ค์น˜ & ์‚ฌ์šฉ์ž ๊ทธ๋ฃน ์„ค์ •

dpkg -l sudo                        : sudo ์„ค์น˜ ์—ฌ๋ถ€ ํ™•์ธ

apt-get install sudo            : sudo ์„ค์น˜

groupadd [๊ทธ๋ฃน๋ช…]               : [ ] ๊ทธ๋ฃน ์ถ”๊ฐ€

usermod -aG [๊ทธ๋ฃน๋ช…,๊ทธ๋ฃน๋ช…, ... ] [์‚ฌ์šฉ์ž๋ช…] : ์‚ฌ์šฉ์ž๋ฅผ ๊ทธ๋ฃน์— ์ถ”๊ฐ€

usermod -g [๊ทธ๋ฃน๋ช…] [์‚ฌ์šฉ์ž๋ช…] : primary group ์„ค์ •

id [์‚ฌ์šฉ์ž๋ช…]                          : ์‚ฌ์šฉ์ž์˜ gruop ํ™•์ธ

 

2. ufw(Uncomplicated Firewall) ์„ค์ •

sudo apt install ufw       : ufw ๋ฐฉํ™”๋ฒฝ ์„ค์น˜

sudo ufw status verbose  : ์ƒํƒœ ํ™•์ธ

sudo ufw enable                : ๋ถ€ํŒ…์‹œ ufw ํ™œ์„ฑํ™” ํ•˜๊ธฐ

sudo ufw default deny      : ๊ธฐ๋ณธ incoming deny

sudo ufw allow 4242        : ssh ์—ฐ๊ฒฐ ํ—ˆ์šฉ

- sudo ufw status numbered  : ๊ทœ์น™๋ฒˆํ˜ธ ํ™•์ธ

- sudo ufw delete ๊ทœ์น™๋ฒˆํ˜ธ      : ๊ทœ์น™๋ฒˆํ˜ธ ์‚ญ์ œ

 

3. SSH(Secure Shell Protocol) ์„ค์ •

-๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ์ค‘ ํ•˜๋‚˜๋กœ ์ปดํ“จํ„ฐ์™€ ์ปดํ“จํ„ฐ๊ฐ€ ์ธํ„ฐ๋„ท๊ณผ ๊ฐ™์€ Public Network๋ฅผ ํ†ตํ•ด ์„œ๋กœ ํ†ต์‹ ์„ ํ•  ๋•Œ ๋ณด์•ˆ์ ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ, ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก๊ณผ ์›๊ฒฉ์ œ์–ด์— ์‚ฌ์šฉ, public key & previate key

apt install openssh-server      : ssh ์„œ๋ฒ„ ์„ค์น˜

systemctl status ssh       : openserver ๊ฐ€ ์‹คํ–‰์ค‘์ธ์ง€ ์—ฌ๋ถ€ ํ™•์ธ

sudo ufw allow 4242/tcp      : 4242ํฌํŠธ ํ—ˆ์šฉ

vi /etc/ssh/sshd_config

#Port 22    --- ์ œ๊ฑฐ
port 4242   --- ์ถ”๊ฐ€

.
.
.

PermitRootLogin no  --- no๋กœ ๋ณ€๊ฒฝ

 

4. Hostname & partitions

hostnamectl                : ํ˜ธ์ŠคํŠธ๋„ค์ž„ ์ฒดํฌ

sudo hostnamectl set-hostname [ํ˜ธ์ŠคํŠธ๋„ค์ž„]  : ํ˜ธ์ŠคํŠธ๋„ค์ž„ ๋ณ€๊ฒฝ

 

-LVM : ๋…ผ๋ฆฌ์  ๋ณผ๋ฅจ ๋งค๋‹ˆ์ €

ํ•œ ๊ฐœ ํ˜น์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๋””์Šคํฌ๋ฅผ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์ ์ธ ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์„ฑ์„ ํ•ด์„œ  ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๋””์Šคํฌ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ, ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ฉ์ณ์ง„ ๊ฒƒ์€ ๋‹ค์‹œ ์›ํ•˜๋Š” ๋Œ€๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜๋„ ์žˆ๋‹ค.

ํŒŒํ‹ฐ์…˜๋ณด๋‹ค ๋” ์œ ์—ฐํ•˜๊ฒŒ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

5. Password ์ •์ฑ… ๋ณ€๊ฒฝ

sudo vi /etc/login.defs

PASS_MAX_DAYS 30

PASS_MIN_DATS 2

PASS_WARN_AGE 7

์œผ๋กœ ๋ณ€๊ฒฝ

sudo apt install libpam-pwquality

sudo vi /etc/pam.d/common-password

pam_pwquailty.so ์— ์•„๋ž˜ ์ถ”๊ฐ€

/*

retry=3         : ์•”ํ˜ธ ์ž…๋ ฅ 3ํšŒ๊นŒ์ง€

minlen=10    : ์•”ํ˜ธ ์ตœ์†Œ ๊ธธ์ด 10

difok=7         : ๊ธฐ์กด ์•”ํ˜ธ์™€ ๋‹ฌ๋ผ์•ผ ํ•˜๋Š” ๋ฌธ์ž ์ˆ˜ 7 

ucredit=-1    : ๋Œ€๋ฌธ์ž 1๊ฐœ ์ด์ƒ

dcredit=-1    : ์ˆซ์ž 1๊ฐœ ์ด์ƒ

reject_username  : username์ด ๊ทธ๋Œ€๋กœ ๋˜๋Š” ๋’ค์ง‘ํ˜€์„œ ํŒจ์Šค์›Œ๋“œ์— ๋“œ๋Ÿฌ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ, ๋“ค์–ด์žˆ์œผ๋ฉด ๊ฑฐ๋ถ€

enforce_for_root   : root ์‚ฌ์šฉ์ž๊ฐ€ ์•”ํ˜ธ๋ฅผ ๋ฐ”๊ฟ”๋„ ์œ„์˜ ์กฐ๊ฑด๋“ค ์ ์šฉ

*/

 

6. sudoer ํŒŒ์ผ ์„ค์ •

sudo mkdir /var/log/sudo/        : ๋กœ๊ทธํŒŒ์ผ ์ €์žฅํ•  ๊ฒฝ๋กœ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

sudo visudo                               : /etc/sudoers ํŒŒ์ผ ์ˆ˜์ • 

Defaults secure_path="๊ฒฝ๋กœ์„ค์ •"

.
.
.

  //๋งˆ์ง€๋ง‰ ์ค„์— ์ถ”๊ฐ€

Defaults authfail_message="Authentication attempt failed."    -- ๊ถŒํ•œ ํš๋“ ์‹คํŒจ ์ปค์Šคํ…€ ๋ฉ”์„ธ์ง€
Defaults badpass_message="Wrong password!"                    -- ์•”ํ˜ธ ์‹คํŒจ ์ปค์Šคํ…€ ๋ฉ”์„ธ์ง€
Defaults log_input                                            -- sudo input ์„ ๋กœ๊ทธ์— ๊ธฐ๋ก
Defaults log_output                                           -- sudo output ์„ ๋กœ๊ทธ์— ๊ธฐ๋ก
Defaults requiretty              -- The TTY mode has to be enabled for security reasons.
Defaults iolog_dir="/var/log/sudo/"                           -- ๋กœ๊ทธ ์ €์žฅํ•  ๊ฒฝ๋กœ

 

7. monitoring.sh

cron : ์ž‘์—…์˜ˆ์•ฝ์Šค์ผ€์ฅด๋Ÿฌ

sudo crontab -e

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

์ดˆ๋‹จ์œ„๋กœ ์ปจํŠธ๋กœ ํ•˜๋ ค๋ฉด

* * * * * sleep [ ]; command

 

- signature.txt ๋งŒ๋“ค๊ธฐ

.vdi ๊ฐ€ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ

shasum [ ].vdi    ํ›„ ๋‚˜์˜จ ๊ฐ’์„ ๋ณต์‚ฌ

-----------------------------------

ํ‰๊ฐ€ ํ›„์— shasum ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ’์ด ๋ฐ”๋€Œ์–ด ์žˆ๋Š”๊ฒƒ์„ ๋ณผ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ signature.txt๋ฅผ ๋งŒ๋“ค๊ธฐ ์ง์ „์— ๋ฒ„์ธ„์–ผ๋ฐ•์Šค์—์„œ ์Šค๋ƒ…์ƒท์„ ์ฐ์–ด ๋†“์€ ํ›„ ๋‹ค์Œ ํ‰๊ฐ€ ๋•Œ ์ฐ์–ด๋†“์€ ์Šค๋ƒ…์ƒท์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ๋‹ค์‹œ shashum ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด signature.txt์™€ ๋˜‘๊ฐ™์€ ๊ฐ’์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

 

https://tbonelee.tistory.com/m/16

https://jootc.com/p/201808031460

https://jootc.com/p/201808031462

 

๋ฆฌ๋ˆ…์Šค SSH ์ ‘์† ๋ฐฉ๋ฒ• (SSH ํ”„๋กœํ† ์ฝœ ์—ฐ๊ฒฐ ํ—ˆ์šฉ ์„ค์ •ํ•˜๊ธฐ) - JooTC

๋ฆฌ๋ˆ…์Šค SSH ์ ‘์† ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ ๋กœ์ปฌ PC์—์„œ ํ„ฐ๋ฏธ๋„์ด๋‚˜ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฑฐ๋‚˜, ์›๊ฒฉ์ง€์—์„œ ํ˜ธ์ŠคํŠธ ์ ‘์†์„ ์œ„ํ•œ ํ”„ํ† ๋กœ์ฝœ์„ ์‚ฌ์šฉํ•œ ์—ฐ๊ฒฐ์ด ์žˆ์Šต

jootc.com

https://jjeongil.tistory.com/1393

'42' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

FdF  (0) 2021.11.30
push_swap  (0) 2021.07.15
ft_printf  (0) 2021.05.30
get_next_line  (0) 2021.05.13