본문 바로가기

Linux Unix/Command

[ 리눅스 / Linux ] SSH Sever 설치하기 - 추가 보안

반응형

Linux에서 SSH 서버를 설치하고 설정하는 방법은 배포판에 따라 다를 수 있습니다. 여기에서는 Ubuntu (Debian 계열), CentOS (Red Hat 계열), 그리고 일반적인 구성 옵션을 포함하여 SSH 서버를 설치하는 방법을 설명하겠습니다.

1. Ubuntu/Debian에서 SSH 서버 설치

Ubuntu와 Debian에서는 openssh-server 패키지를 사용하여 SSH 서버를 설치할 수 있습니다.

  1. 패키지 목록 업데이트
    • 먼저, 패키지 목록을 업데이트합니다.
   sudo apt update
  1. OpenSSH 서버 설치
    • openssh-server 패키지를 설치합니다.
   sudo apt install openssh-server
  1. SSH 서비스 시작 및 활성화
    • 설치 후 SSH 서비스를 시작하고, 부팅 시 자동으로 시작되도록 활성화합니다.
   sudo systemctl start ssh
   sudo systemctl enable ssh
  1. SSH 서비스 상태 확인
    • SSH 서비스가 정상적으로 실행되고 있는지 확인합니다.
   sudo systemctl status ssh
  1. 방화벽 설정 (선택 사항)
    • UFW(일반적인 방화벽 설정 도구)를 사용하여 SSH 트래픽을 허용합니다.
   sudo ufw allow ssh
   
   또는, 특정 포트 (예: 2222)로 SSH를 허용하려면:

   sudo ufw allow 2222/tcp

2. CentOS/RHEL에서 SSH 서버 설치

CentOS와 RHEL에서는 openssh-server 패키지를 사용하여 SSH 서버를 설치할 수 있습니다.

  1. 패키지 목록 업데이트
    • 먼저, 패키지 목록을 업데이트합니다.
   sudo yum update
  1. OpenSSH 서버 설치
    • openssh-server 패키지를 설치합니다.
   sudo yum install openssh-server
  1. SSH 서비스 시작 및 활성화
    • 설치 후 SSH 서비스를 시작하고, 부팅 시 자동으로 시작되도록 활성화합니다.
   sudo systemctl start sshd
   sudo systemctl enable sshd
  1. SSH 서비스 상태 확인
    • SSH 서비스가 정상적으로 실행되고 있는지 확인합니다.
   sudo systemctl status sshd
  1. 방화벽 설정 (선택 사항)
    • Firewalld를 사용하여 SSH 트래픽을 허용합니다.
   sudo firewall-cmd --permanent --add-service=ssh
   sudo firewall-cmd --reload
   
   또는, 특정 포트 (예: 2222)로 SSH를 허용하려면:
   
   sudo firewall-cmd --permanent --add-port=2222/tcp
   sudo firewall-cmd --reload

3. SSH 서버 구성

SSH 서버의 동작을 세부적으로 설정하려면 /etc/ssh/sshd_config 파일을 편집합니다.

  1. 구성 파일 편집
    • sshd_config 파일을 텍스트 편집기로 엽니다. 예를 들어, vim을 사용하여 열 수 있습니다.
   sudo vim /etc/ssh/sshd_config
  1. 주요 설정 항목
    • 포트 번호 변경: 기본 포트 22를 변경하여 보안을 강화할 수 있습니다.
     Port 2222
  • 루트 로그인 비활성화: 보안을 위해 루트 사용자 로그인을 비활성화합니다.
     PermitRootLogin no
  • 암호 인증 비활성화: 공개 키 인증을 사용하는 경우 암호 인증을 비활성화할 수 있습니다.
     PasswordAuthentication no
  • 특정 사용자만 허용: 특정 사용자만 SSH에 접근할 수 있도록 제한합니다.
     AllowUsers user1 user2
  1. 설정 적용
    • 구성 파일을 수정한 후에는 SSH 서비스를 다시 시작하거나 재로드하여 변경 사항을 적용합니다.
   sudo systemctl restart ssh
   
   또는
   
   sudo systemctl restart sshd

4. SSH 키 생성 및 사용

  • SSH 키를 사용하여 더 안전하게 서버에 접속할 수 있습니다.
  1. SSH 키 생성
    • 클라이언트 측에서 SSH 키를 생성합니다. 기본적으로 ~/.ssh/ 디렉토리에 키가 생성됩니다.
   ssh-keygen -t rsa -b 4096
  1. 공개 키 복사
    • 생성된 공개 키를 서버로 복사하여 인증에 사용할 수 있습니다.
    • 또는 수동으로 ~/.ssh/authorized_keys 파일에 공개 키를 추가할 수도 있습니다.
   ssh-copy-id user@server_address
  1. SSH 키로 서버에 접속
    • 키를 사용하여 서버에 접속합니다.
   ssh -i ~/.ssh/id_rsa user@server_address

5. 추가 보안 조치

  • Fail2Ban 설치: 비밀번호 공격으로부터 보호하기 위해 Fail2Ban을 설정할 수 있습니다. Fail2Ban은 SSH 서버에 대한 비정상적인 로그인 시도를 감지하고 차단합니다.
    • 설치 예시 (Ubuntu):
  sudo apt install fail2ban
  • 타임아웃 설정: SSH 세션이 비활성 상태로 일정 시간이 지나면 자동으로 종료되도록 설정할 수 있습니다.
    • sshd_config 파일에 다음을 추가합니다:
  ClientAliveInterval 300
  ClientAliveCountMax 0

이는 클라이언트가 300초(5분) 동안 아무 활동도 없으면 연결을 종료하도록 설정합니다.

6. SSH 서비스 관리 명령어 요약

  • SSH 서비스 시작:
  sudo systemctl start ssh  # Ubuntu/Debian
  sudo systemctl start sshd # CentOS/RHEL
  • SSH 서비스 중지:
  sudo systemctl stop ssh  # Ubuntu/Debian
  sudo systemctl stop sshd # CentOS/RHEL
  • SSH 서비스 재시작:
  sudo systemctl restart ssh  # Ubuntu/Debian
  sudo systemctl restart sshd # CentOS/RHEL
  • SSH 서비스 상태 확인:
  sudo systemctl status ssh  # Ubuntu/Debian
  sudo systemctl status sshd # CentOS/RHEL
  • SSH 서비스 부팅 시 자동 시작 활성화:
  sudo systemctl enable ssh  # Ubuntu/Debian
  sudo systemctl enable sshd # CentOS/RHEL
  • SSH 서비스 부팅 시 자동 시작 비활성화:
  sudo systemctl disable ssh  # Ubuntu/Debian
  sudo systemctl disable sshd # CentOS/RHEL

이러한 절차를 따라 Linux 시스템에서 SSH 서버를 설치하고 구성할 수 있습니다. 구성 파일을 수정하여 보안을 강화하고, SSH 키를 사용하여 인증을 강화하는 것이 좋습니다.

반응형