Если ваш сервер OpenVPN видит клиента с его настоящим IP-адресом, а не с адресом сервера, это может значить, что не настроен NAT (преобразование сетевых адресов) для OpenVPN. Сделать так, чтобы сервер и другие ресурсы видели только IP-адрес сервера, можно следующим образом:
### Настройка NAT с помощью iptables
1. **Включите IP forwarding на сервере OpenVPN**:
Это можно сделать, выполнив следующую команду:
```bash
echo 1 > /proc/sys/net/ipv4/ip_forward
```
Чтобы сделать это изменение постоянным, отредактируйте файл `/etc/sysctl.conf` и измените или добавьте строку:
```
net.ipv4.ip_forward=1
```
После изменения файла выполните:
```bash
sysctl -p
```
2. **Настройка iptables**:
Добавьте правила iptables для NAT. Замените `tun0` на ваш интерфейс, который используется для OpenVPN (по умолчанию это обычный `tun0`):
```bash
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
Здесь `eth0` — это интерфейс, который соединен с интернетом. Убедитесь, что используете правильный интерфейс.
Также добавьте правила для разрешения доступа к VPN клиентам:
```bash
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
```
3. **Сохраните правила iptables**:
После настройки iptables вам потребуется сохранить эти правила, чтобы они применялись после перезагрузки. В зависимости от вашей системы это может быть сделано с помощью:
```bash
iptables-save > /etc/iptables/rules.v4
```
Или с помощью системного сервиса, например, `netfilter-persistent`.
### Ограничение доступа к сервисам
Чтобы разрешить доступ к определенным сервисам только для пользователей VPN, вы можете добавить дополнительные правила iptables. Например, если у вас есть сервис, работающий на порту 80 (HTTP), вы можете сделать следующее:
1. **Блокировка доступа для всех, кроме VPN**:
```bash
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j REJECT
```
2. **Разрешить доступ с VPN**:
```bash
iptables -A INPUT -i tun0 -p tcp --dport 80 -j ACCEPT
```
### Примечание
- Проверьте конфигурацию OpenVPN и убедитесь, что настройка `push "redirect-gateway def1"` включена, чтобы перенаправлять весь трафик через VPN.
- Перед внесением изменений в iptables рекомендуется создать резервную копию текущих настроек, чтобы иметь возможность восстановить их в случае ошибки.
- Тестируйте настройки после внесения изменений, чтобы убедиться, что все работает как ожидалось.