달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
흔히들 리눅스를 설치하고 그냥 외부에 공개해버리는 서버들이 간혹있습니다.
이에 따른 버그조차조 패치를 않하고 기본적으로 사용을 하는 분들이 많이
있는데 이는 잘못된 생각이며, 버젼별로 버그 패치를 꼭 해주셔야 합니다.
또한 각종 remote bug가 허용되는것들은 조심을 하셔야 한다고 생각되며
아래에 보안 리눅스 디폴트 퍼미션을 공개합니다. 마음대로 설정은 하셔도
되며 저에게는 어떠한 책임이 없음을 여기서 밝혀드립니다.

▶ 표준 보안 퍼미션 설정
/bin/ root.root 711
/boot/ root.root 700
/dev/ root.root 711
/dev/audio* root.audio 600
/dev/dsp* root.audio 600
/etc/ root.adm 711
/etc/conf.modules root.adm 640
/etc/cron.daily/ root.adm 750
/etc/cron.hourly/ root.adm 750
/etc/cron.monthly/ root.adm 750
/etc/cron.weekly/ root.adm 750
/etc/crontab root.adm 640
/etc/dhcpcd/ root.adm 750
/etc/dhcpcd/* root.adm 640
/etc/esd.conf root.audio 640
/etc/ftpaccess root.adm 640
/etc/ftpconversions root.adm 640
/etc/ftpgroups root.adm 640
/etc/ftphosts root.adm 640
/etc/ftpusers root.adm 640
/etc/gettydefs root.adm 640
/etc/hosts.allow root.adm 640
/etc/hosts.deny root.adm 640
/etc/hosts.equiv root.adm 640
/etc/inetd.conf root.adm 640
/etc/rc.d/init.d/ root.adm 750
/etc/rc.d/init.d/syslog root.adm 740
/etc/inittab root.adm 640
/etc/ld.so.conf root.adm 640
/etc/lilo.conf root.adm 600
/etc/modules.conf root.adm 640
/etc/motd root.adm 644
/etc/printcap root.lp 640
/etc/profile root.root 644
/etc/rc.d/ root.adm 640
/etc/securetty root.adm 640
/etc/sendmail.cf root.adm 640
/etc/shutdown.allow root.root 600
/etc/ssh_config root.root 644
/etc/ssh_host_key root.adm 640
/etc/ssh_host_key.pub root.adm 644
/etc/sshd_config root.adm 640
/etc/syslog.conf root.adm 640
/etc/updatedb.conf root.adm 640
/home/ root.adm 751
/home/* current 700
/lib/ root.adm 751
/mnt/ root.adm 750
/root/ root.root 700
/sbin/ root.adm 751
/tmp/ root.root 1777
/usr/ root.adm 751
/usr/* root.adm 751
/usr/X11R6/ root.xgrp 751
/usr/bin/ root.adm 751
/usr/bin/* root.root 755
/usr/sbin/ root.adm 751
/usr/sbin/* root.root 755
/var/ root.root 755
/var/log/ root.root 711
/var/log/* root.root 600
/var/spool/mail/ root.mail 771

▶툴들에 대한 퍼미션 설정

1. 컴파일 툴들의 퍼미션 설정
chmod 0700 /usr/bin/gcc
chmod 0700 /usr/bin/g++
chmod 0700 /usr/bin/cc
chmod 0700 /usr/bin/colorgcc

2. 시스템 툴들의 퍼미션 설정
chmod 0700 /usr/bin/w
chmod 0700 /usr/bin/who
chmod 0700 /usr/bin/finger

3. 네트워크 툴들의 퍼미션 설정
chmod 0700 /bin/ping
chmod 0700 /usr/bin/telnet (이나 아마 /bin/telnet일겁니다.)
chmod 0700 /usr/bin/ssh (만일 여러분이 ssh를 설치하였다면)
chmod 0700 /usr/sbin/traceroute

▶물리적 보안
보통 서버가 외부 사람이 많이 오는곳에 설치되어있다면 그 사람들중에
물리적 크래킹을 하기위하여 다가오는 분들이 많이 있습니다. 이에 방어
할수 있는것은 바로 lilo와 root로 조인을 못하게 설정하는것입니다.

1. lilo.conf의 설정
/etc/lilo.conf 의 맨위에다가 아래와 같이 설정을 합니다.
#My LILO password
password=foobar <-- 비번입니다.

저장을 하고 나서,
chmod a-r /etc/lilo.conf
아무도 못보게 설정을 합니다.

그다음 /sbin/lilo를 구동시켜 새로운 설정을 적용시킵니다.

2. /etc/inittab 의 설정
로컬에서는 루트로도 접근이 가능합니다.
허나 이를 막기 위하여 이 파일을 수정하셔야 합니다.
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
이라고 보이실겁니다. 이것을 아래와 같이 변경을 합니다.
ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now
저장을 하시고 나서 아래와 같이 명령어를 수행합니다.
#telinit q
#
위와 같이 한후에 보시게 되면 /etc/에 shadow.allow가 만들어질것입니다.
그것이 있다면 아무나 리부팅을 못하는것이죠.

3./etc/securetty 의 설정
/etc/securetty 파일을 열게 되면 아마도 아래와 같이 있을것입니다.

# /etc/securetty
tty1
tty2
tty3
tty4
tty5
tty6

이것은 로컬에서 root로 들어올수 있는것이죠.
그래서 이것을 막게 하는것입니다. 그래야 공개된 석상에서 아무도 root를
뚫고 들어오지를 못할테니까여... 설령 linux single로도...
그래서 아래와 같이 설정을 합니다.
# /etc/securetty
#tty1
#tty2
#tty3
#tty4
#tty5
#tty6

이후에 telinit q를 실행하여 지금 방금 설정한것에 대한 적용을
시킵니다.
그후 로그인을 해봅니다.
Kernel 2.2.13-pre3 on an i686 / tty3
H4cker login: root
Password:
Login incorrect

login: root
Password:
Login incorrect

Done, root is not allowed login.

위와 같이 떨어지겠죠? 그렇다면 아무리 공개된 석상에 서버를 가져다 놓아도
크래킹 당할 염려가 없답니다. 그사람이 암호를 알지 못하는 이상...
그럼 즐~~
Posted by tornado
|