특정 사용자만 한 포트에서 ssh를 통해 로그인하도록 허용하고, 다른 사용자는 다른 포트를 통해 로그인하도록 허용합니다.

특정 사용자만 한 포트에서 ssh를 통해 로그인하도록 허용하고, 다른 사용자는 다른 포트를 통해 로그인하도록 허용합니다.

다음과 같은 사용 사례가 있습니다.

  • 사용자가 안전하고 신뢰할 수 있는 네트워크에서 로그인할 수 있도록 허용해야 함
  • 그런 다음 여러 명(단 2명)의 모바일 사용자가 Linux Centos 시스템에 원격으로 로그인할 수 있도록 허용합니다.

예를 들어, 다른 포트에서 sshd를 실행할 수 있습니다.

  • 내부적으로는 다른 포트에 연결하는 것을 원하지 않기 때문에(스크립트를 엉망으로 만드는) 22에서 실행되도록 할 수 있습니다.
  • 외부 모바일 사용자의 경우 다른 포트(예: 포트 X)에서 sshd를 실행합니다(보안 강화를 위해 소규모 사무실 유형 설정임).

보안을 강화하기 위해 포트 X의 특정 사용자에게만 액세스를 허용하도록 sshd를 구성하고 싶습니다. 그런 다음 사용자가 포트 X를 통해 로그인할 때 알 수 있도록 일부 경고를 구성하고 싶습니다.

그러나 sshd 문서에서는 유사한 구성을 찾을 수 없습니다. 그러한 해결책이 없다면 누군가가 포트 X에서 sshd 로그인을 완료할 때 최소한 쉘 스크립트를 실행하여 실행할 수 있습니까? sshd 로그인에 대한 경고를 트리거할 수 있는지 확인하기 위해 iptables 문서를 보고 있지만 어떤 정보도 제공할 수 없습니다.

의견을 감사합니다

답변1

대체 포트에서 실행하는 것은 SSH더 이상 안전한 것으로 간주되지 않습니다. 이는 사용자에게 좀 더 모호함과 복잡성을 추가할 뿐입니다. 자동 포트 스캐너를 사용하고 어떤 포트에서 실행되는지 신경 쓰지 않음으로써 네트워크를 손상시키려는 사람들에게 장벽이 전혀 없습니다.

원격 인바운드 인터넷 기반 SSH를 허용하는 시스템의 보안을 강화하려면 다음에서 사용자를 제어하십시오. sshd_config@Anthon directs 사용자를 제어한 다음 PAM에서 직접 보안을 구현하십시오.

두 개의 그룹을 생성 lusers하고 rusers. 원격 모바일 사용자를 rusers그룹에 추가합니다. 사용pam_succeed_if.soPAM 모듈을 사용하면 이러한 사용자에 대한 액세스가 허용됩니다. 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연결할 수 있는 사람을 제한할 뿐만 아니라 오류가 발생하는 경우에도 sshdPAM 기반 제한이 제공하는 보호를 받을 수 있습니다.

원격 사용자를 위한 또 다른 단계는 비밀번호와 함께 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.

authorized_keys사용자가 자신의 SSH 키를 생성하고 이를 파일과 함께 사용하여 로그인 할 수 없도록 하려면 sshd가 인증된 키를 찾는 특정 위치를 설정하여 이를 제어할 수 있습니다.

변경 사항 /etc/ssh/sshd_config:

AuthorizedKeysFile  %h/ssh/authorized_keys

비슷한:

AuthorizedKeysFile  /etc/.ssh/authorized_keys/%u

사용자가 쓰기 권한이 없는 제어된 디렉터리를 가리킨다는 것은 사용자가 자신의 키를 생성할 수 없고 이를 사용하여 설정된 규칙을 우회할 수 없음을 의미합니다.

답변2

다음과 같은 내용을 다음과 같이 추가할 수 있습니다 /etc/ssh/sshd_config.

AllowUsers mobileuser1 mobileuser2 *@10.0.0.0/8

위의 내용에서는 허용되는 원격 사용자 이름이 신뢰할 수 있는 네트워크 mobileuser1mobileuser210.0.0.0이고 서브넷 마스크가 255.0.0.0이라고 가정합니다.

이를 통해 두 명의 모바일 사용자가 어디서든 로그인할 수 있으며, 각 사용자는 신뢰할 수 있는 네트워크에서 로그인할 수 있습니다. 이러한 패턴과 일치하지 않는 사용자(예: foo원격 위치에서 로그인하는 사용자)는 액세스가 거부됩니다.

답변3

두 개의 SSH 데몬과 두 개의 파일을 시작하여 sshd_config이를 수행 할 수 있습니다. 기존 구성을 복사합니다(예: /etc/ssh/sshd_config /etc/ssh/sshd_alt_config대체 구성 설정 또는 대체 구성 설정( man다음 페이지 참조 sshd_config)).

포트

Specifies the port number that sshd(8) listens on.  The default
is 22.  Multiple options of this type are permitted.  See also
ListenAddress

사용자 허용

This keyword can be followed by a list of user name patterns,
separated by spaces.  If specified, login is allowed only for
user names that match one of the patterns.  Only user names are
valid; a numerical user ID is not recognized.  By default, login
is allowed for all users.  If the pattern takes the form
USER@HOST then USER and HOST are separately checked, restricting
logins to particular users from particular hosts.  The
allow/deny directives are processed in the following order:
DenyUsers, AllowUsers, DenyGroups, and finally AllowGroups.

예를 들어, 파일에 기록된 내용을 따라 비정상적인 로그인 시도를 확인하기 위해 대체 SSH 로그를 다른 파일에 기록할 수 있습니다.

관련 정보