Вам необходимо правильно настроить OpenVPN, а затем ограничить процесс Apache только отправкой пакетов через туннельный интерфейс (созданный OpenVPN).
Я предполагаю, что вы уже настроили OpenVPN в качестве клиента на этом компьютере DigitalOcean, вы уже знаете, как подключиться к серверу OpenVPN, который будет вас анонимным, и сосредоточимся только на части ограничения приложений:
Ваш apache должен работать от имени конкретного пользователя. Это, вероятно, www-data
если вы находитесь на Ubuntu. Узнайте, какой это пользователь.
Используя iptables, мы можем для любого процесса, владельцем которого является www-data
, ограничить трафик определенным интерфейсом (tun0):
iptables -A OUTPUT -m owner --uid-owner www-data \! -o tun0 -j REJECT
Это в основном говорит о том, что, если владелец имеет www-данные и пытается отправить пакеты (выходные данные), а интерфейс не настроен на tun0, отклоните пакеты.
Проверьте и убедитесь, что apache теперь находится на сервере VPN, а не на сервере DigitalOcean.
Теперь что касается сохранения этой конфигурации:
- Сохраните конфигурацию iptables:
sudo sh -c "iptables-save > /etc/iptables.rules"
- Используйте перехватчики интерфейса в /etc /network /interfaces, например:
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
Теперь конфигурация должна сохраняться при перезагрузке.