VPN сервер на linux (предпочтительно на SLES)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

VZhiK84
Сообщения: 67
ОС: OpenSUSE 11.1, SLES 10

VPN сервер на linux

Сообщение VZhiK84 »

Кто чем пользуется? Какие бесплатные варианты существуют? Где есть толковая документация? Пока нашел только openvpn, но не нашел к нему толковое описание кроме его собственного хелпа.
P.S. шлюз на SLES11, хочу удаленным клиентам с динамическими IP безопасно (!) дать доступ до внутреннего терминального сервака.
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: VPN сервер на linux

Сообщение Goodvin »

OpenVPN рулит и педалит, настоятельно рекомендую использовать его.
Подробнейшее описание настройки - находится в официальной документации на сайте самого проекта.

Ну и еще была пару лет назад обширная статья в журнале "Системный Администратор".
Кроме того, в сети полным-полно русскоязычных хауту.
Спасибо сказали:
Аватара пользователя
McLeod095
Сообщения: 477
ОС: Люблю слаку

Re: VPN сервер на linux

Сообщение McLeod095 »

Хотел как нибудь расписать свою конфигурацию но руки никак не доходят.

могу помочь вот своим конфигом с небольшими комментами

Код: Выделить всё

#каталог в который будет произведен переход и относительно которого будут использоваться пути
cd /etc/openvpn
#порт
port 1194
#Протокол
proto udp
#устройство
dev tun0
#CA сертификат
ca /etc/openvpn/ssl/keys/ca.crt
#Сам сертификат сервера
cert /etc/openvpn/ssl/keys/server.crt
#Ключ от сертификата сервера
key /etc/openvpn/ssl/keys/server.key
#Ключ Диффи Хельмана
dh /etc/openvpn/ssl/keys/dh2048.pem
# Являемся tls сервером
tls-server
#Меняем TLS каждые 60 секунд
reneg-sec 60
# Проверка отозванных сертификатов
crl-verify /etc/openvpn/ssl/keys/crl.pem
#Пул IP адресов
server 10.10.10.0 255.255.255.128
#Метод шифрования
cipher AES-256-CBC
# Каталог с конфигурацией для каждого клиента (не использую)
client-config-dir /etc/openvpn/clients
#Сжатие трафика
comp-lzo
# Ну здесь я думаю понятно
user openvpn
group openvpn
# скрипт выполняемый для добавления и удаления маршрутов
iproute /etc/openvpn/unpriv_ip
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
# Сервер запускается в chroot окружении
chroot /var/chroot/openvpn
keepalive 10 60
push "ping 10"
push "ping-restart 60"
# Я думаю что здесь тоже все понятно
push "dhcp-option DNS 10.101.0.4"
push "dhcp-option DNS 10.100.0.4"
push "dhcp-option DOMAIN мой_домен"
push "dhcp-option NBT 8"
push "route 10.101.0.0 255.255.0.0"
push "route 10.100.0.0 255.255.0.0"
push "route 192.168.176.0 255.255.255.0"
push "route 192.168.177.4 255.255.255.255"
keysize 256
status-version 2
mtu-test
script-security 3 system
# Данный скрипт запускается при подключении пользователя и его отключении. В скрипте в зависимости от имени пользователя прописываются правила iptables.
learn-address /etc/openvpn/firewall.sh


Ну а это сам скрипт

Код: Выделить всё

#!/bin/sh

#    Данный скрипт выполняется при добавлении, удалении внутреннних маршрутов до клиентов OpenVPN
#    Количество вызываемых программ ограничено т.к. OpenVPN находится в chroot окружении
#
#
#            Внимание
#    В скриптах обязательно использовать полные пути к вызываемым программам
#
#


# Список пользователей (CN записи в сертификате) которые получают расширенные правила firewall (Если CN содержит пробелы то вписывать в двойных кавычках "")
Admins=(admin1 admin2 admin3)

# Список пользователей (CN записи в сертификате) которые получают урезанные правила firewall
Users=(user1 user2 user3 user4)

