system_security
업데이트:
시스템 보안
마운트(Mount)
하드웨어 디바이스나 파티션을 특정 디렉터리에 연결하여 파일 시스템으로 접근할 수 있게 하는 과정
하드 링크(Hard Link)
- 생성 방법:
ln test test_ln
- 동일한 inode 번호를 공유하여 하나의 파일을 여러 이름으로 접근할 수 있다.
- 원본 파일을 삭제해도 링크된 파일은 그대로 유지된다.
소프트 링크(Soft Link, 심볼릭 링크)
- 생성 방법:
ln -s test test_sl
- 별도의 inode를 가지며, 원본 파일의 경로를 참조하는 방식
- 원본 파일이 삭제되면 링크도 유효하지 않게 된다.
inode 정보 확인
stat
명령어를 사용하여 파일의 inode 번호 및 메타데이터를 확인할 수 있다.
예시: stat test
파일 시간 정보
- Access Time(액세스 시간): 파일이 마지막으로 읽힌 시간.
- Modify Time(수정 시간): 파일의 내용이 마지막으로 변경된 시간.
- Change Time(상태 변경 시간): 파일의 메타데이터(권한, 소유자 등)가 변경된 시간.
파일 및 디렉터리 검색
- find 명령어: 특정 조건에 맞는 파일이나 디렉터리를 검색
권한 관리와 특수 권한
기본 권한 설정
- umask: 새로 생성되는 파일이나 디렉터리의 기본 권한을 결정
특수 권한
- SetUID (s):
- 실행 파일에 설정되며, 실행 시 해당 파일의 소유자 권한으로 동작
- SetGID (s):
- 실행 파일이나 디렉터리에 설정되며, 생성되는 파일이 해당 그룹을 상속
- Sticky Bit (t):
- 디렉터리에 설정되며, 파일 삭제 권한을 해당 파일의 소유자나 디렉터리 소유자만 가지게 한다.
- 설정 방법:
chmod +t [디렉터리명]
또는chmod 1XXX [디렉터리명]
루트킷(Rootkit)
정의
시스템에 대한 무단 접근 권한을 얻기 위해 사용되는 악성 코드 또는 도구 모음.
특징
- 탐지와 제거가 매우 어렵다
- 주요 기능:
- 권한 상승
- 은닉성
사용자 및 그룹 관리
사용자 관리
- 사용자 생성:
adduser [사용자명]
-
/etc/passwd
파일:- 모든 사용자 정보 포함.
- 형식:
로그인ID:패스워드자리:UID:GID:사용자 정보:홈 디렉터리:로그인 셸
- 실제 암호는
/etc/shadow
에 저장됨.
-
- 형식:
$id$salt$hashed_password
id
: 해시 알고리즘 식별자.salt
: 해시에 사용된 솔트 값.hashed_password
: 솔트와 함께 해시된 비밀번호.
- 형식:
-
- 비밀번호 설정/변경:
passwd [사용자명]
: 비밀번호 설정 또는 변경.passwd -l [사용자명]
: 계정 잠금.passwd -u [사용자명]
: 계정 잠금 해제.
- 사용자 수정:
usermod
: 사용자 계정 정보 수정.
- 사용자 삭제:
userdel [사용자명]
: 계정 삭제.userdel -r [사용자명]
: 계정과 홈 디렉터리 삭제.
- 비밀번호 설정/변경:
PAM(Pluggable Authentication Modules)
정의
다양한 인증 방식을 플러그인 형태로 제공하여 유연한 인증 체계를 구축할 수 있게 하는 시스템.
특징
- 유연성: 다양한 모듈 조합으로 원하는 인증 방식 구현 가능.
- 확장성: 새로운 인증 모듈 추가 가능.
- 일관성: 중앙에서 인증 정책 관리 가능.
구성 요소
- auth: 사용자 신원 확인 및 인증.
- account: 계정 상태 확인 및 접근 권한 제어.
- password: 비밀번호 변경 처리.
- session: 세션 시작 및 종료 시 필요한 작업 수행.
제어 플래그
required
: 실패 시 전체 인증 실패, 모든 모듈 실행 후 결과 반환.requisite
: 실패 시 즉시 인증 실패, 이후 모듈 실행 중단.sufficient
: 성공 시 즉시 인증 성공, 이후 동일 유형 모듈 실행 중단.optional
: 성공 여부가 전체 인증 결과에 큰 영향 없음.