잠재적 인 납치 된 SSH 세션 및 SSH 모범 사례


14

나는 지금 조금 놀랐다. 최근에 시운전 한 원격 서버에 SSH로 접속하고 있습니다. 나는 이것을 루트로하고 있습니다. fail2ban을 설치했으며 로그에 방대한 양의 금지 된 IP가있었습니다.

내가 마지막으로 로그인했을 때 나는 나의 터미널이 정말로 게으르다는 것을 알아 차렸다. 그러면 나의 인터넷 연결은 끊어졌다. 약 5 분 후에 다시 구입하면 서버에 다시 로그인하여 '누가'를했고 두 명의 루트 사용자가 로그인했다는 사실을 알았습니다. 연결이 종료되면 마지막 세션에서 프로세스가 종료 된 것으로 생각했습니다. 서버에서 중지 되었습니까?

내가 처음 연결을 끊었을 때 연결이 '쓰기 실패 : 끊어진 파이프'로 끝났습니다. 다른 루트와의 bash 세션을 종료했습니다. ssh 보안에 대해 잘 모르지만 세션을 가로 챌 수 있습니까? 이것을 확인하는 방법이 있습니까? ssh를 통해 로그인을 계속해야하는데 어떤 예방책을 취해야합니까? 내가 어떻게 든 프록시를 통해 내 서버에 도달하면 (중간 공격의 사람처럼) 내 ssh 세션을 가로 챌 수 있습니까?

답변:


40

루트 로그인은 아마도 한때 당신이했던 쉘 세션에 매달려있을 것입니다. 귀하의 서버는 아마도 모든 시도 된 로그인으로 서버를 망치고 있습니다.

SSH를 잠급니다. 루트 로그인을 허용하지 마십시오.이 시스템을 무력화하려는 요청은 즉시 실패합니다 (훨씬 적은 자원 사용). 일반 사용자로 로그인하고을 통해 권한을 높이십시오 sudo. 어쨌든 수행해야합니다. 또한 SSH 로그인을 클라이언트 IP 목록으로 제한하여 부적합한 시스템도 로그인을 시도 할 수 없도록합니다.

사용자 로그인 비밀번호 대신 SSH 키를 사용하십시오. 그것들은 다루기가 더 쉽고 실수로 개인 키를 실수로 잘못된 장소에 제공 할 경우 암호로 보호 할 수 있습니다 (이를 대체하고 이전 키를 무효화 할 시간을주십시오). 설명에 @EEAA가 언급했듯이 클라이언트가 암호와 키 대신 키만 사용하도록 제한하려면 암호 기반 인증도 비활성화해야합니다.

몽골 부족이 계속해서 성벽을 타격하는 경우 SSH가 아닌 다른 높은 포트 (1024에서 @AustinBurke가 지적한대로 권한있는 포트를 사용하도록)를 22 대신에 이동할 수 있습니다. 이렇게하면 해당 포트의 트래픽이 줄어 듭니다. 당신에게는 문제입니다 (그리고 대부분의 봇은 그다지 우아하지 않으므로 22 번 시도합니다). SSH에서 수신 대기중인 포트를 확인하기 위해 포트 22를 시도하거나 시스템을 스캔하는 것을 막지 않으며 대부분의 경우 불필요합니다. 그러나 도움이 될 수 있습니다.

다른 사람들은 더 많은 팁을 제공 할 수도 있지만 공개적으로 SSH 서버에 대한 일반적인 보안 조치입니다.


22
키를 사용하는 것만으로는 충분하지 않습니다. 비밀번호 인증도 비활성화 해야합니다 .
EEAA

4
@marcelm " 로그에 방대한 양의 금지 된 IP "가 이것이 일어날 수 있다는 것을 암시하지 않습니까?
TripeHound

4
@tripehound 아닙니다. 소비 된 상대 자원에 대해서는 아무 것도 말하지 않습니다.
marcelm

3
그것은 이다 그 효과하지만, @marcelm에 대한 힌트.
Monica와의 가벼움 경주

4
그것이이 우주에서 가능하지만, ssh는 꽤 안전합니다. 물론 해당 트래픽을 기내에서 가져 와서 암호화 된 상태로 저장할 수 있지만 Diffie-Hellman 키 교환은 암호화 된 채널을 설정하는 데 사용됩니다. 스트림 키가 세션 중에 통신되지 않았기 때문에 인증에 사용 된 개인 및 공개 ssh 키가 모두있는 경우이를 크래킹 할 수 없습니다. 누군가가 그 개울을 깨뜨릴 때까지 우리 모두는 죽을 것입니다.
스풀러
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.