SSH root 접근 보안
일반 계정 생성
# root로 원격 접속을 바로 하면 '무작위 대입 공격'으로 패스워드가 탈취될 경우 위험하기 때문에 일반 계정을 생성해서 사용해야함
useradd 계정이름
passwd 패스워드
ROOT 계정의 원격 접속 제한 및 포트 변경
# SSH접근을 하기 위한 포트는 기본적으로 22번. 잘 알려진 포트 번호이기 때문에 공격 시도가 많음
# 따라서 포트를 별도로 설정
vi /etc/ssh/sshd_config
Port 1234 # 주석 해제. 원하는 포트 입력하여 그 포트로 접속가능하게
PermitRootLogin no # 옵션을 no로 변경하여 root로 원격 접속하지 못하도록 설정
systemctl restart sshd # 재부팅
계정 패스워드 보안
계정 패스워드
vi /etc/login.defs
PASS_MAX_DAYS 90 # 패스워드 최대 사용 기간 [권장 90~180일]
PASS_MIN_DAYS 90 # 패스워드 최소 사용기간 [권장 90~180일]
PASS_MIN_LEN 8 # 패스워드 최소 길이 설정 [권장 8자 이상]
패스워드 복잡도
vi /etc/security/pwquality.conf
minlen = 8 # 최소 패스워드 길이 설정 [6자 이하는 설정 안 됨, 최소 8 이상 권장]
dcredit = 1 # 최소 필요한 숫자 수 [최소 1 이상 권장]
ucredit = 1 # 최소 필요한 대문자 수 [최소 1 이상 권장]
lcredit = 1 # 최소 필요한 소문자 수 [최소 1 이상 권장]
ocredit = 1 # 최소 필요한 특수문자 수 [최소 1 이상 권장]
maxrepeat = 3 # 최대 연속된 동일한 반복 수 [최소 3 이상 권장]
maxclassrepeat = 3 # 최대 연속 문자 반복 수 [최소 3 이상 권장]
usercheck = 1 # 패스워드에 유저 ID가 포함되어 있는지 점검 [1 권장/0 체크 안 함]
로그인 잠금 설정 보안
계정 패스워드
vi /etc/pam.d/system-auth
# option
# unlock_time : 계정이 잠길 시 유지되는 시간 (초 단위)
# deny : 실패 횟수를 의미
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=600
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=600
account required pam_faillock.so
faillock # 명령어를 통해 로그인 실패 여부 확인 가능
faillock --user 사용자 #특정 사용자 확인
faillock --user 사용자 --reset # 수동으로 사용자 차단 해제
ls /var/run/faillock/ # 한번이라도 로그인 실패한 계정 관리 경로
로그인 접속 세션 시간 설정
vi /etc/profile
HISTSIZE=1000 # 히스토리 저장 개수 - 보통 5000개 권장하는데 그 이상도 가능
HISTTIMEFORMAT="%F %T " # 히스토리 저장할 때 날짜와 시간도 같이 표시되는 기능
TMOUT=300 # 세션 타임아웃 시간 - 초단위
history 명령어를 쳤을 때 확인할 수 있음
반응형
'Infrastructure > Linux' 카테고리의 다른 글
리눅스 원격 연결 시 에러 (0) | 2024.09.05 |
---|---|
[Linux] Telegraf/Influxdb/Grafana를 이용한 Windows, Linux 시스템 모니터링 설정 및 문제 해결 (2) | 2024.09.02 |
리눅스에서 HDD 마운트 및 자동 마운트 설정 (3) | 2024.08.28 |
[Linux] 자주 쓰는 리눅스 명령어 정리 (0) | 2024.08.19 |
[Linux] 인프라 설치 스크립트 및 오류 해결 (0) | 2024.08.14 |