주요 콘텐츠로 건너뛰기

최근에는 SSH를 사용할 때 새로 등록된 사용자가 로그인하는 데 문제가 있다는 보고가 있었습니다. SysAdmin은 앨리스를 등록한 다음 Alice가 SSH를 통해 로그인하려고 합니다. Alice는 인증 오류를 보고합니다.

syserr_log 메시지는 Alice가 등록되지 않음을 나타내는 것으로 보입니다.

05:04:02 프로세스 1111812D, root.root(sshd) 생성. 
05:04:02 루트 (sshd) : [AUTH] [INFO] sshd [PID= 0x1111812D]: 잘못된 사용자 앨리스 
+ 127.0.0.1부터 
05:04:02 루트(sshd) : [AUTH] [INFO] sshd [PID=0x1111812D]: input_userauth_req 
+uest: 잘못된 사용자 앨리스 
05:04:02 루트 (sshd) : [AUTH] [INFO] sshd [PID= 0x1111812D]: 에 대한 실패 없음 
+유효한 사용자 앨리스 부터 127.0.0.1 포트 54869 ssh2 
05:04:06 루트 (sshd) : [AUTH] [ERR] sshd [PID= 0x1111812D]: 오류: ge 수 없습니다 
NOUSER에 대한 +t 그림자 정보 
05:04:06 루트 (sshd) : [AUTH] [INFO] sshd [PID= 0x1111812D]: 암호 암호 
+r 유효하지 않은 사용자 앨리스 127.0.0.1 포트 54869 ssh2

 

그러나 Alice가 SSH 클라이언트 대신 Telnet 클라이언트를 사용하는 경우 문제 없이 로그인할 수 있습니다.

05:04:23 프로세스 1111812E, PreLogin.System(사전 로그인) 생성. 
05:04:38 프로세스 1111812E는  앨리스로 전환되었습니다. CAC (로그인).

 

또한 등록 후 즉시 로그인을 시도하는 대신 Alice가 몇 분 동안 기다린다면 문제없이 로그인 할 수 있습니다.

05:12:51 프로세스 11118130, root.root(sshd) 생성. 
05:12:55 루트 (sshd) : [AUTH] [INFO] sshd [PID=0x11118130]: 허용 된 암호 
 +127.0.0.1 포트 54909 ssh2에서 앨리스 
05:12:55 프로세스 11118131, root.root(sshd) 생성. 
05:12:55 프로세스 11118131이 앨리스로 전환되었습니다. CAC (로그인).

 

정말 실망스러운 것은 때때로 첫 번째 새로 등록 된 사용자가 SSH로 인증하는 데 아무런 문제가 없지만 두 번째 사용자는 그렇게한다는 것입니다.

그래서 무슨 일이 일어나고 있는가?

SSH와 같은 POSIX 프로그램이 등록 데이터베이스를 직접 참조하는 데는 특정 문제가 있습니다. 대신 인증 호출은 posix_regdb_server 프로세스에 의해 서비스됩니다. posix_regdb_server 프로세스는 사용자가 유효한지 확인하기 위해 참조하는 등록 데이터베이스의 복사본을 유지 관리합니다. posix_regdb_server 사용자 ID를 볼 때마다 현재 시간을 등록 데이터베이스를 마지막으로 읽은 시간과 비교하며, 그 시간이 과거에 5분 이상인 경우 데이터베이스를 다시 읽습니다. 따라서 새로 등록된 사용자는 SSH를 사용하여 로그인하기 전에 최대 5분정도 기다려야 할 수 있습니다.

첫 번째 새로 등록 된 사용자가 아무런 문제가 없지만 두 번째 는 SysAdmin이 Bob을 등록하고 Bob이 로그인하려고한다는 것입니다. 마지막 인증 요청 이후 5분 이상 되었기 때문에 posix_regdb_server 데이터베이스 복사본을 새로 고쳐야 하므로 Bob을 유효한 사용자로 보고 Bob은 로그인할 수 있습니다. 이제 SysAdmin은 앨리스를 등록하고 앨리스가 로그인하려고 합니다. 그러나 Bob이 posix_regdb_service 로그인한 지 1~2분밖에 되지 않았기 때문에 데이터베이스복사본을 새로 고치지 않고 Alice가 발견되지 않아 로그인할 수 없습니다.

5분 창을 변경할 수 있는 방법은 없습니다. posix_regdb_server 프로세스를 중지하면 다시 시작할 때 등록 데이터베이스의 복사본이 새로 고쳐집니다. 일반적으로 1분 이내에 자동으로 다시 시작되지만 최대 2분이 걸릴 수 있으므로 속도를 높일 수 있는 동안은 속도를 높일 수 없습니다.

더 나은 전략은 모든 신규 사용자를 동시에 등록하는 것입니다. 또한 아무도 SSH를 통해 로그인하려고하지 않을 때 한 번에 등록하려면 첫 번째 새 사용자가 posix_regdb_server 로그인하려고하면 데이터베이스가 새로 고쳐지고 모든 새 사용자를 동시에 가져옵니다.

물론 아무도 SSH를 통해 로그인하려고하지 않을 때 시간을 찾는 것은 어려울 수 있으므로 가장 좋은 전략은 모든 신규 사용자를 동시에 등록 한 다음 로그인 할 수 있다고 말하기 전에 커피 한 잔을 얻는 것입니다.

 

© 2024 스트라투스 테크놀로지스.