높은 포트 번호를 사용하는 것이 안전합니까? (다시 : 웹 서비스를 가리기)


9

소규모 홈 네트워크가 있으며 보안과 편의의 필요성 사이의 균형을 유지하려고합니다. 내부 웹 서버를 보호하는 가장 안전한 방법은 VPN 만 사용하여 연결하는 것이지만 DVR의 원격 웹 인터페이스를 보호하는 것은 과도합니다.

타협으로 매우 큰 포트 번호를 사용하는 것이 더 좋습니까? (예 : 최대 65531까지 5 자리)

포트 스캐너는 일반적으로 처음 10,000 개의 포트만 스캔하므로 매우 높은 포트 번호를 사용하는 것이 조금 더 안전합니다.

이것이 사실입니까?

웹 서버를 보호하는 더 좋은 방법이 있습니까? (예 : 응용 프로그램의 웹 GUI)


사실이 아닙니다. 광대역 액세스가 가능한 최신 (데스크톱) 멀티 코어 CPU 시스템은 몇 초 안에 65535 포트를 모두 검색 할 수 있습니다. 그리고 공격자가 DoS 게이트를 보호하기 위해 1 초에 2 초 간격을두기로 결정 했더라도 누가 신경을 쓰고 시스템을 하루 이상 방치하고 있습니까? 다른 사람들이 아래에서 말했듯이 오래된 격언은 디지털 세계에서 "불분명을 통한 보안"은 본질적으로 쓸모가 없다는 것입니다.
msanford

답변:


9

포트 스캐너는 일반적으로 처음 10,000 개의 포트만 스캔하므로 매우 높은 포트 번호를 사용하는 것이 조금 더 안전합니다.

많은 사람들이 이것을 믿습니다. 난 아니야

어쩌면 조금 더 안전하지만 많지는 않습니다. 번호가 낮은 포트가 더 일반적이므로 일부 스캐너가 먼저 보입니다.

내가 크래커라면 보안을 위해이 방법에 의존하는 사람들을 잡기 위해 먼저 높은 포트를 스캔합니다. 보안을 통한 보안에 의존하는 사람들은 아마도 보안에 대한 이해가 부족하고 다른 보안 방법을 사용하는 것을 잊어 버릴 가능성이 높습니다. 따라서 이러한 서비스는 더욱 취약하고 해킹하기 쉽습니다.

일부 스캐너는 이러한 신념을 악용하여 맨 위에서 시작하여 목록을 따라 작동합니다. 다른 스캔은 전체 범위에서 임의의 포트를 선택하므로 모든 포트가 동일한 스캔 기회를 갖습니다.

계속해서 NMAP을 사용하여 직접 테스트하십시오 . 포트 1-10,000에 대해 nmap 스캔을 실행하고 HTTP 서버를 찾아 모든 1-65, xxx 포트에 대해 스캔하는 스캔과 비교하십시오. 차이가 일반적으로 3-10 분이라는 것을 알 수 있습니다. Nessus와 같은 것을 사용하여 상세하게 스캔하면 차이는 때때로 20-60 분입니다.

좋은 크래커는 환자 크래커입니다. 그들은 기다릴 것이다.


1
다른 모든 관련 보안 조치가 구현되었다고 가정하면 포트 번호를 모호하게하는 것이 더 나을까요? 내 생각은 서버가 특별히 타겟팅되지 않은 경우 약간 더 나을 것이라고 생각할 것입니다.
wag2639

2
+1 "좋은 크래커는 환자 크래커입니다. 그들은 기다릴 것입니다."
msanford

@ wag2639 서비스의 포트 번호를 변경하여 실제로 아무것도하지는 않지만 script-kiddie가 약간 더 나은 스크립트를 찾도록합니다. 모든 단일 포트를 통조림으로 처리하는 IP 및 ALSO 포트 블록의 전쟁 다이얼링은 쉽지 않습니다.
msanford

해커가 특정 대상을 따르는 경우 높은 포트 번호를 검색하는 데 20-60 분을 기다릴 수 있습니다. 그러나 취약한 시스템을 찾기 위해 수백 또는 수천 개의 IP 주소를 검색하려고 시도하면 높은 포트를 검색하지 않습니다. 또한 시스템을 타겟팅하기 전에 시스템이 있는지 알아야합니다. 방화벽이 작업을 수행 중이면 시스템은 기본적으로 열린 포트에서 우연히 발견 될 때까지 보이지 않습니다.
user1751825

3

루트가 아닌 사용자로 응용 프로그램을 실행할 수 있다는 사실을 밝히지 않는 한 홀수 포트 번호를 사용하는 것은 전혀 안전하지 않습니다.

이런 종류의 것은 모호함에 의해 보안으로 간주 될 수 있지만 실제로는 보안이 아닙니다.


본격적인 VPN 사용에 대한 대안이 있습니까? 추가 로그인 / 암호 보호 기능이있는 리버스 웹 프록시가 있습니까? (오징어는 이것을하지 않습니다)
SofaKng

@sofakng : Stunnel과 같은 SSL 래퍼에 관심이있을 수 있습니다. stunnel.org
Maxwell

3

Linux를 양쪽 끝에서 사용하는 경우 ssh 터널을 사용할 수도 있습니다.

ssh -f -N -L 9090:localhost:9090 user@remote-host

예를 들어, 원격 호스트의 포트 9090을 로컬 포트 ​​9090으로 전달하는 데 cherokee-admin사용하고 다른 웹 GUI에도 비슷한 설정을 사용합니다. 로컬 호스트에서만 실행되는 앱 구성 (예 :)을 지정하여 이러한 방식으로 애플리케이션을 보호 할 수 있습니다 127.0.0.1. 이러한 방식으로 외부에서 접근 할 수 없지만로 전달할 수 있습니다 ssh. man ssh포트 포워딩을 사용하여 추가 옵션을 확인하십시오 (X를 포함하여 다른 방식으로 문제를 해결할 수 있음).

이는 설정에 따라 추가 소프트웨어를 설치 / 구성하지 않고 목표를 달성하는 데 적합한 방법 일 수 있습니다.


1

방화벽이 허용하는 경우 인증이 방화벽 수준에서 먼저 이루어 지도록 할 수 있습니다. 암호 복잡성이 충분하면 노출 된 서비스의 보안을 강화해야합니다. stunnel 및 mutual auth와 같은 SSL 터널링을 사용할 수도 있습니다 .

더 높은 포트 번호를 사용하는 것이 특정 방식으로 IP를 스캔하고 일부 악용을 시도하는 봇과 관련하여 더 안전하다는 사실을 고려할 때 누군가가 실제로 침입하고 싶다면 더 높은 포트 번호를 사용하면 보안이 향상되지 않습니다.


pfsense를 사용하고 있으며 일부 웹 서비스에 내장 SSL (HTTPS) 지원이 있습니다. stunnel을 사용하는 것이 여전히 낫습니까? stunnel을 "방화벽 인증"수준으로 사용하고 있습니까?
SofaKng

1
"방화벽 인증"은 어떻게합니까?
wag2639

pfsense에 해당 기능이 있는지는 모르겠지만 Junipers 라우터에서는 로컬 사용자 (RADIUS 포함)를 사용하여 HTTP 변환 트래픽에 대한 액세스 권한을 부여 할 수 있습니다. Stunnel과 관련하여 인증서와 함께 상호 인증을 사용할 수 있으며, stunnel은 SSL로 HTTP 트래픽을 캡슐화하고 인증을 처리합니다.
Maxwell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.