반응형
정보보안 기사 - 시스템 보안 (2)
UNIX / Linux 보안
1. 시스템 접근
1.1 로그인 과정
- Telnet / SSH 클라이언트를 통해 유닉스 / 리눅스 서버 접속
- 로그인을 담당하는 프로그램은 입력한 패스워드와 /etc/passwd 파일의 해당 필드를 비교하여 사용자 인증을 처리합니다.
- 주의: Telnet은 평문 송수신을 하기 때문에 네트워크 스니핑이 발생했을 시 사용자 인증정보나 데이터가 그대로 노출될 위험이 있습니다. 따라서 사용을 권장하지 않습니다.
- 파일 설명:
- /etc/passwd: 사용자 계정정보를 담고 있는 파일
- /etc/shadow: 암호화된 패스워드를 저장하고 있는 파일
- 로그인 프로그램은 쉘이 사용할 변수들을 근거로 초기 환경을 설정
- HOME, SHELL, USER, LOGNAME 변수들은 /etc/passwd 파일에 기록된 정보로 값이 설정됩니다.
- 쉘(Shell): 명령어 해석기로, 사용자가 입력한 명령어를 해석해서 커널에 전달하고 커널이 처리한 결과를 사용자에게 출력해주는 역할을 합니다.
- 변수 설명:
- HOME 변수: 사용자의 홈 디렉터리 지정
- SHELL 변수: 로그인 쉘 지정
- USER 또는 LOGNAME 변수: 사용자의 사용자 계정(로그인 이름)을 지정
- 모든 사용자에게 적용되는 환경 설정파일
- /etc/profile
- 사용자 환경설정에서 필요한 변수와 쉘 스크립트 구문이 포함되어 있습니다.
- 쉘 변수: 현재 쉘에서만 적용되는 변수
- 환경변수: 현재 쉘뿐만 아니라 서브 쉘에서도 적용되는 변수
- /etc/bashrc
- 사용자 환경설정에서 필요한 함수나 alias 구문이 포함되어 있습니다.
- /etc/profile
- 개별 사용자에게 적용되는 환경 설정파일 (예: bash 쉘)
- ~/.bash_profile
- ~/.bashrc
- 모든 절차가 끝나면 로그인 쉘 진행
- 로그인 쉘은 일반적으로 /etc/passwd 파일 마지막 필드에 정의되어 있습니다.
2. 사용자 정보
2.1 /etc/passwd 파일
- UNIX는 시스템 관리자가 사용자 계정을 만들 때마다 해당 사용자와 관련된 정보를 /etc/passwd 파일에 저장합니다. passwd 파일에는 UNIX 시스템을 이용하는데 필요한 기본 정보들이 담겨 있으며, 이 파일의 각 라인은 개별 사용자에 대한 정보로 이루어져 있으며, 구분자 ':'를 이용하여 7개의 필드로 구분됩니다.
- user_account: 사용자 계정명
- user_password: 사용자 패스워드 (x는 shadow 패스워드를 사용한다는 의미)
- user_ID: 사용자 ID (UID)
- group_ID: 기본 그룹 ID (GID)
- comment: 사용자 관련 기타 정보
- home_directory: 로그인에 성공한 후에 사용자가 위치할 홈 디렉터리
- login_shell: 로그인 쉘
- 해킹 시 주로 3, 4번을 0으로 변경합니다. 시스템은 UID, GID를 기준으로 권한을 부여하기 때문에 계정이름이 root가 아니라도 UID, GID가 0이면 root가 되는 것입니다.
2.2 사용자 확인
- UNIX 시스템에 접속 중인 사용자를 확인하려면 id 명령을 사용한다. 여기서 id는 Identification의 약자로 이 명령을 실행하면 사용자의 UID와 GID를 출력해준다.
2.3 패스워드 변경
- 사용하던 패스워드를 변경하거나 패스워드가 없는 사용자 계정에 패스워드를 부여할 때 passwd 명령을 사용한다.
- 일반 사용자는 자신의 패스워드만 변경할 수 있지만 슈퍼 유저(root)는 자신을 포함하여 시스템에 등록된 모든 사용자들의 패스워드를 변경할 수 있다.
- 옵션
- '-d' : 사용자 계정 패스워드 삭제
- '-e' : 사용자 계정 패스워드 만료
반응형
'정보보안기사 필기 > 2. 시스템 보안' 카테고리의 다른 글
정보보안 기사 - 시스템 보안 (1) (0) | 2022.04.25 |
---|