1024 ๋ฏธ๋ง ํฌํธ ํ์ฉํ๊ธฐ
root ๊ณ์ ์ด ์๋๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋งํ์๊ธดํจ
๊ทธ๋์ root๋ก ์คํํ๊ฑฐ๋ ์ด ๋ฐฉ๋ฒ ์ฐ๊ฑฐ๋
- sudo setcap โcap_net_bind_service=+epโ [์คํํ์ผ]
์คํํ์ผ์ node ๋ฉด which node ์์น
๋ฐฑ๊ทธ๋ผ์ด๋
๋จ์ํ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํ
๋ง์ฝ ํฌ๊ทธ๋ผ์ด๋์์ ๊ธ์์ค๋ฝ๊ฒ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ๋๋ ค์ผ ํ๋ ๊ฒฝ์ฐ
๋ค๋ง ์ด๋๋ ๋ก๊ทธ๋ฅผ ๋ณด๊ฑฐ๋, ํฌ๊ทธ๋ผ์ด๋ ์ ํ์ด ์๋จ
Ctrl+Z
์์ ์ผ์ ์ ์ง
(์ด๋ ๋์ค๋ ์ซ์๊ฐ ์์ ๋ฒํธ์)bg <์์ ๋ฒํธ>
์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํfg <๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฒํธ>
ํฌ๊ทธ๋ผ์ด๋ ์ ํ
(๋ค๋ง ์ด์ ๋ก๊ทธ๋ ๋ชป๋ด)- ์คํฌ๋ฆฝํธ ์ฌ์ฉ์
- <์์ > &
screen
nohup์ ๊ฒฝ์ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ์ ๋ค์ ํฌ๊ทธ๋ผ์ด๋ ์ ํ์ด ๋ถ๊ฐ ํ๋ค
๋ฐ๋ผ์ ์ด ๋ฐฉ๋ฒ์ผ๋ก ํ๋ ๊ฒ ์ข๋ค
# ์คํฌ๋ฆฐ ๋ง๋ค๊ธฐ
screen -S [์คํฌ๋ฆฐ ์ด๋ฆ]
# ๊ฐ์ ์ด๋ฆ ์คํฌ๋ฆฐ ์์ผ๋ฉด ์ ์ํ๊ณ ์์ผ๋ฉด ๋ง๋ค๊ธฐ
screen -R [์คํฌ๋ฆฐ ์ด๋ฆ]
# ์คํฌ๋ฆฐ ๋ชฉ๋ก์ถ๋ ฅ
screen -ls (.๋ค์ ์๋๊ฒ ์คํฌ๋ฆฐ ์ด๋ฆ์ด๋ค)
# ์คํฌ๋ฆฐ ๋ค์ ์ง์
screen -x [์คํฌ๋ฆฐ ์ด๋ฆ]
# ์คํฌ๋ฆฐ ์ข
๋ฃ (๋ฐฑ๊ทธ๋ผ์ด๋ ์ข
๋ฃ)
# ๋๋ ์คํํ๊ณ ์๋ ์คํฌ๋ฆฐ์ ์ง์
ํ์ฌ exit
screen -X -S [์คํฌ๋ฆฐ ์ด๋ฆ] kill
# .sh ํ์ผ ๊ฐ์ด ์คํ
screen [...์ต์
] ./test.sh (๊ทผ๋ฐ ํ๋ถํฐ ํ ๊ฒฝ๋ก๋ก ์ค์ผํจ)
# ์ ์คํฌ๋ฆฝํธ๋ ๊ฐ์ด ์คํ
screen -S [์คํฌ๋ฆฐ ์ด๋ฆ] bash -c "์คํฌ๋ฆฝํธ"
# ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํฌ๋ฆฐ ๋ง๋ค๊ธฐ
screen -dmS [์คํฌ๋ฆฐ ์ด๋ฆ]
# ๋ก๊ทธ ํ์ผ ๋จ๊ธฐ
screen [...์คํ ์ต์
] -L -Logfile [ํ์ผ]
# ์ด๋ฏธ screen ๋ง๋ค์ด์ง ๊ฒฝ์ฐ ๋ก๊ทธ
screen -S [์คํฌ๋ฆฐ ์ด๋ฆ] -X logfile [ํ์ผ] && screen -X log
์๋์ฐ ๊ด๋ฆฌ
์ฝ๊ฐ ์๋์ฐ์ฒ๋ผ ํ๋์ screen ์์ ์ฌ๋ฌ ์ฐฝ์ ๊ด๋ฆฌ ํ ์ ์๋ค
ctrl + a๋ฅผ ๋๋ฅธ ๋ค์ ์์ ๋ผ๊ณ ๋ค์ ํค๋ฅผ ๋๋ฅด๋ ์์ผ๋ก ์ฌ์ฉํ๋ค.
Ctrl + A
&W
์๋์ฐ ๋ชฉ๋ก ํ์ธ (ํ๋จ์ ์๋์ฐ ๋ฒํธ๊ฐ ๋ฌ๋ค)Ctrl + A
&C
์ ์๋์ฐ ์์ฑํ๊ธฐCtrl + A
&<์๋์ฐ ๋ฒํธ>
ํด๋น ์๋์ฐ๋ก ์ ํCtrl + A
&Shift + S
๊ฐ๋ก๋ก ์๋์ฐ ๋ถํCtrl + A
&Shift + \
์ธ๋ก๋ก ์๋์ฐ ๋ถํ (์ด๊ฑธ๋ง์ด ์ธ๋ฏ)Ctrl + A
&Shift + X
ํ์ฌ ์๋์ฐ ์ข ๋ฃCtrl + A
&Shift + Q
ํ์ฌ ์๋์ฐ๋ง ๋จ๊ธฐ๊ณ ์ข ๋ฃCtrl + A
&A + Tab
์๋์ฐ๊ฐ ๋ถํ๋๊ฒฝ์ฐ ์๋์ฐ ๊ฐ ์ ํ (๋ง์ฐ์ค๊ฐ ์ฌ์ฉ๋ถ๊ฐํจ)
screen ๋ด๋ถ ๋จ์ถํค
Ctrl+a, d
ํ์ฌ ์คํฌ๋ฆฐ์ผ๋ก ๋ถํฐ ํ์ถ (์ด๊ฒ ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ์ ๊ทผ๊ฐ)
nohup
์คํ
๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ
nohup [์์ ] &์ค์๊ฐ ๋ก๊ทธ๋ณด๊ธฐ
;
tail -f nohup.out
์ค์ง
์คํ์ค์ธ ํ๋ก์ธ์ค ๋ชฉ๋ก (์ฒซ๋ฒ์งธ ์ซ์ ํ์ธ)
- ps -ef
- ps auxf | grep [๊ฒ์ํค์๋]
- kill -9 [1 ์์ ๋์จ ์ฒซ ์ซ์]
์ฌ์ฉ์ ์ถ๊ฐ
์ฌ๊ธฐ ๋์จ๊ฑด
AWS
์ธ ๊ฒ์ ๊ฐ์ ํ ๊ฒ
# ๊ด๋ฆฌ์ ์ ํ
sudo su
# ๊ณ์ ์์ฑ
sudo adduser [์ ์ ์ด๋ฆ]
# [์ ์ ์ด๋ฆ] ํ ๋๋ ํ ๋ฆฌ์ .ssh ํด๋ ์์ฑ
sudo mkdir /home/[์ ์ ์ด๋ฆ]/.ssh
# authorized_key ํ์ผ ๋ณต์ฌ
sudo cp /home/ubuntu/.ssh/authorized_keys /home/[์ ์ ์ด๋ฆ]/.ssh
# ๊ถํ ๋ณ๊ฒฝ
sudo chown -R new_user:new_user /home/new_user/.ssh
# sudo ๊ทธ๋ฃน์ ์ถ๊ฐ ํ์ฌ sudo ์ฌ์ฉ๊ฐ๋ฅํ๊ฒ
sudo usermod -aG sudo [์ ์ ์ด๋ฆ]
๋น๋ฒ ์์ด ๋ฃจํธ ๊ถํ ์ฌ์ฉํ๊ธฐ
๋ณด์๋์ ์ ์คํ ์ฌ์ฉํ ๊ฒ
- ๊ด๋ฆฌ์๋ก ์ ํ
sudo su
- visudo
- ํด๋น ํ์ผ ์ตํ๋จ์ ๋ฐ๋์ ํด๋น๊ตฌ๋ฌธ ์ถ๊ฐ
[๊ณ์ ๋ช ] ALL=(ALL) NOPASSWD: ALL
๋น๋ฐ๋ฒํธ ๋ก๊ทธ์ธ ํ์ฑํ/๋นํ์ฑํ ํ๊ธฐ
authorized ํค ํ์ผ๋ก ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ ๋น๋ฒ ๋ก๊ทธ์ธ์ ๊ฐ๊ธ์ ๋๋๊ฒ ์ข๋ค
๋ฐ๋๋ก ํ๋ฉด ํ์ฑํ๋ค
#PasswordAuthentication ๋ฅผ no ๋ก ๋ฐ๊พธ๊ณ ์ ์ฅ
sudo vim /etc/ssh/sshd_config
- ๋ง์ฝ ๊ทธ๋๋ ์ ์ฉ์ด ์๋๋ ๊ฒฝ์ฐ
sshd_config.d
ํด๋๊ฐ ์๋์ง ํ์ธํ๊ณ
ํด๋น ํด๋์50-cloud-init.conf
๊ณผ ๊ฐ์ ์ค์ ํ์ผ์ด ๋ ์์ผ๋ฉด ๊ฑฐ๊ธฐ์๋ ๋๊ฐ์ด ์์ - ์๋ง ์ด๊ธฐํ์ฉ ๋ฐฑ์ ๋ณธ์ธ๊ฑฐ ๊ฐ๋ค
ํจํค์ง ๊ด๋ฆฌ
์ด๊ธฐ์ ํ
:- sudo apt update
- apt list โupgradable
๋ชจ๋ ํจํค์ง ์ ๋ฐ์ดํธ
:- sudo apt upgrade
ํจํค์ง ์ด๋ฆ ์ผ๋ก ํจํค์ง ๊ฒ์
- dpkg โlist | grep <ํจํค์ง ์ด๋ฆ>
ํจํค์ง ์ด๋ฆ์ด ๋ค์ด๊ฐ ๋ชจ๋ ํจํค์ง ์ญ์
- sudo apt-get remove โpurge <ํจํค์ง ์ด๋ฆ>
- ์์ผ๋์นด๋
(*)
์ฌ์ฉ๊ฐ๋ฅ
- ์์ผ๋์นด๋
์ฐ๊บผ๊ธฐ ํ์ผ ํ์ธ
- sudo find / -name
"<ํจํค์ง ์ด๋ฆ>*"
- sudo find / -name
- sudo apt-get remove โpurge <ํจํค์ง ์ด๋ฆ>
ํจํค์ง ์ ๋ณด ํ์ธ
- sudo apt show <ํจํค์ง ์ด๋ฆ>
- sudo apt-cache search <ํจํค์ง ์ด๋ฆ>
ํจํค์ง์ ํด๋ ์ ๋ณด ํ์ธ
- dpkg -L [ํจํค์ง ์ด๋ฆ]
apt ์ ์ฅ์ ์์น
- /etc/apt
- (keyring ๊ด๋ จ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ํด๋๋ฅผ ๋ค์ง์)
ํ๋ก๊ทธ๋จ ๋ฉ๋ด์ผ ๋ณด๊ธฐ
- man <ํ๋ก๊ทธ๋จ>
ํ์ด์ฌ ๊ด๋ จ
์ฐ๋ถํฌ์ ํ์ด์ฌ์ ์ปค๋๊ณผ ๋งค์ฐ ๋ฐ์ ํ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ฏ๋ก ํจ๋ถ๋ก ์ญ์ ํ๋ฉด ์๋จ!!!
ํ์ผ ๊ด๋ฆฌ
-
ํด๋ ์กฐํ
:- ls <ํด๋>
-R
: ํ์๊น์ง ์ถ๋ ฅ
- ls <ํด๋>
-
ํ์ผ ์์ฑ
:- touch <ํ์ผ>
-
ํ์ผ ์ญ์
:- rm <ํด๋|ํ์ผ๋ช
>
-rf
: ํด๋ ์ญ์ ์
- rm <ํด๋|ํ์ผ๋ช
>
-
ํ์ผ ๋ณต์ฌ
:- cp <๋์> <์์น>
-r
: ๋๋ํ ๋ฆฌ ๋ณต์ฌ
- rsync -av <๋ณต์ฌํ ํด๋> <๋์ํด๋>
--exclude [์ ์ธํ ํ์ผํ์]
: ํ์ผ ์ ์ธ
- cp <๋์> <์์น>
-
ํ์ผ ์ด๋
:ํด๋ ์ฐ๋ฉด ํด๋น ํด๋ ์์ ์๋๊ฑฐ ํต์งธ๋ก
- mvย <์ด๋ํ ํ์ผ๋ช > <์ด๋ํ ์์น>
-
ํด๋ ์์ฑ
:- mkdir <์ด๋ฆ>
-r
: ํ์ ํด๋ ๊น์ง ๋ง๋ค๊ธฐ
- mkdir <์ด๋ฆ>
ํ์ผ ๊ถํ
chmod <์ต์ | null> <8์ง๋ฒ, ๊ธฐํธ> <ํ์ผ>
ํ์ผ ์คํ ๊ถํ ๊ด๋ฆฌ
๊ธฐํธ๋ก ๊ถํ ์ค์
1๋ฒ์งธ
:u
: ๋,g
: ๊ทธ๋ฃน,o
: ๊ธฐํ,a
: ์ ๋ถ
2๋ฒ์งธ
:+
: ๊ถํ์ถ๊ฐ,-
: ๊ถํ ์ฌ๊ฑฐ,=
: ๊ถํ์ง์
3๋ฒ์งธ
:r
: ์ฝ๊ธฐ,w
: ์ฐ๊ธฐ,x
: ์คํ
# ํ์ผ์ ์คํ๊ถํ ์ฃผ๊ธฐ
# ๋ฐ๋ก ํ๊ฒ์ ์ง์ ์ํ๋ฉด ๋ชจ๋ ์ฌ์ฉ์ ๊ถํ ์์
chmod +x <ํ์ผ์ด๋ฆ>
# ๊ทธ๋ฃน์ ์ฝ๊ธฐ, ์ฐ๊ธฐ ๊ถํ ๋ถ์ฌ
chmod g+rw <ํ์ผ์ด๋ฆ>
# ํด๋ ๋ฐ ํ์ ํ์ผ/ํด๋ ๊ถํ ๋ถ์ฌ
chmod -R a+rw <ํด๋์ด๋ฆ>
8์ง๋ฒ์ผ๋ก ๊ถํ ์ค์
1๋ฒ์งธ
: ๋ด ๊ถํ2๋ฒ์งธ
: ๊ทธ๋ฃน ๊ถํ3๋ฒ์งธ
: ๋ค๋ฅธ ์ฌ์ฉ์ ๊ถํ
r | w | x |
---|---|---|
4 | 2 | 1 |
# ๋๋ ์ฝ๊ธฐ, ์ฐ๊ธฐ ๊ถํ ๋ถ์ฌ
# ๊ทธ๋ฃน์ ์ฝ๊ธฐ ๊ถํ๋ง ๋ถ์ฌ
# ๋ค๋ฅธ ์ฌ์ฉ์๋ ์ผ๊ธฐ ๊ถํ๋ง ๋ถ์ฌ
chmod 644 <ํ์ผ์ด๋ฆ>
# ํด๋ ๋ฐ ํ์ ํ์ผ/ํด๋ ๊ถํ ๋ณ๊ฒฝ
chmod -R 644 <ํด๋์ด๋ฆ>
chown
ํ์ผ ์์ ๊ถ ๊ด๋ฆฌ
- ํน์ ํ์ผ์ ์์ ๊ถ์ด
u1
ํํ ์๋ค๋ฉด ์ด๊ฑธ ์ฝ๊ฑฐ๋ ์์ ํ ์ ์๋๊ฑด ์ค์งroot
์u1
๋ฟ์ด๋ค - ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๊ทธ๊ฑธ ์์ ํ๊ฑฐ๋ ํ๋ ค๋ฉด
root
๊ถํ์ ์ป๊ฑฐ๋
๊ทธ ์์ ๊ถ์ ๊ฐ์ง ์ฌ์ฉ์๊ฐchmod
๋ก ๋ค๋ฅธ ์ฌ์ฉ์์ ๋ํ ๊ถํ์ ๋ถ์ฌ ํด์ค์ผ ํจ
# ํ์ฌ ํด๋ ๋ด ํ์ผ๋ค์ ์์ ๊ถ ๋ณด๊ธฐ
ls -l
# ํด๋น ํ์ผ์ ์์ ๊ถ์ '์์ ์' ๋ก ๋ณ๊ฒฝ
chown <์์ ์> <ํ์ผ>
# ํด๋น ํ์ผ์ ์์ ๊ถ์ '์์ ์' ๋ก ๋ณ๊ฒฝ ํ๊ณ ๊ทธ๋ฃน์ ์ง์
chown <์์ ์>:<๊ทธ๋ฃน> <ํ์ผ>
# ํด๋น ํด๋ ๋ฐ ํ์ ๋๋ ํ ๋ฆฌ์ ํ์ผ, ๋๋ ํ ๋ฆฌ ๋ชจ๋ '์์ ์' ๋ก ๋ณ๊ฒฝ
chown -R <์์ ์> <ํด๋>
์ฉ๋ ํ์ธ
#ํํฐ์
๋ณ ์ฉ๋ํ์ธ
df -h
#์ฌ์ฉ์ค์ธ ๋ชจ๋ ์ฉ๋ํ์ธ
df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum/1024/1024 " GB" }'
#๋จ์ ๋ชจ๋ ์ฉ๋ ํ์ธ
df -P | grep -v ^Filesystem | awk '{sum += $4} END { print sum/1024/1024 " GB" }'
#ํด๋น ํด๋ ๋ด ํด๋๋ค์ ์ฉ๋ ํ์ธ
du -h --max-depth=1
nano ๋จ์ถํค
์ฐธ๊ณ ์๋ฃ
Ctal + K
์ค ์ญ์ Alt +U
์คํ ์ทจ์Alt +E
๋ค์ ์คํ
์๋น์ค ๊ด๋ฆฌ
์๋น์ค ์ข ๋ฃ
sudo systemctl stop [servicename]์๋น์ค ์ญ์
sudo systemctl disable [servicename]์๋น์ค ๋ฑ๋ก
sudo systemctl enableย [servicename]์๋น์ค ์ฌ์์
:
sudo systemctl restart [servicename]์๋น์ค ๋ก๊ทธ๋ณด๊ธฐ
sudo systemctl <์๋น์คํ์ผ>.service
์๋น์ค ๋ง๋ค๊ธฐ
-
์๋น์ค ํ์ผ ๋ง๋ค๊ธฐ
# ํ์ผ์์ฑ sudo nano /etc/systemd/system/<์๋น์ค๋ช >.service
-
๋ด์ฉ์์ฑ ์
[Unit] Description=<์๋น์ค ์ค๋ช > [Service] # ๊ธฐ๋ณธํ์ Type=simple #์ฌ์์ ์ฌ๋ถ Restart=always ExecStart=<์ดํ ์คํฌ๋ฆฝํธ (์ ๋ ์์ bash ๋ถ์ด์ง ๋ง๊ฒ)> [Install] #๋ถํ ์ ์์ WantedBy=multi-user.target
-
์๋น์ค ๋ฑ๋ก
#์๋น์ค ๋ฆฌ๋ก๋ sudo systemctl daemon-reload # ๋ถํ ์ ์คํ์ ๋ฑ๋ก sudo systemctl enable <์๋น์คํ์ผ.service> # ์๋น์ค ์์ sudo systemctl start <์๋น์คํ์ผ.service>
์ฌ์ฉ์ ๊ด๋ฆฌ
์ฌ์ฉ์
์ฌ์ฉ์ ์์ฑ
sudo adduser [๊ณ์ ]์ฌ์ฉ์ ์ญ์
sudo userdel -rf [๊ณ์ ]์ฌ์ฉ์ ๋ชฉ๋ก ํ์ธ
grep /bin/bash /etc/passwd | cut -f1 -d:์ฌ์ฉ์ ์ด๋
sudo su [๊ณ์ ]์ฌ์ฉ์ ๋น๋ฒ ๋ณ๊ฒฝ
:
sudo passwd [๊ณ์ ]
๊ทธ๋ฃน
์ฌ์ฉ์ ๊ทธ๋ฃน ํ์ธ
cat /etc/group์ฌ์ฉ์๋ฅผ ๋ณด์กฐ ๊ทธ๋ฃน์ ์ถ๊ฐ
sudo usermod -aG <๊ทธ๋ฃน๋ช > <์ฌ์ฉ์ ์ด๋ฆ>์ฌ์ฉ์ ๊ธฐ๋ณธ ๊ทธ๋ฃน ๋ณ๊ฒฝ
sudo usermod -g <๊ทธ๋ฃน๋ช > <์ฌ์ฉ์ ์ด๋ฆ>์ฌ์ฉ์๋ฅผ ๊ทธ๋ฃน์์ ์ ์ธ
sudo gpasswd -d <์ฌ์ฉ์ ์ด๋ฆ> <๊ทธ๋ฃน๋ช >๊ทธ๋ฃน ์์ฑ
ย
groupadd [๊ทธ๋ฃน๋ช ]
IP ์ฃผ์ ํ์ธ
๋ด๋ถ IP ์ฃผ์
hostname -I์ธ๋ถ IP ์ฃผ์
curl icanhazip.com
ํ๊ฒฝ๋ณ์ ํธ์ง
์ฌ์ฉ์
- [ํธ์ง๊ธฐ] ~/.bashrc
- source ~/.bashrc
- ์๋์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ
export PATH=์ ์ฉํ ๊บผ:$PATH
์ด๋ฐ์์ผ๋ก ์ถ๊ฐ
์ ์ญ
- sudoย [ํธ์ง๊ธฐ]ย /etc/environment
- source /etc/environment
์์ถ / ํด์
zip
์ค์ํ๊ฒ zip ์ผ๋ก ์์ถํ๋ฉด ๋ฆฌ๋ ์ค์์ ์ง์ ํ ํ์ผ์์ฑ์ด ๋ค ๋ ๋ผ๊ฐ๋ค!!!
zip ์์ผ๋ฉด ์ค์น
apt install zip
# ์์ถ ํด์
unzip <์์ถํ์ผ>.zip
# ํด๋์ง์ ํ์ฌ ํ๊ธฐ
unzip <์์ถํ์ผ>.zip -d <์์ถ ํธ๋ ์์น>
# ํด๋ ์์ถ
zip -r test.zip <ํด๋>
tar
- ์ ํํ๋ tar ์ ์์ถ ํ์ผ์ด ์๋๋ผ์ tar ๋ง๋ค๊ณ gz๋ก ์์ถํ๋
# tar.gz ์์ถ ํ๊ธฐ
tar -zxvf <์์ถํ์ผ๋ช
>.tar.gz
# ์ง์ ๋ ๊ฒฝ๋ก๋ก ํ๊ธฐ
tar -zxvf <์์ถํ์ผ๋ช
>.tar.gz -C <์์ถํธ๋ ์์น>
# tar.gz ์์ถ
tar -zcvf <์์ถํ์ผ๋ช
>.tar.gz <ํ์ผ1, ํ์ผ2 | ํด๋>
# ํ์ฌ ํด๋์ ๋ชจ๋ ๊ฑธ ์์ถ
tar -zcvf <์์ถํ์ผ๋ช
>.tar.gz *
๋ฐฉํ๋ฒฝ (ufw)
๋ฆฌ๋
์ค ์์ฒด์ ์ผ๋ก iptables
์ด๋ผ๋ ๋ฐฉํ๋ฒฝ์ด ์กด์ฌํจ
ufw๋ ์ด iptables
์ ์ฌ์ฉ์๊ฐ ์ฝ๊ฒ ๋ฐฉํ๋ฒฝ์ ์กฐ์ํ ์ ์๋๋ก ๋ง๋ frontend ํ๋ก๊ทธ๋จ์
๋ฐ๋ผ์ iptables
๋ง ์ฌ์ฉํด๋ ๋์ง๋ง, ๊ทธ๋ฅ ์ฌ์ฐ๋๊น ufw๋ฅผ ์ฐ๋๋ก ํ์
๋ณต์กํ ๊ท์น ์ค์ ์ ํด์ผ๋ ๋๋ง iptables
์ ์ฌ์ฉํ์
-
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
# ufw ์ํ ํ์ธ (inactive: ๋นํ์ฑ) sudo ufw status # iptables ์ ์ฑ ์ผ๋ก ๋ณด๊ธฐ sudo ufw show raw # ufw ํ์ฑํ sudo ufw enable # ufw ๋นํ์ฑํ sudo ufw disable # ufw ๋ณ๊ฒฝ ์ฌํญ ๋ฐ์ sudo ufw reload # uft ๋ก๊ทธ ๊ธฐ๋ก (/var/log/ufw.log ์์ ํ์ธ) sudo ufw logging on sudo ufw logging off # ๋ฃฐ์ ์ธ๋ฑ์ค ์ซ์ ๋ณด๊ธฐ (์ญ์ ์ ์ฌ์ฉ๋ ์ ์์) sudo ufw status numbered # ์ธ๋ฐ์ด๋ ๋ชจ๋ ํธ๋ ํฝ ์ฐจ๋จ **(๊ธฐ๋ณธ์ผ๋ก ํ๊ณ ๊ฐ์)** sudo ufw default deny # ์ธ๋ฐ์ด๋ ๋ชจ๋ ํธ๋ ํฝ ํ์ฉ sudo ufw default allow
-
ํฌํธ๋ก ๊ท์น ๊ด๋ฆฌ
# ํด๋น ํฌํธ๋ฒํธ์ tcp/udp ์ธ๋ฐ์ด๋ ํ์ฉ sudo ufw allow <ํฌํธ ๋ฒํธ> # ํด๋น ํฌํธ๋ฒํธ์ tcp ์ธ๋ฐ์ด๋ ํ์ฉ sudo ufw allow <ํฌํธ ๋ฒํธ>/tcp # ํฌํธ ๋ฒํธ1 ~ ํฌํธ ๋ฒํธ2 ๋ฒ์์ tcp ์ธ๋ฐ์ด๋ ํ์ฉ sudo ufw allow <ํฌํธ ๋ฒํธ1>:<ํฌํธ ๋ฒํธ2>/tcp # ํฌํธ๋ฒํธ ์ธ๋ฐ์ด๋ ์ฐจ๋จ sudo ufw deny <ํฌํธ ๋ฒํธ>
-
์๋น์ค๋ก ๊ท์น ๊ด๋ฆฌ
๊ฐ ์๋น์ค๋ณ ๊ด๋ฆฌ๋๋ ํฌํธ๋ฒํธ๋ฅผ
/etc/services
์์ ์ฐพ์ ๋ณผ ์ ์์
๋ฐ๋ผ์ ํ์ฉ ํด์ผํ ํฌํธ๋ฒํธ๋ฅผ ์๊ณ ์๋ค๋ฉด ๊ทธ๋ฅ ํฌํธ ๋ฒํธ๋ฅผ ํ์ฉํด๋ ๋จ# mysql ์ ๊ธฐ๋ณธ ํฌํธ (3306)์ ์ธ๋ฐ์ด๋ ํ์ฉ sudo ufw allow mysql # mysql ์ ๊ธฐ๋ณธ ํฌํธ (3306)์ ์ธ๋ฐ์ด๋ ์ฐจ๋จ sudo ufw deny mysql
-
ip ๊ท์น ๊ด๋ฆฌ
# 192.168.0.100 ip ์ธ๋ฐ์ด๋ ํ์ฉ sudo ufw allow from 192.168.0.100 # 192.168.0.0/24 cidr ๋ฒ์ ์ธ๋ฐ์ด๋ ํ์ฉ sudo ufw allow from 192.168.0.0/24 # 192.168.0.0/24 cidr ๋ฒ์ ์ธ๋ฐ์ด๋ ์ฐจ๋จ sudo ufw allow deny 192.168.0.0/24
-
ip - ํฌํธ ์กฐํฉ
# 192.168.0.100์ 22๋ฒ ํฌํธ ์ธ๋ฐ์ด๋ ์ฐ๊ฒฐ ํ์ฉ sudo ufw allow from 192.168.0.100 to any port 22 proto tcp
-
ip ํฌ์๋ฉ ๊ด๋ฆฌ
ip ์ ์ํด iptables ๋ผ์ฐํ ์ค์ ์ ufw๋ฅผ ํ์ฑํ ํ๋ค๋ฉด ์ฌ๊ธฐ์๋ ํ์ฉํด์ผํจ
# ์ธ๋ฐ์ด๋ NIC ๋ก ์ค๋ ๋ชจ๋ ํจํท์ ์์ ๋ฐ์ด๋ NIC๋ก ๋ณด๋ด๋ ๊ฒ์ ํ์ฉ ufw route allow in on <์ธ๋ฐ์ด๋ NIC> out on <์์ ๋ฐ์ด๋ NIC>;
-
๊ท์น ์ญ์
sudo ufw delete <allow|deny> <ํฌํธ๋ฒํธ|์๋น์ค|ip|numbered>
before.rules ์ค์
/etc/ufw/before.rules ๋ฅผ ์์ ํจ
-
icmp (ping) ํจํท ๊ฑฐ๋ถ ํ๊ธฐ
์๋ ๊ตฌ๋ฌธ์ ์ฐพ์์
ACCEPT
๋ก ๋์๋๊ฑธDROP
์ผ๋ก ๋ณ๊ฒฝ# ok icmp codes -A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP -A ufw-before-input -p icmp --icmp-type source-quench -j DROP -A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP -A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP -A ufw-before-input -p icmp --icmp-type echo-request -j DROP
SSH ์ธ์ฆํค ๋ฐ๊ธ
ํ ์คํธ๋ ์ํด๋ด
- PuTTYgen์ ์คํํ์ฌ
Generate
๋ฅผ ์คํํ์ฌ ํค๋ฅผ ๋ฐ๊ธ PublicKey
๋ฅผ ์ ์ฅํ๊ณ ์๋์ฒ๋ผ ์์ - Before
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20240716" [ํค๋ด์ฉ] ---- END SSH2 PUBLIC KEY ----
- After
ssh-rsa [ํค๋ด์ฉ]
- Before
- ์ธ์ฆ ์ ์ํ๋ ค๋ ์ฌ์ฉ์ํ์
.ssh
ํด๋ ๋ง๋ค๊ณauthorized_keys
ํ์ผ ๋ง๋ค๊ธฐmkdir .ssh cd .ssh [ํธ์ง๊ธฐ] authorized_keys
- authorized_keys์ ์์ ์์ ํ
public key
๋ด์ฉ์ ์ ๊ณ ์ ์ฅ chmod 600 ./authorized_keys
๋ฅผ ์ ๋ ฅํ์ฌ ๋๋ง ์ฝ๊ณ ์ธ ์ ์๊ฒ ๋๋ง๋ฌPrivateKey
๋ฅผ ppk ๋ก ์ ์ฅํ์ฌ putty์์ ์ฌ์ฉํ๋ฉด๋จ
๋ฐฑ์ / ๋ณต์ํ๊ธฐ
tar ๋ก ๋ฐฑ์ ํ๊ธฐ
- ํน์ ํด๋๋ค ์ ์ธํ๊ณ ์์คํ ํด๋๋ฅผ ํฌํจํ ๋ชจ๋ ๊ฑธ tar๋ก ์์ถ ํ๊ณ
- ๋ณต์ํ ๋ ๊ธฐ๋ณธ ์์คํ
์ ํด๋ฆฐ ์ค์น ํ๊ณ ์์ถ ํ์ด์ ๋ฎ์ด์ฐ๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง
# ๋ฐฑ์ sudo tar -cvpzf /backup/backup.tar.gz \ --exclude=/backup \ --exclude=/proc \ --exclude=/sys \ --exclude=/mnt \ --exclude=/media \ --exclude=/run \ --exclude=/dev \ --exclude=/lost+found / # ๋ณต์ tar xvpfz <๋ฐฑ์ ํ์ผ> -C
img ํ์ผ ๋ง๋ค์ด์ ๋ฐฑ์
USB ๊ฐ์ ์ธ๋ถ ์ ์ฅ์๊ฐ ์์๋ ์ฌ์ฉ๊ฐ๋ฅ
-
ํํฐ์ ํ์ธํ๊ธฐ
seoksee@ubuntu:~$ sudo fdisk -lsudo fdisk -l #์ถ๋ ฅ์ด ์ด๋ ๊ฒ ๋์ค๋๋ฐ # mmcblk0 ์ด๋ผ๋ ์ด๋ฆ์ ๋์คํฌ์ p1, p2 ๋ผ๋ ๋๊ฐ์ ํํฐ์ ์ด ์กด์ฌํ๋ค๋ ๊ฒ === /dev/mmcblk0p1 * 2048 1050623 1048576 512M c W95 FAT32 (LBA) /dev/mmcblk0p2 1050624 125173726 124123103 59.2G 83 Linux ===
-
img ํ์ผ ๋ง๋ค๊ธฐ
# ํํฐ์ ์ ์ ์ธํ ์ฅ์น๋ช mmcblk0๋ง ์ ๋ ฅ sudo dd if=/dev/mmcblk0 of=<์ธ๋ถ์ฅ์น> stutus=progress
-
๋ณต์์ ๋ฐ๋ก ์ด๋ฏธ์ง๋ฅผ ๊ตฝ๊ฑฐ๋ ํ๋ฉด ๋จ
์ค์ผ์ค๋ง ์ฌ์ฉ (crontab)
์ฃผ๊ธฐ์ ์ผ๋ก ์๊ฐ์ ๋ฐ๋ผ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋
๊ตฌ์ฑํ๋๋ฒ
- ๋จผ์ root ๊ณ์ ์ผ๋ก ์ด๋ํ๋ค
sudo su
- sudo ๊ถํ ํ์ํ ํ๋ก๊ทธ๋จ ๋์ฒํ๊ธฐ ์ํด root์ crontab ์ ์์ ํ๋๊ฑฐ
- ๊ตฌ์ฑ์ ํธ์งํ๋ค
crontab
์ ์ฌ์์ ํ๋คservice cron restart
๊ตฌ์ฑํธ์ง
๊ตฌ์ฑ์ค๋ช
#์
๋ ฅ
crontab -e
# ๋งจ ๋์ ์ถ๊ฐ
===
* * * * * <์คํ๋ช
๋ น>
===
- 1๋ฒ
*
: ๋ถ (0~59) - 2๋ฒ
*
: ์ (0~33) - 3๋ฒ
*
: ์ผ (1~31) - 4๋ฒ
*
: ์ (1~12) - 5๋ฒ
*
: ์์ผ (0~7)
์ค์ผ์ค๋ง ๋ก๊ทธ๋ณด๊ธฐ
grep CRON /var/log/syslog
์ถ๊ฐ ๋ช ๋ น
๊ตฌ์ฑ์ ๋ณธ๋ค
crontab -l๋ชจ๋ ๊ตฌ์ฑ์ ์ญ์ ํ๋ค
crontab -r
ํจํท ์บก์ณ
NIC ID๋ ifconfig ์์ ํ์ธ๊ฐ๋ฅ
# ์ค์๊ฐ ํจํท ๋ณด๊ธฐ
sudo tcpdump -i <NIC ID>
# `Wireshark` ์บก์ณ ํ์ผ๋ก ์ ์ฅ
sudo tcpdump -i <NIC ID> -w <์ ์ฅํ์ผ๋ช
>.pcap
# ์๊ฐ์ง์
sudo tcpdump -i <NIC ID> -w <์ ์ฅํ์ผ๋ช
>.pcap -G 60
์ด ๋ฐฉ๋ฒ ๋ง๊ณ ๋ ์๋ฒ ๋ด๋ถ ๋ค๋ฅธ ๋คํธ์ํฌ๋ฅผ ์บก์ณ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ (์๋ฅผ๋ค์ด VPN ์๋ฒ ํจํท) Wireshark
์ ssh remote capture
๊ธฐ๋ฅ์ ์ด์ฉํด ๋ณผ ์ ์์
SSH ์ ์๋ก๊ทธ & ์์ ์ ์ ์ฐจ๋จ
์ฐธ๊ณ ์๋ฃ
-
์ ์๋ก๊ทธ ํ์ธ
# ๋ช ๋ น์ด ์ ์ฒด ๋ก๊ทธ๋ก ํ์ธ sudo cat /var/log/auth.log | grep sshd # ์ค๋์ ๋ก๊ทธํ์ธ last -f /var/log/btmp # ๋ก๊ทธ์ธ ์ฑ๊ณต last -f /var/log/wtmp # ๋ก๊ทธ์ธ ์คํจ
-
fail2ban ๊ตฌ์ฑ
[sshd] enabled = true # ํฌํธ๋ฒํธ port = 12734 filter = sshd logpath = /var/log/auth.log # ์๋ํ์ maxretry = 3 # ์ฐจ๋จ์๊ฐ (1์๊ฐ) bantime = 3600 # ์๋ํ์ ๊ณ์ฐ ์๊ฐ (10๋ถ) findtime = 600
-
fail2ban ๊ด๋ จ ๋ช ๋ น์ด
# ๊ตฌ์ฑ ์ํ ํ์ธ sudo fail2ban-client status # ๋ก๊ทธ ํ์ธ sudo cat /var/log/fail2ban.log # ssh์ ์ฐจ๋จ ์ํ ํ์ธ sudo fail2ban-client status sshd # ssh ํน์ ip ์ฃผ์ ์๋์ผ๋ก ์ฐจ๋จ sudo fail2ban-client set sshd banip <IP์ฃผ์> # ssh ํน์ ip ์ฃผ์ ์ฐจ๋จ ํด์ sudo fail2ban-client set sshd unbanip <IP์ฃผ์>
์นจ์ ํ์ง ๋ฐฉ๋ฒ
Auditd
ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์์ง๋ง
๊ฐ์ฅ ์ฝ๊ฒ๋ auth.log
๋ก๊ทธ ํ์ธ ํ๋ ๋ฐฉ๋ฒ๋ ์์
๋ฌผ๋ก ์ค๋ ฅ์๋ ํด์ปค๋ค์ด๋ฉด ์ต๊ฐํด์ ๋ค ์ญ์ ํ๊ธด ํจ
Dynamic port forwarding (DPF) ์ค์ ํ๊ธฐ
SSH๋ฅผ ํ๋ก์ ์๋ฒ ๋ก ์ฐ๊ฒฐํ๋
SSH ์ค์
- SSH ํฌํธํฌ์๋ฉ ํ์ฉํ๊ธฐ
sudo nano /etc/ssh/sshd_config
- ์ด๋ ๊ฒ ์์
AllowAgentForwarding yes AllowTcpForwarding yes GatewayPorts yes
- ํด๋น ๊ตฌ๋ฌธ์ ํตํด ์ ์ฉ
sudo systemctl restart ssh
DPF ๋ก SSH ์ ์ํ๊ธฐ
- PowerShell ์ ์
ssh -D [๋งคํํฌํธ] -f -C -N -i [pem ์ธ์ฆํค] [์ฌ์ฉ์]@[ํธ์คํธ]
- ์ดํ ์ปค๋ฅ์ ์ ๊ณ์ ์ ์ง์ํจ๋ค
- Putty ์์
- Connection โ SSH โ Tunnels ๋ก ์ด๋
Sorce port
์ ๋งคํ์ํฌ ํฌํธ์ ๋ ฅDestination
์๋ ์๋ ๋ผ๋์ค ๋ฒํผ์Dynamic
์ผ๋ก ์ค์ - ์ดํ Open์ ๋๋ฌ SSH ์๋ฒ์ ์ ์
- ์ดํ ์ปค๋ฅ์ ์ ๊ณ์ ์ ์ง์ํจ๋ค
SOCKS ํ๋ก์๋ก ์ฐ๊ฒฐ
- ์๋์ฐ ์ค์ โ ๋คํธ์ํฌ ๋ฐ ์ด๋๋ท โ ํ๋ก์
- ์๋ ํ๋ก์ ์ค์ ์์ ํ๋ก์ ์๋ฒ ํ์ฉ
์ฃผ์
ํญ๋ชฉ์ ์ด๋ ๊ฒ ์ ๋ ฅsocks=127.0.0.1
ํฌํธ
ํญ๋ชฉ์๋งคํํฌํธ
๋ฅผ์ ๋ ฅ๋ก์ปฌ(์ธํธ๋ผ๋ท)
๋ญ์๊ธฐ ์ฒดํฌ ํ๊ณ ์ ์ฅ
ํ๊ฒฝ๋ณ์ ๋ด ์ค๋ณต๋๋ ํ๋ก๊ทธ๋จ ์ ํ
update-alternatives --config <ํ๋ก๊ทธ๋จ>
๊ฐ๋ น JAVA๋ฅผ ์ฌ๋ฌ๋ฒ์ ์ ๊น์๊ณ , ๋ชจ๋ ํ๊ฒฝ๋ณ์์ ์ถ๊ฐํ ๊ฒฝ์ฐ java
๋ช
๋ น์ ์น๋ฉด ์ค๋ณต์ผ๋ก ์ธํด ์ค์น๋ ๊ฒ ์ค ํ๋๋ง ์ ํ๋ ํ
๋ฐ ์ด๊ฑธ๋ฐ๊ฟ์ ์์
๊ทธ ์ธ
์์ ๊ด๋ฆฌ์
:
htoproot ๋น๋ฒ ๋ณ๊ฒฝ
:
sudo passwd root์๊ฐ ์ค์ ํ๊ธฐ
:
sudo timedatectl set-timezone Asia/Seoulํจํค์ง ์์นํ์ธ
:
which [ํจํค์ง]๊ธฐ๋ณธ ํ ์คํธ ์๋ํฐ ๋ณ๊ฒฝ
update-alternatives โconfig editor- ์ํ๋ ๋ฒํธ ์ ๋ ฅ
๋ด๊ฐ ์ ๋ ฅํ ๋ชจ๋ ๋ช ๋ น์ด๋ณด๊ธฐ
:
history๊ธด ํ์ผ ์ฝ๊ธฐ (์ข ๋ฃํ๋ ค๋ฉด q ์ ๋ ฅ)
:
less <ํ์ผ>
<๋์ถฉ ๋ญ๊ฐ ์ถ๋ ฅ๋๋ ๋ช ๋ น> | less๋ฌธ์์ด ์ฐพ๊ธฐ
grep์ด๋ฆฐ ํฌํธ ํ์ธ
:
netstat -tnlp๋ช ๋ น๊ฒฐ๊ณผ๋ฅผ ํ์ผ๋ก ์ ์ฅ๊ณผ ๋์์ stdout์ผ๋ก ์ถ๋ ฅ:
<๋ช ๋ น์ด> | tee <์ ์ฅํ์ผ๋ช >์์คํ ๋ก๊ทธ ํ์ธ
:
sudo cat /var/log/auth.log
wget
ํ์ผ๋ช ์ง์ ํ์ฌ ๋ค์ด๋ก๋
:- wget <์ต์ | null> < URL > -O [ํ์ผ๋ช ]
- ์ต์
--content-disposition
: ์๋ณธ ํ์ผ๋ช ์ ์ง-P <๊ฒฝ๋ก>
: ๊ฒฝ๋ก ์ง์ ํ์ฌ ๋ค์ด๋ก๋
curl <์ต์ > < URL >
ํ์ผ ๋ค์ด๋ก๋ ์ต์
:-o <ํ์ผ๋ช >
: ํ์ผ๋ช ์ง์ -O
: ์ ์ฅ ์ ์๊ฒฉ์ ์๋ ์ด๋ฆ ๊ฐ์ ธ์ค๊ธฐ-J
: ์๋ณธ ํ์ผ๋ช ์ ์งcontent-disposition
ํด๋๋ฅผ ์ฝ์ด์ด
--output-dir <๊ฒฝ๋ก>
: ๊ฒฝ๋ก์ง์ --location
: ๋ฆฌ๋์ด๋ ํธ ์ฌ์ฉ
ํ๋๋์คํฌ ๋ฉ๋ชจ๋ฆฌ ์ค์ ์ค์
AWS ํ๋ฆฌํฐ์ด์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ๋๊ธฐ๋ ๊ฒ๋ค์ด ๋ง์๋ฐ ์ด๊ฑธ ๋ฉ๋ชจ๋ฆฌ ์ค์์ผ๋ก ํด๊ฒฐ
# ๋ฉ๋ชจ๋ฆฌ ์ค์ 2GB ์ ๋๋ก ์ค์
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# ์ฑ๊ณต์ ์ผ๋ก ๋ฌ๋์ง ํ์ธ
sudo swapon -s
sudo [ํธ์ง๊ธฐ] /etc/fstab
# ํด๋น ํ์ผ ๋งจ๋์ ์ถ๊ฐ
/swapfile swap swap defaults 0 0
#์ ์ฉ ํ์ธ (shared ๋ถ๋ถ)
free
#์ฌ๋ถํ
ํด์ฃผ๋ฉด ์ข์
hostname ๋ณ๊ฒฝ (<์ฌ์ฉ์>@<ํธ์คํธ์ด๋ฆ>:~$)
# ์ํ๋ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝ
sudo nano /etc/hostname
===์ฌ๋ถํ
===
์๋์ฐ์์ ๋ฆฌ๋ ์ค ์์คํ ํ์ผ ๋ณด๋๋ฒ
๋ฆฌ๋ ์ค๋ ext4 ํ์ผ ์์คํ ์ ์ด๋ค
WSL
๋ก ๋ง์ดํธ ํ๊ฑฐ๋- Linux File Systems for Windows ๋ก ๋ง์ดํธ