Proftpd - 가상 호스트, 전역 섹션, 서버 컨텍스트를 올바르게 사용

Proftpd - 가상 호스트, 전역 섹션, 서버 컨텍스트를 올바르게 사용

짧은 버전:

proftpd 구성 파일의 서버 컨텍스트와 virtualhost 섹션의 차이점은 무엇입니까? 전자로 무엇을 할 수 있다는 의미에서 후자로는 할 수 없습니다.
예를 들어 UseIPv6 또는 MaxInstances와 같은 지시문을 가상 호스트나 전역 섹션에 넣을 수 없지만 서버 컨텍스트에 넣으면 잘 작동합니다. 그렇다면 아래 언급된 설정에 대한 해당 섹션의 올바른 사용법은 무엇입니까?

전반적인 과정은 다음과 같다고 생각했습니다. 클라이언트가 서버에 접속할 때마다 서버는 클라이언트가 접속한 주소에 해당하는 가상호스트가 있는지 확인합니다. 그렇지 않은 경우 서버 컨텍스트 섹션이 선택됩니다(단, 이를 방지하기 위해 DefaultServer 지시문을 사용하는 경우는 제외). 그래서 저는 서버 컨텍스트 섹션과 virtualhost 섹션이 똑같이 "강력하다"고 생각했습니다. 그러나 섹션 중 하나에서만 작동하는 지시문이 있으므로 그럴 수 없습니다.

긴 버전(추가 정보):

기본적으로 내가 원하는 것은 집에 있는 로컬 컴퓨터에서 proftp 서버를 실행하고 이 서버를 인터넷과 LAN 모두에서 연결할 수 있도록 만드는 것입니다. 그리고 그것은 효과가 있습니다. 소스(아래 이유)에서 proftpd를 컴파일하고 설치 및 구성했는데 제대로 작동하는 것 같습니다. proftpd를 제대로 실행하려면 도움이 필요하지 않습니다.

proftpd 문서를 읽는 것만으로는 서버를 실행할 수 없었고 모든 것이 잘 작동할 때까지 구성 파일을 계속 수정해야 했습니다. 그래서 아직 가상호스트 사용법, 글로벌, 서버 컨텍스트 섹션에 대해 제가 제대로 이해하지 못한 부분이 있어서 위와 같은 질문을 하게 되었습니다.

라우터 뒤의 proftpd 구성과 가상 호스트, 전역 및 서버 컨텍스트 섹션의 의미에 대해 읽었습니다.
http://www.proftpd.org/docs/howto/NAT.html
http://www.proftpd.org/docs/howto/Vhost.html
여러 가이드를 따르고 포럼에서 비슷한 질문을 검색했습니다. 서버가 작동하고 있는데 왜 지금인지, 이전에는 왜 작동하지 않았는지 정말 이해가 되지 않습니다.

이것은 현재 (작동 중인) proftpd.conf의 구조입니다: <Global> User ... Group ... RequireValidShell ... DefaultRoot ... ... <IfModule mod_tls.c> TLSEngine ... TLSProtocol TLSv1.2 ... </IfModule> </Global>
#server context managing the config for access over the internet ServerName "external" Port 21 #can't be used inside a virtualhost section UseIPv6 off ... #need to masquerade ip for external address MasqueradeAddress myurl.com #needed for passive ftp mode PassivePorts 60000 65535
#virtualhost managing the config for lan access <VirtualHost 192.168.178.54> ServerName "internal" Port 21 PassivePorts 60000 65535 </VirtualHost>

처음에는 LAN용으로 하나, 외부 액세스용으로 하나, 두 개의 virtualhost 섹션을 만들고 포트 0을 설정하여 서버 컨텍스트 섹션을 비활성화해야 한다고 생각했습니다. 하지만 virtualhost 섹션 내에서 사용할 수 없는 지시문이 있습니다. 따라서 예상대로 3가지 가능한 섹션을 사용하고 있는지 확실하지 않습니다. 일종의 기본 구성을 가지려면 서버 컨텍스트 섹션을 사용해야 합니까? 이는 설명서에 따라 DefaultServer 지시문을 사용하여 수행할 수 있습니다.

uname -a: Linux HOSTNAME 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux

proftpd -v: ProFTPD 버전 1.3.5 데비안 저장소에 포함된 proftpd 바이너리 패키지는 TLS 1.2를 지원하지 않으며 그 이하의 TLS 버전이나 심지어 SSL이 있는 FTP를 사용하고 싶지 않습니다. 그래서 제가 직접 정리했습니다.

꽤 긴 글입니다. 짧게, 정확하게, 불필요한 내용은 피하고 충분한 정보를 제공하려고 노력했습니다. 제가 개선할 수 있는 부분이 있거나 제 질문이 Unix 및 Linux Stackexchange에 관한 것이라면 알려주시기 바랍니다. 이 질문은 가정의 서버 환경에 관한 것이기 때문에 serverfault가 아닌 superuser를 선택했습니다.

시간을 내어 도움을 주셔서 감사합니다.

1월

답변1

전체에 영향을 미치는 몇 가지 구성 지시문이 있습니다.악마, UseIPv6또는 MaxInstances. 이러한 지시어할 수 없다이러한 이유로 가상 호스트별로 설정해야 합니다.

그러나 ProFTPD의 구성 파일 구문에는 "이 지시문은 전체 데몬을 위한 것입니다"라고 말하는 컨텍스트/섹션이 없습니다. 따라서 기본적으로(그리고 이상적이지는 않습니다) 이러한 데몬 전체 지시문은 , 또는 기타 컨텍스트 외부의 "서버 구성" 섹션에서만 허용 <Global>됩니다 <VirtualHost>.

도움이 되었기를 바랍니다!

답변2

알고 보니 제가 제공한 일부 정보가 옳지 않았습니다. 사람들이 답변하는 데 시간을 낭비하지 않도록 이 질문을 답변으로 표시하겠습니다. proftpd 설정을 다시 확인할 시간이 언제 있을지 모르기 때문에 간단한 편집은 도움이 되지 않습니다. 그러나 제가 제공한 잘못된 설명의 원인이 무엇인지 정리하고 질문을 수정한 후 나중에 다시 게시하겠습니다.

관련 정보