Boa noite a todos.
Como sou novo aqui, estou há algumas horas lendo todo o fórum.
Inclusive não encontrei em local algum minhas dúvidas.
Sou iniciante nesse ramo, e a pedido de um amigo estou a desenvolver um script iptables de redirecionamento para ele.
Espero muito a ajuda de vocês.
São 3 clouds
cloud-A - Onde roda o script firewall
cloud-B - Onde recebe as conexões
cloud-C - Painel gerenciamento clientes
Todos são ips fixo
Estarei colando meu scritp e fazendo as observações das minhas dúvidas.
#!/bin/bash
echo 'Limpando todas as regras e liberando todo o trafego'
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# Ignora pings
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
iptables -t nat -F
iptables -F
iptables -F FORWARD
Com esta regra a baixo eu recebo a mensagem: iptables: No chain/target/match by that name.
Mas se eu comento a regra, para tudo de funcionar.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT
Com essas regras a baixo, eu gostaria que apenas o cloud-C pudesse ser direcionado para o cloud-B nestas portas.
Teste e também não obtive sucesso.
#iptables -A INPUT -p tcp -s cloud-C --dport 55050 -j ACCEPT
#iptables -A INPUT -p tcp -s cloud-C --dport 55051 -j ACCEPT
# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP
# Direcionamento Cabo1
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 31250 -j DNAT --to-destination cloud-B:31250
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 23050 -j DNAT --to-destination cloud-B:31250
# Direcionamento Cabo2
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 32005 -j DNAT --to-destination cloud-B:32005
# Direcionamento para o Painel
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 55051 -j DNAT --to-destination cloud-B:55051
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 55050 -j DNAT --to-destination cloud-B:55050
iptables -A FORWARD -p udp -s cloud-A --dport 53 -j ACCEPT
# Ignora qualquer pacote de entrada, vindo de qualquer endereço, a menos que especificado o contrário acima. Bloqueia tudo.
iptables -A INPUT -p tcp --syn -j DROP
echo 'Firewall iniciado'
echo 'Listar regras Redirecionamentos'
iptables -t nat -L
Agradeço a atenção de todos.
Grande abraço