ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [보안] 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

     

Designed by Tistory.