# IP адрес, 2 передаваемый параметр
IP=$2

# Имя (CN), 3 передаваемый параметр
NAME=$3

# Обявление переменной и присвоение пути к команде sudo
SUDO="/usr/bin/sudo"

# Обявление переменной и присвоение пути к команде iptaples
IPTABLES="/sbin/iptables"
LOG="2>/dev/null"

# Интерфейс OpenVPN
TUN="tun0"

# Интерфейс сети
ETH="eth0"

# Дата
DATE=`/bin/date +%a" "%b" "%e" "%T" "%Y`
# Определение ip адреса OenVPN интерфейса
SERVER=`sudo /sbin/ip address list | /bin/awk "/$TUN/,//{print}" | /bin/egrep 'inet' | /bin/awk -F" " '{print $2}'`
#echo $SERVER

#FW_Admins="-A OPENVPN"

# Функция добавления правил iptables для пользователей имеющих расширенные правила
create_admins() {
    # Создание цепочек для определенного пользователя, цепочки именуются по ip адресу пользователя

    # В этой цепочке описывать правила FORWARD
    $SUDO $IPTABLES -N $IP 2>/dev/null

    # В этой цепочке описывать правила для INPUT на OpenVPN интерфейсе
    $SUDO $IPTABLES -N ${IP}_in 2>/dev/null

    # В этой цепочке описывать правила для OUTPUT на OpenVPN интерфейсе
    $SUDO $IPTABLES -N ${IP}_out 2>/dev/null

    # Добавление в цепочку OPENVPN правил для FORWARD
    $SUDO $IPTABLES -A OPENVPN -i $TUN -o $ETH -s $IP -j $IP  2>/dev/null
    $SUDO $IPTABLES -A OPENVPN -o $TUN -i $ETH -d $IP -j $IP 2>/dev/null

    # Добавление в цепочку OPENVPN правил для INPUT
    $SUDO $IPTABLES -A OPENVPN -i $TUN -s $IP -d $SERVER -j ${IP}_in 2>/dev/null
    $SUDO $IPTABLES -A OPENVPN -i $TUN -s $IP -d 192.168.177.4 -j ${IP}_in 2>/dev/null

    # Добавление в цепочку OPENVPN правил для OUTPUT
    $SUDO $IPTABLES -A OPENVPN -o $TUN -d $IP -s $SERVER -j ${IP}_out 2>/dev/null
    $SUDO $IPTABLES -A OPENVPN -o $TUN -d $IP -s 192.168.177.4 -j ${IP}_out 2>/dev/null

    # Разрешаем icmp пакеты от клиентов к ВПН интерфейсу сервера
    $SUDO $IPTABLES -A ${IP}_in -s $IP -i $TUN -d $SERVER -p icmp -j icmp_packets 2>/dev/null
    $SUDO $IPTABLES -A ${IP}_out -s $SERVER -d $IP -o $TUN -p icmp -j icmp_packets 2>/dev/null

    # Разрешаем обращение к MAIL на 192.168.177.4
    $SUDO $IPTABLES -A ${IP}_in -s $IP -d 192.168.177.4 -i $TUN -p tcp --dport 25 -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A ${IP}_out -d $IP -s 192.168.177.4 -o $TUN -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 2>/dev/null

    # Разрешаем обращение ко всем хостам в сетях по всем протоколам и портам
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 10.101.0.0/16 -p all -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 10.100.0.0/16 -p all -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 192.168.176.0/24 -p all -j ACCEPT 2>/dev/null

    # Разрешаем обращение из сети к VPN клиентам только созданных клиентом соединений
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 10.101.0.0/16 -d $IP -m state --state ESTABLISHED,RELATED -p all -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 10.100.0.0/16 -d $IP -m state --state ESTABLISHED,RELATED -p all -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 192.168.176.0/24 -d $IP -m state --state ESTABLISHED,RELATED -p all -j ACCEPT 2>/dev/null
}


