본문 바로가기
정보보안/시스템보안

유닉스/리눅스 보안 서버 접근통제 2/2

by 피갓자 2025. 1. 24.

유닉스리눅스 보안 서버 접근통제
유닉스리눅스 보안 서버 접근통제

TCP Wrapper

개요

  • 인터넷 슈퍼 데몬인 inetd 데몬에 의해 구동되는 네트워크 서비스(예 : FTP, Telnet, rlogin, rsh, exec, TFTP, systat, finger 등)들에 대한 접근 통제와 사용된 서비스별 로그를 기록할 수 있는 보안 강화 도구
  • 네트워크 서비스에 관한 트래픽을 제어하고 모니터링할 수 있는 UNIX 기반의 방화벽 툴로써 임의의 호스트가 서비스를 요청해 오면 실제 데몬을 구동하기 전에 접속을 허용한 시스템인지 아닌지를 확인하여 호스트명 및 서비스명을 로그에 남긴 다음 허가된 시스템은 서비스를 제공하고 허가되지 않으면 접속을 차단해 주는 도구
  • /etc/inted.conf에 정의되고 inetd 데몬에 의해 통제되는 네트워크 서비스를 통제하기 위하여 inetd 데몬과 네트워크 서비스데몬(in.telnetd, in.ftpd, in.rlogind 등) 사이에 tcpd 데몬을 구동하여 네트워크 서비스 사용에 대한 접근 제어와 로그 기록 기능
  • 접근 제어 : /etc/hosts.allow 파일과 /etc/hosts.deny 파일에 의하여 이루어짐. 사용되는 두 파일 중에서 tcpd가 먼저 검색하는 것은 hosts.allow 파일임. hosts.allow 파일에 접근을 허가하는 호스트를 적어두고 hosts.deny 파일에는 ALL을 적어두면 허가된 호스트만이 시스템에 원격으로 접근할 수 있음
  • 로그 기록 : syslog 데몬을 사용하며 telnet, ftp, rexec, rsh, rlogin, tftp, talk 등에 대한 접근 로그를 기록하며 기본적으로 /var/log/syslog 파일에 저장됨. 다른 파일로 변경하려면 /etc/syslog.conf 파일에서 설정을 수정하면 됨

/etc/hosts.deny(접근 금지)와 /etc/hosts.allow(접근 허용) 파일 설정

특정 서비스를 TCP Wrapper로 접근 제어하려면 외부의 연결로부터 보호할 네트워크 서비스들을 선택하여 tcpd가 보호하도록 inetd.conf 파일을 수정해 주어야 함

  • /etc/hosts.deny : TCP Wrapper가 설치되어 있는 경우, 특정 host의 접속 거부 내용을 정의
  • /etc/hosts.allow : TCP Wrapper가 설치되어 있는 경우, 특정 host의 접속 허용 내용을 정의
  • /etc/hosts.equiv : 특정 호스트의 모든 사용자를 신뢰하게 만들어 로컬 호스트로 접근이 허용된 원격 호스트를 설정
  • $HOME/.rhosts : 외부에서 사용자의 인증(Authentication) 절차 없이 접속할 수 있는 사용자를 정의

IPchain/IPtable

  • 리눅스 서버를 보호하기 위하여 패킷 필터링을 이용함으로써 기본적인 방화벽을 구성할 수 있으며 커널의 패킷 필터링 테이블에 필터링 규칙을 삽입하거나 삭제하는 도구
  • 넷필터(netfilter) 프로젝트에서 개발했으며 광범위한 프로토콜 상태 추적, 패킷 애플리케이션 계층 검사, 속도 제한, 필터링 정책을 명시하기 위한 강력한 메커니즘 제공

패킷 검사 수행 과정

  1. 패킷이 커널에 도착하면 ‘라우팅’을 통해 패킷의 목적지 확인
  2. 패킷의 목적지가 로컬 시스템이면 입력 체인에 도달. 패킷이 입력 체인을 통과하면 패킷을 기다리고 있던 프로세서로 전달
  3. 패킷의 목적지가 로컬 시스템이 아니거나 포워딩이 불가능하면 패킷은 ‘DROP’. 포워딩이 가능하고 다른 곳이 목적지이면 패킷은 포워딩 체인에 도달. 체인이 ‘ACCEPT’하게 되면 패킷은 목적지 네트워크로 전달
  4. 로컬 시스템에서 보내는 패킷은 즉시 출력 체인에 전송할 수 있음. 체인이 ‘ACCEPT’하게 되면 패킷은 목적지 네트워크로 전달

CGI Wrapper

  • TCP Wrapper가 유닉스 서버의 네트워크 서비스(예 : Telnet, rlogin, ftp 등)에 대한 접근 통제를 위한 보안 도구라면 CGI Wrapper는 웹 서비스의 CGI를 보호하는 웹서버 보안 강화 도구임
  • 웹서버의 자식 프로세스들이 모두 nobody 권한으로 실행되었을 때 발생하는 문제점을 보완하기 위하여 만들어진 것으로 CGI 프로그램이 위치한 디렉터리의 소유자 권한으로 CGI 프로그램을 실행시킴
  • 따라서 모든 CGI가 nobody로 실행되는 것이 아니라 모든 CGI는 CGI 프로그램 자신의 소유로 실행이 되는 것. CGI Wrapper는 실행시킬 CGI 프로그램이 위치한 디렉터리 소유자와 CGI 프로그램의 소유자를 비교하여 같을 때에만 실행시키며 다를 때에는 실행시키지 않도록 동작함으로써 CGI에서 발생되는 취약성을 보완함