나는 지금 조금 놀랐다. 최근에 시운전 한 원격 서버에 SSH로 접속하고 있습니다. 나는 이것을 루트로하고 있습니다. fail2ban을 설치했으며 로그에 방대한 양의 금지 된 IP가있었습니다.
내가 마지막으로 로그인했을 때 나는 나의 터미널이 정말로 게으르다는 것을 알아 차렸다. 그러면 나의 인터넷 연결은 끊어졌다. 약 5 분 후에 다시 구입하면 서버에 다시 로그인하여 ‘누가’를했고 두 명의 루트 사용자가 로그인했다는 사실을 알았습니다. 연결이 종료되면 마지막 세션에서 프로세스가 종료 된 것으로 생각했습니다. 서버에서 중지 되었습니까?
내가 처음 연결을 끊었을 때 연결이 ‘쓰기 실패 : 끊어진 파이프’로 끝났습니다. 다른 루트와의 bash 세션을 종료했습니다. ssh 보안에 대해 잘 모르지만 세션을 가로 챌 수 있습니까? 이것을 확인하는 방법이 있습니까? ssh를 통해 로그인을 계속해야하는데 어떤 예방책을 취해야합니까? 내가 어떻게 든 프록시를 통해 내 서버에 도달하면 (중간 공격의 사람처럼) 내 ssh 세션을 가로 챌 수 있습니까?
답변
루트 로그인은 아마도 한때 당신이했던 쉘 세션에 매달려있을 것입니다. 귀하의 서버는 아마도 모든 시도 된 로그인으로 서버를 망치고 있습니다.
SSH를 잠급니다. 루트 로그인을 허용하지 마십시오.이 시스템을 무력화하려는 요청은 즉시 실패합니다 (훨씬 적은 자원 사용). 일반 사용자로 로그인하고을 통해 권한을 높이십시오 sudo
. 어쨌든 수행해야합니다. 또한 SSH 로그인을 클라이언트 IP 목록으로 제한하여 부적합한 시스템도 로그인을 시도 할 수 없도록합니다.
사용자 로그인 비밀번호 대신 SSH 키를 사용하십시오. 그것들은 다루기가 더 쉽고 실수로 개인 키를 실수로 잘못된 장소에 제공 할 경우 암호로 보호 할 수 있습니다 (이를 대체하고 이전 키를 무효화 할 시간을주십시오). 설명에 @EEAA가 언급했듯이 클라이언트가 암호와 키 대신 키만 사용하도록 제한하려면 암호 기반 인증도 비활성화해야합니다.
몽골 부족이 계속해서 성벽을 타격하는 경우 SSH가 아닌 다른 높은 포트 (1024에서 @AustinBurke가 지적한대로 권한있는 포트를 사용하도록)를 22 대신에 이동할 수 있습니다. 이렇게하면 해당 포트의 트래픽이 줄어 듭니다. 당신에게는 문제입니다 (그리고 대부분의 봇은 그다지 우아하지 않으므로 22 번 시도합니다). SSH에서 수신 대기중인 포트를 확인하기 위해 포트 22를 시도하거나 시스템을 스캔하는 것을 막지 않으며 대부분의 경우 불필요합니다. 그러나 도움이 될 수 있습니다.
다른 사람들은 더 많은 팁을 제공 할 수도 있지만 공개적으로 SSH 서버에 대한 일반적인 보안 조치입니다.