# Функция добавления правил iptables для пользователей имеющих урезанные правила
create_users() {
    # Создание цепочек для определенного пользователя, цепочки именуются по ip адресу пользователя

    # В этой цепочке описывать правила FORWARD
    $SUDO $IPTABLES -N $IP 2>/dev/null

    # В этой цепочке описывать правила для INPUT на OpenVPN интерфейсе
    $SUDO $IPTABLES -N ${IP}_in 2>/dev/null

    # В этой цепочке описывать правила для OUTPUT на OpenVPN интерфейсе
    $SUDO $IPTABLES -N ${IP}_out 2>/dev/null

    # Добавление в цепочку OPENVPN правил для FORWARD
    $SUDO $IPTABLES -A OPENVPN -i $TUN -o $ETH -s $IP -j $IP 2>/dev/null
    $SUDO $IPTABLES -A OPENVPN -o $TUN -i $ETH -d $IP -j $IP 2>/dev/null

    # Добавление в цепочку OPENVPN правил для INPUT
    $SUDO $IPTABLES -A OPENVPN -i $TUN -s $IP -d $SERVER -j ${IP}_in 2>/dev/null
    $SUDO $IPTABLES -A OPENVPN -i $TUN -s $IP -d 192.168.177.4 -j ${IP}_in 2>/dev/null

    # Добавление в цепочку OPENVPN правил для OUTPUT
    $SUDO $IPTABLES -A OPENVPN -o $TUN -d $IP -s $SERVER -j ${IP}_out 2>/dev/null
    $SUDO $IPTABLES -A OPENVPN -o $TUN -d $IP -s 192.168.177.4 -j ${IP}_out 2>/dev/null

    # Разрешаем обращение к MAIL на 192.168.177.4
    $SUDO $IPTABLES -A ${IP}_in -s $IP -d 192.168.177.4 -i $TUN -p tcp --dport 25 -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A ${IP}_out -d $IP -s 192.168.177.4 -o $TUN -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 2>/dev/null

    # Разрещаем icmp пакеты от клиентов к ВПН интерфейсу сервера
    $SUDO $IPTABLES -A ${IP}_in -s $IP -i $TUN -d $SERVER -p icmp -j icmp_packets 2>/dev/null
    $SUDO $IPTABLES -A ${IP}_out -s $SERVER -d $IP -o $TUN -p icmp -j icmp_packets 2>/dev/null

    # Запрещаем пользователям обращаться к ВПН интерфейсу сервера
    $SUDO $IPTABLES -A ${IP}_in -s $IP -d $SERVER -i $TUN -j DROP 2>/dev/null
    $SUDO $IPTABLES -A ${IP}_out -d $IP -s $SERVER -o $TUN -j DROP 2>/dev/null

    # Разрешаем обращение ко всем хостам в сетях по протоколу TCP и определенным портам
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 10.101.0.0/16 -p tcp -m multiport --destination-port 80,8080,443,3389 -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 10.100.0.0/16 -p tcp -m multiport --destination-port 80,8080,443,3389 -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 192.168.176.0/24 -p tcp -m multiport --destination-port 80,8080,443,3389 -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 10.101.0.4 -p udp --dport 53 -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 10.100.0.4 -p udp --dport 53 -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 10.101.0.0/16 -p icmp -j icmp_packets 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 10.100.0.0/16 -p icmp -j icmp_packets 2>/dev/null
    $SUDO $IPTABLES -A $IP -s $IP -i $TUN -o $ETH -d 192.168.176.0/24 -p icmp -j icmp_packets 2>/dev/null

    # Разрешаем обращение из сети к VPN клиентам только созданных клиентом соединений
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 10.101.0.0/16 -d $IP -m state --state ESTABLISHED,RELATED -p tcp -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 10.100.0.0/16 -d $IP -m state --state ESTABLISHED,RELATED -p tcp -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 192.168.176/24 -d $IP -m state --state ESTABLISHED,RELATED -p tcp -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 10.101.0.4 -d $IP -m state --state ESTABLISHED,RELATED -p udp -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 10.100.0.4 -d $IP -m state --state ESTABLISHED,RELATED -p udp -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 10.101.0.0/16 -d $IP -p icmp -j icmp_packets 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 10.100.0.0/16 -d $IP -p icmp -j icmp_packets 2>/dev/null
    $SUDO $IPTABLES -A $IP -o $TUN -i $ETH -s 192.168.176.0/24 -d $IP -p icmp -j icmp_packets 2>/dev/null
}


