기본 포트 번호를 변경하면 실제로 보안이 강화됩니까?


69

개인 응용 프로그램 (예 : 인트라넷, 개인 데이터베이스, 외부인이 사용하지 않는 모든 것)에 다른 포트 번호를 사용해야한다고 충고했습니다.

보안을 향상시킬 수 있다고 확신하지 않습니다.

  1. 포트 스캐너 존재
  2. 응용 프로그램이 취약한 경우 포트 번호에 관계없이 그대로 유지됩니다.

내가 놓친 것이 있거나 내 질문에 대답 했습니까?


30
내가 한 일은 특정 기본 포트 (예 : SSH 포트 22)를 허니 포트로 사용하는 것입니다. 해당 포트에 연결을 시도하는 사람 x은 일정 시간 동안 완전히 차단 됩니다. 포트 스캔에 효과적인 것으로 입증되었습니다. 물론 이것은 보안 도구 상자의 도구 중 하나 일뿐입니다.
벨민 페르난데스

모호함을 통한 보안에 대한 일반적인 질문은 여기에 있습니다. security.stackexchange.com/questions/2430/…
Tony Meyer

"아동 스크립팅"에 장애가 될 수 있습니다
Lukasz Madon

1
@BelminFernandez, "보안 도구 상자에있는 하나의 도구" ? 아니요, 이것은 서버로드 (성능)를 줄이기위한 것이며 단순한 환상 외에 보안 과는 아무 관련없습니다 . 보안 측면에서 보면 서버가 이미 강력하고 서버가 취약한 경우 더 이상 안전하지 않습니다.
Pacerier

@Pacerier, 노력과 집중이보다 확실한 보안 관행을 구현하는 데 동의해야한다고 동의했습니다. 그러나 두 가지를 모두 수행 할 수없는 이유는 없습니다.
Belmin Fernandez

답변:


68

표적 공격에 대해 심각한 방어를 제공하지는 않습니다. 당신이 말한대로 서버가 대상이되고 있다면, 그들은 당신을 포트 스캔하고 문이 어디에 있는지 알아낼 것입니다.

그러나 SSH를 기본 포트 22에서 이동하면 일부 대상이 아닌 아마추어 스크립트 아동 유형 공격이 차단됩니다. 이들은 스크립트를 사용하여 한 번에 많은 IP 주소 블록을 포트 스캔하여 포트 22가 열려 있는지 확인하고 포트를 찾을 때 일종의 공격 (범력, 사전 공격, 기타). 컴퓨터가 스캔중인 IP 블록에 있고 포트 22에서 SSH를 실행하지 않는 경우,이 스크립트 키디가 공격 할 컴퓨터 목록에 응답하지 않으므로 표시되지 않습니다. Ergo, 일부 수준의 보안이 제공되지만 이러한 유형의 기회 공격에 대해서만 제공됩니다.

예를 들어, 서버에 시간이 기록되어 있다면 (SSH가 포트 22에 있다고 가정) 실패한 고유 한 SSH 시도를 모두 꺼내십시오. 그런 다음 SSH를 해당 포트에서 옮기고 잠시 기다렸다가 다시 로그 다이빙을하십시오. 의심 할 여지없이 적은 공격을 찾을 것입니다.

필자는 공용 웹 서버에서 Fail2Ban을 실행했지만 SSH를 22 번 포트에서 옮겼을 때 정말 분명했습니다. 기회 공격을 몇 배나 줄였습니다.


3
동의했다. SSH를 비표준 포트로 옮기는 실험을 할 때 비슷한 하락을 보았습니다. 다행히 암호 인증을 사용하지 않으면 실제로 문제가되지 않습니다.
EEAA

3
지금까지 가장 좋은 답변입니다. 그것은 모두 누가 공격하고 있는지에 달려 있습니다. 한 번은 스캔 아동의 제로 데이 공격에 부딪친 시스템을 관리하는 데 도움을주었습니다. 아마도 방화벽에 의해 IIS가 노출되지 않았기 때문에 MS-RDP에있을 것입니다. 호스트는 RDP 포트 (관리 호스팅)를 변경할 수 없으므로 기본적으로 IDS / IPS 필터링을위한 새로운 패턴을 작업하는 동안 그곳에 앉아 있어야했습니다. 일부 MS 제품보다 보안 문제가 적은 SSH와 같은 기존 서버에는 그다지 도움이되지 않을 수 있습니다.
Matt Molnar

