Os meus iptables para FTPS com TLS estão OK?

1

Eu tentei navegar no Google para obter um iptable para meu FTPS com TLS (proftpd), trabalhando com o iptables killswitch que agora tenho trabalhando (veja link ).

Eu uso a porta 10210 para o FTPS e 60100-60119 para portas passivas, esse tráfego não passa pela VPN. Eu vim com isso (eles estão acima das últimas linhas de soltar):

# Allow traffic via TLS FTPS
iptables -A INPUT -p tcp -m tcp --dport 10210 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# It seems to be working without the line under
#iptables -A INPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 10210:60119 --dport 60100:60119 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable
iptables -A OUTPUT -p tcp -m tcp --dport 10210 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# It seems to be working without the line under
#iptables -A OUTPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 10210:60119 --dport 10210:60119 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Parece funcionar, mas como sou um noob do iptables, fico imaginando o que fiz de errado (provavelmente eu tenho;), não tenho certeza sobre os intervalos de portas e talvez seja para abrir?)

EDITAR Eu tive problemas com conexões, então eu mudei para isso que funcionam melhor

-A INPUT -p tcp -m tcp --dport 10210 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --sport 10210 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 60100:60119 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 10210 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 10210 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 60100:60119 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 60100:60119 -j ACCEPT

Mais tarde, depois de ler o link , tente isso em vez dos intervalos de porta acima

iptables -A INPUT -p tcp --dport 60100:60119 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 60100:60119 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 60100:60119 -m conntrack --ctstate NEW,ESTABLISHED,RELATED-j ACCEPT

E remover -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT e também gostaria de saber se eu também deveria remover -m conntrack --ctstate NEW,ESTABLISHED para 10210, pois é a porta de entrada para o FTPS?

    
por raffe 26.10.2016 / 16:22

1 resposta

1
A parte

OUTPUT é somente para a conexão, que é INITIATED do servidor, não afeta a conexão iniciada pelo cliente em todos. Normalmente, OUTPUT é NÃO FILTRADO , a menos que você tenha um requisito especial para bloquear algo que saia.

INPUT é a parte que você deve filtrar.

As partes ESTABLISHED e RELACIONADAS são para conexão, que já é iniciada e deve continuar funcionando (por exemplo, como TCP após handshake) e geralmente há correspondência maior do que em outras regras .

Podemos dividir a conexão FTP em três tipos:

  1. FTP ativo (simples)
  2. FTP passivo (simples)
  3. FTP com SSL (qualquer criptografado)

No caso do FTP Ativo, você precisa abrir as portas TCP 20 e TCP 21 de entrada e esse tipo de conexão raramente é usado, ou seja, duas conexões são iniciadas a partir do cliente.

No caso de situação de FTP passivo ser pior, o FTP passivo usa a porta TCP 21 para comandos e a porta RANDOM TCP para transferência de dados para qualquer conexão, qual porta será especificada na resposta FTP do servidor, portanto, o firewall deve " escute "o tráfego de FTP, que requer inspeção mais profunda de pacotes e depois abre dinamicamente a porta - esta é uma situação normal. Neste caso, ajudantes de rastreamento de conexão FTP / módulos do kernel são usados e isso resolve o problema - você só precisa abrir a porta TCP 21.

No caso de SSL - é ainda mais louco, porque os dados sobre a porta RANDOM também são criptografados e os firewalls não conseguem adivinhar qual porta abrir, nesse caso alguns caras especificam o número de portas aleatórias nas configurações do servidor FTP e abrem todas essas portas no firewall.

Normalmente, a ordem das regras para a tabela de filtros geralmente se parece com isso:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp -m multiport --dports 22,80,443 -j ACCEPT
-A INPUT -i eth1 -p tcp -m conntrack --ctstate NEW -m tcp -m multiport --dports 22,53,80,1234 -j ACCEPT
-A INPUT -i eth1 -p udp -m conntrack --ctstate NEW -m udp -m multiport --dports 53,67,123 -j ACCEPT
COMMIT

Para SSL, você pode adicionar a seguinte regra em algum lugar

-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp -m multiport --dports 21,15000:15050 -j ACCEPT
    
por 01.11.2016 / 13:52