# Функция удаления правил (Должны удаляться все созданные цепочки)
delete() {
    $SUDO $IPTABLES -D OPENVPN -i $TUN -s $IP -d 192.168.177.4 -j ${IP}_in 2>/dev/null
    $SUDO $IPTABLES -D OPENVPN -o $TUN -s 192.168.177.4 -d $IP -j ${IP}_out 2>/dev/null
    $SUDO $IPTABLES -D OPENVPN -i $TUN -s $IP -d $SERVER -j ${IP}_in 2>/dev/null
    $SUDO $IPTABLES -D OPENVPN -o $TUN -d $IP -s $SERVER -j ${IP}_out 2>/dev/null
    $SUDO $IPTABLES -D OPENVPN -s $IP -i $TUN -o $ETH -j $IP 2>/dev/null
    $SUDO $IPTABLES -D OPENVPN -d $IP -o $TUN -i $ETH -j $IP 2>/dev/null
    $SUDO $IPTABLES -F $IP 2>/dev/null
    $SUDO $IPTABLES -F ${IP}_in 2>/dev/null
    $SUDO $IPTABLES -F ${IP}_out 2>/dev/null
    $SUDO $IPTABLES -X $IP 2>/dev/null
    $SUDO $IPTABLES -X ${IP}_in 2>/dev/null
    $SUDO $IPTABLES -X ${IP}_out 2>/dev/null
}

create_iam() {
    $SUDO $IPTABLES -A ${IP}_in -s $IP -i $TUN -d $SERVER -j ACCEPT 2>/dev/null
    $SUDO $IPTABLES -A ${IP}_out -d $IP -o $TUN -s $SERVER -j ACCEPT 2>/dev/null
}


add_create() {
    CREATE=0
    for i in "${Admins[@]}"; do
    if [ "$NAME" = "$i" ]; then
        if $SUDO $IPTABLES -L -nv | egrep -e Chain\ $IP 2>/dev/null
        then
        delete
        fi
        CREATE=1
        echo "Create Admins-policy for user - $NAME with ip -$IP"
        create_admins
    fi
    done

    for i in "${Users[@]}"; do
    if [ "$NAME" = "$i" ]; then
        if $SUDO $IPTABLES -L -nv | egrep -e Chain\ $IP 2>/dev/null
        then
        delete
        fi
        CREATE=1
        echo "Create User-policy for user - $NAME  with ip -$IP"
        create_users
    fi
    done

    if [ "$NAME" = "iam" ]; then
    create_iam
    fi

    if [ "$CREATE" -eq "0" ]; then
    echo "Don't create policy for user - $NAME with ip -$IP"
    fi
}


case "$1" in
    add)
        echo "$DATE Add user - $NAME with ip - $IP"
        add_create
       ;;
    update)
        delete
        echo "$DATE update user $NAME ip address $IP"
        add_create
       ;;
    delete)
        echo "$DATE delete user - $NAME with ip - $IP"
        delete
       ;;
esac


Сразу скажу что все работает нормально. Пока нареканий не было.

Есть правда нюансы. т.к. у меня это дело крутится на centos с включенным SELinux то пришлось повозиться для того что бы запихнуть его в chroot. Также еще выкладываю скрипт создания chroot

Код: Выделить всё

#!/bin/bash

# Скрипт создает chroot окружение


