como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

1. como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 19/05/2017 - 11:48h

gostaria de saber se é possível definir um intervalo de portas altas do FTP que o slackpkg utiliza quando estabelece sua comunicação com o servidor para baixar as atualizações..?


  


2. Re: como definir as portas altas do FTP utilizadas pelo slackpkg?

João Batista
ryuuzaki42

(usa Slackware)

Enviado em 19/05/2017 - 22:31h

raserafim escreveu:

gostaria de saber se é possível definir um intervalo de portas altas do FTP que o slackpkg utiliza quando estabelece sua comunicação com o servidor para baixar as atualizações..?


Não entendi muito bem... mas podemos conversar : )
O slackpkg não utiliza wget e/ou curl? - Digo não utilizando diretamente FTP.
Que eu saiba, apenas nos mirror tem FTP (servidor) e o HTTP se quiser.
Qual o motivo para trocar a porta? Questões de segurança?


3. Re: como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 20/05/2017 - 12:36h

ryuuaki42, obrigado pela disposição em mais um tópico meu...

explicando melhor...:

quando utilizamos o slackpkg, ao que pude observar, ele utiliza o wget.

o wget, por sua vez, também ao que pude observar, vai utilizar o FTP ou o HTTP a depender de qual link esteja configurado nas configurações de mirror do slackpkg.

supondo que esteja configurado um link FTP... ao rodar o #slackpkg update ...este roda o wget...e este inicia uma conexão FTP, por meio da porta 21. mas depois de estabelecida a conexão os dados são trocados em alguma das portas altas acordado entre o cliente e o servidor.

é justamente nesse acordo entre o cliente e o servidor que gostaria de intervir.

queria definir um conjunto de portas possíveis para essa conexão FTP nas portas altas.

por exemplo: da 50000 até a 60000.

o que me motiva a tentar essa configuração são as regras para um firewall (iptables).

por enquanto, como não sei que intervalo de portas o slackpkg utiliza, tenho colocado a seguinte regra no iptables no que diz respeito às portas altas:
iptables -A INPUT -p tcp --dport 1024:65535 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 
o que libera todas as portas altas. quando o que queria era liberar apenas uma faixa de portas...


4. Re: como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

João Batista
ryuuzaki42

(usa Slackware)

Enviado em 20/05/2017 - 15:12h

"ryuuaki42, obrigado pela disposição em mais um tópico" : )

