Iptables dnat

Sziasztok,

Van egy proxmox 5.3 szerverem, benne 3 db VM:
-loadbalancer - public ip + 10.0.30.5 + 10.0.10.5
-gép 1 - 10.0.30.10
-gép 2 - 10.0.10.10

Kivülről szeretném elérni a belső két gépet ssh-n keresztük, ami a gép 1 esetében működik is, viszont a gép 2-nél már nem. Mit rontok el?

iptables config
https://pastebin.com/bagMEprw

Hozzászólások

szerintem a gép2-nek rossz a routingja. (vagy nem figyel rajta az SSH?)

mivel van 5 csomag ami arra akart menni, csak gondolom a válaszcsomagok nem értek vissza, ezért tapasztalod azt hogy nem működik

szerintem.
--
zrubi.hu

1. megoldás: Használd a loadbalancer-t "jumphost"-ként... Ne NAT-olj.

2. megoldás: NAT-olj. Ahogy elkezdted az ok.
Látszik is, hogy volt forgalom. Viszont nem tudni, hogy a gépek tudnak-e válaszolni. Ezt megnézheted tcpdump-pal.
Van a belső gépeknek default gw megadva? Ha nem, akkor vagy add meg ezt, vagy a POSTROUTING-ban vegyél fel SNAT-ot úgy, hogy a DNAT-nak megfelelően a bejövő csomagok úgy tűnjenek, mintha a közbenső gépről jönnének.
--
Debian Linux rulez... :D
RIP Ian Murdock

Szia!

Mivel nem írtatok megoldást -pastebin link nem működik- adok egy megoldást:

Topológia:
|eth1: public-ip|-----|PROXMOX|------|vmbr10: 10.0.30.5|-----|VM-1: 10.0.30.10 gw: 10.0.30.5|
|eth1: public-ip|-----|PROXMOX|------|vmbr20: 10.0.10.5|-----|VM-2: 10.0.10.10 gw: 10.0.10.5|

public-ip: 2000 port -> proxmox ssh
public-ip: 2100 port -> VM-1 ssh
public-ip: 2100 port -> VM-2 ssh

eth1: Proxmox ethernet interface
vmbr10: bridge interface amibe a VM-1 tap interface van.
vmbr20: bridge interface amibe a VM-2 tap interface van.

Több beállítás is kell, hogy működjön:
-> /etc/sysctl.conf
-> /etc/iptables/rules.v4 (apt-get install iptables-persistent)

/etc/sysctl.conf (PROXMOX host)

net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-filter-pppoe-tagged = 0
net.bridge.bridge-nf-filter-vlan-tagged = 0
net.bridge.bridge-nf-pass-vlan-input-dev= 0
#
net.ipv4.ip_forward = 1
## net.ipv6.ip_forward = 0
#
## net.ipv4.ip_local_port_range = 32768 65535
net.ipv4.ip_nonlocal_bind = 1
#
#
#
# eth1 - public-ip
#
net.ipv4.conf.eth1.forwarding=1
net.ipv4.conf.eth1.mc_forwarding=1
net.ipv4.conf.eth1.rp_filter=2
net.ipv4.conf.eth1.arp_filter=1
net.ipv4.conf.eth1.proxy_arp=1
net.ipv4.conf.eth1.proxy_arp_pvlan=1
net.ipv4.conf.eth1.send_redirects=0
net.ipv4.conf.eth1.secure_redirects=1
net.ipv4.conf.eth1.accept_source_route=0
#
#
#
# VM-1 - link #
net.ipv4.conf.vmbr10.forwarding=1
net.ipv4.conf.vmbr10.mc_forwarding=1
net.ipv4.conf.vmbr10.rp_filter=2
net.ipv4.conf.vmbr10.arp_filter=1
net.ipv4.conf.vmbr10.proxy_arp=0
net.ipv4.conf.vmbr10.proxy_arp_pvlan=0
net.ipv4.conf.vmbr10.send_redirects=0
net.ipv4.conf.vmbr10.secure_redirects=1
net.ipv4.conf.vmbr10.accept_source_route=0
#
#
# VM-2 link #
net.ipv4.conf.vmbr20.forwarding=1
net.ipv4.conf.vmbr20.mc_forwarding=1
net.ipv4.conf.vmbr20.rp_filter=2
net.ipv4.conf.vmbr20.arp_filter=1
net.ipv4.conf.vmbr20.proxy_arp=0
net.ipv4.conf.vmbr20.proxy_arp_pvlan=0
net.ipv4.conf.vmbr20.send_redirects=0
net.ipv4.conf.vmbr20.secure_redirects=1
net.ipv4.conf.vmbr20.accept_source_route=0
#
#
#