9
확실히 동의합니다. 보안은 모든 계층에 관한 것이며, 더 많이 가질수록 더 안전합니다. 이것은 약한 계층 일 수 있지만 그럼에도 불구하고 여전히 계층입니다. 전적으로 의존하지 않는 한 보안에만 추가 할 수 있습니다.
Paul Kroon

1
포트 22에서 SSH를 옮기는 또 다른 요점은 Fail2Ban이 때때로 가치있는 CPU 시간을 차지할 수 있기 때문에 많은 양의 SSH 시도 및 서비스를 제공한다는 것입니다. 라인 하드웨어에서는 무시해도되지만 일부 구형 서버에서는 CPU 스파이크가 발생할 수 있습니다. CPU 시간, 메모리 및 밴드와 함께 다른 것들에 사용할 수 있습니다.
artifex

Server 2003에서 RDP를 사용하여 동일한 작업을 수행했습니다. 이벤트 뷰어에서 실패한 인증 항목의 양이 크게 줄었습니다.
Moshe

43

로그를 깨끗하게 유지하는 것이 매우 도움이됩니다.

포트 33201에서 실행중인 sshd 시도가 실패한 것으로 보이면 해당 사용자가 귀하를 대상으로 하고 있고 원하는 경우 적절한 조치를 취할 수있는 옵션 이 있다고 가정 할 수 있습니다. 당국에 문의하거나이 사람이 누구인지 조사 등록 된 사용자의 IP 등을 상호 참조함으로써)

기본 포트를 사용하는 경우 누군가가 당신을 공격하고 있는지 또는 무작위 스캔을 수행하는 임의의 바보인지 알기가 불가능합니다.


8
멋진 구별
ZJR

3
+1 이것은 내가 이제까지들은 포트 번호를 바꾸는 가장 좋은 주장이며, 지금까지 나를 유치 할 수있는 유일한 것
squillman

2
+1 이것은 좋은 지적입니다. 대상 위협은 임의의 프로브보다 훨씬 위험합니다 (보안 수준이 높은 경우 스크립트 키즈는 더 쉬운 대상으로 이동합니다). 표적 공격자는 특정 취약점 또는 비밀번호 패턴에 대해 더 많이 알 수 있습니다. 그것은 포트 (22)에 스팸의 떼의 외부 이러한 공격을 인식 할 수 있도록 좋은
스티븐 T. 스나이더

1
이것은 거짓입니다. 비표준 SSH 포트에서 스캔을 통해 하나 이상의 서버가 손상되는 것을 보았습니다. 공격자가 다른 포트를 검색 할 수없는 근본적인 이유는 없습니다.
Sven Slootweg

@SvenSlootweg, True, 특히 컴퓨터가 더 빠르고 저렴 해짐에 따라 65535 배 더 긴 스캔이 더 이상 더 이상 필요 하지 않습니다 .
Pacerier

28

아닙니다. 실제로는 아닙니다. 보안 용어는 모호한 보안 이며 신뢰할 수있는 방법이 아닙니다. 당신은 두 가지 점에서 모두 정확합니다.

모호한 보안은 기 본 포트를 열어 둔 사람 을 찾을 것이라는 사실을 알고 기본 포트를 찾는 단순한 시도를 막을 것 입니다. 그러나 deault 포트를 변경해야하는 심각한 위협이있는 경우 초기 공격 속도가 최대 느려질 수 있지만 이미 지적한 내용으로 인해 한계가 너무 적습니다.

자신에게 유리한 입장을 취하고 포트를 올바르게 구성한 상태로 두십시오. 그러나 적절한 방화벽, 권한 부여, ACL 등으로 포트를 잠그는 데주의해야합니다.


17
모호함에 의한 보안 개념에 대한 강력한 암호와 암호화의 투영은 내 자신의 겸손한 견해로는 약간의 확장입니다.
squillman

5
영문자 및 ​​숫자의 전체 범위와 특수 문자를 허용하지 않는 8 자만 사용하면 가능한 조합 수는 62 ^ 8 (218,340,105,584,896)입니다. 65535는 심지어 포트 스캔 감지기를 사용할 때와 같은 우주에 있지 않습니다. 나는 약한 암호를 할인하고 있습니다.
squillman

3
다시 말하지만 "비표준 포트가 전체 보안 장치 인 것처럼 보이지 않습니다". 약간의 도움이됩니다. 다른 것이 없다면 서버가 SSH를 찾고있는 누군가에게 나타나서 문을 두드리지 못하게하는 10 초 조정입니다.
ceejayoz

