1. 접근 권한
가. 접근권한 마스크(umask)
- 파일이나 디렉터리가 생성됨과 동시에 지정된 권한이 주어지도록 설정하는 값
- 시스템 관리자는 /etc/profile 에 umask를 설정하여 전체 사용자에게 동일한 umask 값을 적용 가능
- 파일의 권한은 666이고, 디렉터리는 777이며 해당 값에서 umask 값을 뺀 값이 허가권이 된다.
나. 권한상승(SetUID, SetGID)
- SetUID는 설정된 파일을 실행할 때 일시적으로 파일 소유자의 권한을 얻어 실행 가능
- SetUID 적용을 위해선 허가권 앞 4를 붙임
- SetGID 또한 설정된 파일을 실행할 때 일시적으로 소유그룹권한 부여
- SetGID 적용을 위해선 허가권 앞 2를 붙임
다. 디렉터리 접근권한(sticky-bit)
- Sticky Bit가 설정된 디렉터리에 파일을 생성하면 해당 파일은 생성한 사람의 소유가 된다.
- Sticky Bit가 설정된 디렉터리의 파일은 소유자와 root만이 해당 파일에 대한 삭제 및 수정
- 기존 허가권 앞에 1을 붙임
2. 접근 통제
가. 접근 통제(TCPWrapper)
- 외부에서 들어오는 클라이언트에 대한 접근통제 기능을 제공
- TCPWrapper가 설치되면 inetd 데몬은 TCPWrapper의 데몬인 tcpd 데몬에 연결을 넘기고
tcpd 데몬은 접속을 요구한 클라이언트가 접근 권한이 있는지 확인하고 해당 데몬에 연결
나. TCP Wrapper 의 실행경로
- TCP Wrapper를 사용할 경우 해당 서비스의 실행경로에 “usr/sbin/tcpd”를 명시하며
inetd 데몬은 외부로부터 서비스 요청이 올 경우 inetd.conf 파일을 참조하여 실행경로에
설정된 /usr/sbin/tcpd(TCP Wrapper 프로세스)를 실행
- tcpd는 hosts.allow 및 hosts.deny 파일을 참조하여 접근제어를 수행한 후 실행 인수로
설정된 서비스를 실행
다. hosts.allow(접근 허용)와 hosts.deny(접근 금지)
- 문법 : service_list : client_list [: shell_command]
- 옵션 : service_list, client_list, shell_command
3. 슈퍼 데몬(inetd)
- N개의 개별 서버를 하나로 통합하여 클라이언트로부터 다양한 서비스(FTP, Telnet, SSH, HTTP 등)
요청이 올때마다 해당 서비스를 실행하는 모듈
- inetd 데몬은 최초 실행 시 /etc/inetd.conf 파일의 정보를 참조하여 서비스할 프로그램들에 대한 정보를 획득
* 우분투에는 패키지 선택여부에 따라 다르지만 기본적으로 inetd가 설치되지 않음
설치 명령어 : sudo apt-get install openbsd-inetd
inetd 재시작 : sudo /etc/init.d/openbsd-inetd restart
①ftp ②stream ③tcp ④nowait ⑤root ⑥/usr/sbin/in.ftpd ⑦in.ftpd -l -a
① 서비스명 : /etc/services 파일에 등록된 포트번호를 참조
② 소켓타입 : stream(TCP 기반 서비스), datagram(UDP 기반의 서비스)
③ 프로토콜 : /etc/protocols 파일에 주어진 프로토콜 중 사용가능한 프로토콜을 설정
④ 플래그 : nowait(즉시처리), wait(대기)
⑤ 사용할 사용자 계정 : 프로그램을 실행시킬 사용자를 설정
⑥ 실행 경로명 : 해당 서비스를 처리하는 실행 모듈의 경로를 절대경로로 설정
⑦ 실행 인수 : 프로그램의 인수를 설정, 첫 번째는 응용 프로그램 자신의 이름
4. 슈퍼 데몬(xinetd)
- 기존의 inetd 슈퍼데몬의 비효율적인 리소스 관리와 보안성 문제를 극복하기 위해 나온 슈퍼데몬
- 서비스별 접근 제어를 위해 TCP Wrapper의 기능뿐만이 아니라 자체적으로 다양한 서비스별 접근제어
서비스 구성
가. /etc/xinetd.conf : 글로벌 xinetd 설정파일
나. /etc/xinetd.d/서비스 설정파일 : 개별 서비스에 대한 설정 파일
슈퍼 데몬(xinetd)의 서비스 흐름
① 외부에서 telnet 연결 요청(서비스 요청)
② xinetd 대몬은 외부에서 요청된 서비스를 tcp_wrapper에게 넘겨준다.
③ tcp_wrapper는 /etc/hosts.allow와 /etc/hosts.deny 파일의 설정을 확인하여 접근 가능 여부 판단
허가된 요청인 경우 : /etc/syslog.conf에 설정되어 있는 /var/log/secure 파일에 해당 접속에 대한 정보를
기록하고 /etc/xinetd.d/telnet 파일을 불러 서비스를 연결한다.
이 때, /etc/xinetd.d/telnet 파일내의 server 지시자행에 설정되어 있는
telnet 대몬의 위치를 찾아서 요청을 처리한다.
허가되지 않은 요청인 경우 : /etc/syslog.conf 파일에 설정되어 있는 /var/log/secure 파일에 허가되지
않은 접속이 있었다는 로그를 남기고 접속 요청을 거부하게된다.
슈퍼 데몬(xinetd)의 서비스 관련 파일
/etc/xinetd.conf xinetd 서비스에 공통으로 적용되는 설정 파일 xinetd의 최 상위 설정 파일.
/etc/xinetd.d/[SERVICE_FILES] xinetd 기반 서비스들 개별 설정 파일
/usr/sbin/xinetd xinetd 대몬 파일
/etc/sbin/tcpd tcp_wrapper 대몬 파일
/etc/rc.d/init.d/xinetd xinetd 시작/ 종료 스크립트 파일
/etc/hosts.allow 서비스별 허용할 host, ip 리스트(tpc_wrapper)
/etc/hosts.deny 서비스별 허용 하지 않을 host, ip 리스트(tpc_wrapper)
/etc/syslog.conf 시스템 로그 설정 파일
/var/log/secure tcp_wrapper 로그 파일(접근 기록 파일)
/etc/services 서비스 포트 설정 파일
/etc/protocols 프로토콜 설정 파일
5. 보안 쉘(SSH)
- 암호 통신을 이용하여 네트워크상의 다른 컴퓨터에 접속하여
원격으로 명령을 실행하거나 파일을 조작하는 응용 프로그램 또는 프로토콜
- 기존의 rsh, rlogin, Telnet, FTP 등 평문 송수신 서비스의 취약점을 대체하기 위해
설계되었으며 디폴트로 22/tcp 포트 사용
- 암호화된 원격 터미널 서비스 제공
- 암호화된 파일 송수신 서비스 제공
6. PAM(장착형 인증 모듈, Pluggable Authentication Modules)
- PAM은 리눅스 시스템 내에서 사용되는 각종 어플리케이션 인증(Authentication)을 위해 제공되는 라이브러리
- 일반적으로 /lib/security 또는 /usr/lib/security 디렉터리에 해당 라이브러리가 저장
- 라이브러리들은 어플리케이션 인증 목적으로 관리자에 의해 선택적으로 사용 가능
④ PAM 라이브러리 관련 경로
/etc/pam.d : PAM 라이브러리를 이용하는 각 응용 프로그램(서비스)의 설정파일이 위치
PAM을 사용한 인증 절차
① 각 프로그램(login, Telnet, FTP 등)은 인증이 필요한 부분에 PAM 라이브러리 호출
② PAM 라이브러리가 호출되면 해당 프로그램의 PAM 설정 파일을 참조하여 PAM 모듈들을 수행하고 결과 반환
③ 응용 프로그램은 그 반환된 결과를 이용하여 인증 여부를 결정
7. 불필요한/취약한 서비스 비활성화
- DoS 공격에 취약한 Simple TCP 서비스 : echo(7/tcp), discard(9/tcp), daytime(13/tcp), chargen(19/tcp)
등 비활성화
- r 계열 서비스 : rlogin, rsh, rexec 등, r 계열 서비스는 인증 없이 관리자의 원격접속을 가능하게 하는
명령어들로 이기종 운영체제간 백업 등의 용도로 사용되는 경우가 있으나 보안상 취약함
- 불필요한 rpc(remote procedure call) 서비스 : rpc, cmsd, rusersd 등 분산 환경에서 서버 응용프로그램에
접근하여 작업 호출(call)을 할 수 있는 서비스로 버퍼 오버플로우 등 다수의 취약점이 존재
- inetd.conf 파일에서 해당 취약한 서비스를 주석(#) 처리
728x90
반응형
'IT > 정보보안기사' 카테고리의 다른 글
시스템 보안 - 6장. Unix/Linux 서버 취약점 (0) | 2023.07.26 |
---|---|
시스템 보안 - 5장. Unix(Linux) 로그 관리 (0) | 2023.07.21 |
시스템 보안 - 3장. Unix(Linux) 시스템 관리 (0) | 2023.07.20 |
시스템 보안 - 2장. Unix(Linux) 시스템 기본 (0) | 2023.07.19 |
시스템 보안 - 1장. 윈도우 시스템 (0) | 2023.07.19 |