ssh 포트를 통해 어디에서나 내 가정용 컴퓨터에 액세스


24

나는이 질문에서 왔습니다 : /superuser/359799/how-to-make-freebsd-box-accessible-from-internet

의 전체 과정을 이해하고 싶습니다 port forwarding.

나는 많은 것을 읽었지만 포트 포워딩 자체의 기본 개념을 이해하지 못했습니다.

내가 가진 것 :

내 집에 앉아있는 freebsd 서버.
넷기어 라우터

이것이 내가 달성하려고하는 것입니다.

인터넷을 통해 Windows 컴퓨터에서 freebsd 서버에 액세스하여 웹 브라우저를 열고 인터넷에 액세스 할 수 있습니다.

또한 내가 가지고있는 우분투 컴퓨터 에서이 freebsd 상자에 액세스하고 싶습니다.

누군가 나를 도울 수 있다면 좋을 것입니다.

다음은 포트 포워딩을 위해 수행 한 넷기어 라우터 설정입니다.

넷기어 포트 포워딩


superuser질문 이 있으시면 마이그레이션하십시오 .
hari

좀 더 설명이 필요합니다. Windows 머신이 인터넷 어딘가에 이미 인터넷에 액세스 할 수있는 경우, 왜 인터넷에 액세스하기 위해 집에서 FreeBSD 상자에 연결 하시겠습니까?
OldTimer

@OldTimer : 귀하의 질문 / 관심이 얼마나 관련성이 있는지 잘 모르겠습니다.
hari

ipv6 주소, 더 이상 NAT, 더 이상 번거 로움을 사용하지 마십시오 ;-)
Stéphane Gimenez

1
기다림! 내가 방금 말한 않았다 / - :
스테판 히메네스

답변:


47

나는 원시 사실부터 시작할 것입니다 :

  1. 당신은 : A-FreeBSD 상자, B-라우터 및 C-인터넷 접속이 가능한 기계. 이것은 다음과 같습니다

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
    \_________ ________/
              v
               `- this is your LAN
    

    어떻게 라우터 공지 사항 일반적으로 작동합니다 : 그것은 연결 허용 에서 사용자 LAN에 기계 인터넷 (간단하게 말해서). 따라서 A(또는 LAN의 다른 컴퓨터) 인터넷에 액세스하려는 경우 (기본 이해와 구성에 대해서만 이야기) 허용됩니다.

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `-->----'  `--->--->---^  
    

    다음은 기본적으로 허용 되지 않습니다.

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `--<----'  `---<--- - - - - --<---<-----'
    

    즉, 라우터는 LAN에있는 시스템이 인터넷에서 액세스되지 않도록 보호 합니다. 라우터는 인터넷 에서 볼 수있는 LAN의 유일한 부분입니다 . 1 .

  2. 포트 포워딩은 세 번째 스키마가 발생하도록합니다. 이것은 라우터 에게 C2) 에서 어떤 연결 이 LAN상의 어떤 기계 로 연결 되어야 하는지 알려주는 입니다. 이는 포트 번호를 기반으로 수행 되므로 포트 포워딩 이라고 합니다. 인터넷에서 지정된 포트로 들어오는 모든 연결이 LAN의 특정 시스템으로 이동하도록 라우터에 지시하여 구성합니다. 다음은 포트 22가 시스템으로 전달 된 예입니다 A.

    .------.     .-------.                        .-----.
    |  A   | ==  |   B   |  - - ( Internet ) - -  |  C  |
    |      |     |       |                        '-----'
    '-|22|-'     ',--|22|'                          |
        `--<-22---'    `---<---- - - - - - --<-22---'
    
  3. 인터넷을 통한 이러한 연결은 IP 주소를 기반으로합니다. 위의 예를 좀 더 정확하게 표현하면 다음과 같습니다.

    .------.      .-------.                                .-----.
    |  A   |  ==  |   B   | - - - - - ( Internet ) - - - - |  C  |
    |      |      |       |                                '-----'
    '-|22|-'      ',--|22|'                                   |
        `--<-A:22--'    `--<-YourIP:22 - - - - --<-YourIP:22--'
    

    고정 IP 로 인터넷에 연결되어 있지 않으면 ISP가 라우터에 현재 할당 한 IP를 알아야합니다. 그렇지 않으면 C라우터에 연결하기 위해 어떤 IP에 연결해야하는지 알 수 없습니다 A. 이 문제를 쉽게 해결하기 위해 dynamic DNS 라는 서비스를 사용할 수 있습니다 . 이것은 라우터가 정기적으로 IP를 추적하고 도메인 이름을 제공 하는 특수 DNS 서버 로 정보를 보내 게합니다 . 무료 동적 DNS 제공 업체가 몇 군데 있습니다. 많은 라우터에는 쉽게 연결할 수있는 구성 옵션이 있습니다.