8
Meh. 비표준 포트를 추적하는 것은 내 책에서 가치가 없습니다. 나는 누군가와 동의하지 않을 것에 동의합니다 ... 포트를 변경하는 것 이상의 추가 대책을 추가하는 것은 분명히 방정식의 일부이며 그 퍼즐 조각에 물건을 남겨 두는 것이 좋습니다.
squillman

6
내가 본 것에서 비표준 포트는 꽤 표준이되었습니다. ssh의 경우 2222, HTTP의 경우 1080, 8080, 81, 82, 8088 그렇지 않으면 너무 불분명 해지고 포트 7201의 서비스와 7102에서 ssh에 연결할 수없는 이유가 궁금합니다.
BillThor

13

약간의 모호한 수준이지만 해킹으로가는 길에는 큰 속도 범프가 아닙니다. 특정 서비스와 통신하는 모든 항목에 대해 다른 포트에 대해 알려야하므로 장기적으로 지원하기가 더 어렵습니다.

옛날에는 네트워크 웜을 피하는 것이 좋았습니다. 네트워크 웜은 하나의 포트만 스캔하는 경향이 있었기 때문입니다. 그러나 빠르게 증가하는 웜의 시간은 이제 지났습니다.


2
더 어려운 구성 및 지원 문제의 경우 +1 문을 고정하는 데 소비 할 수있는 시간을 허비합니다 (집에서 어디에 두 었는지 검색하는 대신).
Macke

12

다른 사람들이 지적했듯이 포트 번호를 변경해도 많은 보안이 제공되지는 않습니다.

포트 번호를 변경하면 실제로 보안에 해를 끼칠 수 있다고 덧붙이고 싶습니다.

다음과 같은 단순화 된 시나리오를 상상해보십시오. 크래커는 100 개의 호스트를 검색합니다. 이 중 90 개의 호스트는 다음 표준 포트에서 서비스를 사용할 수 있습니다.

Port    Service
22      SSH
80      HTTP
443     HTTPS

그러나 시스템 소유자가 서비스를 혼란스럽게 만들려고 시도했기 때문에 군중에서 눈에 띄는 호스트가 하나 있습니다.

Port    Service
2222    SSH
10080   HTTP
10443   HTTPS

스캔이 두 가지를 제안하기 때문에 크래커에게 흥미로울 수 있습니다.

  1. 호스트 소유자가 시스템에서 포트 번호를 숨기려고합니다. 아마도 소유자는 시스템에 가치있는 것이 있다고 생각할 것입니다. 이것은 방아쇠 시스템이 아닐 수도 있습니다.
  2. 그들은 시스템을 보호하기 위해 잘못된 방법을 선택했습니다. 관리자는 포트 난독 화를 믿어 실수를했으며 이는 경험이 부족한 관리자 일 수 있음을 나타냅니다. 아마도 적절한 방화벽이나 적절한 IDS 대신 포트 난독 화를 사용했을 것입니다. 다른 보안 실수도 있었을 수 있으며 추가 보안 공격에 취약 할 수 있습니다. 좀 더 조사해 볼까요?

크래커 인 경우 표준 포트에서 표준 서비스를 실행하는 99 개의 호스트 중 하나 또는 포트 난독 화를 사용하는이 호스트 중 하나를 보도록 하시겠습니까?


14
경험이 다르게 가르쳐주지 않는 한 99 명의 호스트를 살펴 보겠습니다. 만약 당신이 나에게 포트를 움직이고있는 누군가는 아마 패치하고 보호 할 가능성이 더 높다.
ceejayoz

4
나는 몇몇 PFY가 "포트 번호를 변경하면, 나는 불가하다!"라고 생각했을 가능성이있는 1 개의 호스트를 보았습니다. 루트 암호는 "password"로 설정되어 있습니다.
앤드류

3
@Ceejayoz는 완전히 동의합니다. 2222에서 SSH를 실행하고 있으며 보안 가치는 없지만 스크립트 키즈를 줄입니다. 나는 그들이 나를 무시할 가능성이 더 높고 포트를 변경하려고 귀찮게했을 것입니다. 아마도 다른 조치를 취할 것입니다. 분명히 모든 기본 구성은 아닙니다 ...
Chris S

1
모든 사람이 내 의견에 동의하는 것은 아닙니다. 그러나 내 경험상 포트 난독 처리를 사용하는 시스템 소유자가 많았지 만 중요한 보안 취약점이 노출 된 후 OpenSSH를 업데이트하지 않거나 공유 대학 시스템 등에서 암호화되지 않은 SSH 키를 사용하는 것과 같은 실수를 범했습니다. 이 시스템은 수분이 많은 목표였습니다.
Stefan Lasiewski

