์๋์ฐ ์ธ์ฆ
LSA(์๋ณ) SAM(์ธ์ฆ) SRM(์ธ๊ฐ) SAMํ์ผ - ์ํธํ๋ ํจ์ค์๋ ์ ๋ณด๋ฅผ ์ ์ฅ
์๋์ฐ ๋ณด์ ์๋ณ์ ( SID ) : ์ฌ์ฉ์๋ ๊ทธ๋ฃน ๊ณ ์ ์๋ณ๋ฒํธ / SAM ํ์ผ์ SID ์ ๋ณด ์ ์ฅ
500 : ๊ด๋ฆฌ์(Administrator) , 501 : ๊ฒ์คํธ(Guest) , 1000์ด์ : ์ผ๋ฐ ์ฌ์ฉ์
์๋์ฐ ์ธ์ฆ๊ตฌ์กฐ : Challenge & Response ๊ตฌ์กฐ
๋จ์ํ ์์ด๋์ ํจ์ค์๋๋ฅผ ์ ๋ฌํ์ฌ ์ธ์ฆํ๋ ๋ฐฉ์์ ์ทจ์ฝํ๊ธฐ ๋๋ฌธ
1. ์ธ์ฆ์์ฒญ
2. challenge ๊ฐ ์ ์ก
3. Response ๊ฐ ( ํจ์ค์๋ + challenge๊ฐ) ์ ์ก
4. ๊ฐ ํ์ธ ๋ฐ ์ธ์ฆ ์ฑ๊ณต
๋ ์ธ๋ณด์ฐ ํ ์ด๋ธ ๊ณต๊ฒฉ
์์ฃผ ์ฐ์ด๋ ํจ์ค์๋์ ๋ํ ํด์๊ฐ ์ฌ์ , ์ํธ๋ฅผ ํตํด ๋์
์ํธ : ์ํธํ ๊ฐ๋๋ฅผ ๋์ด๊ธฐ์ํ ์์์ ๊ฐ , ํจ์ค์๋์ ์ถ๊ฐ
ํด์ ์ฐ์ฐ ์ํ์ ์ํธ ๊ฐ์ ์ถ๊ฐ ์ ๋ ฅ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ,
๋์ผํ ํจ์ค์๋์ ๋ํ์ฌ ํด์๊ฐ์ด ๋ฌ๋ผ์ง๋ฏ๋ก ํด์ ๋ชฉ๋ก์ ์ด์ฉํ ๋ ์ธ๋ณด์ฐํ ์ด๋ธ ๊ณต๊ฒฉ์ ๋์ ๊ฐ๋ฅ
/etc/passwd ํ์ผ
๊ณ์ :pw:UID:GID:comment:H_dir:login_shell
๋ก๊ทธ์ธ์ด ๋ถํ์ํ ๊ณ์ “ /sbin/nologin ” , “ /bin/false “ ๋ฆฌ๋ ์ค ํจ์ค์๋ ์ ์ฑ ์ค์ ํ์ผ : /etc/login.defs
/etc/shadodw ํ์ผ
๊ณ์ :encryted_pw:last_change:MIN:MAX:WARN:inactive:expire
minlife : ํจ์ค์๋ ์ต์ ์ฌ์ฉ๊ธฐ๊ฐ , ํจ์ค์๋๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์ผ ์
์ต๊ทผ ์ํธ๊ธฐ์ต์ ๋ฌด๋ ฅํํ์ฌ ์ต์ํ ํจ์ค์๋๋ฅผ ์ฌ์ฌ์ฉํ ๋ฌธ์ ์ ,1์ผ(1์ฃผ) ๊ถ์ฅ
maxlife : ํจ์ค์๋ ์ต๋ ์ฌ์ฉ๊ธฐ๊ฐ , ์ ์ถ ์ ๊ณต๊ฒฉ์์ ๊ณ์์ ์ธ ์ ๊ทผ ๊ฐ๋ฅ 90์ผ(12์ฃผ)
ํด์๊ฐ (์ฌ์ฉ์ ํจ์ค์๋์ ์ํธ๋ฅผ ์กฐํฉํ์ฌ ํด์ํ ๊ฐ)
๋ฆฌ๋ ์ค ๋ก๊ทธ ํ์ผ
utmp : ํ์ฌ ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ์ํ์ ๋ณด “w”, “who” , “finger”
wtmp: ์ฌ์ฉ์์ ์ฑ๊ณตํ ๋ก๊ทธ์ธ,๋ก๊ทธ์์,์์คํ ๋ถํ ์ ๋ณด “last”
last reboot | head -5
lastlog: ๊ฐ์ฅ ์ต๊ทผ์ ์ฑ๊ณตํ ๋ก๊ทธ์ธ ๊ธฐ๋ก “lastlog” , “finger”
lastlog -u kiwi99 , lastlog -t 5 : ํด๋น ์ผ์์ด๋ด ์ ์ํ ๊ธฐ๋ก
btmp: ์คํจํ ๋ก๊ทธ์ธ ์๋ ๊ธฐ๋ก
๋ฆฌ๋ ์ค : /var/log/btmp “lastb ๊ณ์ ๋ช ”
์ ๋์ค : /var/adm/loginlog 5ํ์ด์ ์คํจ์
History : ๋ช ๋ น์ด์ ๋ํ ๊ธฐ๋ก , ๊ณ์ ๋ณ ํ๋๋ ํฐ๋ฆฌ์ ์กด์ฌ
message : ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์คํ ๋ก๊ทธ ํ์ผ
ํ์ผ ๊ถํ ๊ด๋ฆฌ
chmod : ๊ธฐ์กด ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ณ๊ฒฝ / chmod 664 demon.c
umask : ์๋ก ๋ง๋ค์ด์ง ํ์ผ์์ ์ ๊ฑฐ ๋ ๊ถํ์ ๋ช ์ / umask 022
chown/chgrp : ์์ ์ฃผ๋ ์์ ๊ทธ๋ฃน ๋ณ๊ฒฝ / chown root demon.c
ํ๋ก์ธ์ค ์คํ๊ถํ ( SUID , SGID )
ํ๋ก์ธ์ค๊ฐ ์คํ์ค์ธ ๋์์ ์ผ์์ ์ผ๋ก ๊ถํ์์น
ํด๋น ์คํํ์ผ์ ์์ ์,์์ ๊ทธ๋ฃน์ ๊ถํ์ผ๋ก ์์์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ๊ถํ์ค์
root ๊ถํ์ด ํ์ ์๋ ํ๋ก๊ทธ๋จ์ ์์ ์ฃผ๊ฐ root ๋ก ๋์ด ์์ผ๋ฉด์ setUID ๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ ๋ณด์์์ผ๋ก ๋งค์ฐ ์ทจ์ฝ
๊ด๋ฆฌ์๋ ์ฃผ๊ธฐ์ ์ผ๋ก SUID,SGID๊ฐ ์ค์ ๋ ํ๋ก๊ทธ๋จ์ ํ์ธํ ํ์
์์ ์๊ฐ root์ด๊ณ ํ์ผ์ ํ์ด ์ผ๋ฐํ์ผ(์คํํ์ผ)
Suid or Sgid ์ค์ ๋ ํ์ผ ์ ๋ณด ์์ธ ์ถ๋ ฅ
find / -user root -type f \(-perm -4000 -o -perm -2000\) -exec ls -al {}\;
๋๋ ํฐ๋ฆฌ ์ ๊ทผ๊ถํ ( sticky-bit )
๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ด์ฉํ ์ ์๋๋ก rwx ๊ถํ ๋ถ์ฌ -> ํ์ผ์ ๋๊ตฌ๋ ์ญ์ ๋๋ ํ์ผ๋ช ๋ณ๊ฒฝ ๊ฐ๋ฅ ๋ฌธ์ ์
์์ ๋กญ๊ฒ ํ์ผ/๋๋ ํฐ๋ฆฌ ์์ฑ๊ฐ๋ฅ , ํ์ผ์ญ์ ๋ฐ ํ์ผ๋ช ๋ณ๊ฒฝ์ ์์ ์๋ง ๊ฐ๋ฅํ๋๋ก ํน์๊ถํ๋นํธ
Context Switching ( ๋ฌธ๋งฅ ๊ตํ )
CPU๋ฅผ ์ฐจ์งํ๋ ํ๋ก์ธ์ค๊ฐ ์์์ ๋ฐํํ๊ณ ์๋ก์ด CPU๋ฅผ ์ฐจ์ง ํ๋๊ฒ
Init Process
๋ชจ๋ ํ๋ก์ธ์ค๋ ๋ถ๋ชจ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ง๋ค.
์์ ํ๋ก์ธ์ค๊ฐ ์ด์์๋ ์ํ์์ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃํ๊ฒ ๋๋ฉด
์์ ํ๋ก์ธ์ค๋ ๊ณ ์ ํ๋ก์ธ์ค๊ฐ ๋๋ฉฐ , ์ด ๊ฒฝ์ฐ ๋๋ฆฌ๋ชจ ํ๋ก์ธ์ค๊ฐ ๋ถ๋ชจ ์ญํ
Init Process - ๋๋ฆฌ๋ชจ ์ญํ ์ํ
UID ( User ID ) : ํ๋ก์ธ์ค์ EUID ( Effective User ID )
PID(Process ID): ํ๋ก์ธ์ค ์๋ณ ID
PPID ( Parent Process ID ) : ๋ถ๋ชจ ํ๋ก์ธ์ค ์๋ณID
์ข๋น ํ๋ก์ธ์ค
์ข๋น ํ๋ก์ธ์ค : ํ๋ก์ธ์ค ์ํ์ ์ข ๋ฃํ์ง๋ง ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ์ํ์ ๋ณด๋ฅผ ํ์ธํ์ง ์์์
์๋ฉธํ์ง ์๊ณ ๋จ์์๋ ์ํ์ ํ๋ก์ธ์ค
ํ๋ก์ธ์ค๋ ์ ํ๋ ์์์ด๋ฏ๋ก ์ข๋น ํ๋ก์ธ์ค๊ฐ ๊ณผ๋ํ๊ฒ ๋ง์์ง๋ฉด ๋ ์ด์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ ( ์์คํ ๊ฐ์ฉ์ฑ ๋ฌธ์ ) ์ข๋น ํ๋ก์ธ์ค๋ Kill ์๊ทธ๋์ ํตํด์๋ ์๋ฉธ ๋์ง ์๋๋ค.
์์คํ ๋ฆฌ๋ถํ ์ ํตํด ์ปค๋ ์ ๋ณด๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ฑฐ
๊ทผ๋ณธ์ ์ธ ํด๊ฒฐ์ฑ ์ ๋ฌธ์ ์ ์์ธ( ๋ถ๋ชจ ํ๋ก์ธ์ค) ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ
ํ๋ก์ธ์ค ์ค์ผ์ค ๊ด๋ฆฌ ( cron ) , ์ผ์์ ( at )
crontab ํ์ผ : ์ ๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ ์์
( ๋ถ / ์ / ์ผ / ์ / ์์ผ(0:์ผ์์ผ) / ์์ )
20 6 * * 1-5 /work/batch_job param1
๋งค์ ๋งค์ผ ์~๊ธ์์ผ ์ค์ 6์20๋ถ์ /work/batch_job ๋ช ๋ น param1 ์ธ์
10 3 * * * /usr/sbin/logadm
๋งค์ผ ์๋ฒฝ 3์ 10๋ถ์ /usr/sbin/logadm ๋ช ๋ น์ด๋ฅผ ์คํ
crontab ๋ช ๋ น ์ ๊ทผ์ ์ด
ํ์ฉํ์ง ์๋ ์ฌ์ฉ์๊ฐ ์์๋ก crontab ๋ช ๋ น์ ํตํ ์์ ๋ฑ๋ก์ ๋ชปํ๋๋ก ์ค์
/etc/cron.allow ํ์ผ์ ๋ฑ๋ก๋์ด ์๋ ์ฌ์ฉ์๋ง์ด ๋ช ๋ น ์คํ ( white list ๋ฐฉ์ )
์ ์์ ์ธ ์นจ์ ์๊ฐ ์์คํ ํดํน์์ root ๊ถํ์ ํ์ทจํ์ฌ ์ ์ฑํ๋ก๊ทธ๋จ์ ๋ฑ๋กํ๊ณ cron ์ ์ด์ฉํ์ฌ
์ฃผ๊ธฐ์ ์ผ๋ก “C&C”์๋ฒ์ ์ ์กํ ์์๊ธฐ์ ๊ด๋ฆฌ์๋ cronํ์ผ์ ์ฃผ๊ธฐ์ ์ธ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค
/etc/cron.allow , /etc/cron.deny ํ์ผ ์ ๊ทผ์ ์ด๊ฐ ํ์ํ๋ค
์ํผ ์๋ฒ ( ์ํผ ๋ฐ๋ชฌ )
Stand-Alone : ๊ฐ๋ณ ์๋น์ค , ์์ฃผ ์ฌ์ฉ๋๋ ์๋น์ค(httpd,sendmail)
inetd(xinetd) : ํ์ํ ๋ ์ํ , ์๋ฒ์ ๊ณ์ ์ฌ๋ ค๋์ ํ์์๋ ์๋น์ค
๋ถํ์ํ๊ณ ๋ณด์์ ์ทจ์ฝํ ์๋น์ค๋ค์ ๋นํ์ฑํ
inetd.conf ํ์ผ์์ ์ง์๋ฒ๋ฆฌ๊ธฐ(#์ฃผ์์ฒ๋ฆฌ) ํ inetd ์ฌ๊ฐ๋
serive inetd restart
์ ๊ทผํต์ (TCP Wrapper)
๊ด๋ฆฌ์๊ฐ ์ ๊ทผ์ ํ์ฉํ ํธ์คํธ์ ๋ํด์๋ง ์๋น์ค๋ฅผ ํ์ฉ
์ ๊ทผ ์์ /etc/hosts.allow -> /etc/hosts/deny -> default ( ๋ชจ๋ ์ ๊ทผ ํ์ฉ )
TCP Wrapper๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ํด๋น ์๋น์ค์ ์คํ๊ฒฝ๋ก์ “usr/sbin/tcpd”๋ฅผ ๋ช ์
PAM(์ฅ์ฐฉํ ์ธ์ฆ ๋ชจ๋)
์ธ์ฆ์ ์ํด ์ ๊ณต๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค , ํ์์ ๋ฐ๋ผ ์ ํ์ ์ฌ์ฉ
/etc/pam.d : PAM ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๋ ์๋น์ค์ ์ค์ ํ์ผ
/lib/security : PAM ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ๋ค์ํ ์ธ์ฆ ๋ชจ๋ ( .so )
root๊ณ์ ์ ์๊ฒฉ ์ ์ ์ ํ
root ๊ณ์ ์ ๊ฒฝ์ฐ ์ค์ํ ๊ณ์ ์ด๋ฏ๋ก ์๊ฒฉ ํฐ๋ฏธ๋ ์ ์์ ์ฐจ๋จํ๋ ๊ฒ์ด ํ์
1. etc/pam.d ์ ์๋ remote ์๋น์ค ์ค์ ํ์ผ์ pam_securetty.so ๋ชจ๋ ์ถ๊ฐ /etc/pam.d/remote
2. etc/securetty ํ์ผ์ “pts/~” ํฐ๋ฏธ๋ ๋ชจ๋ ์ ๊ฑฐ
SSH๋ฅผ ์ด์ฉํ root ๊ณ์ ์ ์๊ฒฉ ์ ์ ์ ํ
1. SSH๋ฐ๋ชฌ ์ค์ ํ์ผ /etc/ssh/sshd_config
2. PermitRootLogin ํญ๋ชฉ์ no๋ก ์ค์
3. ์ค์ ํ์ผ ์ ์ฅํ SSH ๋ฐ๋ชฌ ์ฌ์์ , service sshd restart
๊ณ์ ์ ๊ธ ์๊ณ๊ฐ ์ค์
๋ฌด์์ ๋์ ๊ณต๊ฒฉ, ์ฌ์ ๋์ ๊ณต๊ฒฉ, ํจ์ค์๋ ํฌ๋๊ณต๊ฒฉ์ ๋์
etc/pam.d ์ ์๋ sysmtem-auth ์๋น์ค ์ค์ ํ์ผ์ pam_tally2.so ๋ชจ๋ ์ถ๊ฐ
pam_tally2.so ๋ชจ๋ ์ต์
deny=5 : 5ํ ์ ๋ ฅ ์คํจ ์ ํจ์ค์๋๋ฅผ ์ ๊ทผ๋ค.
unlock_time=120 : ๊ณ์ ์ ๊น ํ ๋ง์ง๋ง ๊ณ์ ์คํจ ์๊ฐ๋ถํฐ ์ค์ ๋ ์๊ฐ์ด ์ง๋๋ฉด ์๋ ๊ณ์ ์ ๊ธ ํด์ ( ๋จ์:์ด)
pam_tally.so ๋ชจ๋ ์ต์
no_magic_root : root ๊ณ์ ์ ํจ์ค์๋ ์ ๊ธ ์ค์ ์ ์ ์ฉํ์ง ์๋๋ค.
reset : ์ ์ ์๋ ์ฑ๊ณต ์ ์คํจํ ํ์ ์ด๊ธฐํ
pam_tally2 ๋ช ๋ น
pam_tally2 -u kiwi99 : ๋ก๊ทธ์ธ ์คํจ ํ์ ํ์ธ
pam_tally2 -u kiwi99 -r : ํด๋น ๊ณ์ ์ ์คํจ ํ์ ์ด๊ธฐํ
/etc/pam.d/system-auth
deny=5
root๊ณ์ su ์ ํ
1. wheel ๊ทธ๋ฃน์ ์ฌ์ฉ์ ์ถ๊ฐ : usermod -G wheel algisa
2. /etc/pam.d ์ ์๋ su ์๋น์ค ์ค์ ํ์ผ์ pam_wheel.so ๋ชจ๋ ์ถ๊ฐ
sudo
su : switch user , ๋ค๋ฅธ๊ณ์ ์ผ๋ก ์ ํ , root์ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ ค์ค์ผ ํ๋ ๋ถ๋ด
sudo : ํ์ฌ ๊ณ์ ์์ ๋ค๋ฅธ ๊ณ์ ๊ถํ์ผ๋ก ๋ช ๋ น์ด๋ฅผ ์คํ
( ์ค์ ํ์ผ : sudoers )
algisa 192.168.56.100=(ALL) NOPASSWD: ALL
sudoersํ์ผ์ algisa ๊ณ์ ๋ฑ๋ก , algisa ๊ณ์ ์ sudo ๋ช ๋ น์ ํตํด 192.168.56.100 ํธ์คํธ์์ ๋ชจ๋ ๊ณ์ ๊ถํ์ผ๋ก
๋ชจ๋ ๋ช ๋ น์ algisa ๊ณ์ ์ ๋น๋ฐ๋ฒํธ ํ์ธ ์์ด ์คํ ๊ฐ๋ฅ
syslog ์ค์ ๋ฐ ๊ด๋ฆฌ
syslog.conf(rsyslog.conf) ์ค์ ํ์ผ์ ์ฐธ์กฐํ์ฌ ๋ก๊ทธ๋ฅผ ์ฒด๊ณ์ ์์ฑ,๊ด๋ฆฌ / BEEP
*.info;mail.none;authpriv.non;cron.none /var/log/message
๋ชจ๋ ์๋น์ค์ ๋ํ info ์์ค ์ด์์ ๋ก๊ทธ๋ฅผ /var/log/message ์ ๊ธฐ๋ก
๋ก๊ทธ์ํ ํ์ผ
/etc/logrotate.conf : ์ค์ ํ์ผ /etc/logrotate.d : ์๋น์ค๋ฅผ ์ ์ฉํ ํ๋ก์ธ์ค ์ค์ ํ์ผ
๋ฒํผ ์ค๋ฒํ๋ก์ฐ
ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฒ์๋ฅผ ๋์ด ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐ์ -> ๋ณต๊ท ์ฃผ์๋ฅผ ๋ณ๊ฒฝ -> ์์์ฝ๋ ์คํ
์ ๋ ฅ๊ฐ ์ฌ์ ๊ฒ์ฆ์ ํตํ ๋ฐฉ์ง
๋์๊ธฐ์
- ์คํ ๊ฐ๋ : ๋ณต๊ท ์ฃผ์์ ๋ณ์ ์ฌ์ด์ ํน์ ๊ฐ ( ์นด๋๋ฆฌ์ ) ์ ์ ์ฅ , ๋ณ๊ฒฝ๋์์ ๊ฒฝ์ฐ ์ค๋ฒํ๋ก์ฐ
-์คํ ์ด๋ : Global RET ํน์ ์คํ์ ์ ์ฅ , ํจ์์ข ๋ฃ์ ๋น๊ต
-ASLR( Address Space Layout Randomization ) : ์ฃผ์ ๊ณต๊ฐ ๋ฐฐ์น๋ฅผ ๋์ํ , ์คํ์ ๋ง๋ค ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ณ๊ฒฝ
๋ ์ด์ค ์ปจ๋์ ๊ณต๊ฒฉ
PATH ํ๊ฒฝ ๋ณ์ ( $PATH )
๋ช ๋ น์ด๋ฅผ ์คํ์ํฌ ๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋๋ฐ ์ด์ฉ
ํ๊ฒฝ๋ณ์์ . ์ด ๋งจ ์์ ์์ผ๋ฉด ๋ค๋ฅธ ๊ฒฝ๋ก๋ณด๋ค ํ์ฌ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฐ์ ํด์ ํ์ผ์ ์คํํ๋ค
์๋ํ์ง ์์ ๋ช ๋ น์ด ์คํ๋ ์ ์์ผ๋ฏ๋ก . ์ PATHํ๊ฒฝ๋ณ์์ ๋ง์ง๋ง์ผ๋ก ์ด๋ , ๋ถํ์ํ ๊ฒฝ์ฐ ์ญ์