현상
다른 서버실에서 동작하고 있던 서버를 옮겨왔다. 서버 설정을 대충 마무리하고 SSH 접속을 시도했더니 아래와 같은 에러가 발생하면 접속이 되지 않았다.
# mobaXterm
Server unexpectedly closed network connection
# CMD
kex_exchange_identification: read: Connection reset
원인과 해결 방법을 적어둔다.
원인
이번에 들여온 서버는 다른 조직에서 관리하고 있던 서버인데, 해당 조직에서는 사용자의 접근을 제한하고 관리하는 수단으로 hosts.allow 파일을 사용하고 있었다. 관련 개념을 아래에 간단히 적어둔다.
TCP Wrapper
호스트 기반 네트워킹 ACL 시스템. 리눅스와 같은 운영 처제의 인터넷 프로토콜 서버에서 네트워크 접근을 필터링하기 위해 사용한다.
FTP, telnet, SSH, xinetd 기반 서비스에 대한 접근 제어를 설정할 수 있고, 주로 /etc/hosts.allow, /etc/hosts.deny에 특정 IP 주소나 대역에 대한 접근 허가 또는 거부를 설정할 수 있다. 두 파일 모두 설정되어 있지 않으면 기본적으로 모든 접근을 허용한다.
즉, hosts.allow 파일에 접근하고자 하는 컴퓨터의 IP 주소가 허용되어 있지 않았던 것이 원인이었다.
해결
/etc/hosts.allow 파일에 ssh 접속 허용 설정을 추가한다. 또는 신규로 들여온 서버이므로 서버 정책에 맞게 다시 설정한다.
ssh 접속 설정은 다음과 같이 설정하면 된다.
# 113.157.124.168 허용
sshd: 113.157.124.168
# 135.79.246.XXX 허용
sshd: 135.79.246.
설정을 변경한 후에는 sshd를 재시작한다. 일반적으로 sshd는 재시작해도 기존 접속에 영향을 주지 않는다.
service ssh restart
이후 정상적으로 접근이 되는지 확인한다.
참고 문서
https://ko.wikipedia.org/wiki/TCP_%EB%9E%98%ED%8D%BC
https://meongj-devlog.tistory.com/119#Tcp%--Wrapper
https://blog.skby.net/tcp-%EB%9E%98%ED%8D%BC-tcp-wrapper/
https://feccle.tistory.com/6https://blog.skby.net/tcp-%EB%9E%98%ED%8D%BC-tcp-wrapper/