Como expor meu servidor FTP ao mundo por trás do NAT?

0

vsftpd server na minha LAN; há uma máquina cliente hipotética em outra sub-rede, que não pode fazer conexões diretas com meu servidor FTP; e há um roteador entre duas sub-redes, na verdade, VPN.

Eu não tenho acesso ao roteador, então não posso fazer port range com iptables .

OpenSSH server está sendo executado no cliente, portanto, posso encaminhar portas individuais. Além disso, posso me conectar a qualquer porta no hipotético cliente FTP. Então eu pensei, eu poderia encaminhar a porta de controle 21 para o cliente e fazer vsftpd conectar diretamente ao cliente para fluxos de dados ( active mode). Mas vsftpd diz 500 Illegal PORT command , provavelmente, porque o endereço ip informado pelo cliente difere do ip da conexão feita por ssh para a porta 21 .

1 2015.03.30 14:28:24:0263 0015|->PWD
1 2015.03.30 14:28:24:0279 0016|<-257 "/okimftp" is the current directory
1 2015.03.30 14:28:24:0279 0000|->PORT 10,3,2,9,223,67
1 2015.03.30 14:28:24:0279 0000|<-500 Illegal PORT command

Então talvez eu precise de um FTP proxy na máquina cliente, que modificaria os endereços nos comandos de controle (para o modo ativo) e teria seu próprio backend na minha LAN ou controlaria a sessão ssh para criar encaminhamentos de porta adicionais ( para modo passivo)

    
por basin 30.03.2015 / 14:09

1 resposta

0

Resolvido com um par de 3proxy .

backend 3proxy.cfg na minha LAN:

auth iponly
# only allow connect to control or ephemeral ports on FTP server
allow * * ftp.company.org 21,30000-65535
socks -u

túnel:

[email protected] -R 0.0.0.0:1080:localhost:1080

frontend 3proxy.cfg no cliente:

auth iponly
# allow host names that are resolvable only remotely
fakeresolve
allow *
# chain FTP proxy to parent Socks5 proxy with remote resolve
parent 1000 socks5+ 127.0.0.1 1080
ftppr -p2121
    
por basin 31.03.2015 / 22:54