Por que a porta 20 ainda está bloqueada quando eu a adicionei a Accept in iptables?

1

Estou tentando abrir as portas FTP no meu servidor. Eu tenho vsftpd instalado no servidor já. No entanto, não consigo acessar o servidor nas portas 20 e 21

De alguma forma, está me permitindo acessar a porta 21 no momento.

Estou executando o Ubuntu 9.10 (Karmic). Também corri: modprobe ip_conntrack modprobe ip_conntrack_ftp

O seguinte é o iptables -L no meu servidor

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             poseidon.valltek.com tcp dpts:ftp-data:ftp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  poseidon.valltek.com  anywhere            tcp dpts:ftp-data:ftp

Eu tenho usado www.ping.eu/port-chk/ para verificar a porta. Apenas incase foi um problema com a minha máquina local.

Obrigado.

    
por gasdeveloper 06.08.2010 / 19:37

1 resposta

4

Você pode querer adicionar ip_nat_ftp à sua lista, além de garantir que tudo está sendo carregado usando o comando lsmod

É um servidor doméstico, de algum provedor de internet? Se assim você pode estar tendo um problema comum, onde geralmente os provedores de internet bloqueiam as portas de 1 a 1024 de seus usuários residenciais para que eles não criem servidores domésticos (este approch é usado em vários países afaik).

Se esse não for o caso, verifique se você definiu ip_forward também.

sudo echo "1" > /proc/sys/net/ipv4/ip_foward

Firewall (iptables)

# Allow FTP connections @ port 21
iptables -A INPUT  -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

# Allow Active FTP Connections
iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT 

# Allow Passive FTP Connections
iptables -A INPUT -p tcp --sport 1024: --dport 1024:  -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024:  -m state --state ESTABLISHED -j ACCEPT 

Você disse Somehow it is allowing me to access port 21 at the moment. , pode fazer o download ou fazer o upload de alguma coisa? se assim for, então como deve ser visto abaixo:

FTP ativo

No modo ativo FTP, o cliente se conecta de uma porta aleatória não privilegiada (N > 1023) à porta de comando do servidor FTP, porta 21. Em seguida, o cliente começa a escutar a porta N + 1 e envia o comando FTP PORT N + 1 para o servidor FTP. O servidor então se conectará de volta à porta de dados especificada do cliente a partir de sua porta de dados local, que é a porta 20.

Do ponto de vista do firewall do lado do servidor, para suportar o modo FTP ativo, os seguintes canais de comunicação precisam ser abertos:

* FTP server's port 21 from anywhere (Client initiates connection)
* FTP server's port 21 to ports > 1023 (Server responds to client's control port)
* FTP server's port 20 to ports > 1023 (Server initiates data connection to client's data port)
* FTP server's port 20 from ports > 1023 (Client sends ACKs to server's data port)

FTP passivo

Para resolver o problema do servidor que iniciou a conexão com o cliente, um método diferente para conexões FTP foi desenvolvido. Isso era conhecido como modo passivo, ou PASV, após o comando usado pelo cliente para informar ao servidor que está no modo passivo.

No FTP de modo passivo, o cliente inicia ambas as conexões com o servidor, resolvendo o problema de firewalls que filtram a conexão da porta de dados de entrada para o cliente do servidor. Ao abrir uma conexão FTP, o cliente abre duas portas aleatórias não privilegiadas localmente (N > 1023 e N + 1). A primeira porta entra em contato com o servidor na porta 21, mas em vez de emitir um comando PORT e permitir que o servidor se conecte novamente à porta de dados, o cliente emitirá o comando PASV. O resultado disso é que o servidor abre uma porta aleatória sem privilégios (P > 1023) e envia o comando PORT P de volta ao cliente. O cliente então inicia a conexão da porta N + 1 para a porta P no servidor para transferir dados.

Do ponto de vista do firewall do lado do servidor, para suportar o FTP no modo passivo, os seguintes canais de comunicação precisam ser abertos:

* FTP server's port 21 from anywhere (Client initiates connection)
* FTP server's port 21 to ports > 1023 (Server responds to client's control port)
* FTP server's ports > 1023 from anywhere (Client initiates data connection to random port specified by server)
* FTP server's ports > 1023 to remote ports > 1023 (Server sends ACKs (and data) to client's data port)
    
por 06.08.2010 / 19:58