ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [보안기사]01. 리눅스
    #00. 보안기사 2020. 11. 7. 22:00

    정보보안기사 자격증 취득 시 공부했던 내용(정리본)을 올려두려한다.

    묶여봤자 쓸데도 없고 종이가 너덜너덜하다.




    리눅스-Default



     1. 리눅스 운영체제 핵심구성요소

       1) 커널: 주 기억장치에 위치, 프로세스, 메모리, I/O, 파일관리 등을 수행

       2) 셀: 사용자명령의 입출력 수행(명령어 해석기/번역기)

       3) 파일시스템: 여러정보를 저장하는 기본적 구조로 트리형태


     2. 리눅스 디렉터리 구조

       1) /bin : 기본적인 실행파일

       2) /boot: 리눅스 부팅프로그램인 LILO(LInux LOarder)파일을 보관

       3) /etc: 환경설정 관련파일로 passwd, shadow, protocol, services 등이 존재

       4) /dev: 장치파일

       5) /proc: 실행중인 리눅스 프로세스 정보


      3. 기본 명령어들과 파일

       1) 명령어

          i. umask: 디폴트권한 022일 경우 디렉터리는 755, 파일은 744로 설정된다.

                         파일 기본이 666인 경우는 임의의 텍스트 파일이 쉘명령으로 잘못 인식되는 것을 막기 위해서,

                         디렉터리는 안으로 들어갈 수 있어야하기에 실행권한이 부여된다.

          ii. chmod: 파일권한변경 명령어로, chmod 4755 jjadmin.txt 혹은 chmod u+r, g+w, o-r jjadmin.txt와 같이 사용

              특수권한은 setuid(4000), setgid(2000), stickybit(1000)이다.

              setuid(실행파일 설정 시 s이며, 실행하면 해당 파일의 소유자 권한으로 실행)

              stickybit(tmp폴더와 같이 생성은 마음대로이다 삭제는 막을 때 사용)

          iii. find: 파일을 찾을 때 사용하며 find [directory] [option]형식으로 사용한다.

                       find / -perm 4000 -print : setuid 권한이 있는 파일을 출력

                       find / -name “[A-Z]*” : 루트디렉터리부터 파일명 첫글짜가 대문자인 것 찾기

                       find / -name “* *” -exec rm -f {}\; : 루트디렉터리부터 파일 이름에 공백이 들어간 모든 문자 삭제

                       find / -mtime -10 -print : 10일 안에 수정된 파일 찾기

                       find / -user root : 소유자가 root 인 파일 찾기

                       find / -nouser -o -nogroup : 소유자나 그룹이 없는 파일 찾기

            - MAC time

               M time: 파일이나 디렉터리의 생성, 복사, 수정, 삭제, 파일의 내용 등 변경된 시간

               A time: 파일을 열거나 접근한 시간

               C time: 리눅스에서 inode 변경시간, 권한변경 등으로 파일의 속성(권한, 소유자 등)이 마지막으로 변경된 시간

            - A time freeze

              chattr +i 사용 시 Access time(Atime)이 변경되지 않으며 관리자도 해당파일 삭제가 불가능하다.

              chattr +a 는 해당파일과 내부 디렉터리의 Access time을 변경하지 않겠다.

              (chattr -i [파일명] 을 하면 속성을 변경할 수 있다)


      4. 로그

       1) 로그인한 사용자 확인

          : w명령어나 who 명령어를 사용하며, 로그인 사용자 ID, 사용터미널, 로그인 시간 출력(users 명령어도 가능)

          : 관련파일은 /var/run/utmp

       2) 로그인 로그아웃 정보

          : last 명령어를 사용하며, 사용자로그인/로그아웃 정보, 시스템종료 및 부팅정보, 재부팅정보, telnet/FTP이용한 로그인 정보 출력

          : 관련파일은 /var/log/wtmp

        3) 로그인 실패정보

          : lastb 명령어를 사용하며, 로그인 시도 id, 시간, 터미널 확인 가능

          : 관련파일은 /var/log/btmp

        4) 가장 최근 로그인 성공정보

          : lastlog 명령어를 사용

          : 관련파일은 /var/log/lastlog

        5) syslog

            

         - syslog는 주제별로 kern, mail, lpr, daemon, auth(로그인인증시스템) 등이 있다.

         - syslog 강도순서는 다음과 같다.

            emerge > alert > crit > err > warn > notice > info > debug(이얼크에 워노라는 인디밴드가 있다)


      5. 배치(crontab)

         1) 반복적인 배치작업을 돌릴 때 사용한다. 보안관점으로는 공격자가 악성코드를 crontab을 사용하여 반복실행한다.

         2) cron [분/시/일/월/요일(0~7)] [명령어] 와 같은 형태로 사용한다.

            cron 30 * * * * /home/user/testcode : 매 시 30분마다 testcode 파일 실행

            cron */10 * * * * /home/user/testcode : 10분마다 testcode 파일 실행

            cron 10 2-5 * * * /home/user/testcode : 2시부터 5시까지 10분에 testcode 파일 실행

            cron 0 7 1 1-10/2 * /home/user/testcode : 매년 1월에서 10월까지 두달주기로 1월 오전 7시에 testcode 파일 실행

         3) 옵션

           -l : 현재 로그인한 계정의 crontab(작업스케쥴) 확인

           -e : 현재 로그인한 계정에 작업 등록

           -r : 등록된 작업 삭제

           -u [user명] : 작업을 실행시킬 유저명

         4) 한번만 실행할 경우 at 명령어를 사용한다.


      6. /etc/passwd 와 /etc/shadow

         1) /etc/passwd

           - root : x : 0 : 0 : root : /root :/bin/bash

           - Loginname : pw : uid : gid : comment : home directory : loginshell(로그인 안하려면 nologin)

         2) /etc/shadow

           - root : $1$ Dnskd923$G/ : 14806 : 0 : 99999 : 7

           - LoginName: pw encryption 값 : last change(1970년 1월1일 기준): pw 변경 전 최소사용을 : 최대사용일 : pw만료 전 경고메시지 알림일

           : login 접속차단일 수 : 로그인 사용금지하는 일 수 


           

    댓글

Designed by Tistory.