본문 바로가기

자격증/정보보안기사

[시스템 보안] Unix, Linux 서버 보안 - 2

4. xinetd 데몬

 가. 특징

  □ inetd 슈퍼 데몬의 비효율적인 리소스 관리와 보안성 문제 극복

  □ 서비스별 다양한 설정 옵션 존재

 나. 설정 파일

  □ /etc/xinetd.conf : 글로벌 xinetd 설정 파일

  □ /etc/xinetd.d/서비스 설정파일 : 개별 서비스에 대한 설정 파일

   - service, disable(해당 서비스 실행 여부), socket_type(Stream : tcp, dgram : udp), wait(요청이 들어오면 즉시 처리할건지), user(어떤 사용자로 서비스를 시작할건지), server(서비스 실행 파일 경로), cps(초당 연결개수, 서비스 일시 중지 후, 재시작까지 대기 시간), instances(동시 서비스 최대 개수), per_source(동일 출발IP 기준 동시 서비스 연결 제한), only_from, no_access, access_times, log_on_failure(서버 접속 실패 시, 로그 내용 설정), log_on_success

 

5. TCP Wrapper

 가. 개념 

  □ 외부에서 들어오는 클라이언트의 IP 주소를 확인하여 접근 통제를 수행

  □ /etc/inetd.conf 파일의 실행 경로명을 /usr/sbin/tcpd로 변경해야 사용 가능

 나. hosts.allow / hosts.deny 

  □ hosts.allow 파일 먼저 참조 후, hosts.deny 파일 참조 

  □ 설정 방법 : 서비스명:[허용 or 거부] IP (ex. sshd:xxx.xxx.xxx.xxx)     

 

6. PAM

 가. 개념

  □ 리눅스 시스템 내에서 사용되는 각종 어플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리

 나. 설정 파일

  □ /lib/security : PAM 라이브러리가 제공하는 다양한 인증 모듈 위치

  □ /etc/pam.d : PAM을 이용하는 각 응용프로그램들의 설정 파일 위치

  □ /etc/security : PAM 모듈 실행에 필요한 추가 설정 파일 위치 

 다. 활용

  1) root 계정 원격 접속 제한

   □ /etc/securetty 파일에 등록된 터미널만 root 접속 허용

   □ /etc/securetty : pam_securetty.so 모듈이 사용하는 파일(원격 root 접속 제한)

   □ /etc/pam.d/remote 에 pam_securetty.so 모듈 추가 및 "pts/~" 터미널 모두 제거

   □ cf. ssh root 원격 접속 제한 pam으로 불가 : /etc/ssh/sshd_config 파일에 PermitRootLogin no 설정 

  2) 계정 잠금 임계값 설정

   □ 무작위 대입 공격 방지

   □ /etc/pam.d/system-auth 에 "pam_tally2.so deny=5 unlock_time=120" 설정

   □ 단, root 계정의 경우는 예외 처리 필요 : no_magic_root 설정

   □ reset : 접속 시도 성공 시, 실패 횟수 초기화 

  3) root 계정으로의 su 제한

   □ 권한 없는 사용자의 su 명령어를 통한 root 계정 로그인 방지

   □ wheel group에 su 명령어를 사용할 사용자 추가 : usermod -G wheel "계정명"

   □ /etc/pam.d/su : auth required pam_wheel.so use_uid debug 설정 진행

   □ sudo 명령을 통해 관리자 권한 부여 : root 계정 알려줄 필요가 없음 

   □ /etc/sudoers 설정파일

    - 구조 : 계정명     호스트명=(실행 권한 계정명)     [NOPASSWD:]명령어

     □ 계정명 : sudo 명령어를 수행할 계정 혹은 그룹명

     □ 호스트명 : sudo 명령어를 실행할 호스트의 호스트명

 

7. syslog(UNIX)

 가. 동작방식

  1) 커널 및 응용프로그램의 syslog API 를 통한 로그 생성

  2) syslogd 프로세스는 syslog.conf 설정 파일을 참조(지정한 로그 파일 / 콘솔 혹은 외부 서버에 로그 기록)

  3) /var/log 아래에 기본적으로 로그파일 생성(ex. /var/log/messages)

  4) syslog 포트 : udp/514 

 나. /etc/syslog.conf

  1) syslogd 실행 시, 참조되는 로그 설정 파일

  2) 구조 : facility.priority;   action(logfile-location) 

   □ facility 서비스에 대하여 priority 이상의 로그 레벨 상황 발생 시, action의 형식으로 location에 기록

   □ facility : *, auth(authpriv), cron, daemon, kern, lpr, mail, news, uucp, user, syslog, local0~7(시스템 부팅 메시지 기록)

   □ priority : emerg, alert, critical, err, warning, notice(에러는 아니지만 관리자 조치 필요), info, debug, none

   □ action : /dev/console(콘솔 출력), @호스트주소, user(지정 사용자 스크린으로 메시지 출력), * (현재 로그인된 모든 사용자)

 

8. logrotate

 가. 등장배경

  □ syslog 혹은 데몬 프로세스가 출력하는 로그 파일을 그대로 방치하면 사이즈가 너무 커서 관리가 어렵고 디스크 사용률       이 100%가 되어 장애발생가능성이 올라감

 나. /etc/logrotate.conf 

  □ logrotate 데몬 설정 파일

  □ daily, weekly, montly : 로그 파일 순환 주기

  □ rotate n : 순환 로그파일 개수

  □ create [퍼미션] [소유자] [소유 그룹] : 순환 시, 새로운 로그 파일 생성하며 퍼미션, 소유자, 소유그룹 지정 가능

  □ dateext : 로그 파일의 확장자로 날짜를 붙여서 보관

  □ compress, nocompress : 로그 파일을 압축

  □ size n : 지정한 n 크기가 되면 로그 파일 순환

  □ include /etc/logrotae.d : 해당 디렉터리에 있는 개별 데몬/프로세스 파일을 포함

 다. /etc/logrotate.d

  □ logrotate를 적용할 프로세스 / 데몬 설정 파일