첫 번째 1024 포트가 루트 사용자로만 제한된 이유는 무엇입니까?


53

이것은 다른 무엇보다 유휴 호기심입니다. 제 친구가 저에게 '리눅스에서만 루트 만 사용할 수있는 포트 범위는 무엇입니까?' 나는 그에게 0-1024가 제한되어 있다고 말했다. 그리고 그는 왜 그런지 물어 보았는데 ... 전혀 몰라

이러한 포트가 제한되고 1025-65535가 제한되지 않은 이유가 있습니까?

대부분의 주요 네트워크 서비스 (HTTP, FTP, SSH, Telnet, HTTPS, POP, SMTP 등)는이 범위에 있으므로 가능한 대답은 다음과 같습니다.

  • 신뢰할 수없는 사용자는이 포트에서 로그온 세부 정보를 수신하는 프로그램을 실행할 수 있습니다.
  • 신뢰할 수없는 사용자는 무단 서버 응용 프로그램을 실행할 수 있습니다.

누구든지 여기에서 빛을 비출 수 있습니까?

답변:


52

포트 <1024의 컴퓨터와 데이터를 교환하고 있고 컴퓨터가 유닉스 변형을 실행하고 있다고 가정합니다. 그런 다음 해당 포트에서 실행되는 서비스가 시스템 관리자에 의해 승인되었음을 알 수 있습니다.이 서비스는 루트로 실행 중이거나 최소한 루트로 시작해야합니다.

인터넷의 넓고 거친 세상에서 이것은 중요하지 않습니다. 대부분의 서버는 서버에서 실행되는 서비스와 동일한 사람이 관리합니다. 다른 사용자보다 뿌리를 더 신뢰하지 않습니다.

다중 로컬 컴퓨터, 특히 로컬 네트워크의 경우이 문제가 중요합니다. 예를 들어, 민간 암호화하기 전에 일, 다른 컴퓨터에 쉘 명령을 실행하는 인기있는 방법이었다 rsh( R의 감정 표현의 엘); 비밀번호 인증을 사용하거나 머신 A에서 사용자 X임을 증명하여 인증 할 수 있습니다 (머신 B는 X @ A가 비밀번호없이 X @ B로 로그인 할 수 있음을 알고 있음). 그것을 증명하는 방법? rsh클라이언트는이 setuid 루트이며, 포트 번호 <1024 사용하기 때문에 서버는가 이야기하고 클라이언트가 신뢰할 수 있음을 알고 그것을 A의 어떤 사용자를 호출하는로서 거짓말을하지 않습니다. 마찬가지로 NFS 사용자와 권한과 관련하여 투명하게 설계되었으므로 일반적인 구성은 로컬 네트워크에서 모든 시스템이 동일한 사용자 데이터베이스를 사용하고 서버 B의 A 마운트 파일 시스템에있는 사용자 N이 B에있는 사용자 N의 권한을 얻는 것입니다. 다시, NFS 클라이언트가 포트 번호 <1024에서 온다는 사실은 A의 루트가 NFS 클라이언트를 검사했음을 증명합니다. 이는 사용자가 N이라는 요청을 전송하면 해당 요청이 실제로 사용자 N으로부터

권한이없는 사용자가 낮은 포트에서 서버를 실행할 수없는 것도 또 다른 이점이지만 주요한 것은 아닙니다. 옛날에는 스푸핑이 참신했고 스푸핑 서버를 실행하는 사용자는 어쨌든 경계 관리자에 의해 빠르게 쫓겨났습니다.


2
그렇다면 가난한 사람의 인증은 어떤가요? 이 컨벤션은 현대적인 nix 계열 운영 체제에 실질적인 이점이 있습니까?
Andrew Lambert

2
@Amazed : 유닉스 세계는 보수적이기 때문에 "실제 문제를 일으키는가 ?"라는 질문이 있습니다. (그리고 실행할 가치가있는 모든 서버에는 포트를 변경하기위한 명령 줄 인수가 있다는 것을 완전히 알고 있어야합니다.)
dmckee

5
@dmckee는 또한 이러한 설계로 인해 대체 포트에서 실행하는 옵션이 있더라도 더 많은 서버가 루트로 실행된다고 주장 할 수 있습니다.
Andrew Lambert

5
@Amazed 오늘날 로컬 네트워크에서 여전히 유용 할 수 있습니다. 루트로 실행되는 서버가 더 많아지고 서비스가 포트를 바인딩 한 다음 권한을 삭제하거나 가능한 경우 기능을 사용하거나 관리자가 방화벽 구성의 포트를 리디렉션 할 수 있다고 생각하지 않습니다. 나는 유닉스가 오늘 설계 되었다면 넣을 것이라고 생각하지는 않지만 아프지 않습니다.
Gilles

1
이 넌센스는 오랫동안 커널에서 사라져야합니다. 포트 번호는 특별한 의미가 없어야합니다. 그 디자인의 "추론"은 오래 전부터 구식입니다 (디자인 타임에도 논란의 여지가 있다고 생각합니다). 그러나 "신뢰할 수있는"특별한 숫자 범위에 대한 아이디어가 더 나쁜 것은 그 의미입니다. 웹 서버는 웹 페이지를 제공하기 위해 루트로 실행해야합니다. 단일 익스플로잇과 홀 서버가 사라졌습니다. 그리고 무엇을 위해? 조금도 효과가 없었던 레거시 디자인.
masi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.