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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
chef-ssh-hardening — This chef cookbook은 보안 ssh-client 및 ssh-server 구성을 제공합니다. | Kitploit
도구/GitHubGitHub/dev-sec/chef-ssh-hardening
Cloud Infrastructure SecurityConfiguration AuditingNetwork SecurityDevSecOpsAuthentication
GitHubdev-sec/chef-ssh-hardening

chef-ssh-hardening

This chef cookbook은 보안 ssh-client 및 ssh-server 구성을 제공합니다.

저장소 보기
16866505일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

ssh-hardening (Chef cookbook)

[Supermarket][1] [Build Status][2] [Code Coverage][3] [Gitter Chat][4]

설명

이 쿡북은 보안이 강화된 ssh-client 및 ssh-server 구성을 제공합니다. 이 쿡북은 사용자 및/또는 ssh 키 관리 기능을 제공하지 않으므로, 해당 기능은 다른 쿡북을 사용하시기 바랍니다.

요구 사항

  • Chef >= 14.13.11

플랫폼

  • Debian 8, 9, 10
  • Ubuntu 16.04, 18.04
  • RHEL 6, 7
  • CentOS 6, 7
  • Oracle Linux 6, 7
  • Fedora 29, 30
  • OpenSuse Leap 42
  • Amazon Linux 1, 2

속성(Attributes)

아래에서 속성 문서와 기본값을 확인할 수 있습니다.

참고: 이 쿡북의 일부 속성 기본값은 레시피 내에서 설정됩니다. 이러한 속성을 재정의하려면 더 높은 속성 우선순위 수준을 사용해야 합니다. 이러한 속성은 아래 목록에서 #override attribute#로 표시됩니다. 해당 속성 재정의 예시:

override['ssh-hardening']['ssh']['server']['listen_to'] = node['ipaddress']
  • ['ssh-hardening']['network']['ipv6']['enable'] - false. IPv6가 필요한 경우 true로 설정
  • ['ssh-hardening']['ssh']['ports'] - 22. ssh-server가 수신하고 ssh-client가 연결해야 하는 포트
  • ['ssh-hardening']['ssh'][{'client', 'server'}]['kex'] - nil. 서버 버전에 따라 최적의 키 교환(KEX)을 계산하려면 nil, 그렇지 않으면 Kex 값 문자열 지정
  • ['ssh-hardening']['ssh'][{'client', 'server'}]['mac'] - nil. 서버 버전에 따라 최적의 메시지 인증 코드(MAC)를 계산하려면 nil, 그렇지 않으면 Mac 값 문자열 지정
  • ['ssh-hardening']['ssh'][{'client', 'server'}]['cipher'] - nil. 서버 버전에 따라 최적의 암호화 방식을 계산하려면 nil, 그렇지 않으면 Cipher 값 문자열 지정
  • ['ssh-hardening']['ssh'][{'client', 'server'}]['cbc_required'] - false. 암호화에 CBC가 필요한 경우 true로 설정. 이는 일반적으로 구성된 보안 암호화 방식이 활성화되지 않은 구형 M2M 메커니즘이 SSH와 통신해야 하는 경우에만 필요합니다. CBC는 취약한 대안입니다. 이보다 더 취약한 방식은 피해야 하므로 제공되지 않습니다.
  • ['ssh-hardening']['ssh'][{'client', 'server'}]['weak_hmac'] - false. 더 약한 HMAC 메커니즘이 필요한 경우 true로 설정. 이는 일반적으로 구성된 보안 HMAC가 활성화되지 않은 구형 M2M 메커니즘이 SSH와 통신해야 하는 경우에만 필요합니다.
  • ['ssh-hardening']['ssh'][{'client', 'server'}]['weak_kex'] - false. 더 약한 키 교환(KEX) 메커니즘이 필요한 경우 true로 설정. 이는 일반적으로 구성된 보안 KEX가 활성화되지 않은 구형 M2M 메커니즘이 SSH와 통신해야 하는 경우에만 필요합니다.
  • ['ssh-hardening']['ssh']['client']['remote_hosts'] - [] - ssh-client가 연결할 수 있는 하나 이상의 호스트.
  • ['ssh-hardening']['ssh']['client']['password_authentication'] - false. 비밀번호 인증을 활성화하려면 true로 설정.
  • ['ssh-hardening']['ssh']['client']['roaming'] - false. 실험적인 클라이언트 로밍을 활성화하려면 true로 설정. 이는 비밀 정보가 악의적인 서버에 노출될 수 있는 잠재적 문제를 일으키는 것으로 알려져 있으며 기본적으로 비활성화되어 있습니다.
  • ['ssh-hardening']['ssh']['client']['extras'] - {}. 추가 구성 옵션 추가. 자세한 내용은 아래 참조
  • ['ssh-hardening']['ssh']['server']['host_key_files'] - nil. 서버 버전에 따라 최적의 호스트키 구성을 계산하려면 nil, 그렇지 않으면 파일 경로 배열 지정 (예: /etc/ssh/ssh_host_rsa_key)
  • ['ssh-hardening']['ssh']['server']['dh_min_prime_size'] - 2048 - /etc/ssh/moduli에서 허용되는 최소 소수(prime) 길이(비트). 이 숫자보다 작은 소수는 제거됩니다. (자세한 내용 및 배경은 여기 참조)
  • ['ssh-hardening']['ssh']['server']['dh_build_primes'] - false - 자체 소수를 생성할지 여부. 이 재생성은 한 번만 수행되며 많은 시간이 소요됩니다(최신 하드웨어에서 4096 길이 기준 약 1.5~2시간).
  • ['ssh-hardening']['ssh']['server']['dh_build_primes_size'] - 4096 - 생성할 소수 길이. 이 옵션은 dh_build_primes가 활성화된 경우에만 유효합니다.
  • ['ssh-hardening']['ssh']['server']['listen_to'] #override attribute# - ssh-server가 수신해야 하는 하나 이상의 IP 주소. 기본값은 모든 인터페이스에서 수신하는 것입니다. 보안상의 이유로 반드시 구성해야 합니다!
  • ['ssh-hardening']['ssh']['server']['allow_root_with_key'] - false는 root 로그인을 완전히 비활성화합니다. 키 기반 메커니즘을 통한 root 로그인을 허용하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['allow_tcp_forwarding'] - false. TCP 포워딩을 허용하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['allow_agent_forwarding'] - false. 에이전트 포워딩을 허용하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['allow_x11_forwarding'] - false. X11 포워딩을 허용하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['permit_tunnel'] - false는 tun 장치 포워딩을 비활성화합니다. tun 장치 포워딩을 허용하려면 true로 설정. 기타 허용 값: 'yes', 'no', 'point-to-point', 'ethernet'. 정확한 동작은 man sshd_config 참조. 참고: allow_tcp_forwarding도 활성화해야 합니다.
  • ['ssh-hardening']['ssh']['server']['use_pam'] - true. sshd의 pam 인증을 비활성화하려면 false로 설정
  • ['ssh-hardening']['ssh']['server']['challenge_response_authentication'] - false. 챌린지 응답 인증을 활성화하려면 true로 설정.
  • ['ssh-hardening']['ssh']['server']['deny_users'] - [] - DenyUsers를 구성합니다. 지정된 경우 패턴 중 하나와 일치하는 사용자 이름의 로그인이 거부됩니다.
  • ['ssh-hardening']['ssh']['server']['allow_users'] - [] - AllowUsers를 구성합니다. 지정된 경우 패턴 중 하나와 일치하는 사용자 이름만 로그인이 허용됩니다.
  • ['ssh-hardening']['ssh']['server']['deny_groups'] - [] - DenyGroups를 구성합니다. 지정된 경우 기본 그룹 또는 보조 그룹 목록이 패턴 중 하나와 일치하는 사용자의 로그인이 거부됩니다.
  • ['ssh-hardening']['ssh']['server']['allow_groups'] - [] - AllowGroups를 구성합니다. 지정된 경우 기본 그룹 또는 보조 그룹 목록이 패턴 중 하나와 일치하는 사용자만 로그인이 허용됩니다.
  • ['ssh-hardening']['ssh']['server']['print_motd'] - false. MOTD 출력을 활성화하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['print_last_log'] - false. 마지막 로그인 정보 출력을 활성화하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['banner'] - nil. 배너를 활성화하려면 '/etc/issue.net'과 같은 경로 설정
  • ['ssh-hardening']['ssh']['server']['os_banner'] - false는 프로토콜 핸드셰이크 중 버전 정보를 비활성화합니다(debian 계열만 해당). 활성화하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['use_dns'] - nil은 openssh 기본값을 사용합니다. 원격 호스트의 DNS 조회 및 확인을 활성화/비활성화하려면 true 또는 false로 설정
  • ['ssh-hardening']['ssh']['server']['use_privilege_separation'] - nil. 서버 버전에 따라 최적 값을 계산하려면 nil, 그렇지 않으면 true 또는 false로 설정
  • ['ssh-hardening']['ssh']['server']['login_grace_time'] - 30s. 로그인이 성공해야 하는 시간. 이 시간이 초과되면 사용자는 연결이 끊깁니다.
  • ['ssh-hardening']['ssh']['server']['max_auth_tries'] - 2. 연결당 인증 시도 횟수
  • ['ssh-hardening']['ssh']['server']['max_sessions'] - 10 연결당 세션 수
  • ['ssh-hardening']['ssh']['server']['password_authentication'] - false. 비밀번호 인증을 활성화하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['log_level'] - verbose. sshd의 로그 레벨. 가능한 값은 man 5 sshd_config의 LogLevel 참조.
  • ['ssh-hardening']['ssh']['server']['sftp']['enable'] - false. OpenSSH 데몬의 SFTP 기능을 활성화하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['sftp']['group'] - sftponly. 전용 사용자에게만 SFTP를 허용하도록 SFTP의 Match Group 옵션을 설정합니다.
  • ['ssh-hardening']['ssh']['server']['sftp']['chroot'] - /home/%u. SFTP 사용자가 chroot되어야 하는 디렉토리를 설정합니다.
  • ['ssh-hardening']['ssh']['server']['sftp']['authorized_keys_path'] - nil. nil이 아닌 경우, SFTP 전용 액세스를 위한 Match Group 내에 설정될 하나 이상의 공백으로 구분된 authorized keys 파일의 전체 경로
  • ['ssh-hardening']['ssh']['server']['sftp']['password_authentication'] - false. 비밀번호 인증을 활성화하려면 true로 설정
  • ['ssh-hardening']['ssh']['server']['authorized_keys_path'] - nil. nil이 아닌 경우, 하나 이상의 공백으로 구분된 authorized keys 파일의 전체 경로가 필요합니다.
  • ['ssh-hardening']['ssh']['server']['extras'] - {}. 추가 구성 옵션 추가. 자세한 내용은 아래 참조
  • ['ssh-hardening']['ssh']['server']['match_blocks'] - {}. Match 구성 블록. 자세한 내용은 아래 참조