3
확장하여 : 비표준 포트로 이동하면 스크립트 키디를 낙담 할 가능성이 있지만 숙련 된 해커에게 흥미를 유발할 가능성이 높습니다. 어느 쪽이 질문을하게됩니까?
tardate

9

나는 적어도 부분적으로 일반적인 추세에 반대 할 것입니다.

자체적 으로 다른 포트로 변경하면 검색하는 동안 몇 초가 걸리므로 실제 용어로는 아무것도 얻지 못할 수 있습니다. 그러나 비표준 포트를 안티 포트 스캔 측정과 함께 사용하면 보안을 크게 향상시킬 수 있습니다.

내 시스템에 적용되는 상황은 다음과 같습니다. 비공개 서비스는 비표준 포트에서 실행됩니다. 지정된 시간 내에 성공했는지 여부에 관계없이 단일 소스 주소에서 두 개 이상의 포트에 대한 연결을 시도하면 해당 소스의 모든 트래픽이 삭제됩니다.

이 시스템을이기려면 운 (차단하기 전에 올바른 포트를 치는 것)이나 다른 측정을 트리거하는 분산 스캔 또는 매우 오랜 시간이 걸리고 눈에 띄게 행동해야합니다.


이 목표를 Andreas Bonini의 목표 공격과 결합하면 대체 포트 사용에 대한 강력한 논거가됩니다.
JivanAmara

5

제 생각에는 응용 프로그램이 실행되는 포트를 이동한다고해서 보안이 전혀 향상되지는 않습니다. 단순히 동일한 응용 프로그램이 동일한 포트에서 동일한 강점과 약점으로 실행되고 있기 때문입니다. 응용 프로그램이 다른 포트로 수신 대기하는 포트를 이동하는 데 약점이 있으면 약점을 해결하지 못합니다. 더 나쁜 것은 자동 스캐닝에 의해 끊임없이 약화되지 않기 때문에 약점을 해결하지 않기를 적극적으로 권장합니다. 실제로 해결해야하는 실제 문제 를 숨 깁니다 .

몇 가지 예 :

  • "로그를 정리합니다"-그런 다음 로그 처리 방법에 문제가 있습니다.
  • "연결 오버 헤드가 줄어 듭니다"-오버 헤드가 크지 않거나 (대부분의 스캔과 마찬가지로) 업스트림에서 수행되는 필터링 / 서비스 거부 완화가 필요합니다.
  • "응용 프로그램의 노출을 줄입니다"-응용 프로그램이 자동 검색 및 악용에 견딜 수없는 경우 응용 프로그램에서 해결해야하는 심각한 보안 결함이 있습니다 (즉, 패치를 유지하십시오!).

실제 문제는 관리입니다. 사람들은 SSH가 22에, MSSQL이 1433에있을 것으로 예상합니다. 이것들을 옮기는 것은 한층 더 복잡하고 필요한 문서입니다. 네트워크에 앉아 물건을 어디로 옮겼는지 알아 내기 위해 nmap을 사용해야한다는 것은 매우 성가신 일입니다. 보안에 대한 추가는 기껏해야 일시적이며 단점은 중요하지 않습니다. 하지마 실제 문제를 해결하십시오.


2

TCP 서버 포트 범위에 16 비트 엔트로피 만 있기 때문에 많은 보안을 제공하지 않는 것이 맞지만 두 가지 다른 이유로 할 수 있습니다.

  • 다른 사람들이 이미 말했듯이 : 많은 로그인을 시도하는 침입자가 로그 파일을 복잡하게 만들 수 있습니다 (단일 IP의 사전 공격이 fail2ban로 차단 될 수 있음에도 불구하고).
  • SSH 는 보안 터널을 만들기 위해 비밀 키를 교환하기 위해 공개 키 암호화 가 필요합니다 (일반적인 조건에서 자주 수행 할 필요가없는 값 비싼 작업입니다). 반복 SSH의 CONNEXIONS는 CPU의 전력을 낭비 할 수 있습니다 .

비고 : 서버 포트를 변경해야한다는 말은 아닙니다. 포트 번호를 변경하는 합리적인 이유 (IMO)를 설명하고 있습니다.

