YardalGedal
@YardalGedal
yeah boy

Почему не запускается OpenVPN?

Настроил сервер (на KVM VPS) и клиент OpenVPN по этому мануалу. Далее подключился клиентом к серверу, и в логах сервера увидел следующую строку
primary virtual IP for client/ip_сервера:18766: 10.8.0.6

Мне нужно чтобы все запросы приходящие на
http://ip_сервера # 80 port
https://ip_сервера # 443 port

уходили на клиентский сервер. Настроил iptables (который почему-то не был установлен на VPS) следующим образом:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.8.0.6:80
iptables -t nat -A PREROUTING -p udp --dport 80 -j DNAT --to-destination 10.8.0.6:80
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.8.0.6:443
iptables -t nat -A PREROUTING -p udp --dport 443 -j DNAT --to-destination 10.8.0.6:443
iptables -t nat -A POSTROUTING -j MASQUERADE


Но, почему-то, не работает.

netstat -tuwpan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      544/sshd
tcp        0    276 ip_сервера:22         37.45.244.85:48312      ESTABLISHED 771/1
tcp        0      0 ip_сервера:22         37.45.211.79:31138      ESTABLISHED 572/0
tcp6       0      0 :::22                   :::*                    LISTEN      544/sshd
udp        0      0 0.0.0.0:1194            0.0.0.0:*                           333/openvpn

  • Вопрос задан
  • 3508 просмотров
Решения вопроса 1
YardalGedal
@YardalGedal Автор вопроса
yeah boy
Нашёл решение для себя отказавшись от использования iptables
Все манипуляции производил на VPS
1. Сначала очистил iptables, чтобы устаревшие правила никак не повлияли на будущую работу
iptables -F
2. Далее установил nginx
sudo apt-get install nginx
3. И в его конфиге прописал настройки для использования его в качестве прокси-сервера с перенаправлением на локальный сервер без статического айпи
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
        worker_connections 768;
        multi_accept on;
}
http {
        sendfile on;
        keepalive_timeout 15;
        proxy_buffers 8 64k;
        proxy_intercept_errors on;
        proxy_connect_timeout 1s;
        proxy_read_timeout 3s;
        proxy_send_timeout 3s;
        server {
            listen 80;
            server_name a.ru b.ru;
            access_log /var/log/nginx/1.access_log;
            error_log /var/log/nginx/1.error_log warn;
            charset utf-8;
            ssi on;
            ssi_value_length 1024;
            location / {
                proxy_pass http://10.8.0.6:9000;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_intercept_errors off;
                proxy_read_timeout 5s;
                proxy_send_timeout 3s;
                gzip on;
                gzip_min_length 1024;
                gzip_proxied expired no-cache no-store private auth;
                gzip_types text/plain application/xml;
            }
        }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vesper-bot
@vesper-bot
Любитель файрволлов
Пакеты, уходящие в VPN, нельзя натить. Добавляйте в POSTROUTING в начало правила для ACCEPT'a пакетов, которые должны лезть в VPN.
Кроме того, а где фильтрация по destination IP в правилах SNAT? Иначе весь HTTP/S трафик вместе с транзитным (возможно, исключая OpenVPN, но не факт) будет отправлен на 10.8.0.6.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы