본문 바로가기

보안

보안기사 - UNIX/Linux 서버 네트워크 보안

SSH (보안쉘)

암호 통신을 이용하여 네트워크 상의 다른 컴퓨터에 접속하여 원격 명령 실행 또는 파일 조작하는 응용 프로그램 또는 프로토콜
기존의 rsh, rlogin, Telnet, FTP 등 평문 송수신 서비스의 취약점을 위해 설계
22/tcp 포트를 사용

슈퍼서버 (inetd 데몬)

  1. inetd 방식 vs stand-alone 방식

    • inetd 방식
      공통적인 부분을 처리하는 슈퍼데몬을 만들어 개별 서비스를 등록하게 하여 클라이언트 요청은 슈퍼 데몬이 모두 처리하고 개별 서비스를 호출해주는 방식
      ->효율적 서버자원의 활용, but 상대적으로 느림
      (HTTP 같이 다수 클라이언트에게 엄청난 동시요청 발생하는 서비스는 불가 - 서비스 처리속도가 너무 낮아짐)

    • stand-alone 방식
      서비스별로 서버 프로세스(데몬) 동작하는 방식
      속도 빠르지만, 서버 리소스 많이 점유하는 단점
  2. /etc/inetd.conf
    최초 실행 시 /etc/inetd.conf 파일의 정보를 참조하여 서비스할 프로그램들에 대한 정보를 얻는다
    시스템 관리자는 inetd 데몬으로 서비스할 프로그램의 특징을 /etc/inetd.conf 파일에 정의해야 함
    TCP Wrapper 서비스(tcpd)와 연동하여 서비스별 호스트 접근 제어 수행 가능

    • 파일 구조
      서비스명 소켓타입 프로토콜 플래그 사용할 사용자 계정 실행 경로명 실행 인수
      ex) ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -l -a
  3. 불필요/취약한 서비스 비활성화
    /etc/inetd.conf에서 주석 처리 또는 제거하고 inetd 재시작
    Simple TCP 서비스 (DoS 공격에 취약) : echo, discard, daytime, chargen
    r 계열 서비스 (인증 없이 원격접속 가능) : rlogin, rsh, rexec
    불필요한 rpc 서비스 (다수 취약점 존재) : rpc.cmsd, rusersd
    이밖에도 finger, tftp, talk 등

  4. xinetd
    기존의 inetd 슈퍼데몬의 리소스 관리와 보안성 문제를 개선
    서비스별 다양한 설정 옵션 가짐

    • 설정 파일
      /etc/xinetd.conf : 글로벌 xinetd 설정파일
      /etc/xinetd.d/서비스 설정파일 : 개별 서비스에 대한 설정파일

      지시자 설명
      service 서비스 이름
      disable yes(실행 안함), no(실행)
      socket_type tcp는 stream, udp는 dgram
      wait no(서비스 요청 처리 중 다음 요청 들어오면 이를 즉시 처리), yes(이전 서비스 완료 대기)
      user 어떤 사용자로 서비스 실행할지
      server 서비스 실행 파일 경로 (절대 경로)
      cps Connection per second. 연결 요청 제한 위함
      첫번째 인자는 초당 연결 개수(초과시 일시적으로 서비스 중지), 두번째 인자는 서비스 일시 중지 후 재시작할 때까지 대기하는 시간
      instances 동시에 서비스할 수 있는 서버 최대 개수
      per_sources 출발지 기준으로 최대 서비스 연결 개수 지정
      only_from 특정 주소(대역)만 접근 허용
      no_access 특정 주소(대역) 접근 차단
      access_times 지정한 시간 범위 내에서만 접근 허용
      log_on_failure 서버 접속 실패시 로그 파일에 기록할 내용 설정
      log_on_success 서버 접속 성공시 로그파일에 기록할 내용 설정

접근 통제 (TCP Wrapper)

외부에서 들어오는 클라이언트에 대해 접근통제 기능 제공
클라이언트의 IP 주소를 확인하여 시스템 관리자가 접근 허용한 호스트에 대해서만 서비스 허용

  1. /etc/hosts.allow, /etc/hosts.deny
    접근 허용 및 차단에 대한 판단은 /etc/hosts.allow 와 /etc/hosts.deny 파일에 정의된 호스트 정보를 기준으로 함
    hosts.allow 참조하여 등록되어 있으면 허용 -> hosts.deny 참조하여 등록되어 있으면 차단 -> 없으면 허용(default)
    보통 hosts.allow 파일에 허용해줄 host IP 대역을 설정하고 hosts.deny에 ALL : ALL을 설정하여 white list 방식으로..
    (설정 방법과 관련한 자세한 내용은 알기사 실기 이론편 p.72 참고)

  2. /etc/inetd.conf 파일 변경
    사용전 : Telnet  stream  tcp  nowait  root  /usr/sbin/in.telnetd  in.telnetd
    사용후 : Telnet  stream  tcp  nowait  root  /usr/sbin/in.tcpd  in.telnetd

'보안' 카테고리의 다른 글

보안기사 - UNIX/Linux 로그  (0) 2020.04.17
보안기사 - PAM  (0) 2020.04.17
보안기사 - UNIX/Linux 서버 시스템 보안  (0) 2020.04.15
보안기사 - UNIX/Linux 시스템 관리 (crond)  (0) 2020.04.14
보안기사 - UNIX/Linux 기본  (0) 2020.04.14