LINUX.ORG.RU
ФорумAdmin

pptpd & iptables = troubles


0

0

Добрый день. Обнаружил странную проблему. Есть сервер. На нем два фейса: 172.21.152.43 и 192.168.2.230. Есть pptpd сервер, настроенный на прием соединений с фейса 192.168.2.230. Проблема такая: если pptpd стратует раньше iptables, а именно _не_загружены_ модули:

iptable_nat 17646 0 (autoclean) ipt_REJECT 3384 0 (autoclean) ipt_state 568 0 (autoclean) ip_conntrack 19016 0 (autoclean) [iptable_nat ipt_state] iptable_filter 1772 0 (autoclean) ip_tables 12064 6 [iptable_nat ipt_REJECT ipt_state iptable_filter]

то все ок. Мона потом загрузить эти модули и правила iptables, все ок. При этом tcpdump -i eth0 -n proto 47 or port 1723 говорит:

19:45:38.161650 IP 192.168.2.207.1210 > 192.168.2.230.1723: S 1796767244:1796767244(0) win 65535 <mss 1460,nop,nop,sackOK> 19:45:38.161725 IP 192.168.2.230.1723 > 192.168.2.207.1210: S 3909164719:3909164719(0) ack 1796767245 win 5840 <mss 1460,nop,nop,sackOK> 19:45:38.162064 IP 192.168.2.207.1210 > 192.168.2.230.1723: P 1:157(156) ack 1 win 65535: pptp CTRL_MSGTYPE=SCCRQ PROTO_VER(1.0) FRAME_CAP(A) BEARER_CAP(A) MAX_CHAN(0) FIRM_REV(2600) [|pptp] 19:45:38.162174 IP 192.168.2.230.1723 > 192.168.2.207.1210: . ack 157 win 6432 19:45:38.169787 IP 192.168.2.230.1723 > 192.168.2.207.1210: P 1:157(156) ack 157 win 6432: pptp CTRL_MSGTYPE=SCCRP PROTO_VER(1.0) RESULT_CODE(1) ERR_CODE(0) FRAME_CAP() BEARER_CAP() MAX_CHAN(1) FIRM_REV(1) [|pptp] 19:45:38.170390 IP 192.168.2.207.1210 > 192.168.2.230.1723: P 157:325(168) ack 157 win 65379: pptp CTRL_MSGTYPE=OCRQ CALL_ID(16384) CALL_SER_NUM(38212) MIN_BPS(300) MAX_BPS(100000000) BEARER_TYPE(Any) FRAME_TYPE(E) RECV_WIN(64) PROC_DELAY(0) PHONE_NO_LEN(0) [|pptp] 19:45:38.185838 IP 192.168.2.230.1723 > 192.168.2.207.1210: P 157:189(32) ack 325 win 7504: pptp CTRL_MSGTYPE=OCRP CALL_ID(0) PEER_CALL_ID(16384) RESULT_CODE(1) ERR_CODE(0) CAUSE_CODE(0) CONN_SPEED(100000000) RECV_WIN(64) PROC_DELAY(0) PHY_CHAN_ID(0) 19:45:38.187261 IP 192.168.2.230 > 192.168.2.207: call 16384 seq 0 ack 4294967295 gre-ppp-payload

т.е. все гуд, все счастливы.

А если запускать pptpd когда загружены выше перечисленные модули, то tcpdump показывает следующее: 19:38:53.110867 IP 192.168.2.207.1198 > 192.168.2.230.1723: S 4206859207:4206859207(0) win 65535 <mss 1460,nop,nop,sackOK> 19:38:53.110950 IP 192.168.2.230.1723 > 192.168.2.207.1198: S 3485883488:3485883488(0) ack 4206859208 win 5840 <mss 1460,nop,nop,sackOK> 19:38:53.111292 IP 192.168.2.207.1198 > 192.168.2.230.1723: P 1:157(156) ack 1 win 65535: pptp CTRL_MSGTYPE=SCCRQ PROTO_VER(1.0) FRAME_CAP(A) BEARER_CAP(A) MAX_CHAN(0) FIRM_REV(2600) [|pptp] 19:38:53.111411 IP 192.168.2.230.1723 > 192.168.2.207.1198: . ack 157 win 6432 19:38:53.119247 IP 192.168.2.230.1723 > 192.168.2.207.1198: P 1:157(156) ack 157 win 6432: pptp CTRL_MSGTYPE=SCCRP PROTO_VER(1.0) RESULT_CODE(1) ERR_CODE(0) FRAME_CAP() BEARER_CAP() MAX_CHAN(1) FIRM_REV(1) [|pptp] 19:38:53.119864 IP 192.168.2.207.1198 > 192.168.2.230.1723: P 157:325(168) ack 157 win 65379: pptp CTRL_MSGTYPE=OCRQ CALL_ID(0) CALL_SER_NUM(38211) MIN_BPS(300) MAX_BPS(100000000) BEARER_TYPE(Any) FRAME_TYPE(E) RECV_WIN(64) PROC_DELAY(0) PHONE_NO_LEN(0) [|pptp] 19:38:53.135419 IP 192.168.2.230.1723 > 192.168.2.207.1198: P 157:189(32) ack 325 win 7504: pptp CTRL_MSGTYPE=OCRP CALL_ID(0) PEER_CALL_ID(0) RESULT_CODE(1) ERR_CODE(0) CAUSE_CODE(0) CONN_SPEED(100000000) RECV_WIN(64) PROC_DELAY(0) PHY_CHAN_ID(0) 19:38:53.137024 IP 172.21.152.43 > 192.168.2.207: call 0 seq 0 ack 4294967295 gre-ppp-payload

Причем что на втором фейсе pptpd даже не висит! Причем что правила могут быть не загружены (все ACCEPT), а просто висят эти модули. Куда копать ? Лично мне вообще не понятно почему pptpd начинает GRE сессию не с того ип, откуда пришло соединение...

★★★★★

Добрый день. Обнаружил странную проблему. Есть сервер. На нем два фейса:
172.21.152.43 и 192.168.2.230. Есть pptpd сервер, настроенный на прием
соединений с фейса 192.168.2.230. Проблема такая: если pptpd стратует
раньше iptables, а именно _не_загружены_ модули:

iptable_nat            17646   0  (autoclean)
ipt_REJECT              3384   0  (autoclean)
ipt_state                568   0  (autoclean)
ip_conntrack           19016   0  (autoclean) [iptable_nat ipt_state]
iptable_filter          1772   0  (autoclean)
ip_tables              12064   6  [iptable_nat ipt_REJECT ipt_state iptable_filter]

то все ок. Мона потом загрузить эти модули и правила iptables, все ок.
При этом tcpdump -i eth0 -n proto 47 or port 1723 говорит:

19:45:38.161650 IP 192.168.2.207.1210 > 192.168.2.230.1723: S 1796767244:1796767244(0) win 65535
<mss 1460,nop,nop,sackOK>

19:45:38.161725 IP 192.168.2.230.1723 > 192.168.2.207.1210: S 3909164719:3909164719(0) ack
1796767245 win 5840 <mss 1460,nop,nop,sackOK>

19:45:38.162064 IP 192.168.2.207.1210 > 192.168.2.230.1723: P 1:157(156) ack 1 win 65535: pptp
CTRL_MSGTYPE=SCCRQ PROTO_VER(1.0) FRAME_CAP(A) BEARER_CAP(A) MAX_CHAN(0) FIRM_REV(2600) [|pptp]

19:45:38.162174 IP 192.168.2.230.1723 > 192.168.2.207.1210: . ack 157 win 6432

19:45:38.169787 IP 192.168.2.230.1723 > 192.168.2.207.1210: P 1:157(156) ack 157 win 6432: pptp
CTRL_MSGTYPE=SCCRP PROTO_VER(1.0) RESULT_CODE(1) ERR_CODE(0) FRAME_CAP() BEARER_CAP() MAX_CHAN(1)
FIRM_REV(1) [|pptp]

19:45:38.170390 IP 192.168.2.207.1210 > 192.168.2.230.1723: P 157:325(168) ack 157 win 65379:
pptp CTRL_MSGTYPE=OCRQ CALL_ID(16384) CALL_SER_NUM(38212) MIN_BPS(300) MAX_BPS(100000000)
BEARER_TYPE(Any) FRAME_TYPE(E) RECV_WIN(64) PROC_DELAY(0) PHONE_NO_LEN(0) [|pptp]

19:45:38.185838 IP 192.168.2.230.1723 > 192.168.2.207.1210: P 157:189(32) ack 325 win 7504: pptp
CTRL_MSGTYPE=OCRP CALL_ID(0) PEER_CALL_ID(16384) RESULT_CODE(1) ERR_CODE(0) CAUSE_CODE(0)
CONN_SPEED(100000000) RECV_WIN(64) PROC_DELAY(0) PHY_CHAN_ID(0)

19:45:38.187261 IP 192.168.2.230 > 192.168.2.207: call 16384 seq 0 ack 4294967295 gre-ppp-payload

т.е. все гуд, все счастливы.

А если запускать pptpd когда загружены выше перечисленные модули, то
tcpdump показывает следующее:

19:38:53.110867 IP 192.168.2.207.1198 > 192.168.2.230.1723: S 4206859207:4206859207(0) win 65535
<mss 1460,nop,nop,sackOK>

19:38:53.110950 IP 192.168.2.230.1723 > 192.168.2.207.1198: S 3485883488:3485883488(0) ack
4206859208 win 5840 <mss 1460,nop,nop,sackOK>

19:38:53.111292 IP 192.168.2.207.1198 > 192.168.2.230.1723: P 1:157(156) ack 1 win 65535: pptp
CTRL_MSGTYPE=SCCRQ PROTO_VER(1.0) FRAME_CAP(A) BEARER_CAP(A) MAX_CHAN(0) FIRM_REV(2600) [|pptp]

19:38:53.111411 IP 192.168.2.230.1723 > 192.168.2.207.1198: . ack 157 win 6432

19:38:53.119247 IP 192.168.2.230.1723 > 192.168.2.207.1198: P 1:157(156) ack 157 win 6432: pptp
CTRL_MSGTYPE=SCCRP PROTO_VER(1.0) RESULT_CODE(1) ERR_CODE(0) FRAME_CAP() BEARER_CAP() MAX_CHAN(1)
FIRM_REV(1) [|pptp]

19:38:53.119864 IP 192.168.2.207.1198 > 192.168.2.230.1723: P 157:325(168) ack 157 win 65379:
pptp CTRL_MSGTYPE=OCRQ CALL_ID(0) CALL_SER_NUM(38211) MIN_BPS(300) MAX_BPS(100000000)
BEARER_TYPE(Any) FRAME_TYPE(E) RECV_WIN(64) PROC_DELAY(0) PHONE_NO_LEN(0) [|pptp]

19:38:53.135419 IP 192.168.2.230.1723 > 192.168.2.207.1198: P 157:189(32) ack 325 win 7504: pptp
CTRL_MSGTYPE=OCRP CALL_ID(0) PEER_CALL_ID(0) RESULT_CODE(1) ERR_CODE(0) CAUSE_CODE(0)
CONN_SPEED(100000000) RECV_WIN(64) PROC_DELAY(0) PHY_CHAN_ID(0)

19:38:53.137024 IP 172.21.152.43 > 192.168.2.207: call 0 seq 0 ack 4294967295 gre-ppp-payload


Причем что на втором фейсе pptpd даже не висит! Причем что правила
могут быть не загружены (все ACCEPT), а просто висят эти модули.
Куда копать ? Лично мне вообще не понятно почему pptpd начинает GRE
сессию не с того ип, откуда пришло соединение...

roy ★★★★★
() автор топика
Ответ на: комментарий от roy

В доке в ppptp нашел такое:

Symptom: GRE packets are emitted by the client, but none are returned by the server, but a tunnel from another machine on the same LAN works fine. The client is behind a NAT gateway with respect to the server.

Diagnosis: PPTP servers will not allow a connection to start from the same IP address that they perceive an active connection on already.

Solution: use alternate PPTP server IP addresses.

В принципе то, что у меня как я понял. Но непонятно решение. Что мне
делать то ? )

roy ★★★★★
() автор топика
Ответ на: комментарий от roy

Поставил ядро 2.4.32, вкомпилил модули Netfilter в ядро - в итоге ВПН вообще перестал работать, т.е. всегда начинает GRE сессию с друго IP адреса. Посоветуйте что можно еще поробовать?

anonymous
()
Ответ на: комментарий от kvit

К сожалению щас ifconfig не могу показать, т.к. щас загружено ядро с 
скомпиленными внутри модулями netfilter, и соединение вообще не 
устанавливается.

pptpd.conf:

ppp /usr/local/sbin/pppd
option /etc/ppp/options.pptpd

debug

listen 192.168.2.230
localip 10.0.0.1
remoteip 10.0.0.2-254

pptpd 1.3.0
pppd 2.4.4b
kernel 2.4.32-ow-mppe-mppc

roy ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.