Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

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

puppet-ssh-hardening

이 puppet 모듈은 보안 ssh-client 및 ssh-server 구성을 제공합니다.

저장소 보기
603182년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

Puppet SSH 강화

Puppet Forge Build Status Gitter Chat

설명

이 Puppet 모듈은 안전한 ssh-client 및 ssh-server 구성을 제공합니다.

요구 사항

  • Puppet
  • Puppet 모듈: saz/ssh (>= 2.3.6), puppetlabs/stdlib (>= 4.2.0)

매개변수

  • ipv6_enabled = false - IPv6가 필요한 경우 true
  • cbc_required = false - 암호화에 CBC가 필요한 경우 true. 이는 일반적으로 구성된 보안 암호화가 활성화되지 않은 구형 M2M 메커니즘이 SSH와 통신해야 하는 경우에만 필요합니다. CBC는 취약한 대안입니다. 이보다 더 취약한 것은 피해야 하므로 사용할 수 없습니다.
  • weak_hmac = false - 더 약한 HMAC 메커니즘이 필요한 경우 true. 이는 일반적으로 구성된 보안 HMAC이 활성화되지 않은 구형 M2M 메커니즘이 SSH와 통신해야 하는 경우에만 필요합니다.
  • weak_kex = false - 더 약한 키 교환(KEX) 메커니즘이 필요한 경우 true. 이는 일반적으로 구성된 보안 KEX가 활성화되지 않은 구형 M2M 메커니즘이 SSH와 통신해야 하는 경우에만 필요합니다.
  • allow_root_with_key = false - false는 root 로그인을 완전히 비활성화합니다. 키 기반 메커니즘을 통한 root 로그인을 허용하려면 true로 설정합니다.
  • ports = [ 22 ] - ssh-server가 수신하고 ssh-client가 연결해야 하는 포트
  • listen_to = [ "0.0.0.0" ] - ssh-server가 수신해야 하는 하나 이상의 IP 주소. 기본값은 비어 있지만 보안상의 이유로 구성해야 합니다!
  • remote_hosts - ssh-client가 연결할 수 있는 하나 이상의 호스트. 기본값은 비어 있지만 보안상의 이유로 구성해야 합니다!
  • allow_tcp_forwarding = false - TCP 포워딩을 허용하려면 true로 설정
  • allow_agent_forwarding = false - 에이전트 포워딩을 허용하려면 true로 설정
  • use_pam = false - pam 인증을 비활성화하려면 false
  • client_options = {} - 해시에 값을 설정하여 모듈 설정을 재정의
  • server_options = {} - 해시에 값을 설정하여 모듈 설정을 재정의

사용법

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

root@kitploit:~
class { 'ssh_hardening': }

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

root@kitploit:~
class { 'ssh_hardening::server': }
class { 'ssh_hardening::client': }

핵심 속성을 구성해야 합니다:

root@kitploit:~
class { 'ssh_hardening::server':
  "listen_to" : ["10.2.3.4"]
}

listen_to의 기본값은 0.0.0.0입니다. 이 값을 변경하는 것이 좋습니다.

기본 옵션 재정의

기본 옵션은 client_options 및 server_options 매개변수로 전달된 옵션과 병합됩니다. 옵션이 기본값과 옵션 매개변수 모두에 설정된 경우 후자가 우선합니다.

다음 예제는 기본적으로 비활성화된 X11Forwarding을 활성화합니다:

root@kitploit:~
class { 'ssh_hardening':
  server_options => {
    'X11Forwarding' => 'yes',
  },
}

로컬 테스트

로컬 테스트를 위해 vagrant와 Virtualbox 또는 VMWare를 사용하여 로컬에서 테스트를 실행할 수 있습니다. 시스템에 Virtualbox와 Vagrant를 설치해야 합니다. 시스템에 적합한 vagrant 패키지는 Vagrant Downloads를 참조하세요. 모든 테스트에는 test-kitchen을 사용합니다. test-kitchen에 익숙하지 않다면 해당 가이드를 참조하세요.