1) 이것은 단순화입니다-인터넷에 보이는 실제 장치는 모뎀입니다-종종 라우터와 통합 될 수 있지만 별도의 상자 일 수도 있습니다.
2) 또는 인터넷에 연결된 다른 컴퓨터.


지금 당신이 원하는 것을 위해 :

  1. 인터넷에서 ssh가 컴퓨터에 액세스하는 것을 허용하는 것은 나쁜 생각입니다. 크래커 에 의해 수천 개의 봇이 설정 되어 있으며 SSH 포트가 열려있는 컴퓨터를 인터넷에서 검색합니다. 이들은 일반적으로 가능한 많은 IP의 기본 SSH 포트를 "누르고"어딘가에서 실행중인 SSH 데몬을 찾으면 컴퓨터에 대한 무차별 액세스를 시도 합니다. 이는 잠재적 침입의 위험 일뿐만 아니라 기계가 무력화되는 동안 네트워크 속도 저하의 위험이 있습니다.

  2. 그러한 접근이 정말로 필요하다면 최소한

    • 모든 사용자 계정에 대해 강력한 비밀번호를 가지고 있는지 확인 하십시오.

    • SSH를 통해 허용 안 루트 액세스 (당신은 항상 일반 사용자와 같이 로그인 할 수 있습니다 su또는 sudo다음)

    • SSH 서버가 실행될 기본 포트를 변경하십시오.

    • 수많은 SSH 로그인 시도를 허용하지 않는 메커니즘을 도입합니다 (이후 시도를 기다리는 시간이 길어짐-정확히 어떻게 호출되는지 기억이 안납니다. SSH 보안에 관한 FreeBSD 포럼 등을 검색하면 찾을 수 있습니다.)

    • 가능하면 가까운 시일 내에 머신에 액세스 할 예정인 경우에만 ssh 데몬을 실행하십시오.

  3. 시스템 로그를 살펴 보는 데 익숙해 지십시오. 의심스러운 것을 발견하기 시작하면 IP 테이블 또는 포트 노킹 과 같은 추가 보안 메커니즘을 도입하십시오 .


10
ascii의 선량에 대한 찬사 ...
jasonwryan

자세한 설명을 주셔서 감사합니다. 나는 이것을 조금 요약하고 다시 언급 할 것이다.
hari

나는 당신의 요점을 완전히 얻었다. 제 질문은 넷기어 라우터를 구성 (올바르거나 잘못-확실하지 않음)한다는 것입니다. 다음에는 어떻게해야합니까?
hari

2
외부 SSH 액세스에 대한 내 편집 (아래)을 살펴보십시오.
rozcietrzewiacz

정보 주셔서 감사합니다. 당신이 전달하려는 것을 얻었습니다. 내 질문은 인터넷에있는 사람 (예 : 액세스 권한이있는 사람)이 예를 들어 freebsd 상자에서 브라우저를 실행할 수 있도록 해야하는 것입니다. 어떻게 설정합니까?
hari

3

이를 위해 몇 가지 방법이 있습니다. 가장 쉬운 방법은 DMZ라고하는 것을 설정하는 것입니다. 그러나보다 안전한 방법은 라우터에서 포트 22의 고정 경로를 서버의 IP로 설정하는 것입니다.

자원:


감사. netgear 라우터에서 부분을 수행했습니다. 서비스 : HTTP 포트 : 80 서버 ip : 192.168.1.16-이 방법은 포트 전달을 설정했습니다. 여기서이 IP는 내 freebsd 상자의 IP입니다. 다음에 어떻게해야합니까?
hari

귀하의 위치 외부에서 테스트를 설정했습니다. 개인적으로 휴대 전화를 랩톱에 놓고 내 IP 주소로 ssh'ing하려고합니다. 외부 IP 주소를 알고 있다고 가정합니다. 또는 웹 서버를 방문 할 수도 있습니다.
Mark D

SSH가 외부 IP에서 작동하지 않습니다. freebsd 서버에서 무엇을해야합니까?
hari

내부 네트워크에서 SSH를 사용할 수 있습니까?
Mark D

예. 나는 그것을 할 수있다
hari

1

라우터에서이 작업을 수행 할 수 있습니다. 일부 라우터에서는이 기능을Virtual Server

아래 이미지 부분에서 포트 포워딩의 두 가지 예가 있습니다. 하나는 웹이고 다른 하나는 SSH입니다. 첫 번째 경우 WAN IP에 대한 요청, 즉 포트 80가있는 라우터의 IP가 LAN IP로 전달됩니다 ( 192.168.2.4이 경우)
이 기능을 사용하면 전세계 어디서나 LAN에서 실행되는 PC / 서버에서 실행되는 서비스를 얻을 수 있습니다 즉, 해당 서비스는 LAN으로 제한되지 않습니다
라우터의 포트 포워딩 또는 가상 서버

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