그렇게 할 경우, 다른 모든 관리자 나 사용자에게 이것이 보안 기능으로 간주되어서는 안되며 사용 된 포트 번호가 비밀이 아니며 보안 기능으로 설명하고 있음을 분명히해야한다고 생각합니다. 실제 보안을 제공하는 것은 허용되는 행동으로 간주되지 않습니다.


적절한 필터를 사용하면 로그 파일을 쉽게 정리할 수 있습니다. 로그 감소로 인해 서버 성능에 대해 이야기하는 경우 더 이상 보안에 대해 이야기하지 않습니다. 성능은 완전히 다른 주제입니다.
Pacerier

디스크를 과도하게 사용하여 컴퓨터를 사용할 수 없을 때는 아닙니다.
curiousguy

예, 성능 문제입니다. 성능도 확실히 중요하지만이 특정 스레드는 특히 보안에 대해서만 논의합니다. (이 글의 목적을 위해, 귀하가 Google 규모라고 가정하고 Google은 실제로 분석 및 / 또는 판매 목적으로 이러한 데이터를
원한다고 가정

1

대체 포트에서 sshd를 실행하면 잠재적 인 보안 이점이있는 가상의 상황을 볼 수 있습니다. 이는 실행중인 sshd 소프트웨어에서 사소하게 악용 된 원격 취약점이 발견되는 시나리오에서 발생합니다. 이러한 시나리오에서 대체 포트에서 sshd를 실행하면 임의의 드라이브 바이 대상이 될 필요가없는 추가 시간을 제공 할 수 있습니다.

내 개인 컴퓨터의 대체 포트에서 sshd를 실행하지만 이는 주로 /var/log/auth.log의 혼란을 없애기위한 것입니다. 다중 사용자 시스템에서 나는 위에서 제시된 작은 가상의 보안 이점이 표준 부분에서 sshd를 찾지 못해 발생하는 추가적인 번거 로움에 대한 충분한 이유라고 생각하지 않습니다.


시나리오는 모든 "관리자 (들)가이"추가 시간 " 으로 점심 등 으로 수있는 여지를 절대로 취하지 않는 경우에만 유효합니다 .
Pacerier

1

보안이 약간 향상됩니다. 열린 포트를 발견 한 공격자는 이제 포트에서 실행중인 작업을 해결해야합니다. 구성 파일에 액세스 할 수없는 경우 (아직 :-) 포트 12345가 http, sshd 또는 다른 수천 개의 공통 서비스 중 하나를 실행 중인지 알 수 없으므로 심각하게 실행되기 전에 실행중인 작업을 파악하기 위해 추가 작업을 수행해야합니다. 그것을 공격하십시오.

또한 다른 포스터가 지적한 것처럼 포트 22에 로그인하려는 시도는 단서가없는 스크립트 키즈, 좀비 트로이 목마 또는 IP 주소를 잘못 입력 한 진정한 사용자 일 수 있습니다. 포트 12345에 로그인하려는 시도는 실제 사용자이거나 심각한 공격자 일 것입니다.

또 다른 전략은 몇 개의 "허니 트랩"포트를 갖는 것입니다. 실제 사용자는 이러한 포트 번호를 알지 못하므로 모든 연결 시도는 악의적 인 것으로 간주되어야하며 문제가되는 IP 주소를 자동으로 차단 /보고 할 수 있습니다.

다른 포트 번호를 사용하여 시스템을보다 안전하게 만드는 특별한 경우가 있습니다. 네트워크가 웹 서버와 같은 공용 서비스를 실행하지만 내부 전용 웹 서버를 실행하는 경우 다른 포트 번호 에서 실행하고이 포트의 외부 액세스를 차단 하여 외부 액세스를 완전히 차단할 수 있습니다 .


~ 0.1 % 보안 증가는 관련 보안 감소 에 대비하여 평가해야하며 , 사용 사례 및 상황에 따라 총 보안 손실이 발생할 수 있습니다.
Pacerier

0

그 자체가 아닙니다. 그러나 특정 응용 프로그램 (예 : SQL Server)에 기본 포트를 사용하지 않으면 기본적으로 공격자가 포트를 검색하게됩니다. 이 동작은 방화벽이나 다른 모니터링 메트릭에 의해 탐지 될 수 있으며 공격자의 IP가 차단됩니다. 또한 사용중인 간단한 도구 또는 명령 스크립트가 컴퓨터에서 SQL Server 인스턴스를 찾지 못하면 (도구가 기본 포트만 확인하기 때문에) 평균 "스크립트 키디"가 저지 될 가능성이 높습니다.

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