오늘은 리눅스의 보안 설정에 대한 설정에 대해 알아보겠습니다.
기준은 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
...
설정 후, 적용은 세션을 새로 설립하면됩니다.
오늘 포스팅은 여기까지 하도록 하겠습니다.
'운영체제 > 리눅스' 카테고리의 다른 글
[리눅스] Emacs 편집기의 단축키 (0) | 2021.12.29 |
---|---|
[리눅스] ssh 연결 타임아웃 설정 (0) | 2021.11.10 |
[리눅스] 커널 소스 분석 (3) | 2021.05.17 |
[리눅스] tomcat https 인증서 등록 (0) | 2021.03.30 |
[리눅스] 동적, 정적 라이브러리 (0) | 2021.03.29 |