Добрый день. Не получается предоставить доступ в интернет из локальной сети. Ситуация такова: есть две ВМ host1 and host2, host1 имеет только один интерфейс eth0 и два адреса публичный (34.240.13.199) и приватный (10.151.30.57), а host2 имеет интерфейс eht0 и только приватный адрес (10.151.30.19). К вм host2 можно получиь доступ только через host1. Нужно реализовать следующие действия:
- на вм host1 настроить NAT и выпустить host2 в интернет;
- настроить проброс портов таким образом чтобы при подключении по ssh на host1 по порту 2222 подключался к host2.
Для реализации выполнил следующее:
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1 // снял комментарий
sudo sysctl -p
После начал добавлять правила iptables:
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -i eth0 -s 10.151.30.19 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.151.30.19 -o eth0 -j SNAT --to-source 34.240.13.199
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2222 -j DNAT --to-destination 10.151.30.19:22
sudo iptables -t nat -A POSTROUTING -d 10.151.30.19 -p tcp -m tcp --dport 22 -j SNAT --to-source 10.151.30.57
sudo iptables -A INPUT -p tcp -m multiport --dports 22, 9060 -j ACCEPT
После ssh подключения через putty к 34.240.13.199 порт 2222, доступ к машине был получен и смог на нее войти. После чего выполнил команду ping 8.8.8.8 и тут оказалсь что NAT не работает и у меня нет доступа в инет из локальной сети.
Попробовал это испарвить выполнив команду
sudo ip route add default via 10.151.30.57 dev eth0
после чего получил ошибку RTNETLINK answers: File exists
Также добавил dns сервера 8.8.8.8 и 8.8.4.4 в файл
sudo nano /etc/systemd/resolved.conf
после выполнил команду
sudo systemctl restart systemd-resolved
Можете сказать как исправить ситуацию чтобы из локальной сети был доступ в интернет. Может быть нужно добавить еще какие-то правила в iptables.
Перемещено Dimez из linux-org-ru