Agora entendi.
Encontrei uns casos com meta similar na Internet e uns pontos de partida.
Esse "--ftps-implicit" tem uma questão da porta usada, mas parece não ser o que busca (https://www.gnu.org/software/wget/manual/html_node/FTP-Options.html).

Nesse post/pergunta (http://www.yqcomputer.com/1121_36063_1.htm) é comentado que o sistema envia uma porta disponível e aleatória para o processo (usualmente de 32768 até 61000) a partir dos valores em /proc/sys/net/ipv4/ip_local_port_range
Em testes aqui estava utilizando as 59208, 59112 e 50246.
$ netstat | grep ftp
tcp 0 0 10.0.0.110:59208 ftp1.uninett.no:ftp ESTABLISHED
tcp 0 0 10.0.0.110:50246 ftp1.uninett.no:49751 ESTABLISHED
tcp 0 0 10.0.0.110:59112 ftp1.uninett.no:ftp ESTABLISHED

Acho que se bloquear algumas, talvez em tente novamente com outras portas, numa segunda, terceira tentativa ... até encontrar uma aberta... mas seria uma gambiarra e pouco efetivo em questão de rede.
Poderia alterar o valor de range das portas... mas é provável de atrapalhar tantos outros programas/processos.
Seria legal alterar apenas a "chamada" ao range quando o programa fosse o wget...




5. Re: como definir as portas altas do FTP utilizadas pelo slackpkg?

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 20/05/2017 - 16:19h

ryuuaki42 escreveu: Esse "--ftps-implicit" tem uma questão da porta usada, mas parece não ser o que busca (https://www.gnu.org/software/wget/manual/html_node/FTP-Options.html).
me pareceu que realmente não é o que busco. talvez tenha mais a ver com a porta 21 do que com as portas altas. e tb, ao que entendi, seria para o caso de eu rodar um comando FTP; não servindo assim para o uso do FTP por meio de outro aplicativo (como o wget)..

ryuuaki42 escreveu: Nesse post/pergunta (http://www.yqcomputer.com/1121_36063_1.htm) é comentado que o sistema envia uma porta disponível e aleatória para o processo (usualmente de 32768 até 61000) a partir dos valores em /proc/sys/net/ipv4/ip_local_port_range
agora esta observação é interessante..! talvez esteja indo exatamente no ponto na minha questão!

no link que vc indicou um colega diz o seguinte: "o sistema operacional dará ao wget uma porta local aleatória" ("the OS will give wget a random local port").

se ele estiver correto, então significa que as portas altas são separadas e definidas pelo sistema operacional; e não por um programa em específico (como o slackpkg e o wget). os programas recebem uma porta dentro da faixa de portas altas predefinidas em /proc/sys/net/ipv4/ip_local_port_range. acho que é isso!

algumas dúvidas que me ocorreram agora:
- será que estes valores são padrões ligados ao kernel? ou ao TCP/IP? ao as distribuições linux??
- as portas altas são tecnicamente consideradas como sendo da 1024 até a 65535. o que seriam então essas portas de 32768 até 61000, definidas no /proc/sys/net/ipv4/ip_local_port_range??
- seriam elas as portas altas separadas para as conexões FTP??
- /proc... não é um diretório real; ele é criado virtualmente para a operação do kernel. sendo assim, como eu definiria as configurações de faixas de portas (ranger) para serem carregadas pelo arquivo virtual /proc/sys/net/ipv4/ip_local_port_range??
- será que definindo a faixa de portas diretamente mesmo em /proc/sys/net/ipv4/ip_local_port_range?? ou será que tem um outro arquivo que é lido para poder gerar o /proc/sys/net/ipv4/ip_local_port_range??

se ficar confirmado que o arquivo /proc/sys/net/ipv4/ip_local_port_range se refere as portas para o FTP então, no mínimo, eu já posso redefinir minha regra do iptables para as portas 32768:61000!


6. Re: como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 20/05/2017 - 17:13h

fiz agora alguns testes em relação a definição das portas altas no /proc/sys/net/ipv4/ip_local_port_range...

raserafim escreveu:
- /proc... não é um diretório real; ele é criado virtualmente para a operação do kernel. sendo assim, como eu definiria as configurações de faixas de portas (ranger) para serem carregadas pelo arquivo virtual /proc/sys/net/ipv4/ip_local_port_range??
- será que definindo a faixa de portas diretamente mesmo em /proc/sys/net/ipv4/ip_local_port_range?? ou será que tem um outro arquivo que é lido para poder gerar o /proc/sys/net/ipv4/ip_local_port_range??


alterei diretamente o arquivo /proc/sys/net/ipv4/ip_local_port_range. alterei a faixa para 32768 até 35000.

funcionou!

tcp 0 0 192.168.0.11:34290 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:34288 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:34304 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:34278 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 19 192.168.0.11:34286 tux.slackware-brasi:ftp ESTABLISHED


com as faixas no "original" (32768 até 61000):
tcp 0 0 192.168.0.11:57810 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:57798 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:57804 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:57812 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:57800 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:57802 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:57819 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 19 192.168.0.11:57815 tux.slackware-brasi:ftp ESTABLISHED


e apenas a título de experimento mudei completamente os padrões: coloquei de 20000 até 25000:
tcp 0 0 192.168.0.11:21110 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:21129 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:21115 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:21131 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 0 192.168.0.11:21127 tux.slackware-brasi:ftp TIME_WAIT
tcp 0 19 192.168.0.11:21133 tux.slackware-brasi:ftp ESTABLISHED


ou seja, alterando a faixa de portas do /proc/sys/net/ipv4/ip_local_port_range altera-se a faixa de portas que são utilizadas para a conexão FTP!

no entanto, ao reiniciar a máquina as configurações no arquivo /proc/sys/net/ipv4/ip_local_port_range se perdem -- voltam ao padrão (32768 até 61000). se apenas encerrar a sessão os valores modificados ainda continuam valendo.

sendo assim, algumas perguntas permanecem:
- será que a faixa de portas do /proc/sys/net/ipv4/ip_local_port_range dizem respeito apenas ao FTP??
- onde estão definidos esses valores padrão para poderem ser carregados para o arquivo /proc/sys/net/ipv4/ip_local_port_range??


7. Re: como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 20/05/2017 - 17:46h

Fiz agora outro experimento..

quando pesquisava na net sobre como definir as portas altas para o FTP me deparei algumas vezes com o tema de definição das portas passivas. que, por sinal, tem uma relação.

no tema de definição das portas passivas via com frequência a instrução para colocar no arquivo "vsftpd.conf" as seguintes linhas: "pasv_max_port=XXXXX" e "pasv_min_port=XXXXX".

e no arquivo"proftpd.conf" acrescentar a linha "PassivePorts XXXXX XXXXX"

coloquei em ambos os valores de 34000 até 36000.

e fiz novamente os testes monitorando as conexões com o comando "netstat | grep ftp".

essa faixa de portas não foram respeitadas...!

como já imaginava, esses arquivos (vsftpd.conf e proftpd.conf) não interferem em nada para o cliente FTP. eles seriam utilizados caso minha máquina fosse um servidor FTP; mas sou apenas um cliente FTP.



8. Re: como definir as portas altas do FTP utilizadas pelo slackpkg?

João Batista
ryuuzaki42

(usa Slackware)

Enviado em 20/05/2017 - 18:04h

então significa que as portas altas são separadas e definidas pelo sistema operacional; e não por um programa em específico
- Exatamente.

será que estes valores são padrões ligados ao kernel? ou ao TCP/IP? ao as distribuições linux??
- É um padrão do kernel que você pode alterar e definem as portas para uso do TCP e UDP. Bons detalhes em https://ma.ttias.be/linux-increase-ip_local_port_range-tcp-port-range/

as portas altas são tecnicamente consideradas como sendo da 1024 até a 65535. o que seriam então essas portas de 32768 até 61000, definidas no /proc/sys/net/ipv4/ip_local_port_range
- Acredito que um range padrão de trabalho, tendo assim umas 28 mil portas para se conectar hehe. O que faz o UDP feliz, utilizando uma para cada serviço/aplicação hehe.

seriam elas as portas altas separadas para as conexões FTP??
- E também UDP

- /proc... não é um diretório real; ele é criado virtualmente para a operação do kernel. sendo assim, como eu definiria as configurações de faixas de portas (ranger) para serem carregadas pelo arquivo virtual /proc/sys/net/ipv4/ip_local_port_range??
- Com o
sysctl  -w net.ipv4.ip_local_port_range="50000 60000" 
executado durante a inicialização (rc.local). Liberando da 50000 até a 60000 deve funcionar bem, caso não seja um servidor.... creio eu.

será que definindo a faixa de portas diretamente mesmo em /proc/sys/net/ipv4/ip_local_port_range?? ou será que tem um outro arquivo que é lido para poder gerar o /proc/sys/net/ipv4/ip_local_port_range??
- O https://ma.ttias.be/linux-increase-ip_local_port_range-tcp-port-range/ dá a dica de criar um arquivo na pasta /etc/sysctl.d/ com as configurações no arquivo net.ipv4.ip_local_port_range.conf e conteúdo
net.ipv4.ip_local_port_range = 50000 60000. Carregado durante o boot. Não testei aqui (mil coisas abertas haha).

Interessante o seu teste : )
Um
echo 50000 600000 > /proc/sys/net/ipv4/ip_local_port_range 
também irá funcionar no rc.local, mas pelo sysctl parece ser mais bonito.
Tem a dica de adiciona no /etc/sysctl.conf, mas como não vem no Slackware, ele deve trabalhar com os arquivos dentro pasta /etc/sysctl.d/

O comando
ss -s 
é interessante para vermos, em um momento de muito trafego, se vamos precisar de mais portas.



9. Re: como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 20/05/2017 - 19:19h

ryuuaki42, esse link que vc indicou resolve tudo!!

ryuuaki42 escreveu: - É um padrão do kernel que você pode alterar e definem as portas para uso do TCP e UDP.
Isso..! muito provavelmente os valores são definidos internamente no kernel, podendo ser alterados externamente por meio do arquivo /proc/sys/net/ipv4/ip_local_port_range; ou, talvez (não sei...) pode ser alterado na compilação do kernel (o que não tem muito sentido fazer...)

ryuuaki42 escreveu: - Acredito que um range padrão de trabalho, tendo assim umas 28 mil portas para se conectar hehe.
Isso..! estou achando também agora. um "range padrão de trabalho" que se utiliza de um conjunto de portas no interior de um conjunto maior das portas altas.

- Com o
sysctl  -w net.ipv4.ip_local_port_range="50000 60000" 
executado durante a inicialização (rc.local). Liberando da 50000 até a 60000 deve funcionar bem, caso não seja um servidor.... creio eu.

será que definindo a faixa de portas diretamente mesmo em /proc/sys/net/ipv4/ip_local_port_range?? ou será que tem um outro arquivo que é lido para poder gerar o /proc/sys/net/ipv4/ip_local_port_range??
- O https://ma.ttias.be/linux-increase-ip_local_port_range-tcp-port-range/ dá a dica de criar um arquivo na pasta /etc/sysctl.d/ com as configurações no arquivo net.ipv4.ip_local_port_range.conf e conteúdo
net.ipv4.ip_local_port_range = 50000 60000. Carregado durante o boot. Não testei aqui (mil coisas abertas haha).

Interessante o seu teste : )
Um
echo 50000 600000 > /proc/sys/net/ipv4/ip_local_port_range 
também irá funcionar no rc.local, mas pelo sysctl parece ser mais bonito.
Tem a dica de adiciona no /etc/sysctl.conf, mas como não vem no Slackware, ele deve trabalhar com os arquivos dentro pasta /etc/sysctl.d/
ryuuaki42, resolvi de uma maneira mais simples:
echo 50000 61000 > /proc/sys/net/ipv4/ip_local_port_range 
coloquei no script do próprio firewall (iptables), uma vez que o script (rc.firewall) é executado sempre que inicia o sistema!!!

Resolvido!!!

ryuuaki42, agradeço enormemente a maneira como contribuiu com o tópico! obrigado!




10. Re: como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

João Batista
ryuuzaki42

(usa Slackware)

Enviado em 20/05/2017 - 21:58h

ryuuaki42, agradeço enormemente a maneira como contribuiu com o tópico! obrigado!
- : ) Bom demais, geralmente apreendo coisas novas tentando ajudar. E aí fica a pergunta, "Quem ajuda quem no final?" hehe


11. Re: como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 22/05/2017 - 13:42h

ryuuaki42 escreveu:

- : ) Bom demais, geralmente apreendo coisas novas tentando ajudar. E aí fica a pergunta, "Quem ajuda quem no final?" hehe

