SharedIT | 묻고 답하기(AMP)

리눅스 ssh 접속지연 문제(iptables 관련)

서버 내부방화벽인 iptables에서 기본정책(policy DROP)으로 설정하면 기본적으로 모든 요청을 막겠다는 의미가 되겠는데요. 이렇게 해놓고 iptables 허용정책을 추가하면 ssh 접속 시 지연이 발생합니다.


  • 룰 추가

iptables -I INPUT -s 192.168.0.165 -j ACCEPT




여기서 useDNS no 설정을 ssh config에 추가하니 지연없이 정상접속 확인되었습니다.

어찌됐든 방화벽 기본 설정을 DROP으로 변경한 후 접속하는 IP에 대해 모든 포트 Open을 진행했음에도 지연이 발생하여 ssh 데몬단에서 설정을 적용해 해소한 상태인데 해당 증상에 대해서 정확히 어떠한 차이로 봐야할까요..?

Tags : 태그가 없습니다.

5개의 답변이 있습니다.

데몬
  0 추천 | 일 년 이상 전

ssh 접속 지연은 GSS-API or DNS 문제일 확률이 높습니다.


sshd_config 파일에서  GSSAPI, DNS를 Disable 해보시기 바랍니다.


# GSSAPI options

GSSAPIAuthentication no

 

 # DNS option

UseDNS no

wansoo
  0 추천 | 일 년 이상 전

클라이언트가 접속을 시도할때 해당 클라이언트 IP에 대한 컴퓨터 이름 확인을 위해 DNS 쿼리를 하게 됩니다.

DNS 캐시, hosts file, DNS 서버로 부터 해당 IP 정보를 얻으려는 시도를 하게 되는데....

hosts file에 등록되어 있지 않고 DNS 서버와 통신이 되지 않는다면 일정 시간 응답을 기다렸다가 DNS 서버 통신 실패를 처리하고 클라이언트 접속을 받아 들이게 됩니다.

DNS 서버 쿼리를 하지 않게 하려면 hosts file에 클라이언트 IP 주소, host명을 등록해 두는 방법을 사용할 수도 있고요.

접속하려는 모든 클라이언트에 대해 hosts file에 일일이 등록하기 번거롭다면

/etc/nsswitch.conf file에서 hosts: 부분에 dns 를 제거 해 주는 방식으로 dns 서버 쿼리를 하지 않게 설정할 수도 있고요.

여러 다른 방법들 보다는 DNS 서버 접속에 대한 방화벽 설정에서 접속 허용해 주는 방법이 간단 간단한 해결 방법이 되겠고요.

찌롱 | 일 년 이상 전

그런 DNS 쿼리하는 과정들이 iptables를 껐을때와 켰을때 왜 차이가 발생하는지 모르겠네요

iptables 키고 접속IP에 대한 any 허용정책을 등록했는데도요

wansoo | 일 년 이상 전

iptables이 방화벽 정책에 해당하고요.

iptables 서비스가 작동되고 있는 상태에서 DNS 서버와 통신이 되는지 여부를 확인해 보면 될 것 같네요.

topkslee
  0 추천 | 일 년 이상 전

ssh, ftp는 기본적으로 dns를 참조합니다.

dns로 정보 검색이 되지 않아 접속 지연 timeout 후 접속되니 지연이 발생하는 것입니다. 

useDNS no 설정은 dns를 참조하지 않겠다는 의미이니 바로 접속되는 것이죠

찌롱 | 일 년 이상 전

iptables를 stop한 상태에서는 아무런 문제가 없고 iptables start 후 any 정책 추가한 상태에서 해당 증상이 나타납니다

빨간신발
  0 추천 | 일 년 이상 전

ssh의 useDNS 설정 문제입니다.

https://coding-chobo.tistory.com/m/100



찌롱 | 일 년 이상 전

iptables을 껐을때는 왜 아무런 문제가 없을까요?

danis78
  0 추천 | 일 년 이상 전 | 제이컴즈 | 010-2871-8756

혹시 root 계정으로 다이렉트로 접속하시나요? 

찌롱 | 일 년 이상 전

네 root 다이렉트입니다