사용법

run_list에 레시피를 추가합니다:

"recipe[ssh-hardening]"

이렇게 하면 ssh-server와 ssh-client가 설치됩니다. 다음 중 하나만 선택할 수도 있습니다:

"recipe[ssh-hardening::server]"
"recipe[ssh-hardening::client]"

속성 구성:

"ssh-hardening": {
  "ssh" : {
    "server" : {
      "listen_to" : "10.2.3.4"
    }
  }
}

listen_to의 기본값은 0.0.0.0입니다. 이 값을 변경하는 것을 적극 권장합니다.

SFTP

SFTP 구성을 활성화하려면 run_list에 다음 레시피 중 하나를 추가합니다:

"recipe[ssh-hardening]"
또는
"recipe[ssh-hardening::server]"

속성 구성:

"ssh-hardening": {
  "ssh" : {
    "server": {
      "sftp" : {
      "enable" : true,
      "chroot" : "/home/sftp/%u",
      "group"  : "sftusers"
    }
    }
  }
}

이렇게 하면 SFTP 서버가 활성화되고 sftpusers 그룹의 모든 사용자가 /home/sftp/%u 디렉토리로 chroot됩니다.

추가 구성 옵션

클라이언트 또는 서버 구성 파일에 추가 구성 옵션을 추가할 수 있습니다. 이는 정적으로 설정된 값을 재정의하거나 속성으로는 사용할 수 없는 구성 옵션을 추가하는 데 사용할 수 있습니다.

도구 다운로드