5가지 최고의 OpenSSH 서버 최고의 보안 사례
SSH(Secure Shell)는 로컬 또는 원격 Linux 서버를 연결하여 파일을 전송하고, 원격 백업을 만들고, 원격 명령 실행 및 기타 네트워크 관련 작업을 sftp 명령을 통해 연결하는 두 서버 간에 사용하는 오픈 소스 네트워크 프로토콜입니다. 네트워크를 통한 보안 채널.
이 기사에서는 ssh 서버 보안을 강화하는 데 도움이 되는 몇 가지 간단한 도구와 트릭을 보여 드리겠습니다. 여기에서 ssh 서버를 무차별 대입 및 사전 공격으로부터 보호하고 방지하는 방법에 대한 유용한 정보를 찾을 수 있습니다.
1. 거부 호스트
DenyHosts는 SSH 서버용 오픈 소스 로그 기반 침입 방지 보안 스크립트로, Linux 시스템 관리자와 사용자가 로그인 시도 실패에 대한 SSH 서버 액세스 로그를 모니터링 및 분석하기 위해 실행하도록 python 프로그래밍 언어로 작성되었습니다. "사전 기반 공격 및 무차별 대입 공격.
스크립트는 설정된 횟수의 로그인 시도 실패 후 IP 주소를 금지하고 이러한 공격이 서버에 액세스하는 것을 방지하여 작동합니다.
- "
- /var/log/secure를 추적하여 모든 성공 및 실패한 로그인 시도를 찾고 필터링합니다.
- 사용자와 문제를 일으키는 호스트의 모든 실패한 로그인 시도를 주시합니다.
- 로그인 실패 시 기존 및 존재하지 않는 각 사용자(예: xyz)를 계속 감시합니다.
- 문제가 되는 각 사용자, 호스트 및 의심스러운 로그인 시도를 추적합니다(로그인이 여러 번 실패하는 경우)는 /etc/hosts.deny 파일에 항목을 추가하여 해당 호스트 IP 주소를 금지합니다.
- 선택적으로 새로 차단된 호스트 및 의심스러운 로그인에 대한 이메일 알림을 보냅니다.
- 또한 유효하거나 유효하지 않은 모든 실패한 사용자 로그인 시도를 별도의 파일에 보관하므로 공격을 받고 있는 유효하거나 무효한 사용자를 쉽게 식별할 수 있습니다. 따라서 해당 계정을 삭제하거나 비밀번호를 변경하거나 해당 사용자의 셸을 비활성화할 수 있습니다. "
- 다중 스레드 및 고도로 구성 가능. "
- 로그 파일 회전을 지원하고 (sshd, vsftpd, apache 등) 여러 서비스를 처리할 수 있습니다.
- 로그 파일을 모니터링하고 알려진 패턴과 알려지지 않은 패턴을 찾습니다.
- Netfilter/Iptables 및 TCP Wrapper(/etc/hosts.deny) 테이블을 사용하여 공격자의 IP를 차단합니다.
- 같은 IP 주소에 대해 주어진 패턴이 X번 이상 식별되면 스크립트를 실행합니다. "
[ 당신은 또한 좋아할 수도 있습니다 : DenyHosts를 사용하여 SSH 무차별 대입 공격을 차단하는 방법 ]
2. 페일투밴
Fail2ban은 파이썬 프로그래밍 언어로 작성된 가장 인기 있는 오픈 소스 침입 탐지/방지 프레임워크 중 하나입니다. 너무 많은 로그인 시도 실패에 대해 /var/log/secure, /var/log/auth.log, /var/log/pwdfail 등과 같은 로그 파일을 검색하여 작동합니다.
Fail2ban은 Netfilter/iptables 또는 TCP Wrapper의 hosts.deny 파일을 업데이트하여 일정 시간 동안 공격자의 IP 주소를 거부하는 데 사용됩니다. 또한 관리자가 설정한 일정 시간 동안 차단된 IP 주소를 차단 해제하는 기능도 있습니다. 그러나 이러한 악의적인 공격을 차단하기 위해서는 차단 해제의 1분이면 충분합니다.
[ 당신은 또한 좋아할 수도 있습니다: Fail2ban을 사용하여 Linux 서버를 보호하는 방법 ]
3. 루트 로그인 비활성화
기본적으로 Linux 시스템은 루트 사용자 자신을 포함하여 모든 사람이 ssh 원격 로그인을 허용하도록 미리 구성되어 있으므로 모든 사람이 시스템에 직접 로그인하여 루트 액세스 권한을 얻을 수 있습니다. ssh 서버가 루트 로그인을 비활성화하거나 활성화하는 더 안전한 방법을 허용한다는 사실에도 불구하고 항상 루트 액세스를 비활성화하여 서버를 좀 더 안전하게 유지하는 것이 좋습니다.
다른 계정 이름과 암호를 차례로 제공하여 SSH 공격을 통해 루트 계정을 무차별 대입하려는 사람들이 너무 많습니다. 시스템 관리자인 경우 ssh 서버 로그를 확인할 수 있으며 여기에서 실패한 로그인 시도 횟수를 확인할 수 있습니다. 로그인 시도가 여러 번 실패하는 주된 이유는 암호가 충분히 취약하기 때문에 해커/공격자가 시도할 수 있습니다.
강력한 암호가 있으면 안전할 수 있지만 루트 로그인을 비활성화하고 로그인할 일반 별도 계정을 만든 다음 필요할 때마다 sudo 또는 su를 사용하여 루트 액세스 권한을 얻는 것이 좋습니다.
[ 당신은 또한 좋아할 수도 있습니다 : Linux에서 SSH 루트 로그인을 비활성화하고 SSH 액세스를 제한하는 방법 ]
4. SSH 배너 표시
이것은 ssh 프로젝트의 시작부터 사용할 수 있는 가장 오래된 기능 중 하나이지만, 나는 그것을 사용하는 사람을 거의 본 적이 없습니다. 어쨌든, 나는 그것이 내가 모든 Linux 서버에 사용해 온 중요하고 매우 유용한 기능이라고 생각합니다.
이것은 보안 목적이 아니지만 이 배너의 가장 큰 이점은 비밀번호 프롬프트 전과 사용자 로그인 후에 UN 승인 액세스에 대한 ssh 경고 메시지와 승인된 사용자에 대한 환영 메시지를 표시하는 데 사용된다는 것입니다.
[ 당신은 또한 좋아할 수도 있습니다 : SSH 및 MOTD 배너 메시지로 SSH 로그인을 보호하는 방법 ]
5. SSH 비밀번호 없는 로그인
SSH keygen을 사용한 SSH 암호 없는 로그인은 두 Linux 서버 간에 신뢰 관계를 설정하여 파일 전송 및 동기화를 훨씬 쉽게 만듭니다.
매번 비밀번호를 입력하지 않고 원격 자동 백업, 원격 스크립팅 실행, 파일 전송, 원격 스크립트 관리 등을 처리할 때 매우 유용합니다.
[ 당신은 또한 좋아할 수도 있습니다: Linux에서 SSH 비밀번호 없는 로그인을 설정하는 방법 [3단계] ]
SSH 서버를 더욱 안전하게 보호하려면 OpenSSH 서버를 보호하고 강화하는 방법에 대한 기사를 읽으십시오.