Categories: 리눅스

21. 리눅스 서버 보안

안녕하세요. 하얀 도화지 남편입니다.

오늘은 리눅스 서버 보안에 대해 공부해 볼까합니다.

  리눅스 서버는 다양한 환경에서 널리 사용되며 강력한 보안 기능을 제공하지만, 기본 설정 그대로 운영하면 보안 위협에 노출될 가능성이 큽니다. 이에 따라 효과적인 보안 설정과 유지 관리가 필수적이며 하기는 리눅스 서버 보안을 강화하는 다양한 방법 입니다.

1. 사용자 및 접근 관리

(1) 사용자 계정 관리

리눅스 서버에서 보안을 강화하는 첫 번째 단계는 사용자 계정을 적절히 관리하는 것이다.

  • 최소 권한 원칙 적용: 사용자에게 필요한 최소 권한만 부여해야 한다.
  • root 계정 직접 사용 금지: sudo를 사용하여 필요할 때만 관리자 권한을 사용한다.
  • 비활성 사용자 계정 삭제: userdel 명령어를 사용하여 불필요한 계정을 정리한다.

(2) SSH 보안 강화

SSH(Secure Shell)는 원격 접속을 위한 필수 서비스이지만, 기본 설정으로 사용하면 보안 위험이 있다.

  • SSH 포트 변경: 기본 포트(22번) 대신 다른 포트 사용 (/etc/ssh/sshd_config 수정)
  • 비밀번호 로그인 차단: PasswordAuthentication no 설정 후 SSH 키 인증 방식 사용
  • root 사용자 로그인 차단: PermitRootLogin no 설정
  • Fail2Ban 사용: SSH 무차별 대입 공격을 방지

2. 방화벽 및 네트워크 보안

(1) 방화벽 설정

리눅스 서버는 방화벽을 활용하여 불필요한 네트워크 접근을 차단해야 한다.

  • UFW(Uncomplicated Firewall) 사용:
    sudo ufw enable
    sudo ufw allow 22/tcp  # SSH 허용
    sudo ufw allow 80/tcp  # HTTP 허용
    sudo ufw allow 443/tcp # HTTPS 허용
    sudo ufw status
  • firewalld 사용:
    sudo systemctl start firewalld
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload

(2) 네트워크 모니터링

서버의 네트워크 트래픽을 지속적으로 모니터링하여 의심스러운 접근을 탐지해야 한다.

  • netstat -tulnp: 현재 열려 있는 포트 확인
  • tcpdump -i eth0: 실시간 패킷 캡처 및 분석
  • iftop: 실시간 네트워크 사용량 확인

3. 파일 및 디렉터리 보안

(1) 파일 권한 및 소유권 관리

  • 파일 권한 설정: 중요한 파일에 대한 권한을 제한 (chmod 사용)
  • 소유권 변경: chown 명령어로 적절한 사용자에게 파일 소유권 부여
  • SUID 및 SGID 제거: 불필요한 실행 파일의 권한을 제거하여 보안 강화
    find / -perm -4000 -type f

(2) 중요한 시스템 파일 보호

  • /etc/passwod/etc/shadow 파일 접근 제한
  • immutable 속성 설정: 중요한 파일이 수정되지 않도록 방지
    chattr +i /etc/passwod

4. 로그 및 모니터링

(1) 로그 관리

서버에서 발생하는 이벤트를 추적하여 보안 문제를 조기에 감지할 수 있다.

  • /var/log/auth.log: 사용자 로그인 및 인증 실패 로그
  • journalctl -xe: 시스템 로그 확인
  • last: 최근 로그인 사용자 확인

(2) 자동 로그 분석 도구 사용

  • Logwatch: 시스템 로그 분석 및 보고
  • OSSEC: 실시간 침입 탐지 시스템(IDS)
  • Tripwire: 파일 변경 모니터링 도구

5. 소프트웨어 업데이트 및 패치 관리

소프트웨어의 보안 취약점을 악용하는 공격을 방지하려면 최신 보안 업데이트를 유지해야 한다.

  • 패키지 업데이트 실행:
    sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
    sudo yum update -y                      # CentOS/RHEL
  • 자동 업데이트 설정:
    sudo apt install unattended-upgrades  # Ubuntu 자동 업데이트 설정

6. 보안 모범 사례 요약

보안 영역 주요 조치
사용자 관리 root 로그인 금지, 최소 권한 부여, 불필요한 계정 삭제
SSH 보안 포트 변경, 비밀번호 로그인 차단, Fail2Ban 사용
방화벽 설정 UFW/firewalld 활성화, 불필요한 포트 차단
네트워크 보안 netstat/tcpdump/iftop을 활용한 네트워크 모니터링
파일 보호 중요한 시스템 파일 보호, SUID/SGID 제거
로그 모니터링 auth.log 및 journalctl 분석, Logwatch 활용
소프트웨어 업데이트 정기적인 패치 및 자동 업데이트 설정

리눅스 서버 보안을 유지하는 것은 지속적인 모니터링과 관리가 필요합니다 사용자 및 접근 권한 관리, 방화벽 및 네트워크 보호, 파일 및 디렉터리 보안, 로그 분석 및 소프트웨어 업데이트를 철저히 수행하면 보다 안전한 서버 환경을 구축할 수 있습니다. 또한, 정기적인 보안 점검과 최신 보안 동향을 학습하여 지속적으로 보안을 강화해야 합니다.

감사합니다.
love2ans

Recent Posts

윈도우에서 시스템 로그를 분석하는 방법

안녕하세요. 흰도화지 남편입니다. 오늘은 윈도우 시스템 로그 분석 방법에 대해서 알아 보도록 하겠습니다. 윈도우 시스템…

1개월 ago

윈도우에서 게임 최적화 설정하는 방법

안녕하세요. 하얀 도화지 남편입니다. 오늘은 윈도우에서 게임 최적화 설정하는 방법에 대해서 알아보려고합니다. 1. 윈도우 최적화…

2개월 ago

윈도우 블루스크린 오류 해결법

안녕하세요. 흰도화지 남편입니다. 오늘은 윈도우 블루스크린 오류 해결법에 대해서 공부해 보도록 하겠습니다. 블루스크린 오류란? 블루스크린…

2개월 ago

SSD vs HDD 차이점과 Windows 11 최적화 방법

안녕하세요. 흰도화지 남편입니다. 오늘은 SSD와HDD의 차이점과 더블어 Windows 11 최적화 하는 방법에 대해 공부해 보도록…

2개월 ago

윈도우에서 자주 사용하는 명령어 20가지 및 활용 방법

안녕하세요. 하얀 도화지 남편입니다. 오늘은 윈도우에서 자주 사용하는 명령어 20가지 및 활용 방법에 대해 공부해보도록…

2개월 ago

윈도우의 역사

안녕하세요. 하얀 도화지 남편입니다. 오늘은 윈도우의 역사에 대해 공부해 볼까 합니다. 함께 알아볼까요? 1. 윈도우의…

2개월 ago