본문 바로가기

Linux

[superuser] 시스템보안을 위한 패스워드 정책변경

시스템보안을 위한 패스워드 정책변경

유닉스나 리눅스계의 운영체제들은 모두 멀티모드로 운영되며 네트웍과 다중사용자가 동시접속하여 사용 가능하기 때문에 보안상 여러 가지 취약한 점이 많이 있다. 시스템 관리자들의 가장 큰 고민거리가 바로 여기에 있다. 보안유지를 위해 보안사항을 추가조치하면 사용자들은 그만큼 불편함을 감수해야한다. 즉 시스템보안성과 사용자의 편리성은 반비례한다고 할 수 있다. 불과 몇 년 전까지만 하더라도 국내에서는 보안에 대한 인식이 부족하였으나 인터넷이 널리 보급되어 있는 현재는 개인정보보호와 시스템의 보안등이 사회의 큰 문제로 대두되고 있다.

보안에 대한 얘기를 하자면 너무 길어 질 것 같으므로 보안관련 전문서적들이 시중서점에 많이 나와 있으므로 찾아서 탐독해 보도록 하고 이쯤에서 본론으로 들어가 보자. 어쨌든 유닉스나 리눅스계의 시스템에서는 가장 일차적인 보안은 ID와 패스워드에 의해 이루어 진다.

리눅스나 유닉스시스템에서 사용자의 ID와 패스워드를 기록관리하는 파일은 /etc/passwd이므로 이 파일의 형식에 대해서 알아보자.

아래의 예는 /etc/passwd의 내용중 sspark 계정 사용자에 대한 정보를 보여준 것이다.

sspark:$1$amj8elZu$XSC5qAgXdQsFh4QctFVQJ.:504:504::/home/sspark:/bin/csh


그런데 문제는 사용자의 ID와 패스워드는 /etc/passwd에 저장이 되어 있으며 이 내용은 누구나 볼 수 있게 되어 있다는 것이다. 물론 패스워드는 암호화되어 있지만 크랙(Crack) 프로그램등을 활용하여 사전공격등의 방법으로 알아 낼 수도 있다. 이런 문제 때문에 리눅스나 솔라리스, 유닉스같은 시스템에서는 shadow 패스워드라는 것으로 전환하여 운용할 수 있는데, 이 파일에는 /etc/passwd의 두 번째 필드인 암호화된 필드부분을 저장하게 되며 root권한을 가진 관리자만이 읽을 수만 있도록 권한설정이 된다. 그리고 /etc/passwd의 암호자리에는 x라는 문자로 모두 채워진다. 이렇게 shadow패스워드로 변환하게 되면 기존의 방식보다 안전한 보안이 구현되는 것이다. 그러면 어떻게 하면 shadow패스워드로 변환을 할 수 있을까? 이 방법은 의외로 간단하다.

현재의 패스워드가 /etc/passwd에 패스워드를 저장하고 있는 기존의 방식이라면 리눅스에서는 다음과 같은 "pwconv"라는 간단한 명령으로 shadow패스워드로 변환이 가능하다.

 

[root@ciss9 /]# pwconv

 

이결과 /etc/passwd의 두 번째 필드에 있던 암호화된 패스워드는 x라는 문자로 대체되어 버리고 /etc/shadow라는 파일을 만들어 저장하게 된다. 그리고 /etc/shadow파일의 퍼미션은 root만이 읽을 수 있게된다.

다시 원래 패스워드로 전환하려면 다음과 같이 "pwunconv"라고 하면된다.

 

[root@ciss9 /]# pwunconv