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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
puppet-os-hardening — 이 puppet 모듈은 다양한 보안 관련 구성을 제공하여 전방위적인 기본 보호를 제공합니다. | Kitploit
도구/GitHubGitHub/dev-sec/puppet-os-hardening
Cloud Infrastructure SecurityVulnerability ScannersConfiguration AuditingNetwork SecurityDevSecOpsAuthentication
GitHubdev-sec/puppet-os-hardening

puppet-os-hardening

이 puppet 모듈은 다양한 보안 관련 구성을 제공하여 전방위적인 기본 보호를 제공합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

Puppet OS 하드닝

[Puppet Forge Version][1] [Puppet Forge Downloads][1] [Puppet Forge Endorsement][1] [Build Status][2]

목차

  1. 모듈 설명 - 모듈이 무엇을 하는지 그리고 왜 유용한지
  2. 설정 - os_hardening 시작하기
    • 설정 요구사항
    • os_hardening 시작하기
  3. 사용법 - 구성 옵션 및 추가 기능
    • Puppet Enterprise에 대한 중요 사항
    • 매개변수
    • Hiera 사용법
    • 원하는/원하지 않는 패키지 및 비활성화된 서비스에 대한 참고 사항
  4. 제한 사항 - OS 호환성 등
  5. 개발 - 모듈 기여 가이드
  6. 테스트 - 코드 변경에 대한 품질 게이트
    • 로컬 테스트
    • PDK 테스트
    • 통합 테스트 (Docker)
    • 통합 테스트 (DigitalOcean)
    • PR 및 포크의 CI 테스트
  7. 연락하기
  8. 기여자 + 감사
  9. 라이선스 및 작성자

모듈 설명

이 Puppet 모듈은 하드닝을 통해 기본 OS의 보안 구성을 제공하며 DevSec 하드닝 프레임워크의 일부입니다.

설정

설정 요구사항

  • Puppet OpenSource 또는 Enterprise
  • 모듈 stdlib
  • 모듈 sysctl

os_hardening 시작하기

이 모듈을 추가한 후 다음 클래스를 사용할 수 있습니다:

class { 'os_hardening': }

모든 매개변수는 기본 os_hardening 클래스에 포함되어 있으므로 다음과 같이 전달하기만 하면 됩니다:

class { 'os_hardening':
  enable_ipv4_forwarding => true,
}

사용법

Puppet Enterprise에 대한 중요 사항

PE 환경에서 이 모듈을 사용하는 경우 pe_environment = true로 설정해야 합니다. 그렇지 않으면 Puppet이 오류(중복 리소스)를 발생시킵니다!

