NAT 라우터 뒤에있는 SSH를 통해 다른 사람 (예 : 할머니)을 어떻게 도울 수 있습니까?


14

다른 사람들을 빨리 도울 수 있도록 SSH는 특히 GNU Screen과 결합되어 매우 유용합니다. 사용자가 NAT 라우터 뒤에있는 것이 일반적입니다. 사용자가 라우터를 구성 할 수 있어도 비밀번호를 기억하고 올바른 옵션을 찾는 데 시간이 걸립니다.

그렇다면 NAT 라우터 뒤에있는 SSH를 통해 다른 사람들을 돕는 가장 쉬운 방법은 무엇입니까?

나는 현재 사람들에게 터미널열고 아래 명령을 실행하고 http://ip.appspot.com/ 과 같은 사이트에서 IP를 전달 하도록 지시합니다 .

sudo apt-get install openssh-server ssh-import-id && ssh-import-id lekensteyn

NAT 라우터 뒤에 있거나 개인 방화벽이 구성되어 있으면 작동하지 않습니다. 따라서 다음과 같은 것이 있습니까?

sshd --accept-help-from lekensteyn

Teamviewer와 같은 대안을 찾지 않고 SSH와 같은 쉘을 찾고 있습니다. 오픈 소스 여야합니다.

답변:


13

자신의 컴퓨터에서 SSH 연결을 수락 할 수 있는 경우 추가 컴퓨터없이 Pavlos G.가 연결기술 을 사용할 수 있습니다.

먼저 친구가 다음과 같이 연결할 소외 계층 * 사용자가 필요합니다.

sudo adduser reverse --shell /bin/false

친구에게 터널을 시작하라고 알려주세요.

ssh -N -R 62222:localhost:22 reverse@lekensteyns-server

그런 다음 자신의 컴퓨터 ( lekensteyns-server)에서 역방향 연결을 시작하십시오.

ssh -p 62222 localhost

* 적절한 권한이없는 사용자를 만들 때 조언 할 수있는 보안에 대해 잘 모릅니다. 아마도 별도의 질문으로 다루어야 할 것입니다.



2

귀하의 특정 요구에 따라 아마도 다음과 같습니다.

  1. 라우터의 비밀번호를 알려주도록 요청하십시오
  2. 포트 22에 대해서만 로그인 및 설정 포트 전달
  3. SSH (또는 추가 포트가 필요한 경우 SSH 터널링)를 통해 연결하고 작업을 완료하십시오.

또한 이 솔루션이 기술적으로 작동하려면 중간 컴퓨터가 하나 더 필요하지만 리버스 ssh 터널을 사용해 볼 수도 있음을 잊었습니다 .

더 많은 정보는 여기 에서 찾을 수 있습니다


1) 대중에게 라우터 액세스가 종종 금지되기 때문에 아마도 작동하지 않을 것입니다.
Lekensteyn 2016 년

2

IPv6가없는 경우 일반적으로 IPv6 터널 (sixxs.net 또는 he.net에서)을 설정 한 다음 컴퓨터에 고정 주소가 있고 NAT를 망칠 필요가 없습니다. 또한 키 기반 인증을 설정하고 싶습니다 (그러면 암호를 알려줄 필요가 없습니다).

Sixx는 귀하가 사용하는 자체 클라이언트를 가지고 있습니다. 거의 모든 NAT 뒤에서 작동하며 IPv4 주소가 변경되면 자동으로 업데이트됩니다. 그들은 그것을 설정하는 방법에 대한 지침을 가지고 있으며 우분투 패키지로 제공됩니다.

Hurricane Electric은 IPv6 패키지가 IPv4 패킷의 페이로드로 전송되는 터널을 사용합니다. Sixx와 달리 TCP / UDP는 사용되지 않습니다. 즉, 뒤에있는 NAT는 포트가 아닌 PROTOCOL 41 전달을 지원해야하며 NAT 뒤에는 한 대의 컴퓨터 만 사용할 수 있습니다. 이와 같은 터널을 사용하는 소프트웨어는 우분투에 내장되어 있습니다.

HE의 경우 다음과 같이 사용합니다 /etc/network/interfaces.

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
     endpoint 216.218.226.238
     address  2001:470:a29f::2
     netmask  64
     ttl 64
     up ip -6 route add default dev he-ipv6
     down ip -6 route del default dev he-ipv6

다른 작업은 터널 끝점을 업데이트하는 것입니다. 외부 IP가 언제 변경되는지 알 수 없으므로 몇 분마다 엔드 포인트를 업데이트해야합니다. 다음과 같은 것을 사용하고 cron에서 실행할 수 있습니다.

#!/bin/sh
echo -n "Hurricane Electric Proto-41 tunnel endpoint update: "
#(C) 2010 Erik B. Andersen This script is licensed under the latest version of the
# AGPL published by the Free Software Foundation at http://www.gnu.org/licenses/ .
####Set these for each different site#########
pass="passwordhere"
user_id="a765b8e2f474667dcb56e08c5f1aa05b"
tunnel_id="97817"
####Past here doesn't need to be changed######
wget -4 "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=AUTO&pass=$(echo -n "${pass}" | md5sum | grep -o -E "[0-9a-fA-F]{32}")&user_id=${user_id}&tunnel_id=${tunnel_id}" -O /dev/null -o /dev/null --no-check-certificate
echo " Done"

1
그러한 터널을 올바르게 설정하기 위해 어떤 노력을 기울여야합니까? 이 연결은 물론 키 기반이므로 ssh-import-id를
Lekensteyn

실제로이 트릭에 대해 더 배우고 싶습니다.
Rafał Cieślak

0

몇 년 동안, Pavlos가 제안한 것처럼 공개 IP로 세 번째 서버에 ssh 액세스가 필요하다는 점을 제외하고 OP가 요구하는 것을 정확하게 수행하는 GUI를 개발했습니다. 데비안 패키지와 지침은 여기에서 찾을 수 있습니다.

http://pietrobattiston.it/reachme

여전히 초기 구성을 처리 할 수 ​​없습니다. 즉, 암호없는 연결을 위해 rsa 키를 직접 설정해야합니다. "reachthem"을 설정하면 "reachme"가 연결되어 있는지 확인하고 ssh 셸을 열거 나 파일 시스템을 찾아 보거나 화면을 볼 수 있습니다 (실험적).

ændrük의 답변에서와 같이 컴퓨터 자체에 퍼블릭 IP가있는 경우 세 번째 컴퓨터가 필요하지 않습니다. GUI의 이점은 원격 사용자가 터미널에 명령을 입력 할 필요가 없다는 것입니다. 그러나 원격 사용자가 reachme를 설치해야하는 경우이 이점의 일부가 손실됩니다. 그래서 나는 항상 우분투를 설치하는 모든 사람에게 도달 범위를 설치하고 설정합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.