/etc/iptables/rules.v4 (PROXMOX-host)

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
#
#
#
-P INPUT DROP
-P FORwARD DROP
-P OUTPUT DROP
#
#
#
-A INPUT -i lo -j ACCEPT
#
#
#
# PROXMOX eth1 - INPUT ágban nincs default-drop csak OUTPUT-ágban ##
#
# eth1 - public-ip ##
#
-A INPUT -i eth1 -s 0.0.0.0/8 -j DROP
-A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
-A INPUT -i eth1 -s 100.64.0.0/10 -j DROP
-A INPUT -i eth1 -s 127.0.0.0/8 -j DROP
-A INPUT -i eth1 -s 169.254.0.0/16 -j DROP
-A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
-A INPUT -i eth1 -s 192.168.0.0/16 -j DROP
#
-A INPUT -i eth1 -d 0.0.0.0/8 -j DROP
-A INPUT -i eth1 -d 10.0.0.0/8 -j DROP
-A INPUT -i eth1 -d 100.64.0.0/10 -j DROP
-A INPUT -i eth1 -d 127.0.0.0/8 -j DROP
-A INPUT -i eth1 -d 169.254.0.0/16 -j DROP
-A INPUT -i eth1 -d 172.16.0.0/12 -j DROP
-A INPUT -i eth1 -d 192.168.0.0/16 -j DROP
#
## -A INPUT -i eth1 -j DROP
#
#
#
# vmbr10: 10.0.30.5 ; VM1: 10.0.30.10 ##
#
-A INPUT -i vmbr10 -s 0.0.0.0/8 -j DROP
##-A INPUT -i vmbr10 -s 10.0.0.0/8 -j DROP
-A INPUT -i vmbr10 -s 100.64.0.0/10 -j DROP
-A INPUT -i vmbr10 -s 127.0.0.0/8 -j DROP
-A INPUT -i vmbr10 -s 169.254.0.0/16 -j DROP
-A INPUT -i vmbr10 -s 172.16.0.0/12 -j DROP
-A INPUT -i vmbr10 -s 192.168.0.0/16 -j DROP
#
-A INPUT -i vmbr10 -d 0.0.0.0/8 -j DROP
##-A INPUT -i vmbr10 -d 10.0.0.0/8 -j DROP
-A INPUT -i vmbr10 -d 100.64.0.0/10 -j DROP
-A INPUT -i vmbr10 -d 127.0.0.0/8 -j DROP
-A INPUT -i vmbr10 -d 169.254.0.0/16 -j DROP
-A INPUT -i vmbr10 -d 172.16.0.0/12 -j DROP
-A INPUT -i vmbr10 -d 192.168.0.0/16 -j DROP
#
## -A INPUT -i vmbr10 -j DROP
#
#
#
# vmbr20: 10.0.10.5 ; VM1: 10.0.10.10 ##
#
-A INPUT -i vmbr20 -s 0.0.0.0/8 -j DROP
##-A INPUT -i vmbr20 -s 10.0.0.0/8 -j DROP
-A INPUT -i vmbr20 -s 100.64.0.0/10 -j DROP
-A INPUT -i vmbr20 -s 127.0.0.0/8 -j DROP
-A INPUT -i vmbr20 -s 169.254.0.0/16 -j DROP
-A INPUT -i vmbr20 -s 172.16.0.0/12 -j DROP
-A INPUT -i vmbr20 -s 192.168.0.0/16 -j DROP
#
-A INPUT -i vmbr20 -d 0.0.0.0/8 -j DROP
##-A INPUT -i vmbr20 -d 10.0.0.0/8 -j DROP
-A INPUT -i vmbr20 -d 100.64.0.0/10 -j DROP
-A INPUT -i vmbr20 -d 127.0.0.0/8 -j DROP
-A INPUT -i vmbr20 -d 169.254.0.0/16 -j DROP
-A INPUT -i vmbr20 -d 172.16.0.0/12 -j DROP
-A INPUT -i vmbr20 -d 192.168.0.0/16 -j DROP
#
## -A INPUT -i vmbr20 -j DROP
#
#
#
# PROXMOX - ssh, https, egyéb #
-A INPUT -i eth1 -d public-ip -m tcp -p tcp --dport 2000 -j ACCEPT
-A INPUT -i eth1 -d public-ip -m tcp -p tcp --dport 443 -j ACCEPT
#
#
#
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
#
#
# VM-1 #
-A FORWARD -s 10.0.30.10 -j ACCEPT
-A FORWARD -d 10.0.30.10 -j ACCEPT
#
# VM-2 #
-A FORWARD -s 10.0.10.10 -j ACCEPT
-A FORWARD -d 10.0.10.10 -j ACCEPT
#
#
-A FORWARD -j DROP
#
#
#
-A OUTPUT -o lo -j ACCEPT
#
#
#
#
# eth1 - public-ip
#
-A OUTPUT -o eth1 -s 0.0.0.0/8 -j DROP
-A OUTPUT -o eth1 -s 10.0.0.0/8 -j DROP
-A OUTPUT -o eth1 -s 100.64.0.0/10 -j DROP
-A OUTPUT -o eth1 -s 127.0.0.0/8 -j DROP
-A OUTPUT -o eth1 -s 169.254.0.0/16 -j DROP
-A OUTPUT -o eth1 -s 172.16.0.0/12 -j DROP
-A OUTPUT -o eth1 -s 192.168.0.0/16 -j DROP
-A OUTPUT -o eth1 -s public-ip -j ACCEPT
#
-A OUTPUT -o eth1 -d 0.0.0.0/8 -j DROP
-A OUTPUT -o eth1 -d 10.0.0.0/8 -j DROP
-A OUTPUT -o eth1 -d 100.64.0.0/10 -j DROP
-A OUTPUT -o eth1 -d 127.0.0.0/8 -j DROP
-A OUTPUT -o eth1 -d 169.254.0.0/16 -j DROP
-A OUTPUT -o eth1 -d 172.16.0.0/12 -j DROP
-A OUTPUT -o eth1 -d 192.168.0.0/16 -j DROP
-A OUTPUT -o eth1 -d public-ip -j ACCEPT
#
-A OUTPUT -o eth1 -j DROP
#
#
#
# vmbr10: 10.0.30.5 ; VM1: 10.0.30.10 ##
#
-A OUTPUT -o vmbr10 -s 0.0.0.0/8 -j DROP
-A OUTPUT -o vmbr10 -s 10.0.30.0/24 -j ACCEPT
-A OUTPUT -o vmbr10 -s 10.0.0.0/8 -j DROP
-A OUTPUT -o vmbr10 -s 100.64.0.0/10 -j DROP
-A OUTPUT -o vmbr10 -s 127.0.0.0/8 -j DROP
-A OUTPUT -o vmbr10 -s 169.254.0.0/16 -j DROP
-A OUTPUT -o vmbr10 -s 172.16.0.0/12 -j DROP
-A OUTPUT -o vmbr10 -s 192.168.0.0/16 -j DROP
#
-A OUTPUT -o vmbr10 -d 0.0.0.0/8 -j DROP
-A OUTPUT -o vmbr10 -d 10.0.30.0/24 -j ACCEPT
-A OUTPUT -o vmbr10 -d 10.0.0.0/8 -j DROP
-A OUTPUT -o vmbr10 -d 100.64.0.0/10 -j DROP
-A OUTPUT -o vmbr10 -d 127.0.0.0/8 -j DROP
-A OUTPUT -o vmbr10 -d 169.254.0.0/16 -j DROP
-A OUTPUT -o vmbr10 -d 172.16.0.0/12 -j DROP
-A OUTPUT -o vmbr10 -d 192.168.0.0/16 -j DROP
#
-A OUTPUT -o vmbr10 -j DROP
#
#
#
# vmbr10: 10.0.10.5 ; VM1: 10.0.10.10 ##
#
-A OUTPUT -o vmbr20 -s 0.0.0.0/8 -j DROP
-A OUTPUT -o vmbr20 -s 10.0.10.0/24 -j ACCEPT
-A OUTPUT -o vmbr20 -s 10.0.0.0/8 -j DROP
-A OUTPUT -o vmbr20 -s 100.64.0.0/10 -j DROP
-A OUTPUT -o vmbr20 -s 127.0.0.0/8 -j DROP
-A OUTPUT -o vmbr20 -s 169.254.0.0/16 -j DROP
-A OUTPUT -o vmbr20 -s 172.16.0.0/12 -j DROP
-A OUTPUT -o vmbr20 -s 192.168.0.0/16 -j DROP
#
-A OUTPUT -o vmbr20 -d 0.0.0.0/8 -j DROP
-A OUTPUT -o vmbr20 -d 10.0.10.0/24 -j ACCEPT
-A OUTPUT -o vmbr20 -d 10.0.0.0/8 -j DROP
-A OUTPUT -o vmbr20 -d 100.64.0.0/10 -j DROP
-A OUTPUT -o vmbr20 -d 127.0.0.0/8 -j DROP
-A OUTPUT -o vmbr20 -d 169.254.0.0/16 -j DROP
-A OUTPUT -o vmbr20 -d 172.16.0.0/12 -j DROP
-A OUTPUT -o vmbr20 -d 192.168.0.0/16 -j DROP
#
-A OUTPUT -o vmbr20 -j DROP
#
#
#
COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
#
#
#
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
#
#
#
# VM-1 - SSH-port: 2100 #
-A PREROUTING -i eth1 -d public-ip -m tcp -p tcp --dport 2100 -j DNAT --to 10.0.30.10:2100
#
#
# VM-2 - SSH-port: 2200 #
-A PREROUTING -i eth1 -d public-ip -m tcp -p tcp --dport 2200 -j DNAT --to 10.0.10.10:2200
#
#
#
-A POSTROUTING -o eth1 -j MASQUERADE
#
#
#
COMMIT