시스템 관리자라면 사용자를 관리할 책임이 있습니다. 관리에는 사용자들이 시스템에 로그인 할 수 있게 사용자 추가, 사용자 권한 설정, 사용자를 위한 홈 디렉토리 만들기 및 할당, 그룹에 사용자 지정, 필요시 사용자 삭제가 포함되어 있습니다.
사용자는 모두 고유한 로그인 이름을 갖고 있어야 합니다. 로그인 이름은 각 사용자를 식별하여 한 사용자가 다른 사용자의 파일을 삭제하는 문제를 피할 수 있게 해줍니다. 사용자는 각자 암호를 갖고 있어야 합니다. 암호를 갖지 않아도 되는 유일한 예외는 시스템이 한 명의 사용자만 있는 경우와 해당 시스템에 그 밖의 다른 컴퓨터로의 모뎀이나 네트워크에 의한 연결이 절대로 없는 경우입니다. 그래도 모든 계정에 대해 암호가 강력히 장려됩니다.
==>관련정보사이트
사용자 추가
시스템에 사용자를 추가하면, 그 결과 암호 파일, /etc/passwd에 그 사용자를 위한 항목이 생깁니다. 그 항목은 다음과 같은 형태를 갖고 있습니다.
login_name:encrypted_password:user_ID:group_ID:user_information: login_directory:login_shell
이 구문에서, 필드들은 콜론으로 분리되어 있습니다. 아래에 필드가 나열되어 있습니다.
/etc/passwd 파일 항목의 필드 |
필드 |
설명 |
login_name |
로그인하는 데 사용되는 이름. |
encrypted_passwd |
사용자를 인증하는 데 필요한 암호. 암호는 보안 위반에 대한 1차 방어선입니다. |
user_ID |
운영체제에서 사용자를 식별하는 데 사용하는 고유 번호. |
group_ID |
이 사용자의 1차 그룹을 식별하는 데 사용되는 고유 번호나 이름. 어떤 사용자가 여러 그룹의 한 멤버라면, 관리자가 허용할 경우 다른 그룹으로 그룹 멤버십을 바꿀 수 있습니다. |
user_information |
사용자의 이름이나 타이틀 같은 사용자의 설명. |
login_directory |
사용자의 홈 디렉토리(사용자가 로그인한 후에 끝내는 곳). |
login_shell |
사용자가 로그인할 때 사용하는 셸(예를 들어, bash 셸을 사용할 경우 /bin/bash). |
|
절대로 Linux에서 암호파일(/etc/passwd)을 직접 편집하지 마십시오. 본 릴리스에 추가된 보안 기능 때문에, 암호 파일은 적합한 명령으로만 조작해야 합니다. 이 주의사항은 유틸리티의 Shadow Suite를 사용하는 경우에 특히 중요합니다. ==>관련정보사이트 Shadow Security Suite를 사용하고 있다면, /etc/passwd 파일은 대신에 다음과 같이 보일 것입니다.
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: lp:x:4;7:lp:/var/spool/lpd:
(첫번째 콜론과 두 번째 콜론 사이의) 두 번째 필드가 모든 행에서 x라는 것을 유의하시기 바랍니다. Shadow 패스워드는 /etc/passwd 파일에서 실제 암호를 암호화해서, 액세스가 어려운 파일에 그것들을 숨깁니다.
Shadiw Suite 가 설치되어 있지 않은 Linux 시스템에서는 (암호를 포함하여)가 /etc/passwd 파일에 저장되어 있습니다. 암호는 인코드된 형식으로 저장되어 있습니다. 비록 암호가 인간에게는 뭐가 뭔지 알 수 없게 보이겠지만, UNIX crypt 명령을 사용하면 간단히 인코드됩니다. 이때 텍스트는 [null]로 설정되고 암호는 키로 사용됩니다. 섀도우 암호화(Shadow passwording)는 암호를 다른 파일(보통은 /etc/shadow)로 옮기는데, 이 파일은 루트만이 읽을 수 있도록 설정되어 있습니다. 암호를 /etc/shadow 파일로 옮기면 공격자가 사전 비교 공격을 수행할 때 이용하는 인코드된 암호에 액세스할 수 없게 해 줍니다. ==>관련정보사이트
/etc/shadow 파일 항목의 필드 |
필드 |
설명 |
username |
로그인하는 데 사용되는 이름. |
password |
인코드된 암호. |
last |
암호가 마지막으로 변경되었던 1970년1월1일 이후의 날짜 수. |
may |
그 전에 암호가 변경될 수 있는 날까지의 날짜 수. |
must |
그 후에는 암호가 변경되어야 하는 날까지의 날짜 수. |
warn |
그 전에 암혹 만료될 것이라고 사용자에게 경고되는 날까지의 날짜 수. |
expire |
그 후에는 암호가 만료되고 계정은 사용 불가능하게 되는 날까지의 날짜 수. |
disable |
계정이 사용 불가능하게 되는 1970년 1월 1일 이후의 날짜 수 |
reserved |
사용이 유보된 필드 |
|
Linux의 파일 권한
chmod 명령에 권한을 지정할 때 rwx 기호 값 대신 8진값으로 지정할 수 있습니다. 그렇게 하기 위해서는 간단히 권한 필드의 3자를 8진수의 비트들로 처리합니다. 문자로 나타나 있다면, 이를 1로 카운트합니다. 그래서, 권한 -rw-r--r-- 은 숫자로 644로 표현됩니다.
SUID 및 SGID 프로그램
두 가지의 추가 권한 비트인 SUID 비트와 SGID 비트는 파일과 연관이 있습니다. 이 중 SUID는 Set User ID를 나타내고, SGID는 Set Group ID를 나타냅니다. 이들 권한을 가진 프로그램은 실행될 때 다른 UID에서 소유하고 있는 것처럼 동작합니다. SUID 프로그램이 실행될 때는 실제로 누가 그 프로그램을 실행하고 있는지에 관계 없이 파일 시스템 상에서 그 프로그램을 소유하고 있는 사용자와 동일한 UID가 설정됩니다. SGID는 대신 그룹 ID를 변경한다는 점을 제외하고 비슷합니다.
==>관련정보사이트 비록 SUID/SGID 기능이 유용할 수는 있지만, 커다란 보안 구멍을 만들 수 있습니다. SUID 프로그램은 프로그램이 실행될 때 루트 권한 같은 특수한 권한이 필요할 때 일반적으로 사용됩니다. SUID 프로그램에 있는 대부분의 보안구멍은 프로그램이 명령줄을 실행하거나, 셸을 가동시키거나, 사용자가 자신의 명령을 포함하도록 바꿀 수 있는 파일을 실행할 때 발생합니다. 비록 어떤 SUID 프로그램은 필요한 것들이기는 하지만, 이들을 최소로 유지해야 할 것입니다. 또한 정기적으로 자신의 파일 시스템을 검색하여 find 명령을 사용해서 새로운 SUID 프로그램에 대해 점검해야 합니다.
adduser 명령 사용
adduser 명령은 계졍을 위한 암호를 설정해 주지 않습니다. passwd 명령을 사용하여 암호를 설정 해야 합니다. 사용자를 추가할 때는 아래에 나와 있는 것처럼 간단히 adduser 명령을 사용하여 추가 하고자 하는 사용자의 이름을 제공하면 됩니다.
# ./adduser jschmoe #
사용자 제거
사용자 제거에는 각기 다른 몇 가지 등급이 있습니다. 시스템에서 사용자를 제거하는 것은 마지막의 결정적인 행위가 되어야 합니다. ==>관련정보사이트 다음은 약간 가능성이 있는 것들입니다.
-- 로그인할 수 있는 능력만 제거 이런 종류의 제거는 해당 사용자가 잠시 사라졌다가 얼마후에 다시 회복되어야 하는 경우에 유용합니다. 이때 사용자의 디렉토리, 파일 및 그룹 정보는 본래 그대로 유지됩니다. 암호 파일(/etc/passwd)을 편집하여 다음과 같이 해당 사용자 항목의 두 번째 필드에 *를 놓을 수 있습니다. jschmoe:*123:21:Joseph A. Schmoe:/users/jschmoe:/bin/bash Shadow Suite를 실행하고 있다면, /etc/passwd 파일을 편집하는 것은 중요하지 않습니다. 대신 /etc/shadow를 편집해야 합니다.
-- 암호 파일에서 사용자를 제거하지만, 시스템에 있는 사용자의 파일은 유지 이런 종류의 제거는 해당 파일을 다른 사용자가 사용하거나 새로운 사람이 이전 사용자의 의무를 양도받을 경우에 유용합니다. 편집기나 userdel login_name 명령을 사용하여 암호 파일이나 파일들에서 해당 사용자의 항목을 삭제할 수 있습니다. 그런 다음에는 chown 명령과 mv 명령을 사용하여 삭제된 사용자의 파일의 소유권과 위치를 바꿀 수 있습니다.
-- 암호 파일에서 사용자를 제거하고, 해당 사용자가 소유하고 있는 모든 파일도 제거 이런 종류의 제거는 궁극적으로 완벽한 형태로 사용자를 삭제해 줍니다. 암호 파일에서 해당 사용자의 항목을 삭제하고 시스템으로부터도 해당 사용자의 파일을 삭제해야 합니다. 다음과 같이 find 명령을 사용하여 그렇게 합니다. find user' s-home-directory -exec rm {} ; 그런 다음에는 rmdir user' s-home-directory를 사용하여 디렉토리를 제거하고 암호 파일이나 파일들에서 해당 항목도 제거할 수 있습니다.
사용자 암호 설정
사용자의 암호는 passwd 명령을 사용하여 설정합니다. 시스템에 추가한 사용자 각각에 대해 암호를 설정해야 합니다. 각 사용자는 로그인할 때 자신의 passwd를 바꿀 수 있습니다. 다음 단계는 passwd를 사용하기 위한 기본 절차의 개요입니다.
1. 명령과 로그인 이름(예: passwd jschmoe)을 입력하고, Enter 키를 누릅니다. 2. New passwd : 프롬프트에서, 암호를 입력합니다(암호는 화면상에 나타나지 않음). 3. 암호를 다시 입력하라는 내용의 프롬프트가 표시됩니다. 암호를 다시 입력합니다. New password (again) : newpassword ==>관련정보사이트 그러면 암호가 암호화되어 /etc/passwd 파일에 놓여집니다.
자신의 암호가 다음과 같은 규칙을 따르는지 신중히 확인하는 것이 중요합니다. * 암호는 최소한 6자 이상이어야 합니다(8자 이상 권장). * 암호는 구두점 기호와 숫자뿐만 아니라 대소문자를 모두 포함해도 됩니다.
그룹에 대한 작업
/etc/group 파일의 각 그룹은 자신과 연관된 고유 그룹 ID 번호를 갖고 있습니다. Linux 에서는 이름이 아니라 할당한 번호에 주의를 기울입니다. 그러므로 두 그룹에 같은 번호를 할당한다면, 그 두 그룹은 같은 그룹으로 취급 될 것입니다.
그룹 추가
새로운 그룹은 /etc/group 파일을 직접 편집하고 새로운 그룹 정보를 입력하여 만듭니다.
ex) sales::21:tuser, jschmoe, staplr
이 예에서, 그룹이름은 sales이고, 그룹 ID(GID) 번호는 21이며, 멤버는 tuser, jschmoe, staplr입니다. 파일과 디렉토리에는 소유자, 그룹 그리고 다른 사용자를 위한 이들 파일과 디렉토리와 연관된 권한이 있습니다. 사용자는 두 그룹 이상의 멤버가 될 수 있고, 그룹의 멤버십을 바꿀 수 있습니다.
그룹 삭제
그룹은 /etc/group 파일을 편집하고 삭제하고자 하는 특정 그룹에 대한 항목을 제거하여 삭제합니다. 또한, 연관된 GID를 갖고 있는 모든 파일을 다른 그룹에 다시 할당해야 합니다. 다시 할당하는 쉬운 방법은 다음 예에서처럼 find 명령을 사용하는 것입니다.
find / -gid group-id find users-ome-directory -exec chgrp newgroup {} ;
홈 디렉토리 관리
시스템에 많은 사용자를 둘 계획이라면 홈 디렉토리를 논리적으로 그룹화하는 것을 생각해 보아야 할 것입니다. 일반적으로, 모든 홈 디렉토리는 주어진 시스템에서 하나의 단일 상위 레벨 디렉토리 아래에 두어야 합니다. 그런 식으로, 어떠한 배치가 필요에 의해 합리적인지에 따라 이들을 그룹화할 수 있습니다.
예를 들어, /home 이 사용자 디렉토리에 대해 상위 레벨 디렉토리가 되도록 지정할 수 있습니다. /home 아래에서, 사용자들을 부서별로 그룹화 할 수 있습니다. 영업부 사용자는 /home/sales 아래에 계정을 갖게 될 것이고, 개발부는 /home/develop 아래에 계정을 갖게 될 것입니다. 그러면 사용자 홈 디렉토리가 이들 디렉토리나 추가 그룹화가 필요할 경우에는 다른 세트 아래에 들 게 될 것입니다. 사용자 디렉토리가 많은 양의 디스크 공간을 사용할 수 있기 때문에, 논리적 사용자 그룹을 다른 실제 파일 시스템에 놓는 것을 고려해 볼 수 있습니다. 공간이 추가로 필요할 때는 간단히 홈 디렉토리를 위한 추가 공간을 만들어서 이를 /home 아래의 마운트 지점으로서 한 파일 시스템에 마운트할 수 있습니다.
웹 기반 관리 ==>관련정보사이트
Linux의 Red Hat 배포판에는 Jacques Gelinas의 Linuxconf라는 시스템 관리 툴이 포함되어 있습니다. Linuxconf를 사용하면 사용자 및 그룹에 대한 작업을 포함하여 많은 수의 시스템 관리 작업을 관리 할 수 있습니다. Linuxconf는 친숙한 문자 행 및 X Window System 액세스 외에도, 월드 와이드 웹을 통한 Linux 시스템의 관리를 지원해 줍니다. Linuxconf에서 옵션 Linuxconf HTML Access Control 이 선택되어 있으면, URL http://:98/을 입력하여 Linuxconf툴의 맨 위 웹 페이지를 표시 할 수 있습니다.
강의출처 : 네트워크,시스템보안,IT자격증 자료공유사이트
보안전문가 준비에대한 철저한 계획 및 진행에 대한 상담을 드립니다 국방부 컨퍼런스 및 경찰청, 사이버수사대, 안철수랩 보안교육센터 (주)해커스칼리지 해커대학 http://www.itbankac.com 02-3291-3264
|