Для настройки правил iptables, чтобы разрешить только трафик через VPN туннель, вы можете использовать следующие команды:
1. Очистите все текущие правила iptables:
```
sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -t nat -F
sudo iptables -t nat -X
```
2. Разрешите только трафик через VPN туннель (предположим, что VPN интерфейс называется tun0):
```
sudo iptables -A INPUT -i tun0 -j ACCEPT
sudo iptables -A OUTPUT -o tun0 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -j ACCEPT
sudo iptables -A FORWARD -o tun0 -j ACCEPT
sudo iptables -A INPUT -j DROP
sudo iptables -A OUTPUT -j DROP
sudo iptables -A FORWARD -j DROP
```
3. Сохраните правила:
```
sudo iptables-save > /etc/iptables.rules
```
Чтобы ограничить доступ к внешнему миру через определенные интерфейсы и установить ограничения на все соединения, кроме тех, что проходят через VPN туннель, вы можете использовать аналогичные правила, но добавить дополнительные условия для ограничения доступа через другие интерфейсы.
Например, если USB свисток имеет интерфейс usb0, и вы хотите разрешить доступ только через VPN туннель (tun0) и не разрешать доступ через usb0, вы можете добавить следующие правила:
```
sudo iptables -A INPUT -i tun0 -j ACCEPT
sudo iptables -A OUTPUT -o tun0 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -j ACCEPT
sudo iptables -A FORWARD -o tun0 -j ACCEPT
sudo iptables -A INPUT -i usb0 -j DROP
sudo iptables -A OUTPUT -o usb0 -j DROP
sudo iptables -A FORWARD -i usb0 -j DROP
sudo iptables -A FORWARD -o usb0 -j DROP
sudo iptables -A INPUT -j DROP
sudo iptables -A OUTPUT -j DROP
sudo iptables -A FORWARD -j DROP
```
Помните, что перед применением новых правил важно убедиться, что они не нарушат работу необходимых сервисов или соединений. Также обязательно сохраните правила после настройки с помощью команды `sudo iptables-save > /etc/iptables.rules`.