iptables: o tráfego de saída é redirecionado para a porta local

1

Estou usando o seguinte script iptables em minha máquina debian:

#!/bin/sh


IPT="/sbin/iptables"

# Flush old rules, old custom tables
$IPT --flush
$IPT --delete-chain

# Set default policies for all three default chains
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

# Enable free use of loopback interfaces
$IPT -A INPUT -i lo -j ACCEPT
# All TCP sessions should begin with SYN
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -s 0.0.0.0/0 -j DROP

# Accept inbound TCP packets
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT

# Accept inbound ICMP messages
$IPT -A INPUT -p ICMP --icmp-type 8 -s 0.0.0.0/0 -j ACCEPT

#VM Windows
$IPT -A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
$IPT -A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
$IPT -A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
$IPT -A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
$IPT -A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
$IPT -A FORWARD -i virbr0 -o virbr0 -j ACCEPT
$IPT -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
$IPT -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
$IPT -I FORWARD -o virbr0 -d  192.168.122.178 -j ACCEPT
$IPT -I FORWARD -o virbr0 -d  192.168.122.160 -j ACCEPT
$IPT -I FORWARD -o virbr0 -d  192.168.122.105 -j ACCEPT
$IPT -t nat -I PREROUTING -p tcp --dport 25300 -j DNAT --to 192.168.122.178:25300
$IPT -t nat -I PREROUTING -p tcp --dport 2222 -j DNAT --to 192.168.122.160:22
$IPT -t nat -I PREROUTING -p tcp --dport 26300 -j DNAT --to 192.168.122.105:26300
$IPT -t nat -A POSTROUTING -o virbr0 -j MASQUERADE
$IPT -A FORWARD -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i virbr0 -o eth0 -j ACCEPT
$IPT -A FORWARD -i virbr0 -o lo -j ACCEPT

Eu tenho 3 máquinas virtuais, virtualizadas com o kvm. De alguma forma eu consegui f *** meu script iptables. Toda vez que tento me conectar a qualquer coisa na porta 80/443, o tráfego é redirecionado para a máquina local. Eu tenho que saber disso, porque uma das VMs é um servidor Windows e eu tinha o IIS em execução no momento. Todos os sites que tentei acessar foram redirecionados para o meu IIS em execução localmente. O curioso é que parece que está apenas redirecionando o tráfego de saída na porta 80/443.

    
por Christoph Ritzer 01.02.2018 / 18:11

1 resposta

0

edit: Se você estiver usando o libvirt, você deve usar esses mecanismos de gerenciamento primeiro e não esta resposta.

Você deve tentar algumas coisas para tornar suas regras de NAT mais restritas.

Meu primeiro palpite é que sua regra de POSTROUTING deve ser apenas seus endereços internos.

$IPT -t nat -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -o virbr0 -j MASQUERADE

Além disso, você deve restringir ainda mais suas regras de PREROUTING de modo a não devolver seu tráfego interno, por exemplo.

$IPT -t nat -I PREROUTING ! -s 192.168.122.0/24 -i virbr0 -p tcp --dport 25300 -j DNAT --to 192.168.122.178:25300
    
por 01.02.2018 / 18:54