2010-04-08 2 views
0

현재 우리 프로세스는 각 * nix 서버에 로그인하고 각각의 비밀번호를 수동으로 변경하는 것으로 구성됩니다. 내 질문은, 이것을 자동화하는 좋은 방법은 무엇입니까? 나는 아마도 이것을 할 수있는 몇 가지 다른 방법을 생각하고 그들이 추천, 사용 등 다른 사람들로부터 의견을 듣고 싶습니다.자동화 된 루트 암호 변경을 스크립팅하는 방법?

내가 생각했던 한 가지 방법은 암호가 필요한 서버 목록이있는 텍스트 파일입니다 변경 및 새 암호를 묻는 메시지를 스크립트에 일시적으로 저장 한 다음 각 서버에 원격으로 연결하고 명령을 실행하는 스크립트입니다. 서버에 연결할 수 있는지 확인하거나 원격 연결에서 시간 초과가 있는지 확인하는 것이 좋습니다. 그런 다음 콘솔에 출력하여 스크립트를 실행하는 사람이 어떤 서버가 성공하고 어떤 서버가 성공하지 못했는지 확인할 수 있습니다.

완전히 자동화 된 또 다른 솔루션을 생각하려고했으나 새 암호를 안전하게 저장하는 좋은 방법을 생각할 수 없었습니다. 또한 사용자 상호 작용이 필요하고 스크립트를 수동으로 시작해야하는 번거 로움이 없기 때문에 일 년에 6 번만 수행하면됩니다.

모든 생각, 도움, 아이디어는 크게 호소 될 것입니다.

답변

2
openssl passwd -1 $rootpw 

여기서 $ rootpw는 루트 암호가 될 문자열을 포함합니다.

이렇게하면 파일에 넣을 수있는 암호화 된 문자열이 출력됩니다. 데이터베이스에서 프로비저닝 된 가상 서버 인스턴스를 설정하는 스크립트에서이 스크립트를 사용합니다. 서버를 설정하는 스크립트가 일반 텍스트를 보내지 않고이 해시를 사용할 수 있도록 네트워크를 통해 보내기 전에이 해시를 계산합니다.

질문에 대답하기 위해 각 서버는 해시를 약간 다르게 계산하여 다른 해시를 생성하지만 모든 해시는 동일한 암호와 동일합니다. 이 해시 중 하나를 사용할 수 있으며 해시의 실제 내용이 다르더라도 모든 서버에서 사용할 때 기능상으로 동등합니다.

예를 들어, 내가는 foobar를 해시 이러한 결과입니다

동일한 시스템에서 계산하지만 그 중 하나가 암호를 동일시하는 데 사용할 수있는 경우에도 그 해시의 각이 다른
rootpw=foobar 
openssl passwd -1 $rootpw 
$1$6pXamKGD$TKQqON1prArop7DpLOyAk1 

openssl passwd -1 $rootpw 
$1$4A4Mn16f$P7ap2AqNMRK8m72bG/Bve0 

openssl passwd -1 $rootpw 
$1$DyhsWEMX$i2wH6JpAqoHNFZ0YOBVHj/ 

openssl passwd -1 $rootpw 
$1$m27FIj5e$LZPxVniAeUoZcuUoNHK8c/ 

openssl passwd -1 $rootpw 
$1$qdX0NKm1$45rzxUj..LCJwWB/.fwGH0 

'는 foobar 어떤 기계에서든. 당신이 라인을 찾을 수

그러니 그냥 개방은/etc/그림자 거기에 그 붙여 넣기 : 내 스크립트에서

root:$1$qdX0NKm1$45rzxUj..LCJwWB/.fwGH0:14415:0:99999:7::: 

는 내가 그것을 폭발 '의 업데이트 요소는 [1] 다음 배열을 연결 문자열로 돌아가서 파일의 문자열을 바꿉니다. 원한다면 다르게 할 수 있습니다. 특히 오래된 값 (배열로 분해하여 얻을 수 있음)을 알고있는 경우 특히 그렇습니다.

나는이 질문이 몇 달이 경과 했으므로 그 사실을 알아 냈 으리라 생각하지만 미래의 모든 googler가이 문제를 발견 할 때까지이 문제를 해결하려고합니다.

+0

이기종 인프라가있는 경우 유용합니다. 그러나 "서버"에 다양한 버전과 OS가 포함되어 있다면 이는 효과가 없을 것입니다. –

0

귀하의 서버가 암호로 계산하는 모든 해시를 계산하고이 안전하고 해시 된 양식으로 암호를 보내어 /etc/shadow에 넣을 준비가되어 있어야합니다.

실제로 어떻게하는지는 잘 모릅니다.

+0

답장을 보내 주셔서 감사합니다. Pajton! 각 서버가 같은 방식으로 해시를 계산합니까? 그렇지 않다면 이것은 각 서버의 해시를 파악하고 모든 서버에서 대체 할 별도의 섀도 파일을 가지고있는 꽤 복잡한 프로세스로 보입니다. 나는 그와 같은 복잡성 때문에 그와 같은 것을 빠져 나가고 싶다. 특히 나는이 일을 하위 멍청이들에게 전달할 것이기 때문에 특히 그렇다. :) – Webs

+0

저는 이것이 구성 가능하다고 생각합니다. 따라서 각 서버는 해시 컴퓨팅과 동일한 방법을 사용할 수 있습니다 (특히 기본 구성을 사용하고 동일한 OS-es 인 경우 특히 그렇습니다). 예를 들어 아파치의 경우'htpasswd' 도구가 있습니다.이 도구는 암호에 해시를 계산하고 암호 파일 ('/ etc/shadow'에 해당)에 추가합니다. 그래서, 시스템 암호와 비슷한 것이 있어야한다고 생각합니다. – pajton

+0

감사합니다. 나는 다른 모습을 보여줄 것입니다. – Webs

관련 문제