SSH 액세스 관리를 위해 다음과 같은 설정이 마음에 듭니다.이 서버는 소규모 서버에서 사용자 그룹을 관리하기 위해 직장에서 사용합니다. 보안 및 관리 용이성은 우선 순위 목록에서 높습니다.
주요 기능은 Unix 그룹 멤버쉽을 통해 SSH 권한을 쉽게 관리하고 권한을 엄격하게 정의하며 기본적으로 안전합니다.
설정
소프트웨어 설치 (선택적이지만 유용한) :
yum install members # or apt install members
그룹 추가 :
addgroup --system allowssh
addgroup --system sftponly
에서 /etc/ssh/sshd_config
, 설정에 다음이 있는지 확인 No
:
PermitRootLogin no
PubkeyAuthentication no
PasswordAuthentication no
그리고 끝에 /etc/ssh/sshd_config
다음 두 스탠자를 추가하십시오.
Match Group allowssh
PubkeyAuthentication yes
Match Group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
(파일 편집 후 SSH를 다시 시작하는 것을 잊지 마십시오)
설명
그래서이 모든 것이 무엇을 하는가?
- 추가 보안 수단으로 항상 루트 로그인을 비활성화합니다.
- 항상 암호 기반 로그인을 비활성화합니다 (약한 암호는 sshd를 실행하는 서버에 큰 위험입니다).
allowssh
그룹의 사용자에 대해서만 (토끼) 로그인을 허용합니다 .
sftponly
그룹의 사용자는 SSH를 통해 쉘을 얻을 수 없으며 SFTP 만 가능합니다.
그런 다음 그룹 구성원을 관리하여 액세스 권한을 가진 사람을 관리하기 만하면됩니다 (이 변경 사항은 즉시 적용되며 SSH를 다시 시작할 필요가 없습니다).
# adduser marcelm allowssh
# members allowssh
marcelm
# deluser marcelm allowssh
# members allowssh
#
sftp 사용자는 sftponly
(쉘을 얻지 못하도록) 그리고 allowssh
(처음에 로그인을 허용 하기 위해) 둘 다의 구성원이어야 합니다.
추가 정보
이 구성 은 비밀번호 로그인을 허용하지 않습니다 . 모든 계정 은 공개 키 인증을 사용해야합니다. 이것은 아마도 SSH로 얻을 수있는 가장 큰 보안 승리 일 것이므로 지금 시작해야하더라도 노력할 가치가 있다고 주장합니다.
정말로 이것을 원하지 않으면 스탠자에 추가 PasswordAuthentication yes
하십시오 Match Group allowssh
. 이것은 allowssh
사용자에게 pubkey와 password 인증을 허용합니다 .
이 구성은 모든 sftponly
사용자를 홈 디렉토리로 제한합니다 . 원하지 않으면 ChrootDirectory %h
지시문을 제거하십시오 .
당신이 경우 않는 작업에 chroot 환경을 원하는, 사용자의 홈 디렉토리 (그리고 위의 임의의 디렉토리)를 소유하는 것이 중요 root:root
및 기타 / 그룹별로 없습니다 쓰기. 홈 디렉토리의 서브 디렉토리가 사용자 소유 및 / 또는 쓰기 가능하다는 것은 괜찮습니다.
예, 사용자의 홈 디렉토리는 루트 소유 이며 사용자가 쓸 수 없어야합니다 . 안타깝게도이 제한 에는 충분한 이유 가 있습니다 . 상황에 따라 ChrootDirectory /home
좋은 대안이 될 수 있습니다.
SSH가 사용자의 쉘을 대체 하기 때문에이 솔루션 에는 sftponly
사용자 의 쉘을 설정하는 /sbin/nologin
것이 필요하거나 유해하지 않습니다 ForceCommand internal-sftp
.
사용하여 /sbin/nologin
도움이 될 수있는 것은 그들이 다른 방법 (물리적 콘솔, 삼바 등)하지만 통해 로그인 중지합니다.
이 설정은 root
SSH를 통한 직접 로그인을 허용하지 않습니다 . 이것은 추가 보안 계층을 형성합니다. 직접 루트 로그인 이 필요한 경우 PermitRootLogin
지시문을 변경하십시오 . 로 설정하는 것이 좋습니다 forced-commands-only
, prohibit-password
그리고 (최후의 수단으로) yes
.
보너스 포인트의 경우 누가 응원 할 수 su
있는지 를 제한하십시오 . 라는 시스템 그룹을 추가 wheel
하고, 가능 / 추가 auth required pam_wheel.so
에서 /etc/pam.d/su
.