Хочу по максимуму настроить настроить сервера в связке VPN-TOR-VPN через IPtables. Пытаюсь сделать как в статье. Но по итогу идет подключение в интернет через первый сервер. При этом с первого на второй пинг не проходит. Наверняка, запутался в интерфейсах где-то, с перенаправлениями и разрешениями. ens3 (eth0) - интерфейс на сервере
Первый (к которому идет подключение с места) через UDP и идет пострутинг через интерфейс tun1
После я еще добавляю: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tun1 -j MASQUERADE
Второй( приходит и уходит через TCP)
И потом:
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o ens3 -j MASQUERADE
п.с. правила позаимствовал с туториалов линода. Кстати, если поднять один сервер надо, то советую:
Первый (к которому идет подключение с места) через UDP и идет пострутинг через интерфейс tun1
Код:
*filter
# Allow all loopback (lo) traffic and reject traffic
# to localhost that does not originate from lo.
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
-A OUTPUT -o lo -j ACCEPT
# Allow ping and ICMP error returns.
-A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
# Allow SSH.
-A INPUT -i ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT
# Allow UDP traffic on port 1194.
-A INPUT -i ens3 -p udp -m state --state NEW,ESTABLISHED --dport 1194 -j ACCEPT
-A OUTPUT -o ens3 -p udp -m state --state ESTABLISHED --sport 1194 -j ACCEPT
# Allow TCP traffic on port 1194.
-A INPUT -i ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 1194 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 1194 -j ACCEPT
# Allow DNS resolution and limited HTTP/S on ens3.
# Necessary for updating the server and keeping time.
-A INPUT -i ens3 -p udp -m state --state ESTABLISHED --sport 53 -j ACCEPT
-A OUTPUT -o ens3 -p udp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT
-A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 53 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT
-A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 80 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 80 -j ACCEPT
-A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 443 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 443 -j ACCEPT
# Allow traffic on the TUN interface.
-A INPUT -i tun0 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT
# Allow forwarding traffic only from the VPN.
# -A FORWARD -i tun0 -o ens3 -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -i tun0 -o tun1 -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
COMMIT
После я еще добавляю: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tun1 -j MASQUERADE
Второй( приходит и уходит через TCP)
Код:
*filter
# Allow all loopback (lo) traffic and reject traffic
# to localhost that does not originate from lo.
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
-A OUTPUT -o lo -j ACCEPT
# Allow ping and ICMP error returns.
-A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
# Allow SSH.
-A INPUT -i ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT
# Allow UDP traffic on port 1194.
-A INPUT -i ens3 -p udp -m state --state NEW,ESTABLISHED --dport 1194 -j ACCEPT
-A OUTPUT -o ens3 -p udp -m state --state ESTABLISHED --sport 1194 -j ACCEPT
# Allow TCP traffic on port 1194.
-A INPUT -i ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 1194 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 1194 -j ACCEPT
# Allow DNS resolution and limited HTTP/S on ens3.
# Necessary for updating the server and keeping time.
-A INPUT -i ens3 -p udp -m state --state ESTABLISHED --sport 53 -j ACCEPT
-A OUTPUT -o ens3 -p udp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT
-A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 53 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT
-A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 80 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 80 -j ACCEPT
-A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 443 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 443 -j ACCEPT
# Allow traffic on the TUN interface.
-A INPUT -i tun0 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT
# Allow forwarding traffic only from the VPN.
-A FORWARD -i tun0 -o ens3 -s 10.8.1.0/24 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
COMMIT
И потом:
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o ens3 -j MASQUERADE
п.с. правила позаимствовал с туториалов линода. Кстати, если поднять один сервер надо, то советую:
https://www.linode.com/docs/networking/vpn/set-up-a-hardened-openvpn-server/