웹사이트 검색

OpenSSH 보안 모범 사례


이 페이지에서

  1. OpenSSH 보안
    1. 강력한 암호 사용\n
    2. SSH 기본 포트 변경
    3. 항상 프로토콜 2 사용\n
    4. 루트 로그인 비활성화\n
    5. 사용자 제한\n
    6. 키 기반 인증 사용

    SSH(Secure Shell)는 안전한 방식으로 원격 시스템에서 텍스트 기반 셸 세션을 시작하기 위한 암호화 네트워크 프로토콜입니다.

    OpenSSH는 대부분의 Linux 배포판에서 사용하는 표준 SSH 클라이언트 및 서버입니다. 대부분의 관리자가 Linux 및 *BSD 서버에서 작업하는 데 의존하는 연결 도구입니다. OpenSSH는 모든 트래픽(암호 포함)을 암호화하여 도청, 연결 하이재킹 및 기타 공격을 효과적으로 제거합니다. 즉 "OpenSSH는 서버에 대한 연결이 안전한지 확인합니다". SSH에 대한 자세한 내용은 Wikipedia 기사를 참조하십시오.

    이 자습서에서는 SSH 서버를 안전하게 구성하는 모범 사례를 다룹니다.

    OpenSSH 보안

    다음은 SSH 서버 설정을 보호하는 가장 중요한 6가지 작업입니다.

    1. 강력한 암호를 사용하십시오.\n
    2. SSH 기본 포트를 변경합니다.\n
    3. 항상 프로토콜 버전 2를 사용하십시오.\n
    4. 루트 로그인을 비활성화합니다.\n
    5. 사용자 액세스를 제한합니다.\n
    6. 인증에 키 기반을 사용합니다.\n

    강력한 암호 사용

    암호는 리소스에 대한 액세스 권한을 얻기 위해 ID 또는 액세스 승인을 증명하기 위해 사용자 인증에 사용되는 단어 또는 문자열입니다. 서버에 액세스할 수 없는 사람들에게는 비밀로 유지하십시오. 복잡하고 긴 암호를 사용하십시오. 기억하기 쉽고 고유해야 하지만 다른 사람이 추측하기 쉽지 않아야 합니다. 추측하기 쉬운 "admin123" 또는 "admin" 등을 사용하지 말고 생일, 아내 이름 등을 사용하지 마십시오. 좋은 암호에는 .!;/와 같은 특수 문자도 포함되어야 합니다. a-c 및 0-9). 암호에 대문자와 소문자를 사용하십시오.

    SSH 기본 포트 변경

    SSH 서비스의 기본 Post는 22입니다. 서버에서 SSH 서비스를 실행 중인지 덜 명확하게 변경해야 합니다. SSH 구성 파일은 /etc/sshd/ 디렉토리에 있으며 /etc/ssh/sshd_config 구성 파일을 편집해야 합니다.

    nano /etc/ssh/sshd_config

    "포트" 줄을 검색합니다.

    Port 22

    원하는 포트 번호(예: 1337)로 변경합니다.

    Port 1337

    서버에서 아직 사용하지 않는 포트를 선택하십시오. 다음 명령으로 현재 사용 중인 포트 목록을 얻을 수 있습니다.

    netstat -ntap

    이 명령은 열려 있는 모든 포트와 연결을 표시하는 매우 긴 목록을 생성합니다. 원하는 포트를 사용할 수 있는지 확인하려면 대신 다음 명령을 사용하십시오.

    netstat -ntap | grep 4422

    이 예에서는 포트 4422가 사용 가능한지 확인합니다. 명령이 결과를 반환하지 않으면 포트를 사용할 수 있으며 SSH에 사용할 수 있습니다.

    항상 프로토콜 2 사용

    SSH에는 안전하지 않은 이전 프로토콜 1과 새로운 프로토콜 2의 두 가지 프로토콜 버전이 있습니다. 따라서 항상 ssh 서버에 프로토콜 2를 사용하십시오. 프로토콜 1보다 더 안전합니다. 추가 정보 여기.

    루트 로그인 비활성화

    루트 수퍼유저의 이름에 대한 무차별 대입 공격이 많기 때문에 루트 사용자에 대한 직접 로그인을 비활성화해야 합니다. 중요: 루트 계정을 비활성화하기 전에 ssh 로그인에 사용할 루트가 아닌 대체 사용자로 SSH 로그인을 테스트하십시오.

    PermitRootLogin no

    "PermitRootLogin"을 "no"로 설정한 후에는 루트 사용자에 대해 올바른 암호를 사용하더라도 더 이상 루트 계정으로 로그인할 수 없습니다.

    사용자 제한

    서버에 로그인하려면 새 사용자를 추가해야 합니다. 서버에 로그인하기 위해 사용자 ruiko 및 mikoto를 생성했다고 가정하면 새 줄을 추가할 수 있습니다.

    AllowUsers ruiko mikoto

    /etc/ssh/sshd_config에서 이러한 사용자에 대한 SSH 액세스를 제한합니다.

    키 기반 인증 사용

    설정이 매우 쉽고 암호 기반 인증보다 더 안전하기 때문에 이 옵션을 사용하는 것이 좋습니다. 먼저 로컬(데스크톱) 컴퓨터에서 공개-개인 키 쌍을 만들어야 합니다. 저는 Linux를 사용하여 생성합니다.

    다음 명령을 사용하여 공개/개인 키 쌍을 만들 수 있습니다.

    ssh-keygen -t rsa -b 4096

    ~/.ssh/ 디렉토리에 id_rsa를 비공개 키로, id_rsa.pub를 공개 키로 2개의 파일을 생성합니다. 암호를 묻는 메시지가 나타나면 비워 두거나 암호를 입력할 수 있습니다. 암호를 사용하여 키를 보호하는 것이 좋습니다.

    이제 ssh-copy-id 명령을 사용하여 공개 키 id_rsa.pub를 서버에 업로드합니다.

    ssh-copy-id -i ~/.ssh/id_rsa.pub 

    공개 키를 서버의 ~/.ssh/authorized_keys/ 파일에 자동으로 기록합니다.

    이제 서버로 돌아가서 ssh 파일 구성을 다시 편집하십시오.

    nano /etc/ssh/sshd_config

    이 줄의 주석을 제거하십시오.

    AuthorizedKeysFile     %h/.ssh/authorized_keys

    마지막으로 ssh 서버를 다시 시작하십시오.

    systemctl restart sshd

    이제 서버에 연결해 보십시오.

    ssh -p '4422' ''

    결론

    OpenSSH는 암호화되지 않은 텔넷 프로토콜을 대체하는 *Unix 계열 서버에 대한 보안 원격 액세스의 표준입니다. SSH(및 해당 파일 전송 하위 프로토콜 SCP)는 로컬 컴퓨터에서 서버로의 연결이 암호화되고 안전하게 이루어지도록 합니다. OpenSSH의 기본 설치는 이미 상당히 안전하지만 위의 가이드에 따라 개선할 수 있습니다.