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

유닉스/리눅스 보안 시스템 최적화

by 피갓자 2025. 1. 25.

유닉스리눅스 보안 시스템 최적화
유닉스리눅스 보안 시스템 최적화

운영체제 커널과 소프트웨어 설치

유닉스 계열

  • 리눅스의 커널은 기본적으로 사용자가 작동시키는 응용프로그램과 하드웨어 간의 조정자 역할을 맡음. 동시에 수행되는 여러 응용프로그램을 위해 메모리 관리를 해주며 컴퓨터 자원을 배분하는 역할을 함. 커널의 소스코드를 완전히 공개한 운영체제여서 소스코드를 사용자가 직접 컴파일할 수 있음
  • 불필요한 서비스 중지 및 프로그램 제거 필요

윈도우즈 계열

  • 소스코드가 공개되어 있지 않기 때문에 인위적인 조작 불가능
  • 불필요한 서비스 중지 및 프로그램 제거 필요

자원 관리 최적화

메모리 관리

  • free를 이용한 swap 상태 확인
  • top 명령어를 이용한 프로세스별 메모리 사용량 확인

프로세스 및 CPU 관리

  • 좀비 프로세스는 실행이 종료되었지만, 아직 삭제되지 않은 프로세스를 의미하며 ps 명령어 실행 후 stat 값이 Z로 표시되는 프로세스가 좀비 프로세스. 프로세스 중지를 위해서는 kill 명령어 사용
  • 프로세스 우선순위 관리가 필요한 경우가 발생하는데 프로세스마다 두 개의 우선순위 번호를 가짐. ps -l이라는 명령어를 실행시키면 PRI와 NI라는 항목을 볼 수 있음. 프로세스 우선순위 PRI 항목은 운영체제에 의해 동적으로 계산되는 실제적인 우선순위. 다른 기준인 NI는 Nice 값이라는 것으로, PRI로 계산하고 업데이트하는 근거가 되는 번호임. NI는 Nice 넘버 혹은 요청된 프로세스 실행 우선순위 번호라고 하며 nice 명령어를 이용해서 우선순위를 설정할 수 있음

사용자 및 파일 관리

사용자별 홈 디렉터리 설정 및 접근 제어 가능

사용자별 홈 디렉터리 설정하기 위해서는 /etc/passwd 파일에 사용자별로 설정된 홈 디렉터리를 변경하여야 하지만 변경된 디렉터리에서 파일을 쓰고 읽기 등의 권한은 다시 권한 설정을 함

최소 권한(Least Privilege)

스크립트나 바이너리는 루트 계정만이 주로 사용하므로 기타 계정에는 권한을 제거하여야 하며 리눅스의 경우 웹서버를 실행하는 apache 계정은 웹서버를 실행하는 권한을 주고 원격 로그인이 필요 없으므로 셸 사용 권한 제거 등 권한 설정 필요

불필요한 서비스 제거

불필요한 서비스 제거 절차

  1. “netstat -an” 명령어를 실행하여 현재 사용, 준비하고 있는 서비스 포트 확인
  2. 명령어 실행 결과에서 LISTEN 상태의 포트는 외부 사용자가 접속할 수 있는 경로를 제공하는 서비스 포트로서 현재 사용 중임을 의미
  3. /etc/services 파일에 시스템에서 사용되는 포트와 해당 포트에 매핑된 서비스가 정의되어 있으므로 LISTEN 상태의 포트를 /etc/services 파일의 내용과 비교하여 불필요 서비스 제거
  4. 불필요 서비스라고 판단된 항목은 /etc/inted.conf 파일에서 주석 처리(해당 라인에 # 삽입)

불필요한 패키지 목록

anacron : 시간에 따라 지정한 프로그램을 정기적으로 실행시켜 주는 프로그램으로 cron과 유사하지만, 지속적으로 동작하지 않음

apmd : 전원 관리 데몬으로 서버는 24시간, 365일 지원해야 하므로 불필요함

at : 스케줄링을 위한 데몬으로 보안 취약성 논란이 되기도 함

dhcpd : 동적 주소할당 서버 데몬으로 대부분의 서버에서 사용하지 않음

dosfdtools : MS-DOS FAT 파일 시스템 체크 시 사용하는 유틸리티

eject : CD-ROM이나 플로피디스크를 제어하는 유틸리티

metamail : 텍스트나 멀티미디어 출력 방법을 결정하는 프로그램

ksymoops : 커널에 문제 발생 시 오류 메시지를 디코딩하는 유틸리티