다음으로 test-kitchen을 설치합니다:

root@kitploit:~
# 의존성 설치
gem install bundler
bundle install

# 테스트 가져오기
bundle exec thor kitchen:fetch-remote-tests

# 린트 검사 수행
bundle exec rake lint

# 스펙 검사 수행
bundle exec rake spec

# 한 머신에서 빠른 테스트
bundle exec kitchen test default-ubuntu-1204

# Debian 기반 머신에서 테스트
bundle exec kitchen test

# 개발용
bundle exec kitchen create default-ubuntu-1204
bundle exec kitchen converge default-ubuntu-1204

자세한 내용은 test-kitchen을 참조하세요.

FAQ / 함정

내 계정으로 로그인할 수 없습니다. 클라이언트 키를 등록했지만 여전히 접근을 허용하지 않습니다.

일반적인 문제(방화벽, 네트워크, 키 누락, 잘못된 키, 계정 비활성화 등)를 모두 확인했다면 계정이 잠겨 있을 수 있습니다. 가장 빠른 확인 방법은 사용자의 비밀번호 해시를 확인하는 것입니다:

root@kitploit:~
sudo grep myuser /etc/shadow

해시에 !가 포함되어 있으면 계정이 잠긴 것입니다:

root@kitploit:~
myuser:!:16280:7:60:7:::

이 문제를 해결하는 올바른 방법은 계정을 잠금 해제하는 것입니다 (passwd -u myuser). 사용자에게 비밀번호가 없는 경우 다음을 통해 잠금을 해제할 수 있습니다:

root@kitploit:~
usermod -p "*" myuser

또는 PAM을 사용하려는 경우 use_pam = true로 활성화했습니다. PAM은 잠긴 사용자가 키로 접근하는 것을 허용합니다.

내 애플리케이션이 더 이상 SSH로 연결되지 않는 이유는 무엇인가요?

항상 먼저 로그 파일을 확인하고 가능하면 연결 시 완료되는 클라이언트와 서버 간의 협상을 확인하세요.

python 및 ruby 기반 애플리케이션에서 구식 암호화 세트를 사용하여 발생하는 일부 문제를 확인했습니다. 이는 이 강화 모듈이 암호화, 메시지 인증 코드(MAC) 및 키 교환(KEX) 알고리즘 목록을 더 안전한 선택으로 축소했기 때문에 충돌이 발생합니다.

이것으로 충분하지 않다면 암호화에 cbc_required, MAC에 weak_hmac, KEX에 weak_kex를 자유롭게 활성화하세요.

기여자 + 감사

  • Dominik Richter arlimus
  • Edmund Haselwanter ehaselwanter
  • Christoph Hartmann chris-rock
  • Patrick Meier atomic111
  • Matthew Haughton 3flex
  • Bernhard Schmidt bernhardschmidt
  • Kurt Huwig kurthuwig
  • Artem Sidorenko artem-sidorenko
  • Guillaume Destuynder gdestuynder
  • Bernhard Weisshuhn bkw
  • stribika

라이선스 및 작성자

  • 작성자:: Dominik Richter [email protected]
  • 작성자:: Deutsche Telekom AG

Apache License, Version 2.0 (이하 "라이선스")에 따라 라이선스가 부여됩니다. 이 파일은 라이선스를 준수하는 경우에만 사용할 수 있습니다. 라이선스 사본은 다음에서 얻을 수 있습니다:

root@kitploit:~
http://www.apache.org/licenses/LICENSE-2.0

해당 법률에 의해 요구되거나 서면으로 동의하지 않는 한, 라이선스에 따라 배포되는 소프트웨어는 보증이나 조건 없이 "있는 그대로" 배포됩니다. 라이선스에 따른 특정 언어의 권리 및 제한 사항은 라이선스를 참조하세요.

도구 다운로드