#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
#APPS="/bin/sh /bin/bash /bin/cp /bin/ls /bin/mkdir /bin/mv /bin/pwd
#/bin/rm /bin/rmdir /usr/bin/id /usr/bin/ssh /bin/ping
#/usr/bin/dircolors /bin/vi /usr/bin/sftp
#/usr/libexec/openssh/sftp-server"

# Каталог chroot окружения
CHROOT="/var/chroot/openvpn"

if [ ! -d $CHROOT ];then
    echo "Нет такого каталога $CHROOT"
    exit 1
fi

# программы необходимые в chroot окружении
APPS="/bin/awk /bin/sh /sbin/ip /sbin/iptables /bin/echo /bin/egrep /bin/bash /usr/bin/sudo /sbin/nologin /bin/date"


# Создание нового chroot окружения
case "$1" in
    new)
    LIBL=`ldd /bin/sh | tail -n 1 | awk '{print $1}'`
    LIBD=`dirname $LIBD`
    LIBF=`basename $LIBD`

    mkdir -p $CHROOT/$LIBD
    cp $LIBL $CHROOT/$LIBL
    cp $LIBD/libnss_files.so.2 $CHROOT/$LIBD
    mkdir -p $CHROOT/etc
    cp /etc/nsswitch.conf $CHROOT/etc

    mkdir -p $CHROOT/dev
    mknod $CHROOT/dev/null c 1 3
    mknod $CHROOT/dev/zero c 1 5
    chmod 666 $CHROOT/dev/null $CHROOT/dev/zero


    for prog in $APPS; do

        mkdir -p $CHROOT/`dirname $prog` #> /dev/null 2>&1
        cp $prog $CHROOT/$prog

        # obtain a list of related libraries
        ldd $prog > /dev/nullq
        if [ "$?" = 0 ]; then
        LIBS=`ldd $prog | awk '{ print $3 }'`

        for l in $LIBS; do
            mkdir -p $CHROOT/`dirname $l` #> /dev/null 2>&1
            cp $l $CHROOT/$l  #> /dev/null 2>&1
        done

        fi

        if [ "$prog" = "/bin/date" ]; then
        mkdir -p $CHROOT/etc
        cp /etc/localtime $CHROOT/etc
        fi

        if [ "$prog" = "/sbin/iptables" ]; then
        mkdir -p $CHROOT/$LIBD/iptables
        cp -a $LIBD/iptables/ $CHROOT/$LIBD/
        fi

        if [ "$prog" = "/usr/bin/sudo" ]; then
        mkdir -p $CHROOT/etc
        mkdir -p $CHROOT/etc/pam.d
        cp /etc/pam.d/system-auth /etc/pam.d/sudo $CHROOT/etc/pam.d
        cp /etc/passwd /etc/group /etc/sudoers $CHROOT/etc
        echo "Отредактируйте файлы"
        echo "                 $CHROOT/etc/passwd"
        echo "                $CHROOT/etc/group"
        echo "                $CHROOT/etc/sudoers"
        fi
    done
;;
    add)
    if [ "$2" = "" ]; then
        echo "Имя команды не задано"
        exit 1
    else
        prog=`which $2`
        mkdir -p $CHROOT/`dirname $prog`
        cp $prog ${CHROOT}${prog}
        ldd $prog > /dev/nullq
        if [ "$?" = 0 ]; then
        LIBS=`ldd $prog | awk ' { print $3}'`
        for l in $LIBS; do
            mkdir -p $CHROOT/`dirname $l` #> /dev/null 2>&1
            cp $l $CHROOT/$l  #> /dev/null 2>&1
        done
        if [ "$prog" = "/sbin/iptables" ]; then
            LIBD=`ldd $prog | egrep 'ld-linux' | awk '{print $1}'`
            LIBD=`dirname $LIBD`
            mkdir -p $CHROOT/$LIBD/iptables
            cp -a $LIBD/iptables/ $CHROOT/$LIBD/
        fi

        if [ "$prog" = "/usr/bin/sudo" ]; then
            mkdir -p $CHROOT/etc
            mkdir -p $CHROOT/etc/pam.d
            cp /etc/pam.d/system-auth /etc/pam.d/sudo $CHROOT/etc/pam.d
            cp /etc/passwd /etc/group /etc/sudoers $CHROOT/etc
            echo "Отредактируйте файлы"
            echo "                 $CHROOT/etc/passwd"
            echo "                $CHROOT/etc/group"
            echo "                $CHROOT/etc/sudoers"
        fi

            if [ "$prog" = "/bin/date" ]; then
            mkdir -p $CHROOT/etc
            cp /etc/localtime $CHROOT/etc
        fi

        fi
    fi


