보안 체킹 프로그램 (Security Checking Program)
sxid
- 파일 시스템(퍼미션)을 감시하는 프로그램으로 해당 파일시스템의 suid, sgid 파일만을 체크한다.
- (suid, sgid 와 같이 s bit 가 설정된 디렉토리나 파일은 보안상 중요하다 - 실행시 root의 권한으로 작동하기 때문)
- 시스템에 무리를 주지 않고 사용할 수 있는 장점이 있다.
-------------------------------------------------------------------
http://www.phunnypharm.org/pub/sxid/
sxid_4.0.4.tar.gz : (다운로드)
-------------------------------------------------------------------
1. sxid 다운 및 압축해제
[root@server3 ~]# cd Desktop [root@server3 Desktop]# ls sxid_4.0.4.tar.gz [root@server3 Desktop]# tar xvfz sxid_4.0.4.tar.gz sxid-4.0.4/ sxid-4.0.4/source/ sxid-4.0.4/source/config.h.in sxid-4.0.4/source/Makefile.in sxid-4.0.4/source/getopt.c sxid-4.0.4/source/getopt1.c sxid-4.0.4/source/search.c sxid-4.0.4/source/conffile.c sxid-4.0.4/source/md5.c sxid-4.0.4/source/logging.c sxid-4.0.4/source/getopt.h sxid-4.0.4/source/sxid.c sxid-4.0.4/source/notify.c sxid-4.0.4/source/md5sum.c sxid-4.0.4/source/md5.h sxid-4.0.4/source/sxid.h sxid-4.0.4/acconfig.h sxid-4.0.4/debian/ sxid-4.0.4/debian/cron.daily sxid-4.0.4/debian/control sxid-4.0.4/debian/changelog sxid-4.0.4/debian/postinst sxid-4.0.4/debian/prerm sxid-4.0.4/debian/copyright sxid-4.0.4/debian/conffiles sxid-4.0.4/debian/rules sxid-4.0.4/sxid.spec sxid-4.0.4/configure sxid-4.0.4/docs/ sxid-4.0.4/docs/TODO sxid-4.0.4/docs/sxid.cron.example sxid-4.0.4/docs/sxid.conf.5.in sxid-4.0.4/docs/sxid.conf.example sxid-4.0.4/docs/sxid.1.in sxid-4.0.4/configure.in sxid-4.0.4/aclocal.m4 sxid-4.0.4/Makefile sxid-4.0.4/README sxid-4.0.4/install-sh [root@server3 Desktop]# ls sxid-4.0.4 sxid_4.0.4.tar.gz [root@server3 Desktop]# mv sxid-4.0.4/ /usr/local/src/ |
2. sxid 설치
[root@server3 Desktop]# cd /usr/local/src [root@server3 src]# ls sxid-4.0.4 [root@server3 src]# cd sxid-4.0.4/ [root@server3 sxid-4.0.4]# ls Makefile acconfig.h configure debian install-sh sxid.spec README aclocal.m4 configure.in docs source [root@server3 sxid-4.0.4]# ./configure --help Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: --cache-file=FILE cache test results in FILE --help print this message --no-create do not create output files --quiet, --silent do not print `checking...' messages --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX - 기본적으로 /usr/local/ 에 설치된다. [/usr/local] - 중략 [root@server3 sxid-4.0.4]# ./configure creating cache ./config.cache checking for gcc... gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking for a BSD compatible install... /usr/bin/install -c checking for uname... uname checking OS... Linux checking for mail... /bin/mail checking for getopt_long_only... yes checking for strtok_r... yes updating cache ./config.cache creating ./config.status creating source/Makefile creating docs/sxid.1 creating docs/sxid.conf.5 creating source/config.h [root@server3 sxid-4.0.4]# make autoconf cd source && make all make[1]: Entering directory `/usr/local/src/sxid-4.0.4/source' gcc -g -O2 -I. -c sxid.c -o sxid.o gcc -g -O2 -I. -c md5.c -o md5.o gcc -g -O2 -I. -c md5sum.c -o md5sum.o gcc -g -O2 -I. -c logging.c -o logging.o gcc -g -O2 -I. -c notify.c -o notify.o gcc -g -O2 -I. -c conffile.c -o conffile.o gcc -g -O2 -I. -c search.c -o search.o gcc sxid.o md5.o md5sum.o logging.o notify.o conffile.o search.o -o sxid make[1]: Leaving directory `/usr/local/src/sxid-4.0.4/source' [root@server3 sxid-4.0.4]# make install cd source && make all make[1]: Entering directory `/usr/local/src/sxid-4.0.4/source' make[1]: `all'를 위해 할 일이 없습니다 make[1]: Leaving directory `/usr/local/src/sxid-4.0.4/source' cd source && make install DESTDIR= make[1]: Entering directory `/usr/local/src/sxid-4.0.4/source' /usr/bin/install -c -d -m 755 {/usr/local/etc,/usr/local/man/man{1,5},/usr/local/bin} if ! test -e /usr/local/etc/sxid.conf; then \ /usr/bin/install -c -m 644 ../docs/sxid.conf.example \ /usr/local/etc/sxid.conf; \ fi /usr/bin/install -c -m 644 ../docs/sxid.1 /usr/local/man/man1/sxid.1 /usr/bin/install -c -m 644 ../docs/sxid.conf.5 /usr/local/man/man5/sxid.conf.5 /usr/bin/install -c -m 755 sxid /usr/local/bin/sxid You now need to add a cron entry (see: docs/sxid.cron.example) make[1]: Leaving directory `/usr/local/src/sxid-4.0.4/source' [root@server3 etc]# whereis sxid sxid: /usr/local/bin/sxid /usr/local/etc/sxid.conf |
3. sxid 환경 설정 파일
[root@server3 etc]# pwd /usr/local/etc [root@server3 etc]# ls pear.conf sxid.conf [root@server3 etc]# vi sxid.conf 1 # Configuration file for sXid 2 # Note that all directories must be absolute with no trailing /'s 3 4 # Where to begin our file search 5 SEARCH = "/" - 파일을 찾을 경로 설정 6 7 # Which subdirectories to exclude from searching 8 EXCLUDE = "/proc /mnt /cdrom /floppy" - 검색에서 제외할 디렉토리 설정 9 10 # Who to send reports to 11 EMAIL = "root" - 작성된 보고서를 수신할 e-mail 주소 12 13 # Always send reports, even when there are no changes? 14 ALWAYS_NOTIFY = "no" - 변경할 내용이 없더라도 메일을 보낼 것인지 설정 15 16 # Where to keep interim logs. This will rotate 'x' number of 17 # times based on KEEP_LOGS below 18 LOG_FILE = "/var/log/sxid.log" 19 20 # How many logs to keep 21 KEEP_LOGS = "5" - 얼마나 많은 로그파일을 만들 것인지 설정 22 23 # Rotate the logs even when there are no changes? 24 ALWAYS_ROTATE = "no" - 변화가 없을 때도 로그를 순환할 것인지 설정 25 26 # Directories where +s is forbidden (these are searched 27 # even if not explicitly in SEARCH), EXCLUDE rules apply 28 FORBIDDEN = "/home /tmp" - +s 가 금지된 디렉토리 설정 29 30 # Remove (-s) files found in forbidden directories? 31 ENFORCE = "no" - 금지된 디렉토리에서 발견시 s비트 제거 설정 32 33 # This implies ALWAYS_NOTIFY. It will send a full list of 34 # entries along with the changes 35 LISTALL = "no" - 변경된 것과 함께 모든 항목의 리스트를 발송 36 37 # Ignore entries for directories in these paths 38 # (this means that only files will be recorded, you 39 # can effectively ignore all directory entries by 40 # setting this to "/"). The default is /home since 41 # some systems have /home g+s. 42 IGNORE_DIRS = "/home" - 이 경로에서의 디렉토리 항목을 무시하고 파일만 기록한다. 43 44 # File that contains a list of (each on it's own line) 45 # other files that sxid should monitor. This is useful 46 # for files that aren't +s, but relate to system 47 # integrity (tcpd, inetd, apache...). 48 # EXTRA_LIST = "/etc/sxid.list" - sxid 가 모니터링 해야할 파일 목록이 정의된 파일 설정 49 50 # Mail program. This changes the default compiled in 51 # mailer for reports. You only need this if you have changed 52 # it's location and don't want to recompile sxid. 53 # MAIL_PROG = "/usr/bin/mail" - 메일 프로그램 |
4. sxid 실행
[root@server3 ~]# mkdir test1 [root@server3 ~]# sxid -k - sxid를 수작업으로 실행한다. 현재 디렉토리 및 하위디렉토리의 변경 여부를 체크한다. sXid Vers : 4.0.4 Check run : Tue Feb 3 10:15:50 2009 This host : server3.co.kr Spotcheck : /root - 현재 폴더에서 하위폴더까지만 검색한다. 즉 /root이하 폴더만 검색 Excluding : /proc /mnt /cdrom /floppy Ignore Dirs: /home Forbidden : /home /tmp No changes found [root@server3 ~]# chmod 4777 test1 - test1의 퍼미션을 변경해 본다. [root@server3 ~]# sxid -k sXid Vers : 4.0.4 Check run : Tue Feb 3 10:22:11 2009 This host : server3.co.kr Spotcheck : /root Excluding : /proc /mnt /cdrom /floppy Ignore Dirs: /home Forbidden : /home /tmp Checking for any additions or removals: + /root/test1/ *root:root 4777 - 변경된 디렉토리가 검출되었다. Checking for changed attributes or sums/inodes: Checking for no user/group matches: Checking for forbidden s[ug]id items: [root@server3 ~]# sxid - sxid -k 로 검색해서 나온 파일들이 이상없는 파일들이라면 이 파일들을 저장해준다. 그래서 다시 sxid -k 를 하게되면 여기서 저장된 이상없는 파일들은 skip한다. [root@server3 ~]# sxid -k sXid Vers : 4.0.4 Check run : Tue Feb 3 10:57:39 2009 This host : server3.co.kr Spotcheck : /root Excluding : /proc /mnt /cdrom /floppy Ignore Dirs: /home Forbidden : /home /tmp No changes found [root@server3 ~]# |
'Linux > 보안' 카테고리의 다른 글
보안 체킹 프로그램 - Nmap - port scanning (0) | 2009.02.03 |
---|---|
보안 체킹 프로그램 - rootkit hunter (0) | 2009.02.03 |
보안 체킹 프로그램 - chkrootkit (0) | 2009.02.03 |
네트워크 서비스 보안 - ssh (0) | 2009.01.30 |
네트워크 서비스 보안 - tcpdump (0) | 2009.01.30 |
네트워크 서비스 보안 - TCP_Wrapper (0) | 2009.01.30 |