Linux ์์คํ ๊ธฐ์ด ์๋ฆฌ์ฆ
- [1ํธ] Linux ํ์ผ ๊ถํ ์์ ์ ๋ณต: chmod, chown, SUID/SGID/Sticky bit๊น์ง
- [2ํธ] Linux ์๋ฒ ๋ณด์ ๊ฐํ ๊ฐ์ด๋: ์ค๋ฌด ํ๋๋ ์ฒดํฌ๋ฆฌ์คํธ
- [3ํธ] ๋ฐฐ๋ ๋ฒ์ ์ผ๋ก CVE ์ทจ์ฝ ํ์ ํ๋ฉด ํ๋ฆฐ๋ค: rpm ๋ฐฑํฌํธ์ el7 EOL์ ์ ๋ฐ๋ ํจ์
- [4ํธ] rpm -Vac๋ก ๋ฐ๋ ์ค์ ๋ง ๋ฝ๊ธฐ (ํ์ฌ ๊ธ)
๋ช ๋
๊ตด๋ฆฐ ์๋ฒ๋ฅผ ์ ์ฅ๋น๋ก ์ฎ๊ฒจ์ผ ํ๋ค. ๋๊ธธ ๊ฒ์ "์ด ์๋ฒ์ /etc" ์ ์ฒด๊ฐ ์๋๋ผ ๊ทธ๋์ ์ฌ๋์ด ๊ธฐ๋ณธ๊ฐ์์ ๋ฐ๊พผ ๊ฒ๋ฟ์ด๋ค. ์ ํ๊ฒฝ์ ์ด์ฐจํผ ๊ธฐ๋ณธ ์ํ๋ก ์์ํ๋๊น.
๋ฌธ์ ๋ ๊ทธ ๋ชฉ๋ก์ ์๋ฌด๋ ๊ฐ๊ณ ์์ง ์๋ค๋ ๊ฒ์ด๋ค. ์ค์น๋ 3๋ ์ ์ด๊ณ ๊ทธ์ฌ์ด ์ฌ๋ฌ ์ฌ๋์ด ์๋๋ค.
/etc๋ฅผ ํต์งธ๋ก tar๋ก ๋ง์ ์ฎ๊ธฐ๋ ์ ํ์ง๋ ์์ง๋ง, ๊ทธ๊ฑด ์ด๊ด์ด ์๋๋ผ ๋ณต์ ๋ค. ๋ก์ ์ค์ ๊ณผ ๋ง๋ฃ๋ ์ธ์ฆ์์ ์ง๊ธ์ ์ฐ์ง ์๋ ์๋น์ค ์กฐ๊ฐ์ด ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋ค. ํ์ํ ๊ฒ์ ์ฐจ์ด ๋ชฉ๋ก์ด๋ค.
์ ๊ธ์์ rpm ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ํจ์น ์ด๋ ฅ์ ์ฝ์๋ค. ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด ๋ฌธ์ ๋ ํผ๋ค. RPM์ ํจํค์ง๋ฅผ ์ค์นํ ๋ ๊ฐ ํ์ผ์ ์ฒดํฌ์ฌ, ํฌ๊ธฐ, ๊ถํ, mtime์ ๊ธฐ๋กํด ๋๋ค. ์ง๊ธ ์ํ๋ฅผ ๊ทธ ๊ธฐ๋ก๊ณผ ๋ง์ถฐ ๋ณด๋ฉด ๋ฐ๋ ๊ฒ๋ง ๋จ๋๋ค.
๋ฐ๋ ์ค์ ํ์ผ๋ง ๋ฝ๋๋ค
$ sudo rpm -Vac
S.5....T. c /etc/ssh/sshd_config
.M....... c /etc/sudoers.d/local
S.5....T. c /etc/security/faillock.conf-V๊ฐ ๊ฒ์ฆ(verify), -a๊ฐ ์ ์ฒด ํจํค์ง, -c๊ฐ config๋ก ํ์๋ ํ์ผ๋ง์ด๋ค. ์ถ๋ ฅ์ด ๋์จ ํ์ผ์ด ๊ณง ๊ธฐ๋ณธ๊ฐ์์ ๋ฒ์ด๋ ํ์ผ์ด๋ค.
์ผ์ชฝ ์ํ ๊ธ์๊ฐ ๋ฌด์์ด ๋ฌ๋ผ์ก๋์ง๋ฅผ ๋ํ๋ธ๋ค.
S.5....T. c /etc/security/faillock.conf
โโ โ
โโ โโ T = mtime ๋ณ๊ฒฝ
โโโโโโโโ 5 = ๋ด์ฉ(์ฒดํฌ์ฌ) ๋ณ๊ฒฝ <<< ์ด๊ฒ๋ง์ด ์ง์ง ๋ณ๊ฒฝ
โโโโโโโโ S = ํฌ๊ธฐ ๋ณ๊ฒฝ| ํ๋๊ทธ | ์๋ฏธ | ์ด๊ด ๋์์ธ๊ฐ |
|---|---|---|
5 |
ํ์ผ ๋ด์ฉ์ด ๋ค๋ฅด๋ค | โ ์ด๊ฒ๋ง ๋ณด๋ฉด ๋๋ค |
S / T |
ํฌ๊ธฐ, mtime | ๋ณด์กฐ ์ ํธ |
M |
๊ถํ(mode) | ํ๋๋ ํ์ ์ผ ์ ์์ |
U / G |
์์ ์, ๊ทธ๋ฃน | ๋ฎ์ |
L |
์ฌ๋ณผ๋ฆญ ๋งํฌ ๋์ | ๋ฎ์ |
5๊ฐ ์์ผ๋ฉด ๋ด์ฉ์ ๊ทธ๋๋ก๋ค. ๊ถํ๋ง ๋ฐ๋ ๊ฒ์ ๋ด์ฉ ๋ณ๊ฒฝ๊ณผ ๊ฐ์ ๋ฌด๊ฒ๋ก ์ฌ๋ฆฌ๋ฉด ์ด๊ด ๋ชฉ๋ก์ด ๋
ธ์ด์ฆ๋ก ๋ถํผ๋ค. 1์ฐจ ํํฐ๋ 5 ํ๋๋ก ์ถฉ๋ถํ๋ค.
# ๋ด์ฉ์ด ๋ฐ๋ config ํ์ผ๋ง
$ sudo rpm -Vac | awk '$1 ~ /5/ {print $NF}'๋ฒ์๋ ๋ ์ค์ ๊ณ ๋ฅธ๋ค.
| ๋ช ๋ น | ๋ฒ์ | ์ค์ธก ์์ |
|---|---|---|
rpm -Vac |
config ํ์ผ๋ง | ์ฝ 2.2์ด |
rpm -Va |
์ ์ฒด ํ์ผ | ์ฝ 7์ด |
์ด์ ์ค์ธ ์ฅ๋น์์ ๋๋ ค๋ ๋ถ๋ด์ด ์๋ ์์ค์ด๋ค. ๋ฐ์ด๋๋ฆฌ ๋ณ์กฐ๊น์ง ๋ณด๋ ค๋ฉด -Va๋ฅผ ์ฐ๋, ์ด๊ด ๋ชฉ์ ์ด๋ผ๋ฉด -Vac๊ฐ ๋ง๋ค. ํจํค์ง๊ฐ ๊ด๋ฆฌํ๋ ๋ฐ์ด๋๋ฆฌ๋ ์ ์๋ฒ์์ ์ด์ฐจํผ ๋ค์ ์ค์น๋๋ค.
๐ ๋น ๊ฒฐ๊ณผ๋ฅผ ๋ฌด๋ณ๊ฒฝ์ผ๋ก ์ฝ์ง ๋ง ๊ฒ
์ด ๋ฐฉ๋ฒ์ ์ต๋ ํจ์ ์ด๋ค. ๋ฉ์์ ์ค์ ๋ก ๋นํ๋ค.
$ rpm -Vac 2>/dev/null | wc -l
00๊ฑด์ด๋ค. 3๋ ๊ตด๋ฆฐ ์๋ฒ์ธ๋ฐ ์๋ฌด๋ ์ค์ ์ ์ ๊ฑด๋๋ ธ๋ค๋ ๋ป์ผ๊น. ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ๊ฑท์ด๋ด๋ฉด ๋ต์ด ๋์จ๋ค.
$ rpm -Vac
error: rpmdb: BDB0113 Thread/process failed: Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages database in /var/lib/rpm2>/dev/null์ด ์๋ฌ๋ฅผ ํต์งธ๋ก ์ผ์ผ ์กฐ์ฉํ 0๊ฑด์ด ๋๋ค. ์ง๋จ ์คํฌ๋ฆฝํธ์ ์ต๊ด์ ์ผ๋ก ๋ถ์ด๋ ๊ทธ ๋ฆฌ๋ค์ด๋ ํธ๋ค. ์ด๊ด ๋ชฉ์ ์ด๋ฉด ๋์์ ์ ๋ถ ๋์น๊ณ , ์ ๊ฒ ๋ชฉ์ ์ด๋ฉด "๊นจ๋ํ ์๋ฒ"๋ก ์คํํ๋ค. ๋ ๋ค ํ๋ฆฐ ๋ฐฉํฅ์ผ๋ก ํ๋ฆฐ๋ค.
๋น ์ถ๋ ฅ์ ๋ถ์ฌ์ ์ฆ๊ฑฐ๊ฐ ์๋๋ค. 0๊ฑด๊ณผ "์ ์ ์์๋ค"๋ ๋ค๋ฅธ ๊ฒฐ๊ณผ์ธ๋ฐ,
wc -l์ ๊ฑฐ์น๋ฉด ๋๊ฐ์ด0์ผ๋ก ๋ณด์ธ๋ค.
๊ทธ๋์ ๊ฒ์ฆ๋ณด๋ค DB ๊ฑด์ ์ฑ ํ์ธ์ด ๋จผ์ ๋ค.
# 1. DB๊ฐ ์ด๋ฆฌ๋์ง๋ถํฐ
$ rpm -q rpm
rpm-4.16.1.3-29.el9.x86_64 # ์ฌ๊ธฐ๊ฐ ์คํจํ๋ฉด ๊ทธ๋ค์์ ์๋ฏธ ์๋ค
# 2. ์์์ด๋ฉด ๋ณต๊ตฌ
$ sudo rpm --rebuilddbRHEL 8 ๊ณ์ด์ Berkeley DB, RHEL 9๋ถํฐ๋ sqlite๋ฅผ ๋ฐฑ์๋๋ก ์ด๋ค. BDB0113 ๊ณ์ด ์ค๋ฅ๋ el8 ์ดํ์์ ์ฃผ๋ก ๋๊ณ el9์์๋ ๋๋ฌผ๋ค. ์ค๋๋ ์ฅ๋น๋ฅผ ์ด๊ดํ๋ ์ํฉ์ด ์ ํํ el8 ์ดํ๋ผ๋ ์ ์ด ๊ณ ์ฝํ๋ค.
sudo ์คํจ์ DB ์์์ ๊ตฌ๋ถํ๋ค
๋ฉ์์ ํ ๋ฒ ๋ ํ์ง์ ์๋ฆฌ๋ค. ๋น๋ํ์์ผ๋ก ๋๋ฆด ๋ sudo๊ฐ ๋งํ๋ ๊ฒ๋ณด๊ธฐ ์ฆ์์ด ๊ฐ๋ค.
$ sudo -n rpm -Vac 2>/dev/null | wc -l
0 # ๋น๋ฐ๋ฒํธ๋ฅผ ๋ชป ๋ฌผ์ด์ 0์ผ ์๋ ์๋ค๋์ ๊ฐ๋ฅด๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. ์ข ๋ฃ ์ฝ๋์ ํ์ค ์ค๋ฅ๋ฅผ ๋ฒ๋ฆฌ์ง ์๋ ๊ฒ์ด๋ค.
$ sudo -n rpm -Vac > /tmp/drift.txt
$ echo "exit=$? lines=$(wc -l < /tmp/drift.txt)"
exit=1 lines=0 # 0๊ฑด์ธ๋ฐ exit์ด 0์ด ์๋๋ฉด ์คํจ๋คexit=0 + lines=0์ด๋ผ์ผ ๋น๋ก์ "๋ณ๊ฒฝ ์์"์ด๋ค.
? = ๋ชป ๋ณธ ๊ฒ์ด์ง ์๋ ๊ฒ์ด ์๋๋ค
sudo ์์ด ๋๋ฆฌ๋ฉด ์ฝ๊ธฐ ๊ถํ์ด ์๋ ํ์ผ์์ ์ฒดํฌ์ฌ์ ๊ณ์ฐํ์ง ๋ชปํ๋ค. ๊ทธ ์๋ฆฌ์ ?๊ฐ ์ฐํ๋ค.
$ rpm -Vac # ์ผ๋ฐ ์ฌ์ฉ์
..?...... c /etc/shadow
missing (Permission denied) /etc/pki/tls/private/localhost.keyRocky Linux 9 ํ๊ฒฝ์์ ์ผ๋ฐ ์ฌ์ฉ์๋ก ๋๋ ธ์ ๋ ? ํญ๋ชฉ์ด 18๊ฑด, missing (Permission denied)๊ฐ 3,030๊ฑด ๋์๋ค. ํ์๋ ๊ฐ์ง ์ญ์ ๋ค. ํ์ผ์ ๋ฉ์ฉกํ ์๊ณ ์ฝ์ง ๋ชปํ์ ๋ฟ์ธ๋ฐ ์ถ๋ ฅ๋ง ๋ณด๋ฉด ์ฌ๋ผ์ง ๊ฒ์ฒ๋ผ ์ฝํ๋ค.
- sudo ํ์. ๊ถํ ์์ด ๋๋ฆฐ ๊ฒฐ๊ณผ๋ ๋ชฉ๋ก์ด ์๋๋ผ ์ถ์ ์ด๋ค
- ๊ทธ๋๋ ๋จ๋
?๋ ๋ฐ๋ก ์ธ์ด ๋ณด๊ณ ํ๋ค. "๋ณ๊ฒฝ N๊ฑด, ํ์ธ ๋ถ๊ฐ M๊ฑด"์ด๋ผ์ผ ๋ฐ๋ ์ชฝ์ด ํ๋จํ ์ ์๋ค
RPM์ด ๋๋ด ๋ชป ๋ณด๋ ๋ ์์ญ
rpm -Vac๋ ํจํค์ง๊ฐ ๊ด๋ฆฌํ๋ ํ์ผ๋ง ๋ณธ๋ค. ์๋ฒ ์ํ์ ์๋น ๋ถ๋ถ์ด ๊ทธ ๋ฐ์ ์๋ค.
1. ํจํค์ง์ ์ํ์ง ์๋ ํ์ผ
์ฌ๋์ด ์๋ก ๋ง๋ ๊ฒ๋ค์ด๋ค. ์ญ์กฐํ๋ก ์ฐพ๋๋ค.
$ find /etc -type f | xargs -r rpm -qf 2>&1 | grep 'not owned by any package'์ฌ๊ธฐ์ ๋ฐ๋ก ๋ชฉ๋ก์ ์ฐ๋ฉด ์ ๋๋ค. ์๋ ์์ฑ๋ฌผ์ด ์์ฌ ์๋ค.
| ์ ์ธ ๋์ | ์ด์ |
|---|---|
/etc/ssh/ssh_host_* |
โ ๏ธ ์ฎ๊ธฐ๋ฉด ๋ ์๋ฒ๊ฐ ๊ฐ์ ์ ์์ ๊ฐ๋๋ค |
/etc/machine-id |
๋ถํ ์ ์์ฑ๋๋ ๊ณ ์ ์๋ณ์ |
/etc/.updated, /etc/subuid- ๋ฑ ๋ฐฑ์
์์ฌ |
์์คํ ์ด ๋ง๋ ์ฌ๋ณธ |
/etc/nvme/ ๊ฐ์ ํ๋์จ์ด ์ข
์ ๊ฒฝ๋ก |
์ ์ฅ๋น์์ ์๋ฏธ๊ฐ ์๋ค |
โ ๏ธ SSH ํธ์คํธ ํค๋ฅผ ๊ทธ๋๋ก ์ฎ๊ธฐ๋ฉด ์ ์ํ๋ ์ชฝ์์๋ ๋ ์๋ฒ๊ฐ ๊ตฌ๋ถ๋์ง ์๋๋ค. ํธ์๋ฅผ ์ํด ๋ณต์ฌํ๊ณ ์ถ์ด์ง๋ ํ์ผ์ด๋ผ ๋ ์ํํ๋ค.
ํํฐ๋ฅผ ์ ์ฉํ๋ 21๊ฑด์ด 7๊ฑด์ผ๋ก ์ค์๋ค. ์ค์ด๋ 14๊ฑด์ด ์ ๋ถ ์ฎ๊ธฐ๋ฉด ์ ๋๋ ๊ฒ๋ค์ด์๋ค.
2. ํ์ผ๋ก ์กด์ฌํ์ง ์๋ ์ํ
๋ฐฉํ๋ฒฝ ๊ท์น, SELinux ์ค์ , ๊ณ์ , ์ค์ผ์ค์ ํ์ผ ํ๋๋ก ํํ๋์ง ์๋๋ค. ์๋ธ์์คํ ์ ์ง์ ๋ฌผ์ด์ผ ํ๋ค.
# ๋ฐฉํ๋ฒฝ
firewall-cmd --list-all-zones
# SELinux ์ปค์คํ
๋ง (-C ๊ฐ ๊ธฐ๋ณธ๊ฐ์ ๊ฑธ๋ฌ ์ค๋ค)
semanage boolean -l -C
semanage port -l -C
semanage fcontext -l -C
# ์ฌ๋์ด ๋ง๋ ๊ณ์
awk -F: '$3 >= 1000 && $3 < 65534 {print $1}' /etc/passwd
# ํ์ฑ ์๋น์ค
systemctl list-unit-files --state=enabledsemanage์ ๋ถ๋ -C๊ฐ ํต์ฌ์ด๋ค. ์ด๊ฒ ์์ผ๋ฉด ๋ฐฐํฌํ ๊ธฐ๋ณธ ์ ์ฑ
์๋ฐฑ ์ค์ด ํต์งธ๋ก ๋์ ์ฌ๋์ด ๋ฐ๊พผ ํญ๋ชฉ์ ๋ฎ๋๋ค.
โ ๏ธ systemd ์ชฝ์
/etc/systemd/system/*.wants/๋ฅผ ๊ฒฐ๊ณผ์์ ๋นผ์ผ ํ๋ค.systemctl enable์ด ๋ง๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ผ ํ์ฑํ๋ ์๋น์ค ์๋งํผ ์ค์ด ๋์ด๋๋ค. ๋ฉ์์ ๋ ธ์ด์ฆ 20์ค์ด ์ฌ๊ธฐ์ ๋์๋ค.
์๊ฒฉ์ง ์๋ฒ์์ ๋ฐ์๋ด์ผ ํ ๋
์ง์ ์ ์์ด ์ ๋๋ ์๋ฒ๋ผ๋ฉด ์๋์๊ฒ ๋ช ๋ น์ ๋ณด๋ด๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ ๋ฐ๊ฒ ๋๋ค. ๋ ๊ฐ์ง๊ฐ ์ค๋ฌด์์ ๊ฐ๋ฆฐ๋ค.
์คํฌ๋ฆฝํธ๋ ์ฒจ๋ถํ์ง ์๋๋ค. ๋ณด์ ์ ์ฑ ์ ์ฒจ๋ถํ์ผ์ด ์ฐจ๋จ๋๋ ํ๊ฒฝ์ด ํํ๋ค. ๋ฉ์ผ ๋ณธ๋ฌธ์ heredoc ํํ๋ก ๋ฃ์ผ๋ฉด ์๋๊ฐ ๊ทธ๋๋ก ๋ถ์ฌ ๋ฃ์ด ์คํํ ์ ์๋ค.
cat > /tmp/os_config_diff.sh <<'SCRIPT'
#!/bin/bash
# ์ฝ๊ธฐ ์ ์ฉ. ์ด๋ค ํ์ผ๋ ์์ ํ์ง ์๋๋ค.
rpm -q rpm || { echo "RPMDB ERROR"; exit 1; }
echo "== ๋ณ๊ฒฝ๋ config =="
rpm -Vac | awk '$1 ~ /5/ {print $NF}'
echo "== ๋ฏธ์์ ํ์ผ =="
find /etc -type f | xargs -r rpm -qf 2>&1 | grep 'not owned by any package'
SCRIPT
bash /tmp/os_config_diff.sh์์ฒญ์ ํ์ผ ๋ชฉ๋ก๊น์ง๋ง ํ๋ค. ๋ด์ฉ์ 2์ฐจ ์์ฒญ์ด ์์๋ค. ๋ชฉ๋ก๊ณผ ๋ด์ฉ์ ํ ๋ฒ์ ๋ฌ๋ผ๊ณ ํ๋ฉด ์ค์ ํ์ผ์ ์๊ฒฉ ์ฆ๋ช ์ด ๋ค์ด ์์ ์ ์์ด ๋ฐ์ถ ์น์ธ ๋จ๊ณ์์ ๋งํ๋ค. ๋ชฉ๋ก์ ๋จผ์ ๋ฐ์ ํ์ํ ํ์ผ์ ์ถ๋ฆฐ ๋ค ๊ทธ๊ฒ๋ง ์์ฒญํ๋ฉด ํต๊ณผํ๋ค.
์ฝ๊ธฐ ์ ์ฉ์ด๋ผ๋ ์ฌ์ค์ ์คํฌ๋ฆฝํธ ์ฒซ ์ค ์ฃผ์์ ๋ฐ์ ๋๋ ๊ฒ๋ ๊ฐ์ ์ด์ ๋ค. ๋ฐ๋ ์ชฝ์ ์คํ ์ ์ ๊ทธ ํ ์ค์ ๋ณธ๋ค.
์ ๋ฆฌ
rpm -q rpm์ผ๋ก DB๋ถํฐ ํ์ธํ๋ค. ์ฌ๊ธฐ๊ฐ ์คํจํ๋ฉด ๋๋จธ์ง ๊ฒฐ๊ณผ๋ ์ ๋ถ ๊ฑฐ์ง์ด๋คrpm -Vac๋ก config ๋ณ๊ฒฝ์ ๋ฝ๊ณ5ํ๋๊ทธ๋ง 1์ฐจ ๋์์ผ๋ก ๋ณธ๋ค2>/dev/null์ ๋ถ์ด์ง ์๋๋ค. ๋ถ์๋ค๋ฉด ์ข ๋ฃ ์ฝ๋๋ฅผ ๊ฐ์ด ๋ณธ๋ค- sudo๋ก ๋๋ฆฌ๊ณ , ๋จ์
?๊ฑด์๋ฅผ ๋ฐ๋ก ๋ณด๊ณ ํ๋ค - ํจํค์ง ๋ฏธ์์ ํ์ผ์ ์ญ์กฐํํ๊ณ ์๋ ์์ฑ๋ฌผ์ ๊ฑธ๋ฌ๋ธ๋ค
- ๋ฐฉํ๋ฒฝ, SELinux, ๊ณ์ , ์๋น์ค๋ ์๋ธ์์คํ ์ ๋ฐ๋ก ๋ฌป๋๋ค
๊ฐ์ฅ ์ค์ํ ํ ๊ฐ์ง๋ฅผ ๊ณ ๋ฅด๋ผ๋ฉด ์ฒซ ๋ฒ์งธ๋ค. ์ด ์์ ์ ๊ฒฐ๊ณผ๋ฌผ์ "๋ณ๊ฒฝ ๋ชฉ๋ก"์ด๊ณ , ์คํจํ์ ๋์ ๋ชจ์ต๋ ๋๊ฐ์ด ๋น ๋ชฉ๋ก์ด๋ค. ์ฑ๊ณต๊ณผ ์คํจ๊ฐ ๊ฐ์ ๋ชจ์์ผ๋ก ๋ณด์ด๋ ์ ์ฐจ์์๋ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ธฐ ์ ์ ์ ์ ๋ถํฐ ์ฆ๋ช ํด์ผ ํ๋ค.
-
rpm -q rpm์ผ๋ก DB ๊ฑด์ ์ฑ์ ๋จผ์ ํ์ธํ๋ค -
rpm -Vac์2>/dev/null์ ๋ถ์ด์ง ์๋๋ค - 0๊ฑด์ด๋ฉด ์ข
๋ฃ ์ฝ๋๊ฐ 0์ธ์ง ํ์ธํ๋ค.
exit != 0์ด๋ฉด ์คํจ๋ค -
sudo -n์คํจ์ DB ์์์ ๊ตฌ๋ถํ๋ค -
5ํ๋๊ทธ๊ฐ ์๋ ํญ๋ชฉ๋ง 1์ฐจ ์ด๊ด ๋์์ผ๋ก ์ผ๋๋ค -
?ํญ๋ชฉ ๊ฑด์๋ฅผ ๊ฒฐ๊ณผ์ ํจ๊ป ์ ๋๋ค - ๋ฏธ์์ ํ์ผ์์ SSH ํธ์คํธ ํค์ machine-id๋ฅผ ์ ์ธํ๋ค
-
semanage์-C๋ฅผ ๋ถ์ฌ ๊ธฐ๋ณธ ์ ์ฑ ์ ๊ฑธ๋ฌ๋ธ๋ค - systemd ๊ฒฐ๊ณผ์์
*.wants/์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋บ๋ค - ์๊ฒฉ ์์ฒญ์ ํ์ผ ๋ชฉ๋ก๊น์ง๋ง, ๋ด์ฉ์ 2์ฐจ๋ก ๋๋๋ค
๋ค์ ๊ธ์์๋ ์ฝ๋๊ฐ ์๋๋ผ ํ๋ฉด ์ชฝ์ ๋ค๋ฃฌ๋ค. ๋์์ธ ์์คํ ์์ด ๊ตด๋ ค ์จ ์ฌ์ด๋ ํ๋ก์ ํธ ๋ค ๊ณณ์ ํ ํฐ ์ฒด๊ณ๋ก ์ ๋ฆฌํ๋ฉด์, ์ธ๋ผ์ธ ์คํ์ผ 38๊ฐ๊ฐ ๊ฒ์ผ๋ฆ์ด ์๋๋ผ ๋์ ์คํ์ผ ๋๋ฌธ์ด์๋ค๋ ๊ฒ๊ณผ ๋คํฌ ๋ชจ๋ ํ ํฐ ๋ ๊ฐ๊ฐ ์์ธ ์ ํ์ ์ค๋ฌด ๊ฐ๋ฅผ ๋ถ๋ฅธ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณธ๋ค.
์ฐธ๊ณ ๋ฌธํ
- rpm.org. "rpm(8) manual: verify options" (
-Vํ๋๊ทธ ์ํ ์๋ฆฌ ํด์). https://man7.org/linux/man-pages/man8/rpm.8.html - Red Hat. "Practical Guide to RPM Database Recovery" (
--rebuilddb์ ์์ ์ฆ์). https://access.redhat.com/articles/1173103 - Red Hat. "Changes to the RPM database backend in RHEL 9" (BDB์์ sqlite ์ ํ). https://access.redhat.com/articles/6218671
- Red Hat Enterprise Linux Documentation. "Using SELinux" (
semanage -C๋ก ๋ก์ปฌ ์์ ๋ง ์กฐํ). https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_selinux/index - freedesktop.org. "systemd.unit: The .wants/ directory". https://www.freedesktop.org/software/systemd/man/systemd.unit.html
- freedesktop.org. "machine-id(5)" (๋ถํ ์ ์์ฑ๋๋ ๊ณ ์ ์๋ณ์). https://www.freedesktop.org/software/systemd/man/machine-id.html
- OpenSSH. "sshd(8): HostKey" (ํธ์คํธ ํค๊ฐ ์๋ฒ ์ ์์ ๋ํํ๋ค). https://man.openbsd.org/sshd




