Como port forward com firewalld dependendo do IP de origem

3

Eu corro o ssh na porta 5678.

Para o meu endereço IP de origem 1.2.3.4 - Eu quero conectar na porta 22 e ter a porta do firewalld encaminhada para o 5687.

Nenhum outro endereço IP de origem recebe o encaminhamento de porta.

Qual linha do firewall-cmd eu digitaria para conseguir isso?

    
por matiu 14.02.2016 / 17:52

2 respostas

1

Descobri:

CUSTOMPORT=$(netstat -tlpn | grep 0.0.0.0.*ssh | cut -d: -f2 | cut -f1 -d\ )
SOURCE_IP=1.2.3.4
firewall-cmd --zone=public --permanent --query-masquerade
firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --zone=public --permanent --add-rich-rule="rule family=\"ipv4\" source address=\"${SOURCE_IP}\" forward-port port=\"22\" protocol=\"tcp\" to-port=\"${CUSTOMPORT}\""
firewall-cmd --reload
    
por 14.02.2016 / 18:52
3

Você acabou de criar uma regra de firewalld para permitir o tráfego e depois configurar o NAT para o tráfego. Essencialmente você está criando uma ACL para determinar em qual tráfego é permitido e então você está fazendo uma regra NAT para dizer que o tráfego permitido deve ser traduzido.

firewall-cmd --permanent --zone=public --add-rich-rule="rule 
family="ipv4" \
source address="1.2.3.4/32" \
port protocol="tcp" port="22" accept"
firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=5678:toaddr=*private translated IP address*
firewall-cmd --reload

Como abrir porta para um endereço IP específico com firewall-cmd no CentOS?

link

    
por 14.02.2016 / 18:02