Ноя 012013
 

Добрый день, хочу поделится опыт поднятия впн канала для серфинга интернета.
Так как на нужно чо бы мы сидели в интернете под левым ip адресом выдаваемом от впски, то придется нам пере-собрать ядро с включением поддержки фаервола (ipfw) и (nat).
Приступим, я выбрал систему FreeBSD.
Ставим mpd5.

# cd /usr/ports/net/mpd5 && make install clean

Создаем конфигурационный файл mpd5.

# touch /usr/local/etc/mpd5/mpd.conf

Теперь настроем mpd5.

# nano /usr/local/etc/mpd5/mpd.conf
default:
        load pptp_server
pptp_server:
# Пространство для пользователя, выделяемые ип адреса.
        set ippool add pool1 10.10.0.5 10.10.0.7
        create bundle template B
        set iface enable proxy-arp
        set iface idle 1800
        set iface enable tcpmssfix
        set ipcp yes vjcomp
# Пул ип адресов для клиентов.
        set ipcp ranges 10.10.0.1/32 ippool pool1 
# dns.
        set ipcp dns 10.10.0.1
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e128
        set mppc yes stateless
        create link template L pptp
        set link action bundle B
        set link enable multilink
        set link yes acfcomp protocomp
#Требуем chap авторизации
        set link no pap chap eap
        set link enable chap
        set link keep-alive 10 60
        set link mtu 1460
# Указываем или сам интерфейс на котором будет случатся mpd5 либо сам ип адрес.
        set pptp self vtnet0
        set link enable incoming

Этого достаточно что бы просто использовать ип адрес впски удаленной.
Теперь нам нужно указать авторизационные данные дя пользователей.

# nano /usr/local/etc/mpd5/mpd.secret
dmitry Qq111111
marine Qq222222 10.10.0.6

Как видим тут, мы разрешили пользоваться воспользоваться впн туннелем двум пользователям.
Структура такая ( Логин Пароль ИП адрес)
Ип адрес можно привязывать жестко, а можно просто, что бы автоматом он сам из пула определялся.
Такс теперь нам нужно настроить резолвинг адресов, воспользуемся штатным средством днс сервером named.

# nano /etc/namedb/named.conf
Из конфигруационного файла named удаляем listen-on       { 127.0.0.1; };
И добавляем на место удаленного
allow-recursion { 127.0.0.1; 10.10.0.0/24;};

Теперь разрешим запуск этих сервисов.

# nano /etc/rc.conf
mpd_enable="YES"
gateway_enable="YES"
named_enable=YES
firewall_enable=YES
firewall_type="/etc/firewall.conf"

Осталось только натсроить фаервол.

nat 1 config if vtnet0 reset same_ports
add nat 1 ip from any to any via vtnet0
add allow ip from any to any

Для того что бы фаервол с натом заработали, пересобирем ядро, можно конечно и без пересборки ядра.
Добавим в конец такие записи.

# Firewal
options        IPFIREWALL
options        IPFIREWALL_VERBOSE
options        IPFIREWALL_VERBOSE_LIMIT=5
options        IPFIREWALL_FORWARD
options        IPDIVERT
options        DUMMYNET
options        IPFIREWALL_DEFAULT_TO_ACCEPT
options        IPFIREWALL_NAT
options        LIBALIAS

Как пересобирать ядру описано тут
Чуть не забыл, разрушаем пересылку пакетов.

sysctl net.inet.ip.forwarding=1

Перезагружаемся и пользуемся нашим впн туннелем.
Смотрим.

# ipfw show
00100    0      0 allow ip from any to any via lo0
00200    0      0 deny ip from any to 127.0.0.0/8
00300    0      0 deny ip from 127.0.0.0/8 to any
00400 6595 647653 nat 1 ip from any to any via vtnet0
00500    0      0 allow ip from any to any
65535  56  4141 allow ip from any to any

 Leave a Reply

(required)

(required)

36 Запросов к базе. 0,350 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.198.210.67