[서버보안]Amazon Linux 2 보안 설정 가이드

Amazon Linux 서버 보안 설정 적용 스크립트 (서비스 영향도: 하/중)

Amazon Linux 서버를 운영하면서 기본적인 보안 설정을 적용하지 않으면 다양한 보안 취약점에 노출될 수 있다.
본 포스트에서는 서비스 영향도 ‘하’ 및 ‘중’ 수준에서 적용 가능한 보안 스크립트들을 정리하고, 각 항목이 해결하는 취약점과 명령어를 함께 설명한다.


서비스 영향도: 하

[U-02] 패스워드 복잡성 설정

  • 해결되는 취약점: 단순한 비밀번호로 인한 계정 탈취 위험
  • 스크립트 내용
    sudo chmod o+w /etc/pam.d/system-auth
    sudo cp /etc/pam.d/system-auth /etc/pam.d/system-auth.backup
    echo "password    requisite     pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 minlen=8" >> /etc/pam.d/system-auth
    sudo chmod o-w /etc/pam.d/system-auth
    

[U-03] 계정 잠금 임계값 설정

  • 해결되는 취약점: 무차별 대입 공격 방지
    sudo chmod o+w /etc/pam.d/system-auth
    echo "auth        required pam_tally2.so deny=5 unlock_time=1800 no_magic_root" >> /etc/pam.d/system-auth
    echo "account     required pam_tally2.so no_magic_root reset" >> /etc/pam.d/system-auth
    sudo chmod o-w /etc/pam.d/system-auth
    

[U-46] 패스워드 최소 길이 설정

  • 해결되는 취약점: 짧은 비밀번호로 인한 사전공격 위험
    sudo chmod o+w /etc/login.defs
    sudo cp /etc/login.defs /etc/login.defs.backup
    sed -i 's/PASS_MIN_LEN\t5/PASS_MIN_LEN\t8/g' /etc/login.defs
    sudo chmod o-w /etc/login.defs
    

[U-54] Session Timeout 설정

  • 해결되는 취약점: 방치된 세션으로 인한 권한 오용
    sudo chmod o+w /etc/profile
    sudo cp /etc/profile /etc/profile.backup
    echo "export TMOUT=600" >> /etc/profile
    sudo chmod o-w /etc/profile
    

[U-68] 로그온 시 경고 메시지 제공

  • 해결되는 취약점: 무단 접근에 대한 법적 고지 제공
    sudo cp /etc/motd /etc/motd.backup
    echo "경고: 이 시스템은 승인된 사용자만 사용할 수 있습니다..." >> /etc/motd
    

[U-58] 홈디렉토리 존재 및 권한 관리

  • 해결되는 취약점: 잘못된 홈디렉토리 권한으로 인한 데이터 유출 방지
    sudo mkdir /var/lib/rngd
    sudo chown rngd /var/lib/rngd
    sudo chgrp rngd /var/lib/rngd
    sudo mkdir /home/ec2-instance-connect
    sudo chown ec2-instance-connect /home/ec2-instance-connect
    sudo chgrp ec2-instance-connect /home/ec2-instance-connect
    

low 설정 이후 백업파일 정리

sudo rm /etc/pam.d/system-auth.backup
sudo rm /etc/login.defs.backup
sudo rm /etc/profile.backup
sudo rm /etc/motd.backup

서비스 영향도: 중

[U-01] root 계정 원격 접속 제한

  • 해결되는 취약점: root 계정에 대한 외부 공격 차단
    sudo chmod o+w /etc/ssh/sshd_config
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
    echo "PermitRootLogin no" >> /etc/ssh/sshd_config
    sudo chmod o-w /etc/ssh/sshd_config
    

[U-13] SUID, SGID, Sticky Bit 설정 점검

  • 해결되는 취약점: 권한 상승 방지
    sudo chmod -s /usr/sbin/unix_chkpwd
    

[U-45] root 계정 su 제한

  • 해결되는 취약점: 일반 사용자의 root 전환 방지
    sudo groupadd wheel
    sudo chgrp wheel /usr/bin/su
    sudo chmod 4750 /usr/bin/su
    sudo usermod –G wheel ec2-user
    

[U-47/48] 패스워드 최대/최소 사용 기간 설정

  • 해결되는 취약점: 패스워드 노출 위험 및 변경 우회 방지
    sudo chmod o+w /etc/login.defs
    sudo cp /etc/login.defs /etc/login.defs.backup
    sudo sed -i 's/PASS_MAX_DAYS\t99999/PASS_MAX_DAYS\t90/g' /etc/login.defs
    sudo sed -i 's/PASS_MIN_DAYS\t0/PASS_MIN_DAYS\t7/g' /etc/login.defs
    sudo chmod o-w /etc/login.defs
    

[U-65] at 서비스 권한 설정

  • 해결되는 취약점: 예약 작업을 통한 악성 명령 실행 방지
    sudo chmod 4750 /usr/bin/at
    sudo chown root /etc/at.deny
    sudo chmod 640 /etc/at.deny
    

med 설정 이후 정리

sudo rm ./med_u*
sudo rm /etc/login.defs.backup
sudo rm /etc/ssh/sshd_config.backup

요약

항목 목적 주요 취약점
U-02, U-46 패스워드 정책 강화 약한 패스워드, 크래킹
U-03 로그인 실패 차단 brute-force
U-54 세션 시간 제한 세션 방치로 인한 탈취
U-01 root 원격 접속 차단 직접 공격
U-13 SUID 제거 권한 상승
U-45 su 제한 내부자 계정 탈취
U-47/48 주기적 패스워드 변경 장기 노출 방지
U-65 at 예약 권한 통제 스케줄 악용 방지

적용 전 백업을 꼭 생성하고, SSH 설정 변경 시에는 sshd 재시작이 필요할 수 있음.