novamente, falou tudo!

por sorte, essa é uma equação insolúvel..!

assim como você, entendo esses fóruns como um importante espaço de aprendizado; em que se aprende, também, no processo de ajuda!



12. Re: como definir as portas altas do FTP utilizadas pelo slackpkg? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 22/05/2017 - 13:55h

mesmo com o tópico estando como resolvido...tenho me questionado o seguinte...

essa alteração do /proc/sys/net/ipv4/ip_local_port_range para a definição de um outro conjunto de portas altas será que funciona bem tanto para o FTP Passivo quanto o Ativo??

tenho encontrado muitas explicações diferentes na net sobre a diferença desses modos (ativo e passivo), de forma que não me considero ainda em condições de fazer essa avaliação.

porém, ao que me parece, sem muitos detalhes, no FTP Passivo o servidor aceita sugestões do cliente de qual porta alta será destinada para a transferência dos dados (é o cliente quem estaria definindo a porta). se realmente for isso, a alteração da configuração das portas altas funcionariam corretamente (conforme temos chegado a conclusão no conjunto deste tópico).

no entanto, se o modo Ativo significar, como tenho entendido, que é o servidor quem sugere a porta alta para a transferência dos dados, então pode ser que a alteração da configuração das portas altas não funcione corretamente...

ou será que mesmo no modo Ativo, embora seja o servidor quem defina a porta, ele o faz no escopo de portas informado pelo cliente?? (tenho achado que não...)



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts