Имеем:
Сервер на FreeBSD 6.0 + ipfw
на нем стоит два интерфейса xl0-192.168.10.200/24 - Локалка
и rl0 - 195.131.22.33/24 - смотрит в интернет
Шлюз 195.131.22.1Что необходимо:
Клиент в локальной сети создает VPN соединение с определенным узлом.
При этом соединение происходит, идет проверка логина и пароля и на этом моменте все долго думает и вываливает ошибку 619: "Не удается подключиться к удаленному компьютеру, поэтому порт подключения закрыт."Если запрещаю доступ данному клиенту в интернет то в файле
/var/log/security
пишется вот такая запись
Feb 6 13:07:20 server kernel: ipfw: 9600 Deny TCP 192.168.10.1:4882 83.102.227.32:1723 in via xl0
при этом до проверки логина и пароля не доходит.
Если включаю инет
(add allow tcp from 192.168.10.1 to any setup keep-state)
то в логах ничего не пишется и висим...
Кто знает что делать?При разрешенном интерфейсе стал смотреть что происходит по трафику
server# tethereal -ixl0 | grep 83.102.227.32
Capturing on xl0
198 4.546142 192.168.10.1 -> 83.102.227.32 TCP 4891 > pptp [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1460
4.703361 83.102.227.32 -> 192.168.10.1 TCP pptp > 4891 [SYN, ACK] Seq=0 Ack=1 Win=4128 Len=0 MSS=536
4.703574 192.168.10.1 -> 83.102.227.32 PPTP Start-Control-Connection-Request
4.759577 83.102.227.32 -> 192.168.10.1 PPTP Start-Control-Connection-Reply
4.759802 192.168.10.1 -> 83.102.227.32 PPTP Outgoing-Call-Request
4.810472 83.102.227.32 -> 192.168.10.1 TCP pptp > 4891 [ACK] Seq=157 Ack=325 Win=3804 Len=0
4.813639 83.102.227.32 -> 192.168.10.1 PPTP Outgoing-Call-Reply
4.832542 192.168.10.1 -> 83.102.227.32 PPTP Set-Link-Info
4.838640 192.168.10.1 -> 83.102.227.32 PPP LCP Configuration Request
5.071054 83.102.227.32 -> 192.168.10.1 TCP pptp > 4891 [ACK] Seq=189 Ack=349 Win=3780 Len=0
315 6.838192 192.168.10.1 -> 83.102.227.32 PPP LCP Configuration Request
508 9.838188 192.168.10.1 -> 83.102.227.32 PPP LCP Configuration Request
702 13.838187 192.168.10.1 -> 83.102.227.32 PPP LCP Configuration Request
974 17.838180 192.168.10.1 -> 83.102.227.32 PPP LCP Configuration Request
1200 21.838201 192.168.10.1 -> 83.102.227.32 PPP LCP Configuration Request
1430 25.838219 192.168.10.1 -> 83.102.227.32 PPP LCP Configuration Request
1469 26.986683 83.102.227.32 -> 192.168.10.1 PPTP Call-Disconnect-Notify
26.986879 192.168.10.1 -> 83.102.227.32 PPTP Stop-Control-Connection-Request
26.990011 83.102.227.32 -> 192.168.10.1 PPTP Stop-Control-Connection-Request
27.030713 83.102.227.32 -> 192.168.10.1 TCP pptp > 4891 [ACK] Seq=353 Ack=365 Win=3764 Len=0
27.031820 192.168.10.1 -> 83.102.227.32 TCP 4891 > pptp [FIN, ACK] Seq=365 Ack=353 Win=65183 Len=0
27.034132 83.102.227.32 -> 192.168.10.1 PPTP Stop-Control-Connection-Reply
27.037114 83.102.227.32 -> 192.168.10.1 TCP pptp > 4891 [FIN, PSH, ACK] Seq=369 Ack=365 Win=3764 Len=0
27.037255 192.168.10.1 -> 83.102.227.32 TCP 4891 > pptp [ACK] Seq=366 Ack=370 Win=65167 Len=0
27.074087 83.102.227.32 -> 192.168.10.1 TCP pptp > 4891 [ACK] Seq=370 Ack=366 Win=3764 Len=0
27.075365 192.168.10.1 -> 83.102.227.32 TCP 4891 > pptp [RST, ACK] Seq=366 Ack=370 Win=0 Len=0
1618 ^C
server#
server# tethereal -irl0 | grep 83.102.227.32
Capturing on rl0
124 1.443478 195.131.22.33 -> 83.102.227.32 TCP 4894 > pptp [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1460
1.482539 83.102.227.32 -> 195.131.22.33 TCP pptp > 4894 [SYN, ACK] Seq=0 Ack=1 Win=4128 Len=0 MSS=536
1.482886 195.131.22.33 -> 83.102.227.32 PPTP Start-Control-Connection-Request
166 1.635065 83.102.227.32 -> 195.131.22.33 PPTP Start-Control-Connection-Reply
1.635520 195.131.22.33 -> 83.102.227.32 PPTP Outgoing-Call-Request
1.684065 83.102.227.32 -> 195.131.22.33 TCP pptp > 4894 [ACK] Seq=157 Ack=325 Win=3804 Len=0
1.687948 83.102.227.32 -> 195.131.22.33 PPTP Outgoing-Call-Reply
1.726526 195.131.22.33 -> 83.102.227.32 PPTP Set-Link-Info
1.778698 83.102.227.32 -> 195.131.22.33 TCP pptp > 4894 [ACK] Seq=189 Ack=349 Win=3780 Len=0
286 3.686669 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
443 5.702603 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
600 7.717793 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
761 9.733477 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
956 11.753332 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
1114 13.765095 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
1271 15.782013 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
1427 17.799175 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
1584 19.813634 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
1781 21.831756 83.102.227.32 -> 195.131.22.33 PPP LCP Configuration Request
1901 23.845070 83.102.227.32 -> 195.131.22.33 PPP LCP Termination Request
23.853871 83.102.227.32 -> 195.131.22.33 PPTP Call-Disconnect-Notify
23.854314 195.131.22.33 -> 83.102.227.32 PPTP Stop-Control-Connection-Request
23.856796 83.102.227.32 -> 195.131.22.33 PPTP Stop-Control-Connection-Request
23.857061 195.131.22.33 -> 83.102.227.32 PPTP Stop-Control-Connection-Reply
1940 23.897481 83.102.227.32 -> 195.131.22.33 TCP pptp > 4894 [ACK] Seq=353 Ack=365 Win=3764 Len=0
23.900417 83.102.227.32 -> 195.131.22.33 PPTP Stop-Control-Connection-Reply
23.903893 83.102.227.32 -> 195.131.22.33 TCP pptp > 4894 [FIN, PSH, ACK] Seq=369 Ack=365 Win=3764 Len=0
23.904161 195.131.22.33 -> 83.102.227.32 TCP 4894 > pptp [FIN, ACK] Seq=381 Ack=370 Win=65167 Len=0
23.907346 83.102.227.32 -> 195.131.22.33 TCP pptp > 4894 [RST] Seq=353 Ack=4036771447 Win=3764 Len=0
23.963536 83.102.227.32 -> 195.131.22.33 TCP pptp > 4894 [RST] Seq=370 Ack=4036771447 Win=0 Len=0
2045 ^C
server#
Победил данную проблемму.
Может кому будет интересно:ipfw="/sbin/ipfw -q"
eif="rl0"
eip="195.131.22.33"
egw="195.131.22.1"
iif="xl0"
iip="192.168.10.200"
inet="192.168.10.0/24"#NAT
${ipfw} add divert natd ip from ${inet} to not ${inet} out via ${eif}
${ipfw} add divert natd ip from any to ${eip} in via ${eif}#VNP
${ipfw} add allow gre from ${eip} to any via ${eif}
${ipfw} add allow tcp from ${eip} to any dst-port 1723 via ${eif} setup keep-state
${ipfw} add allow gre from ${inet} to 83.102.227.32
${ipfw} add allow gre from 83.102.227.32 to ${inet}
Первые два правила общие в VPN
Следующие два разрешат работать только с определенным VPN сервером из
всей локальной сети.
PS. Не забудте что не обхадимо создать правила для разрешения самого доступа в интернет, эти правила будут работать только если человек имеет право доступа в интернет по TCP порту 1723
У меня далее идет:
${ipfw} add fwd 127.0.0.1,3128 tcp from 192.168.10.1 to any 80,8080
${ipfw} add allow tcp from 192.168.10.1 to any setup keep-state
${ipfw} add allow udp from 192.168.10.1 to any keep-state${ipfw} add allow tcp from any to any established
Не в тему но pptp vpn с их mmpe шифрованием вскрываю ...
Так что будьте бдительны ...
Рекомендую openvpn ...