-
[보안] CentOS7의 OS 보안조치LINUX 2023. 1. 9. 11:14
* SSH 포트 변경
# ssh config 수정 vi /etc/ssh/sshd.config PORT 22 <- 원하는 포트로 수정 후 저장 systemctl restart sshd.service # 방화벽 오픈 firewall-cmd --permanent --zone=public --port-add=포트/tcp firewall-cmd --reload firewall-cmd --list-all
* su (run a command with a user) 권한 부여
# wheel 그룹만 sudo를 사용 할 수 있도록 수정 >> vi /etc/pam.d/su # 아래 주석 제거 auth required pam_wheel.so use_uid # 원하는(특정) 사용자 권한 부여 >> usermod -aG wheel 사용자명
* sudo (run a command) 권한 부여 (default로 적용 되어 있음)
# sudoers 파일에 쓰기 권한 추가 >> chmod +w /etc/sudoers >> vi /etc/sudoers # 디폴트로 아래와 같이 설정되어 있음 %wheel ALL=(ALL) ALL # sudoers 파일에 쓰기 권한 제거 >> chmod -w /etc/sudoers # 대상 그룹 추가 usermod -aG wheel 사용자명
* SSH 접속 시 root 직접 접속 제한
vi /etc/ssh/sshd_config # 아래 부분 수정 (yes -> no) PermitRootLogin no # 서비스 재시작 systemctl restart sshd
* 패스워드 복잡성 설정
# 일반 사용자 계정 >> vi /etc/security/pwquality.conf minlen = 8 # 최소 패스워드 길이 설정 lcredit = -1 # 최소 소문자 요구 ucredit = 0 # 최소 대문자 요구 dcredit = -1 # 최소 숫자 요구 ocredit = -1 # 최소 특수문자 요구 retry = 3 # 패스워드 입력 실패 시 재시도 횟수 difok = 1 # 기존 패스워드와 비교하는 정도 # root 계정 >> vi /etc/pam.d/system-auth >> vi /etc/pam.d/password-auth # local_users_only --> enforce_for_root 로 수정
* 계정 잠금 임계값 설정
: 5번 접속 실패 시 600초간 접속 불가
>> vi /etc/pam.d/system-auth >> vi /etc/pam.d/password-auth # 아래와 같이 추가 #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth required pam_tally2.so deny=5 unlock_time=600 # 추가 1 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 required pam_tally2.so # 추가2 account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so ...
* 패스워드 사용 기간 설정
# 패스워드 최소 길이 설정 >> vi /etc/login.defs # 아래 부분 수정 PASS_MIN_LEN 8
# 패스워드 이용 기간 설정 >> vi /etc/login.defs # 아래 부분 수정 PASS_MAX_DAYS 90 PASS_MIN_DAYS 1
* 세션 타임 아웃 설정
>> vi /etc/profile # 아래와 같이 수정 HISTSIZE=1000 # 히스토리 저장 개수 HISTTIMEFORMAT="%F %T " # 히스토리 저장 시 날짜 시간 같이 표시 TMOUT=600 # 세션 타임아웃 설정 (초 단위) ... # HISTTIMEFORMAT, TMOUT 추가 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL HISTTIMEFORMAT TMOUT ...
* 로그온 경고 메세지 설정
설정 파일 설명 상태 /etc/issue 콘솔(로컬) 접속 시도 시 보여줄 메시지 로그인 전 /etc/issue.net 원격지에서 접속 시도 시 보여줄 메시지 로그인 전 /etc/motd 로컬 접속, 원격 접속 모두에 해당하며 로그인 성공 후 보여줄 메시지 로그인 후 >> vi /etc/ssh/sshd_config Banner /etc/{위에서 설정한 파일명} >> systemctl restart sshd
* 참고 자료
CentOS 방화벽 커맨드 : https://emunhi.com/view/201808/19110656002?menuNo=10004
emunhi
OS/Server > CentOS CentOS 7 방화벽 (firewall) 기본 명령어 (서비스 상태) 서비스 상태확인, 서비스 기동과 정지, 자동기동관련 상태확인 서비스 기동 # systemctl start firewalld.service 서비스 정지 # systemctl sto
emunhi.com
'LINUX' 카테고리의 다른 글
[SSL] SSL 만료일 체커 (feat. Github) (0) 2023.06.07 [REDHAT] 리눅스(RHEL8) NFS 구축 및 마운트 (0) 2022.12.27 [LINUX] CPU, 메모리 모니터링 Logger 스크립트 (0) 2022.11.28