본문 바로가기

정보보안기사 실기

정보보안기사 _ 5일차 _ 시스템 기본 학습 _ Unix / Linux 서버보안

너무 속도가 느려서 울고싶어졌지만... 모르는 것 위주로 타타타 가보기

 

시스템보안

1. 사용자 패스워드 관리

2. 프로세스 실행권한 (SUID, GUID)

   chmod u+s a.out (user에 s 설정) = chmod 4755 a.out

   chmod g+s a.out (group 에 s 설정) = chmod 2755 a.out

   chmod ug+s a.out (suid, sgid 설정) = chmod 6755 a.out

3. 디렉터리 접근권한 (Sticky-bit)

   chmod o+t /tmp (/tmp 공유 디렉터리에 sticky-bit 설정) = chmod 1777 /tmp

 

네트워크보안

1. 보안 쉘(ssh)

  암호 통신을 이용해 네트워크상의 다른 컴에 접속하여 원격으로 명령실행 or 파일조작

   - 암호화된 원격 터미널 서비스 제공

   - 암호화된 파일 송수신 서비스 제공

 기존의 rsh, rlogin, Telnet, FTP 등 평문 송수신 서비스 취약점 대체 목적 설계

 22/tcp 포트 사용

 

2. 슈퍼서버(inetd 데몬)

 1) 네트워크 서버/클라이언트 구조에서 다양한 서비스(FTP, Telnet, SSH, HTTP 등)는 프로세스(데몬) 동작방식이다.

 실제 서비스를 제공하는 서비스 프로세스를 제외하고는 클라이언트 접속 요청이 있을 때까지 대기하다가

 요청이 들어오면 해당 요청을 처리할 서비스 프로세스(자식 프로세스)를 실행하는 형태.

 (전혀 무슨말인지 안 와닿....) 

  - Stand-Alone 방식 : 개별 서비스별로 서버 프로세스(데몬)가 동작하는 방식 / 속도빠름 / 서버 리소스 많이 점유

  - inetd(xinetd) 방식 : 슈퍼 데몬(inetd 데몬)을 이용하여 개별 서비스를 동작시키는 방식 / 느림 / 서버 리소스 절약

 

  2) inetd 데몬은 N개의 개별 서버를 하나로 통합하여 동작

  클라이언트로부터 서비스 요청이 올 때 해당 서비스 관련 실행모듈 실행

 

  3) inetd 데몬은 최초 실행 시 /etc/inetd.conf 파일 정보 참조하여 서비스할 프로그램 정보 얻는다

  시스템 관리자는 inetd 데몬으로 서비스할 프로그램의 특징을 /etc/inetd.conf 파일에 정의해야 함

  * 보니까 원래부터 inetd가 생성되어있는 파일이 아닌가봐, 없네

  * /etc/xinetd.d 디렉토리가 원래 생성되어있고 안에 파일은 없네. 직접 설정해야 하나봐 

 

  4) TCP Wrapper 서비스(tcpd 서비스)와 연동하여 서비스별 호스트 접근 제어를 수행할 수 있다

 

  5) 리눅스 시스템의 경우 xinetd 데몬을 주로 사용

      inetd에서 보안과 리소스 관리 등을 향상시킨 것이며 기능상 큰 차이는 없음

 

  6) inetd.conf 파일의 구조

     ftp            stream       tcp        nowait      root                   /usr/sbin/in.ftpd  in.ftpd -l -a

     서비스명 / 소켓타입 / 프로토콜 / 플래그 / 사용할 사용자 계정 / 실행 경로명 / 실행 인수

     (1) 서비스명 : /etc/services 파일에 등록된 포트번호 참조하여 서비스 프로세스의 포트 결정

         /etc/inetd.conf 와 /etc/services 파일은 서비스명을 인덱스로 하여 해당 서비스 정보 서로 연계

     (2) 소켓타입 : 해당 서비스에 대한 소켓유형 설정 TCP 기반은 stream, UDP 기반은 datagram

     (3) 프로토콜 : /etc/protocols 파일에 주어진 프로토콜 중 사용가능한 프로토콜 설정

         /etc/services 파일에 설정한 프로토콜과 일치해야 함

     (4) 플래그 : 서비스요청 받은 이후 즉시 다음서비스 요청 처리할건지, 요청처리 완료 후 대기했다 처리할건지

         전자가 nowait, 후자가 wait

     (5) 사용할 사용자 계정

     (6) 실행 경로명 : 해당 서비스를 처리하는 실행 모듈의 경로를 절대경로로 설정

     (7) 실행 인수 : 프로그램의 인수 설정, 첫번째는 응용프로그램 자신의 이름이 된다

 

7) 불필요/취약 서비스 비활성화

  - DoS 공격 취약한 Simple TCP 서비스 : 

    echo (7/tcp), discard(9/tcp), daytime(13/tcp), chargen(19/tcp)

  - r계열 서비스 : 인증없이 관리자 원격접속 가능케 하는 명령어들. 이기종 운영체제 백업용도 등으로 사용되나 금지

   rlogin, rsh, rexec

  - 불필요한 rpc(remote procedure call) 서비스 : 분산 환경에서 서버 응용프로그램에 접근해 작업 호출 가능한 서비스

    버퍼오버플로우 등 취약점 존재

   rpc.cmsd, rusersd

 * 근데 비활성화 한다는게 inetd.conf 로서 기능하는걸 비활성화 한다는거지 사용 안한다는건 아닌건가?

   내가 지금까지 사용했던 echo들이 Simple TCP 서비스였던가 부터 궁금해지네.

  - 기타 불필요/취약 서비스 : finger, tftp, talk 

  - # 주석으로 불필요한 아이들 지우고 inetd 서비스 재시작

 

인터넷 검색을 참조하여 내 단어로 정리

inetd 데몬 / 슈퍼데몬 / 슈퍼서버 라는 다양한 이름으로 불리는 녀석이 있다.

/etc/(x)inetd.conf 파일로 설정을 하고 실행을 하는 서비스이며, (/etc/protocols, /etc/services 파일과 연계된다)

자주 사용하지 않는 서비스가 상시 실행되어 메모리 점유하는걸 방지하기 위해 서비스를 등록해 통합으로 관리하는 것

 

3. 접근통제 [TCP Wrapper]

 1) TCP Wrapper는 외부에서 들어오는 클라이언트에 대해 접근통제 기능을 제공

    클라이언트의 IP 주소를 확인해 시스템 관리자가 접근을 허용한 호스트에 대해서만 서비스 허용

    외부의 해킹으로부터 시스템 보호 가능