The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите разобраться с маршрутизацией vpn"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (VPN / Linux)
Изначальное сообщение [ Отслеживать ]

"Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от hardcoreuk (ok) on 08-Авг-12, 10:19 
Есть есть сервер, на нем установлен OpenVPN сервер и такая таблица маршрутизации
hardcoreuk # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0           192.168.231.1   0.0.0.0         UG    4      0        0 eth0
10.231.0.0      10.231.0.2      255.255.255.0   UG    0      0        0 tun0
10.231.0.2      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo
192.168.231.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

был шлюз и на нем был прописан такой маршрут
ID    Destination IP Address    Subnet Mask      Default Gateway    Status    Modify
1    10.231.0.0            255.255.255.0    192.168.231.42         Enabled   Modify Delete

Я заменит шлюз на тачку с Zentyal и добавил вот такой маршрут
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.231.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
xx.xx.xx.xx     0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.231.0.0      192.168.231.42  255.255.255.0   UG    0      0        0 eth1

теперь vpn клиенты видят только 192.168.231.42 и 192.168.231.1, а необходимый 192.168.231.250 не видят.
Я не могу понять в чем дело.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от reader (ok) on 08-Авг-12, 11:07 
>[оверквотинг удален]
> xx.xx.xx.xx     0.0.0.0      
>   255.255.255.0   U     0
>      0      
>   0 eth0
> 10.231.0.0      192.168.231.42  255.255.255.0   UG
>    0      0  
>       0 eth1
> теперь vpn клиенты видят только 192.168.231.42 и 192.168.231.1, а необходимый 192.168.231.250
> не видят.
> Я не могу понять в чем дело.

192.168.231.42 это я так понимаю OpenVPN сервер , 192.168.231.1 это шлюз?

таблицу маршрутизации с 192.168.231.250 покажите, маршрута к 10.231.0.0 там наверно нет, и тогда правила пакетного фильтра с 192.168.231.1 смотрите

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от hardcoreuk (ok) on 08-Авг-12, 11:13 
>[оверквотинг удален]
>>   0 eth0
>> 10.231.0.0      192.168.231.42  255.255.255.0   UG
>>    0      0
>>       0 eth1
>> теперь vpn клиенты видят только 192.168.231.42 и 192.168.231.1, а необходимый 192.168.231.250
>> не видят.
>> Я не могу понять в чем дело.
> 192.168.231.42 это я так понимаю OpenVPN сервер , 192.168.231.1 это шлюз?
> таблицу маршрутизации с 192.168.231.250 покажите, маршрута к 10.231.0.0 там наверно нет,
> и тогда правила пакетного фильтра с 192.168.231.1 смотрите

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.231.1   0.0.0.0         UG    3      0        0 eth0
127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo
192.168.231.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0


http://s3.hostingkartinok.com/uploads/images/2012/08/58e88e1...

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от reader (ok) on 08-Авг-12, 11:30 
>[оверквотинг удален]
>      0 eth0
> 127.0.0.0       127.0.0.1    
>   255.0.0.0       UG  
>   0      0  
>      0 lo
> 192.168.231.0   0.0.0.0        
> 255.255.255.0   U     0  
>    0        
> 0 eth0
> http://s3.hostingkartinok.com/uploads/images/2012/08/58e88e1...

с адресами я так понимаю угадал. тогда у вас получается вот что. от vpn-клиента пакет идет с 192.168.231.42 напрямую к 192.168.231.250, а вот ответ , так как на 192.168.231.250 нет маршрута к 10.231.0.0, пойдет через 192.168.231.1. то правило что вы показали бесполезно, нужно правило для ответного пакета. запустите tcpdump на eth1 шлюза и увидите что происходит.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от hardcoreuk (ok) on 08-Авг-12, 11:39 
>[оверквотинг удален]
>> 192.168.231.0   0.0.0.0
>> 255.255.255.0   U     0
>>    0
>> 0 eth0
>> http://s3.hostingkartinok.com/uploads/images/2012/08/58e88e1...
> с адресами я так понимаю угадал. тогда у вас получается вот что.
> от vpn-клиента пакет идет с 192.168.231.42 напрямую к 192.168.231.250, а вот
> ответ , так как на 192.168.231.250 нет маршрута к 10.231.0.0, пойдет
> через 192.168.231.1. то правило что вы показали бесполезно, нужно правило для
> ответного пакета. запустите tcpdump на eth1 шлюза и увидите что происходит.

