내 목표: 외부 클라이언트에서 내 워크스테이션으로 SSH를 통해 연결할 수 있기를 원합니다.
내 워크스테이션(이하 서버라고도 함)은 LAN에 있습니다. 이 LAN의 IP 주소는 인터넷의 IP 주소와 크게 다릅니다. 공개 키를 사용하여 SSH 서버를 설정했습니다.
클라이언트에서 ssh를 시도하면 이런 일이 발생합니다.
클라이언트가 동일한 LAN에 있는 경우:
ifconfig에서 반환된 IP를 사용하여 내 서버를 ping해 보았습니다. 클라이언트가 내 서버를 ping할 수 없습니다.
클라이언트가 외부에 있고 LAN에 없는 경우:
클라이언트는 서버에 ping을 보낼 수 있지만 연결을 시도하면 다음과 같은 오류가 발생합니다.
Connection timed out
산출iptables -L -v
Chain INPUT (policy ACCEPT 346K packets, 233M bytes)
pkts bytes target prot opt in out source destination
346K 233M sshguard all -- any any anywhere anywhere
346K 233M sshguard all -- any any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 193K packets, 26M bytes)
pkts bytes target prot opt in out source destination
Chain sshguard (2 references)
pkts bytes target prot opt in out source destination
답변1
iptables 구성이 표시됩니다.sshguard사용. 내가 확인해 볼게sshguard 구성SSH 연결을 허용합니다.
문제 해결에 도움이 되도록 sshguard( )를 제거 sudo apt-get remove sshguard
하고 ssh가 제대로 작동하는지 확인할 수 있습니다.
sshguard를 설치한 후 iptables 규칙과 /etc/hosts.deny 규칙을 확인하세요.
iptables의 경우 아래 표시된 규칙을 시도해 보세요.sshguard netfilter-iptables 예:
iptables -N sshguard
# block whatever SSHGuard says be bad ...
iptables -A INPUT -j sshguard
# enable ssh, dns, http, https
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# and block everything else (default deny)
iptables -P INPUT DROP