본문으로 바로가기

[리눅스] 계정 보안 설정

category 운영체제/리눅스 2021. 10. 7. 19:54
728x90
반응형

오늘은 리눅스의 보안 설정에 대한 설정에 대해 알아보겠습니다.

기준은 CentOS 7.3입니다.

CentOS 7.3에서는 보안에 대한 설정이 아주 잘 되어 있습니다.

즉, 보안에 대해 강하다는 것입니다.

관련된 파일에 있는 값 중, 많이 사용하는 것에 대해 알아보겠습니다.

1. /etc/security/pwquality.conf
리눅스의 비밀번호 보안 설정파일입니다.

minlen : 비밀번호의 최소 길이
dredit : 최소 숫자 사용 개수
ucredit : 최소 영어 대문자 사용 개수
lcredit : 최소 영어 소문자 사용 개수
oredit : 최소 특수문자 사용 개수
minclass : 비밀번호 대문자,소문자,숫자,특수문자 조합 개수
maxrepeat : 동일 문자 반복 사용 개수
maxclassrepeat : 동일한 타입의 연속 문자 사용 개수

2. /etc/pam.d/system-auth
PAM은 사용자의 서비스에 대한 접근을 제어하는 모듈입니다.
기본적으로 리눅스에 설치되어 있습니다.

설치직후 파일을 열어 보면 아래와 같습니다.

auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

이 파일은 계정잠금정책으로 사용합니다.

제일 첫번째 열은 PAM의 타입입니다.

타입은 auth, account, password, session이 있습니다.

account : 계정과 관련된 서비스
auth : 사용자가 맞는지 확인
password : 패스워드 인증 방법
session : 사용자가 인증받기 전과 후에 관한 설정

두번째 열은 컨트롤입니다.

컨트롤은 requisite, required, sufficient, optional이 있습니다.

requisite : 실패할 경우, 즉시 인증 거부
required : PAM 모듈을 사용하고, 실패 시, 인증 거부
sufficient : 이전에 실패가 되더라도, 이것에 의해 인증 성공 시, 인증 승인
optional : 선택적으로 설정이 가능

세번째 열은모듈 경로입니다.

모듈은 pam에 관련된 라이브러리 파일이고 확장자는 보통 so입니다.

보통 /lib64/security 에 위치합니다.

그 다음부터는 옵션을 넣을 수 있습니다.

deny : 실패 횟수
unlock_time : 로그인 제한 시간
no_magic_root : root 패스워드 잠금 설정 하지 않음
reset : 접속 성공시, 실패 횟수 초기화
every_deny_root : root 잠김

3. /etc/login.defs
리눅스의 계정 설정과 관련된 설정 파일입니다.

MAIL_DIR : 메일 관련 파일들이 저장될 디렉토리
PASS_MAX_DAYS : 패스워드 최대 사용일
PASS_MIN_DAY : 패스워드 최소 사용일
PASS_MIN_LEN : 패스워드 최소 길이
PASS_WAR_AGE : 패스워드 만료에 대한 경고일

그 외의 UID,GID 등에 대한 설정들도 있습니다.

4. /etc/ssh/sshd_config
이 파일은 ssh 접속에 관련된 설정 파일입니다.

보통 root로 ssh 로그인을 막기 위해서 아래의 값을 사용합니다.

PermitRootLogin yes

5. /etc/passwd
계정 목록과 계정에 대한 정보들이 기록된 파일입니다.

불필요한 걔정은 userdel 명령어로 삭제합니다.

6. 세션타임아웃
ssh를 사용을 하던, 어떤 접속을 하게되면 세션이 맺어지게 됩니다.
설정을 따로 안하면, 타임아웃이 없게됩니다.
보통 보안을 위해서 600초 타임아웃을 설정합니다.

/etc/profie에 값을 설정하면됩니다.
...
TIMOEOUT=600
export TMOUT
...
설정 후, 적용은 세션을 새로 설립하면됩니다.

오늘 포스팅은 여기까지 하도록 하겠습니다.

728x90
반응형