SSH
대체 포트에서 실행 되는 것은 더 이상 보안으로 간주되지 않습니다. 약간의 불명확 함과 사용자에게 복잡한 단계가 추가됩니다. 자동화 된 포트 스캐너를 사용하고 있고 어떤 포트에서 실행 중인지 신경 쓰지 않는 네트워크를 침입하려는 사람들에게 장애물이 없습니다.
원격 인터넷 기반 인바운드 SSH를 허용하는 시스템에서 보안을 강화하려면 sshd_config
@Anthon에 표시된대로 사용자를 제어 한 다음 PAM에서 직접 보안을 구현하십시오.
두 그룹을 작성 lusers
하고 rusers
. 원격 모바일 사용자를 rusers
그룹에 추가하십시오 . 사용 pam_succeed_if.so의 그 사용자에 대한 액세스를 허용하는 PAM 모듈을. ssh의 pam 구성에 행을 추가하십시오.
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
일부 pam_succeed_if.so 모듈은 약간 다른 구문을 사용해야 할 수도 있습니다 group = lusers
.
그런 다음 sshd
연결할 수있는 사용자를 제한 할뿐 아니라에 버그가있는 sshd
경우에도 PAM 기반 제한이 제공하는 보호 기능이 있습니다.
원격 사용자를위한 추가 단계 중 하나는 암호와 함께 ssh_keys를 사용하는 것입니다. 따라서 로컬 사용자는 키 또는 비밀번호로 로그인 할 수 있지만 원격 사용자는 키를 가져야하며,이를 위해 키를 작성하는 경우 키에 비밀번호 문구 연관자가 있는지 확인할 수 있습니다. 따라서 실제로 SSH 키 와 암호 가있는 위치에 대한 액세스를 제한합니다 . 그리고 사용자의 암호가 인식되면 잠재적 공격 경로를 제한합니다.
에서 sshd_config
:
2 설정 변경 :
ChallengeResponseAuthentication yes
과
PasswordAuthentication yes
에:
ChallengeResponseAuthentication no
과
PasswordAuthentication no
따라서 기본값은 이제 키 인증 만 허용하는 것입니다. 그런 다음 로컬 사용자의 경우 match
구성 설정을 사용하여 로컬 사용자의 기본값을 변경할 수 있습니다. 로컬 개인 네트워크가 192.168.1.0/24라고 가정하면 다음에 추가하십시오 sshd_config
.
Match Address 192.168.1.0/24
PasswordAuthentication yes
이제 로컬 사용자는 비밀번호 또는 키로 연결할 수 있으며 원격 사용자는 키를 사용해야합니다. 패스 프레이즈를 사용하여 키를 생성하는 것은 사용자의 책임입니다.
추가 이점으로 단일을 관리 sshd_config
해야하며 단일 포트에서만 ssh를 실행하면되므로 자체 관리가 쉬워집니다.
편집 2017-01-21-authorized_keys
파일 사용 제한 .
사용자가 ssh 키를 자체 생성하지 않고 authorized_keys
파일 과 함께 사용 하여 로그인 할 수 없도록하려면 sshd의 특정 위치를 설정하여 인증 된 키를 찾도록 제어 할 수 있습니다.
에서 다음 /etc/ssh/sshd_config
을 변경하십시오.
AuthorizedKeysFile %h/ssh/authorized_keys
같은 것 :
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
사용자에게 쓰기 권한이없는 제어 된 디렉토리를 가리키면 사용자는 자신의 키를 생성 할 수없고 적용한 규칙을 해결하는 데이를 사용할 수 없습니다.
lusers
그룹에 속하지만 그룹에 속하지 않은 누군가rusers
키 쌍을 생성하고 키 쌍을 업데이트하면~/.ssh/authorized_keys
원격에서 로그인 할 수 있습니다.