;;
    *)
    echo "Используйте "`basename $0`" new|add"
esac
"Work PC" E6750/2GB/Asus P5B Deluxe/2x250GB/6600GT 128/Slackware Current (Win 2003 in VmWare)
New Work: E6400/3GB/Arch
Home Book: Asus W6k00A/Arch, Asus 701/Arch
Спасибо сказали:
leksstav
Сообщения: 331

Re: VPN сервер на linux

Сообщение leksstav »

Вот например статья хорошая
http://www.sys-adm.org.ua/security/openvpn...#c3%D0%A1%D1%82

Ниже мой конфиг OpenVPN сервера

Код: Выделить всё

port 1194

# TCP or UDP server?
proto tcp
;proto udp


dev tap


ca ca.crt
cert trust.crt
key trust.key  # This file should be kept secret

dh dh1024.pem

server 192.168.99.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.100.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

#push "redirect-gateway def1"

push "dhcp-option DNS 192.168.99.1"
push "dhcp-option WINS 192.168.99.1"

# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

# Enable compression on the VPN link.
# If you enable it here, you must also
# enable it in the client config file.
comp-lzo

# The maximum number of concurrently connected
# clients we want to allow.
max-clients 10

# It's a good idea to reduce the OpenVPN
# daemon's privileges after initialization.
#
# You can uncomment this out on
# non-Windows systems.
user nobody
group nobody

# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status openvpn-status.log
log /var/log/openvpn.log
verb 3

# Silence repeating messages.  At most 20
# sequential messages of the same message
# category will be output to the log.
;mute 20

А, это мои настройки iptables касающиеся VPN-на

Код: Выделить всё

LAN_VPN_RANGE="192.168.99.0/24"
##Correcting, uncomment next line
iptables -t nat -A POSTROUTING -s $LAN_VPN_RANGE -o $INET_IFACE -j SNAT --to-source $INET_IP #VPN USERS
##Openvpn MASQUERADE
iptables -t nat -A POSTROUTING -s $LAN_VPN_RANGE -o $LAN_IFACE -j MASQUERADE     #MASQUERADE dlya Openvpn
##Correcting, uncomment next lines
iptables -A INPUT -p tcp -s $LAN_VPN_RANGE --dport 80 -j ACCEPT # http
iptables -A INPUT -p tcp -s $LAN_VPN_RANGE --dport 3128 -j ACCEPT # squid
iptables -A INPUT -p tcp -s $LAN_VPN_RANGE --dport 22 -j ACCEPT # ssh
iptables -A INPUT -p tcp -s $LAN_VPN_RANGE --dport 25 -j ACCEPT # smtp
iptables -A INPUT -p tcp -s $LAN_VPN_RANGE --dport 110 -j ACCEPT # pop3
iptables -A INPUT -p tcp -s $LAN_VPN_RANGE --dport 445 -j ACCEPT # smb

Гуру, OpenVPN мона не писать что у тебя что то не так настроено. У меня всё устраивает и всё работает нормально.
Посмотри может что то пригодится когда будеш настраивать свой сервер.

Я, так же настроил подсчёт OpenVPN трафика через netacct-mysql, это название пакета ! А статистику цепляю из мускула самописным скриптом и вывожу её в читаемый веб фейс.
Спасибо сказали: