Ftp

防火牆後的 ProFTPd 伺服器返回 WAN 和 LAN 連接的內部 IP 地址

  • September 12, 2017

我在另一個 Debian 防火牆後面的 Debian 伺服器上使用 ProFTPD。我可以從外部連接到 ftp 伺服器。但是,無論 WAN 或 LAN 連接如何,選擇的虛擬主機始終是 192.168.0.4。PASV當 ftp 伺服器使用內部 IP 地址響應 WAN 連接時進入模式時,這會導致問題。

我知道有一個MasqueradeAddress針對 WAN 連接的指令,但我的 WAN 連接正在連接到我的內部虛擬主機。

由於 FTP 伺服器上只有 1 個 IP 地址,我是否需要使用mod_ifsession此處所述的模組:http: //www.proftpd.org/docs/howto/NAT.html

在最初的問題中,我問我是否必須使用該mod_ifsession模組。到目前為止,這是我讓它工作的唯一方法。也許這是意料之中的,但我希望使用一個<VirtualHost>塊來讓它工作。

這是我所做的:

<IfModule mod_ifsession.c>
 <Class internal>
   From 192.168.0.0/24
 </Class>

 <IfClass !internal>
   MasqueradeAddress 1.2.3.4
 </IfClass>
</IfModule>

使用它,傳入的 LAN 連接獲取內部 IP ( 192.168.0.4),而 WAN 連接獲取外部 IP ( 1.2.3.4)。我不知道它是否理想,但它確實有效。

**編輯:**按照建議,我也能夠使用不同的埠使其工作。您可能希望也可能不希望在非標準埠上執行 ftp,因此這種方法可能不適合您。如果您使案例如 2121 將防火牆上的埠 21 轉發到 ftp 伺服器並在其中一個塊中偵聽埠 2121 <virtualHost>,那麼您就知道這是一個外部連接。這是我用於此的塊:

<VirtualHost 192.168.0.4>
 ServerName "External"
 Port 2121
 MasqueradeAddress 1.2.3.4
</VirtualHost>

**注意:**如果您這樣做,將不會應用“伺服器配置”(不在 a<virtualHost>或塊中的任何內容)指令。<Global>您可能必須重複一些指令或使用<Global>塊。

引用自:https://serverfault.com/questions/872720