매개변수

  • system_environment = 'default' 시스템이 실행되는 컨텍스트를 정의합니다. 일부 옵션은 docker/lxc에서 작동하지 않습니다.
  • pe_environment = false Puppet Enterprise를 사용하는 경우 true로 설정하세요. 중요 - 위 참조
  • extra_user_paths = [] 사용자의 PATH 변수에 추가 경로를 추가합니다 (기본값은 비어 있음).
  • umask = undef useradd / newusers가 새 홈 디렉토리를 생성할 때 사용하는 umask (예: '027')
  • maildir = undef maildir 경로 (예: '/var/mail')
  • usergroups = true 각 사용자에 대해 별도의 그룹을 원하면 true, 그렇지 않으면 false
  • sys_uid_min = undef 및 sys_gid_min = undef login.defs의 기본 설정을 재정의합니다.
  • password_max_age = 60 최대 비밀번호 사용 기간
  • password_min_age = 7 최소 비밀번호 사용 기간 (다른 비밀번호 변경을 허용하기 전)
  • password_warn_age = 7 비밀번호 변경 예정일 전 경고 일수
  • login_retries = 5 비밀번호가 잘못된 경우 최대 로그인 재시도 횟수 (일반적으로 PAM / auth_retries로 재정의됨)
  • login_timeout = 60 인증 제한 시간(초). 이 시간이 지나면 로그인이 종료됩니다.
  • chfn_restrict = '' 일반 사용자가 chfn을 사용하여 변경할 수 있는 필드
  • allow_login_without_home = false 홈 디렉토리가 없는 사용자의 로그인을 허용하려면 true
  • allow_change_user = false 사용자가 su를 사용하여 로그인을 변경할 수 있는지 여부
  • ignore_users = [] 하드닝되지 않아야 하는 시스템 사용자 계정 배열 (비밀번호 비활성화 및 셸을 /usr/sbin/nologin으로 설정)
  • folders_to_restrict = ['/usr/local/games','/usr/local/sbin','/usr/local/bin','/usr/bin','/usr/sbin','/sbin','/bin'] 그룹 및 기타 사용자가 해당 폴더 또는 내용에 쓰기 권한이 없도록 해야 하는 폴더
  • ignore_max_files_warnings = false /bin, /usr/bin 등 1000개 이상의 파일이 있는 폴더를 재귀적으로 검사할 때 puppet이 max_files 및 성능 경고를 기록하지 않도록 하려면 true
  • recurselimit = 5 재귀적 권한 검사를 위한 디렉토리 깊이
  • passwdqc_enabled = true PAM에서 passwdqc를 사용하여 강력한 비밀번호 검사를 사용하려면 true
  • auth_retries = 5 계정이 일정 시간 동안 잠기기 전 최대 인증 시도 횟수
  • auth_lockout_time = 600 너무 많은 실패한 인증 시도로 계정이 잠긴 경우 경과해야 하는 시간(초)
  • passwdqc_options = 'min=disabled,disabled,16,12,8' passwdqc에 전달하려는 옵션 라인(문자열)으로 설정
  • manage_pam_unix = false 이 모듈이 pam_unix를 관리하도록 하려면 true
  • enable_pw_history = true pam_unix가 비밀번호 재사용을 방지하기 위해 비밀번호 기록을 기억하도록 하려면 true (manage_pam_unix = true 필요)
  • pw_remember_last = 5 기억할 최근 비밀번호 수 (예: 5는 사용자가 최근 5개의 비밀번호를 재사용하지 못하게 함)
  • only_root_may_su = false root와 wheel 그룹의 구성원만 su를 사용할 수 있도록 하려면 true, CIS 벤치마크 준수를 위해 true가 필요합니다.
  • root_ttys = ['console','tty1','tty2','tty3','tty4','tty5','tty6'] root에 등록된 TTY
  • whitelist = [] 설정된 경우 SUID/SGID 비트를 유지해야 하는 모든 파일 (사전 정의된 파일 화이트리스트와 결합됨)
  • blacklist = [] 설정된 경우 SUID/SGID 비트를 제거해야 하는 모든 파일 (사전 정의된 파일 블랙리스트와 결합됨)
  • remove_from_unknown = false blacklist에 명시적으로 구성되지 않은 파일에서 SUID/SGID 비트를 제거하려면 true. 이렇게 하면 모든 Puppet 실행이 마운트된 파일시스템을 검색하여 기본 및 사용자 블랙리스트에 구성되지 않은 SUID/SGID 비트를 찾습니다. SUID/SGID 비트를 찾으면 whitelist에 없는 한 제거됩니다.
  • dry_run_on_unknown = false 위의 remove_from_unknown과 유사하지만 SUID/SGID 비트가 제거되지 않습니다. 여전히 파일시스템을 검색하여 SUID/SGID 비트를 찾지만 로그에만 출력합니다. 이 옵션은 SUID/SGID 비트에 대해 remove_from_unknown을 처음 구성할 때만 권장됩니다. 변경되는 파일을 확인하고 whitelist 및 blacklist를 조정할 수 있기 때문입니다.
  • enable_module_loading = true 시스템이 실행 중일 때 커널 모듈 변경(예: modprobe, rmmod)을 허용하려면 true
  • load_modules = [] enable_module_loading이 false인 경우 initramfs를 통해 이 모듈을 로드합니다.
  • disable_filesystems = ['cramfs','freevxfs','jffs2','hfs','hfsplus','squashfs','udf'] 비활성화해야 하는 파일시스템(커널 모듈) 배열
  • cpu_vendor = 'intel' enable_module_loading = false인 경우에만 필요: 로드할 모듈의 CPU 공급업체 설정
  • icmp_ratelimit = '100' 기본값 '100', 재정의 허용, String 필요
  • desktop_enabled = false Xorg, KDE/GNOME/Unity 등 데스크톱 시스템인 경우 true
  • enable_ipv4_forwarding = false 이 시스템이 IPv4에서 패킷 전달을 요구하는 경우 true (예: 라우터), 그렇지 않으면 false
  • manage_ipv6 = true ipv6 설정을 하드닝하려면 true, ipv6를 완전히 무시하려면 false
  • enable_ipv6 = false 이 시스템에서 ipv6를 비활성화하려면 false, 활성화하려면 true
  • enable_ipv6_forwarding = false 이 시스템이 IPv6에서 패킷 전달을 요구하는 경우 true (예: 라우터), 그렇지 않으면 false
  • arp_restricted = true ARP 알림 및 응답 동작을 제한하려면 true, 그렇지 않으면 false
  • arp_ignore_samenet = false true는 동일한 서브넷에서 오지 않은 패킷을 버립니다 (arp_ignore = 2), false는 대상 IP만 확인합니다 (arp_ignore = 1)
  • enable_sysrq = false 매직 sysrq 키를 활성화하려면 true, 그렇지 않으면 false
  • enable_core_dump = false 코어 덤프 생성을 방지하려면 false, 그렇지 않으면 true
  • enable_stack_protection = true 주소 공간 레이아웃 무작위화(ASLR)용. ASLR은 특정 유형의 버퍼 오버플로 공격을 방어하는 데 도움이 될 수 있습니다. ASLR은 프로세스의 주소 공간에서 베이스, 라이브러리, 힙 및 스택을 무작위 위치에 배치하여 공격 프로그램이 다음 명령의 메모리 주소를 예측하기 어렵게 만듭니다.
  • enable_rpfilter = true 역방향 경로 필터링을 활성화하려면 true (가짜 패킷 폐기), 그렇지 않으면 false
  • rpfilter_loose = false (enable_rpfilter가 true인 경우에만) true이면 느슨한 모드 (rp_filter = 2), 그렇지 않으면 엄격한 모드
  • enable_log_martians = true 의심스러운 / 라우팅 불가능한 네트워크 패킷에 대한 로깅을 활성화하려면 true, 그렇지 않으면 false 경고 - 이로 인해 대용량 로그 파일이 생성될 수 있습니다!
  • unwanted_packages = [] 시스템에서 제거해야 하는 패키지
  • wanted_packages = [] 시스템에 추가해야 하는 패키지
  • disabled_services = [] 활성화되지 않아야 하는 서비스
  • enable_grub_hardening = false 일부 grub 하드닝 규칙을 활성화하려면 true로 설정
  • grub_user = 'root' grub 프롬프트에서 구성을 변경할 때 제공해야 하는 grub 사용자 이름
  • grub_password_hash = '' grub-mkpasswd-pbkdf2로 생성된 grub_user와 연결된 비밀번호 해시
  • boot_without_password = true 기존 항목을 부팅할 때가 아닌 항목을 변경할 때만 비밀번호를 요구하도록 Grub 설정
  • system_umask = undef 이 변수가 설정된 경우 시스템의 모든 사용자에 대한 umask를 설정합니다 (예: '027')
  • manage_home_permissions = false 로컬 사용자 파일 및 디렉토리 권한을 관리하려면 true로 설정 (g-w,o-rwx)
  • ignore_home_users = [] manage_home_permissions에 의해 제한되지 않아야 하는 사용자 배열
  • manage_log_permissions = false 로그 파일 권한을 관리하려면 true로 설정 (g-wx,o-rwx)
  • restrict_log_dir = ['/var/log/'] 기본 로그 디렉토리 설정
  • ignore_restrict_log_dir = [] 기본 로그 디렉토리 아래에서 제외할 로그 디렉토리 배열
  • ignore_files_in_folder_to_restrict = [] folder_to_restrict 배열 아래의 디렉토리에서 하드닝할 파일을 무시하는 배열
  • manage_cron_permissions = false cron 파일 권한을 관리하려면 true로 설정 (og-rwx)
  • enable_sysctl_config = true sysctl 구성을 비활성화하려면 false로 설정
  • manage_system_users = true 시스템 사용자 관리(빈 비밀번호 및 nologin 셸 설정)를 비활성화하려면 false로 설정
  • shadow_group = undef /etc/shadow의 그룹 소유권 재정의
  • shadow_mode = undef /etc/shadow의 파일 권한 재정의

Hiera 사용법

Hiera에서 매개변수를 설정하는 것도 가능합니다:

도구 다운로드