Это правило я прописываю на шлюзе?
я так понимаю должно быть 10.231.0.0/16 gw 192.168.231.42 ???
для этого такого правила тоже нужно создавать правила в pf?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от reader (ok) on 08-Авг-12, 11:53 
>[оверквотинг удален]
>>>    0
>>> 0 eth0
>>> http://s3.hostingkartinok.com/uploads/images/2012/08/58e88e1...
>> с адресами я так понимаю угадал. тогда у вас получается вот что.
>> от vpn-клиента пакет идет с 192.168.231.42 напрямую к 192.168.231.250, а вот
>> ответ , так как на 192.168.231.250 нет маршрута к 10.231.0.0, пойдет
>> через 192.168.231.1. то правило что вы показали бесполезно, нужно правило для
>> ответного пакета. запустите tcpdump на eth1 шлюза и увидите что происходит.
> Это правило я прописываю на шлюзе?
> я так понимаю должно быть 10.231.0.0/16 gw 192.168.231.42 ???

на шлюзе уже есть маршрут правда не к 10.231.0.0/16, а к 10.231.0.0/24.

если такой же маршрут пропишите на 192.168.231.250, то ответы пойдут уже не через шлюз, а напрямую на vpn-сервер, но если vpn-клиенты будут хотить не только на 192.168.231.250, а и на другие 192.168.231.0/24, то что бы не прописывать маршруты у всех 192.168.231.0/24, напишите правило для пакетов от 192.168.231.0/24 к 10.231.0.0/24(16) на шлюзе.

> для этого такого правила тоже нужно создавать правила в pf?

pf шлюза или vpn-сервера?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от hardcoreuk (ok) on 08-Авг-12, 12:39 
>[оверквотинг удален]
>> Это правило я прописываю на шлюзе?
>> я так понимаю должно быть 10.231.0.0/16 gw 192.168.231.42 ???
> на шлюзе уже есть маршрут правда не к 10.231.0.0/16, а к 10.231.0.0/24.
> если такой же маршрут пропишите на 192.168.231.250, то ответы пойдут уже не
> через шлюз, а напрямую на vpn-сервер, но если vpn-клиенты будут хотить
> не только на 192.168.231.250, а и на другие 192.168.231.0/24, то что
> бы не прописывать маршруты у всех 192.168.231.0/24, напишите правило для пакетов
> от 192.168.231.0/24 к 10.231.0.0/24(16) на шлюзе.
>> для этого такого правила тоже нужно создавать правила в pf?
> pf шлюза или vpn-сервера?

Я запутался...
1)Мне нужно прописать 10.231.0.0/24 gw 192.168.231.42 и правило
2)Помогите понять что за правило. Мой мозг уже отказывается работать.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от reader (ok) on 08-Авг-12, 12:48 
>[оверквотинг удален]
>> если такой же маршрут пропишите на 192.168.231.250, то ответы пойдут уже не
>> через шлюз, а напрямую на vpn-сервер, но если vpn-клиенты будут хотить
>> не только на 192.168.231.250, а и на другие 192.168.231.0/24, то что
>> бы не прописывать маршруты у всех 192.168.231.0/24, напишите правило для пакетов
>> от 192.168.231.0/24 к 10.231.0.0/24(16) на шлюзе.
>>> для этого такого правила тоже нужно создавать правила в pf?
>> pf шлюза или vpn-сервера?
> Я запутался...
> 1)Мне нужно прописать 10.231.0.0/24 gw 192.168.231.42 и правило
> 2)Помогите понять что за правило. Мой мозг уже отказывается работать.

покаместь сделайте правило пакетного фильтра на шлюзе, разрешите прохождения пакетов от
192.168.231.0/24 к 10.231.0.0/24

там linux? вывод iptables-save покажите, только без белых ip

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от hardcoreuk (ok) on 08-Авг-12, 13:11 
>[оверквотинг удален]
>>> бы не прописывать маршруты у всех 192.168.231.0/24, напишите правило для пакетов
>>> от 192.168.231.0/24 к 10.231.0.0/24(16) на шлюзе.
>>>> для этого такого правила тоже нужно создавать правила в pf?
>>> pf шлюза или vpn-сервера?
>> Я запутался...
>> 1)Мне нужно прописать 10.231.0.0/24 gw 192.168.231.42 и правило
>> 2)Помогите понять что за правило. Мой мозг уже отказывается работать.
> покаместь сделайте правило пакетного фильтра на шлюзе, разрешите прохождения пакетов от
> 192.168.231.0/24 к 10.231.0.0/24
> там linux? вывод iptables-save покажите, только без белых ip

