Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
chef-os-hardening — 이 셰프 쿡북은 다양한 보안 관련 구성을 제공하여 전방위적인 기본 보호를 지원합니다. | Kitploit
도구/GitHubGitHub/dev-sec/chef-os-hardening
Cloud Infrastructure SecurityConfiguration AuditingDevSecOpsAuthentication
GitHubdev-sec/chef-os-hardening

chef-os-hardening

이 셰프 쿡북은 다양한 보안 관련 구성을 제공하여 전방위적인 기본 보호를 지원합니다.

저장소 보기
452133843개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

os-hardening (Chef cookbook)

[Supermarket][1] [Tests][2]

설명

이 cookbook은 다양한 보안 관련 구성을 제공하여 전반적인 기본 보호를 제공합니다.

다음 항목을 구성합니다:

  • 서명된 패키지만 허용하는 등 패키지 관리 구성
  • 알려진 문제가 있는 패키지 제거
  • pam 및 pam_limits 모듈 구성
  • Shadow password suite 구성
  • 시스템 경로 권한 구성
  • soft limits를 통한 코어 덤프 비활성화
  • 시스템 콘솔로 루트 로그인 제한
  • SUID 설정
  • sysctl을 통한 커널 매개변수 구성

다음 항목은 수행하지 않습니다:

  • 시스템 패키지 업데이트
  • 보안 패치 설치

요구 사항

  • Chef >= 14.13.11

플랫폼

  • Ubuntu 20.04, 22.04, 24.04, 26.04
  • CentOS Stream 9, 10
  • AlmaLinux 8, 9, 10
  • Rocky Linux 8, 9, 10
  • Oracle Linux 8, 9, 10
  • Debian 13
  • Fedora 43, 44

속성

  • ['os-hardening']['components'][COMPONENT_NAME] - 기본 레시피를 통해 실행할 구성 요소를 세밀하게 제어할 수 있습니다. 자세한 내용은 아래를 참조하세요.
  • ['os-hardening']['desktop']['enable'] = false Xorg, KDE/GNOME/Unity 등이 있는 데스크톱 시스템인 경우 true
  • ['os-hardening']['network']['forwarding'] = false 이 시스템이 패킷 포워딩(예: 라우터)을 요구하는 경우 true, 그렇지 않으면 false
  • ['os-hardening']['network']['ipv6']['enable'] = false
  • ['os-hardening']['network']['arp']['restricted'] = true ARP 알림 및 응답 동작을 제한하려면 true, 그렇지 않으면 false
  • ['os-hardening']['env']['extra_user_paths'] = [] 사용자의 PATH 변수에 추가 경로를 추가합니다 (기본값은 비어 있음).
  • ['os-hardening']['env']['umask'] = "027"
  • ['os-hardening']['env']['root_path'] = "/" root가 마운트된 위치
  • ['os-hardening']['auth']['pw_max_age'] = 60 최대 비밀번호 사용 기간
  • ['os-hardening']['auth']['pw_min_age'] = 7 최소 비밀번호 사용 기간 (다른 비밀번호 변경을 허용하기 전)
  • ['os-hardening']['auth']['pw_warn_age'] = 7 최대 비밀번호 사용 기간이 도래하기 전에 변경을 경고하는 일수
  • ['os-hardening']['auth']['uid_min'] = 1000 useradd가 할당하는 UID의 하한
  • ['os-hardening']['auth']['uid_max'] = 60000 useradd가 할당하는 UID의 상한
  • ['os-hardening']['auth']['gid_min'] = 1000 groupadd가 할당하는 GID의 하한
  • ['os-hardening']['auth']['gid_max'] = 60000 groupadd가 할당하는 GID의 상한
  • ['os-hardening']['auth']['retries'] = 5 계정이 일정 시간 동안 잠기기 전까지 허용되는 최대 인증 시도 횟수
  • ['os-hardening']['auth']['lockout_time'] = 600 너무 많은 실패한 인증 시도로 계정이 잠긴 경우 경과해야 하는 시간(초)
  • ['os-hardening']['auth']['timeout'] = 60 인증 제한 시간(초). 이 시간이 지나면 로그인이 종료됩니다.
  • ['os-hardening']['auth']['allow_homeless'] = false 홈 디렉토리가 없는 사용자의 로그인을 허용하려면 true
  • ['os-hardening']['auth']['pam']['passwdqc']['enable'] = true passwdqc를 사용하여 PAM에서 강력한 비밀번호 검사를 사용하려면 true
  • ['os-hardening']['auth']['pam']['passwdqc']['options'] = "min=disabled,disabled,16,12,8" passwdqc에 전달하려는 옵션 라인(문자열)으로 설정
  • ['os-hardening']['auth']['pam']['passwdqc']['template_cookbook'] = 'os-hardening' /usr/share/pam-configs/passwdqc 파일의 템플릿을 가져올 cookbook 이름으로 설정
  • ['os-hardening']['auth']['pam']['tally2']['template_cookbook'] = 'os-hardening' /usr/share/pam-configs/tally2 파일의 템플릿을 가져올 cookbook 이름으로 설정
  • ['os-hardening']['auth']['pam']['system-auth']['template_cookbook'] = 'os-hardening' /etc/pam.d/system-auth-ac 파일의 템플릿을 가져올 cookbook 이름으로 설정
  • ['os-hardening']['security']['users']['allow'] = [] 사용자가 수행할 수 있는 작업 목록. change_user를 포함할 수 있습니다.
  • ['os-hardening']['security']['kernel']['enable_module_loading'] = true 시스템이 실행 중일 때 커널 모듈 변경(예: modprobe, rmmod)을 허용하려면 true
  • ['os-hardening']['security']['kernel']['disable_filesystems'] = ['cramfs', 'freevxfs', 'jffs2', 'hfs', 'hfsplus', 'squashfs', 'udf', 'vfat'] 로딩이 블랙리스트에 등록된 커널 파일 시스템 모듈 목록 (예: 사용되지 않아 비활성화할 수 있는 모듈). 이 블랙리스트를 완전히 피하려면 []로 설정하세요.
  • ['os-hardening']['security']['kernel']['enable_sysrq'] = false
  • ['os-hardening']['security']['kernel']['enable_core_dump'] = false
  • ['os-hardening']['security']['suid_sgid']['enforce'] = true SUID/SGID 비트를 줄이려면 true. 검색 대상으로 구성된 기본 항목 목록이 이미 있지만, 사용자 정의 항목을 추가할 수도 있습니다.
  • ['os-hardening']['security']['suid_sgid']['blacklist'] = [] SUID/SGID 비트를 제거해야 하는 경로 목록
  • ['os-hardening']['security']['suid_sgid']['whitelist'] = [] SUID/SGID 비트를 변경하지 않아야 하는 경로 목록
  • ['os-hardening']['security']['suid_sgid']['remove_from_unknown'] = false blacklist에 명시적으로 구성되지 않은 파일에서 SUID/SGID 비트를 제거하려면 true. 이렇게 하면 모든 Chef 실행 시 마운트된 파일 시스템을 검색하여 기본 및 사용자 블랙리스트에 구성되지 않은 SUID/SGID 비트를 찾습니다. SUID/SGID 비트를 찾으면 해당 파일이 whitelist에 없는 한 제거됩니다.
  • ['os-hardening']['security']['suid_sgid']['dry_run_on_unknown'] = false 위의 remove_from_unknown과 유사하지만 SUID/SGID 비트를 제거하지 않습니다. 여전히 파일 시스템을 검색하여 SUID/SGID 비트를 찾지만 로그에만 출력합니다. 이 옵션은 SUID/SGID 비트에 대해 remove_from_unknown을 처음 구성할 때만 권장됩니다. 변경되는 파일을 확인하고 whitelist 및 blacklist를 조정할 수 있기 때문입니다.
  • ['os-hardening']['security']['packages']['clean'] = true 알려진 문제가 있는 패키지를 제거합니다.
  • ['os-hardening']['security']['packages']['list'] = ['xinetd','inetd','ypserv','telnet-server','rsh-server'] 제거할 패키지 목록. 기본적으로 다음 패키지를 제거합니다:
    • xinetd (NSA, 3.2.1장)
    • inetd (NSA, 3.2.1장)
    • tftp-server (NSA, 3.2.5장)
    • ypserv (NSA, 3.2.4장)
    • telnet-server (NSA, 3.2.2장)
    • rsh-server (NSA, 3.2.3장)
  • ['os-hardening']['security']['selinux_mode'] = 'unmanaged' SELinux 구성을 그대로 두려면 unmanaged로 설정하세요. SELinux를 강제하려면 enforcing, 허용 모드로 설정하려면 permissive로 설정하세요.

포함된 구성 요소 제어

default.rb는 시스템의 ohai 자동 감지 속성을 기반으로 다른 구성 요소를 포함합니다. 예를 들어, 비-RHEL 시스템에서는 selinux를 실행하지 않습니다. override 레벨에서 node['os-hardening']['components'] 속성을 설정하여 이 동작을 재정의하고 구성 요소를 강제로 실행하거나 실행하지 않도록 할 수 있습니다. 예:

# 일부 속성 파일
# sysctl 및 auditd를 포함하지 않음
override['os-hardening']['components']['sysctl'] = false
override['os-hardening']['components']['auditd'] = false

# selinux를 강제로 포함
override['os-hardening']['components']['selinux'] = true

현재 구현에서 다양한 구성 요소는 서로 다른 레시피에 있습니다. 가능한 구성 요소 이름은 사용 가능한 레시피 또는 default.rb를 참조하세요.

사용법

레시피를 run_list에 추가하세요. 마지막에 있어야 합니다:

"recipe[os-hardening]"

속성 구성:

"security" : {
  "kernel" : {
    "enable_module_loading" : true
  }
},

로컬 테스트

로컬 테스트

chef-dk, VirtualBox 또는 VMware Workstation 및 Vagrant를 설치하세요.

린팅은 rubocop 및 foodcritic로 확인합니다:

$ chef exec rake lint
.....

단위/spec 테스트는 chefspec로 수행합니다:

$ chef exec rake spec
.....

통합 테스트는 test-kitchen 및 inspec로 수행합니다:

$ chef exec rake kitchen
.....
# 또는 kitchen을 직접 사용할 수 있습니다
$ kitchen test

포크의 CI 테스트

Travis CI에서 포크의 테스트를 활성화할 수 있습니다. 기본적으로 [kitchen-dokken]을 사용한 린팅, spec 테스트 및 통합 테스트가 제공됩니다.

[kitchen-dokken]을 사용한 통합 테스트는 컨테이너 환경에서 실행되므로 모든 것을 다루지는 않습니다. 전체 통합 테스트는 DigitalOcean을 사용하여 실행할 수 있습니다.

포크에 대한 전체 통합 테스트를 원한다면 포크 설정에 다음 환경 변수를 추가해야 합니다:

  • DIGITALOCEAN_ACCESS_TOKEN - DigitalOcean 액세스 토큰
  • CI_SSH_KEY - DigitalOcean의 인스턴스에서 사용 가능한 일부 ssh 키의 개인 키 부분 (base64 인코딩 형식, 예: cat id_rsa | base64 -w0 ; echo)
  • DIGITALOCEAN_SSH_KEY_IDS - CI_SSH_KEY의 DigitalOcean ID. 자세한 내용은 이 문서를 참조하세요.

기여자 + 감사의 말

도구 다운로드