Я создал правило в pf


# Generated by iptables-save v1.4.4 on Wed Aug  8 13:03:18 2012
*nat
:PREROUTING ACCEPT [215322:18286413]
:POSTROUTING ACCEPT [16546:1247167]
:OUTPUT ACCEPT [32583:2447087]
:postmodules - [0:0]
:premodules - [0:0]
-A PREROUTING -j premodules
-A PREROUTING -d xx.xx.xx.101/32 -i eth0 -p udp -m udp --dport 1194 -j DNAT --to-destination 192.168.231.42:1194
-A PREROUTING -d xx.xx.xx.101/32 -i eth0 -p tcp -m tcp --dport 142 -j DNAT --to-destination 192.168.231.42:142
-A POSTROUTING -j postmodules
-A POSTROUTING ! -s xx.xx.xx.101/32 -o eth0 -j SNAT --to-source xx.xx.xx.101
-A postmodules -s 10.10.0.0/24 -o eth1 -j MASQUERADE
COMMIT
# Completed on Wed Aug  8 13:03:18 2012
# Generated by iptables-save v1.4.4 on Wed Aug  8 13:03:18 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [5:238]
:OUTPUT DROP [0:0]
:drop - [0:0]
:fdns - [0:0]
:fdrop - [0:0]
:ffwdrules - [0:0]
:fglobal - [0:0]
:fmodules - [0:0]
:fnoexternal - [0:0]
:fnospoof - [0:0]
:fnospoofmodules - [0:0]
:fobjects - [0:0]
:fredirects - [0:0]
:ftoexternalonly - [0:0]
:idrop - [0:0]
:iexternal - [0:0]
:iexternalmodules - [0:0]
:iglobal - [0:0]
:iintservs - [0:0]
:imodules - [0:0]
:inoexternal - [0:0]
:inointernal - [0:0]
:inospoof - [0:0]
:inospoofmodules - [0:0]
:log - [0:0]
:odrop - [0:0]
:oglobal - [0:0]
:ointernal - [0:0]
:omodules - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state INVALID -j idrop
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j inospoof
-A INPUT -j iexternalmodules
-A INPUT -j iexternal
-A INPUT -j inoexternal
-A INPUT -j imodules
-A INPUT -j iintservs
-A INPUT -j iglobal
-A INPUT -p icmp ! -f -m icmp --icmp-type 8 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 0 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 3 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 4 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 11 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 12 -m state --state NEW -j ACCEPT
-A INPUT -j idrop
-A FORWARD -m state --state INVALID -j fdrop
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j fnospoof
-A FORWARD -j fredirects
-A FORWARD -j fmodules
-A FORWARD -j ffwdrules
-A FORWARD -j fnoexternal
-A FORWARD -j fdns
-A FORWARD -j fobjects
-A FORWARD -j fglobal
-A FORWARD -p icmp ! -f -m icmp --icmp-type 8 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 0 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 3 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 4 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 11 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 12 -m state --state NEW -j ACCEPT
-A FORWARD -j fdrop
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m state --state INVALID -j odrop
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j ointernal
-A OUTPUT -j omodules
-A OUTPUT -j oglobal
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 8 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 0 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 3 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 4 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 11 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 12 -m state --state NEW -j ACCEPT
-A OUTPUT -j odrop
-A drop -j DROP
-A fdns -d xx.xx.xx.254/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A fdns -d xx.xx.xx.254/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A fdns -d 8.8.8.8/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A fdns -d 8.8.8.8/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A fdns -d 8.8.4.4/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A fdns -d 8.8.4.4/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A fdrop -j drop
-A ffwdrules -i eth1 -j RETURN
-A ffwdrules -d 192.168.231.42/32 -p udp -m udp --sport 142 --dport 142 -j ACCEPT
-A ffwdrules -d 192.168.231.42/32 -p tcp -m tcp --sport 142 --dport 142 -j ACCEPT
-A ffwdrules -s 10.231.0.0/24 -d 192.168.231.0/24 -j ACCEPT
-A fglobal -s 192.168.231.0/24 -d 10.231.0.0/24 -j ACCEPT
-A fglobal -j ACCEPT
-A fnoexternal -i eth0 -m state --state NEW -j fdrop
-A fnospoof -j fnospoofmodules
-A fnospoof -s xx.xx.xx.0/24 ! -i eth0 -j fdrop
-A fnospoof -s 192.168.231.0/24 ! -i eth1 -j fdrop
-A fredirects -d 192.168.231.42/32 -i eth0 -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT
-A fredirects -d 192.168.231.42/32 -i eth0 -p tcp -m state --state NEW -m tcp --dport 142 -j ACCEPT
-A ftoexternalonly -o eth0 -j ACCEPT
-A ftoexternalonly -j fdrop
-A idrop -j drop
-A iexternal -i eth1 -j RETURN
-A iexternal -i tap0 -j RETURN
-A iexternal -i tap2 -j RETURN
-A iexternal -p udp -m udp --sport 1199 -m state --state NEW -j ACCEPT
-A iexternalmodules -i eth1 -j RETURN
-A iexternalmodules -i tap0 -j RETURN
-A iexternalmodules -i tap2 -j RETURN
-A iexternalmodules -i tap0 -p udp -m udp --dport 520 -j ACCEPT
-A iexternalmodules -i tap2 -p udp -m udp --dport 520 -j ACCEPT
-A iexternalmodules -i eth0 -p udp -m udp --dport 1198 -j ACCEPT
-A iexternalmodules -p udp -m udp --dport 1199 -j ACCEPT
-A iglobal -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A iglobal -p tcp -m tcp --dport 389 -m state --state NEW -j drop
-A iglobal -p tcp -m tcp --dport 6677 -m state --state NEW -j drop
-A iglobal -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
-A iglobal -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT
-A iglobal -p udp -m udp --dport 67 -m state --state NEW -j ACCEPT
-A iglobal -p udp -m udp --dport 69 -m state --state NEW -j ACCEPT
-A iglobal -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A iglobal -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A imodules -i tap0 -p udp -m udp --dport 520 -j ACCEPT
-A imodules -i tap2 -p udp -m udp --dport 520 -j ACCEPT
-A inoexternal -i eth0 -m state --state NEW -j idrop
-A inospoof -j inospoofmodules
-A inospoof -s xx.xx.xx.0/24 ! -i eth0 -j idrop
-A inospoof -s 192.168.231.0/24 ! -i eth1 -j idrop
-A log -j RETURN
-A odrop -j drop
-A oglobal -m state --state NEW -j ACCEPT
-A ointernal -d xx.xx.xx.254/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A ointernal -d xx.xx.xx.254/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A ointernal -d 8.8.8.8/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A ointernal -d 8.8.8.8/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A ointernal -d 8.8.4.4/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A ointernal -d 8.8.4.4/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A ointernal -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A ointernal -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A omodules -o tap0 -p udp -m udp --dport 520 -j ACCEPT
-A omodules -o tap2 -p udp -m udp --dport 520 -j ACCEPT
-A omodules -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Wed Aug  8 13:03:18 2012
# Generated by iptables-save v1.4.4 on Wed Aug  8 13:03:18 2012
*mangle
:PREROUTING ACCEPT [12199455:9118573112]
:INPUT ACCEPT [722989:80934345]
:FORWARD ACCEPT [11456765:9036401724]
:OUTPUT ACCEPT [667638:78310483]
:POSTROUTING ACCEPT [12103342:9113377158]
:CHECKIP-TEST - [0:0]
:FAILOVER-TEST - [0:0]
-A PREROUTING -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A PREROUTING -m mark --mark 0x0/0xff -m mac --mac-source 00:11:43:EB:03:C6 -j MARK --set-xmark 0x2/0xffffffff
-A PREROUTING -m mark --mark 0x0/0xff -j MARK --set-xmark 0x2/0xffffffff
-A PREROUTING -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A OUTPUT -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A OUTPUT -m mark --mark 0x0/0xff -j MARK --set-xmark 0x2/0xffffffff
-A OUTPUT -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A OUTPUT -j FAILOVER-TEST
-A OUTPUT -j CHECKIP-TEST
COMMIT
# Completed on Wed Aug  8 13:03:18 2012

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Помогите разобраться с маршрутизацией vpn"  +/
Сообщение от hardcoreuk (ok) on 08-Авг-12, 13:22 
>[оверквотинг удален]
> --set-xmark 0x2/0xffffffff
> -A PREROUTING -m mark --mark 0x0/0xff -j MARK --set-xmark 0x2/0xffffffff
> -A PREROUTING -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
> -A OUTPUT -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
> -A OUTPUT -m mark --mark 0x0/0xff -j MARK --set-xmark 0x2/0xffffffff
> -A OUTPUT -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
> -A OUTPUT -j FAILOVER-TEST
> -A OUTPUT -j CHECKIP-TEST
> COMMIT
> # Completed on Wed Aug  8 13:03:18 2012

Все спасибо большое, я разобрался!

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру