Done.
http://ru.posix.wikia.com/wiki/PPTP
all
Кушать подано. Садитесь жрать, пожалуйста!

Модератор: Модераторы разделов
ну как сказать. не то, чтобы обещал добавить. просто предлагал вывод давать в двух вариантах.(Unicorn @ Dec 25 2006, в 10:15) писал(а):Помнится, ты обещал добавить в руководство параллельное использование команды ip
Это еще в силе?
sash-kan писал(а): ↑25.12.2006 14:52ну как сказать. не то, чтобы обещал добавить. просто предлагал вывод давать в двух вариантах.(Unicorn @ Dec 25 2006, в 10:15) писал(а):Помнится, ты обещал добавить в руководство параллельное использование команды ip
Это еще в силе?
и тут получается, что по выводу того же route (а это для меня не то чтобы темный лес, но с _очень_ большим трудом поддается пониманию) надо из головы нарисовать вывод ip r ):
могу, конечно, и пофантазировать… (:
в основном, добавил. после варианта ifconfig/route добавил слово «или» а затем — вариант с ip. возможно, не очень доступно выглядит. если у кого есть время и идеи, как сделать покрасивее, — you are welcome.(Unicorn @ Dec 25 2006, в 10:15) писал(а):Помнится, ты обещал добавить в руководство параллельное использование команды ip
не подскажешь, почему мой ник sash-kan мог не понравиться движку и он переименовал меня в Sash-kan (с большой буквы)?(polachok @ Dec 19 2006, в 20:38) писал(а):как насчет закинуть сюда - ru.posix.wikia.com/PPTP и совместными усилиями редактировать?
Код: Выделить всё
. /etc/ppp/config.vpn
IP_LIST="${IP_LIST}
`${HOST_CMD} ${VPN_SERVER} | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+'`"
ROUTE_FAILED="0"
for ADDRESS in `echo "${IP_LIST}"`
do
route add -host ${ADDRESS} gw ${DEF_GATEWAY} || ROUTE_FAILED="1"
done
Код: Выделить всё
HOST_CMD="host"
VPN_SERVER="vpn.corbina.net"
DEF_GATEWAY="10.184.0.17"
IP_LIST="games1.corbina.net \
games2.corbina.net \
games3.corbina.net \
dc.corbina.net \
search.corbina.net \
irc.corbina.net \
corbina.tv \
homenet.corbina.net \
torrent.corbina.net \
files.corbina.net \
ftpg.corbina.net \
video.corbina.tv \
megafilms.ru \
mara.corbina.net"
не совсем понял — а при чем тут какая-то corbina? это имя Unicorn использовал в инструкции в качестве «рыбы».
а задумана инструкция как универсальное руководство.
Код: Выделить всё
route -n add -host IP_ADDRESS1
route -n add -host IP_ADDRESS2
route -n add -host IP_ADDRESS3
....
route -n add -host IP_ADDRESSN
Это сильно усложнит и так не самую простую для новичков тему.
так может быть, Вам стоит написать статейку по этому поводу?
Код:
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x13267c26> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xf2fb411c> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xf2fb411c> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x13267c26> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x13267c26]
rcvd [LCP EchoReq id=0x0 magic=0xf2fb411c]
sent [LCP EchoRep id=0x0 magic=0x13267c26]
rcvd [CHAP Challenge id=0xc8 <f123af8ae1f4b9dd3d9b44d3c49f5436>, name = "titan"]
sent [CHAP Response id=0xc8 <69feaba8e45ae5769fcc2ea645d2c55600000000000000000ff3eafcd3e0918489dd78f6ef3bf
fcb5aae77ffded8651200>, name = "supersecret"]
rcvd [LCP EchoRep id=0x0 magic=0xf2fb411c]
rcvd [CHAP Success id=0xc8 "S=3D91DBDD5FC76FB80B29B4F9BD852D3AC42A4BFC"]
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [CCP ConfReq id=0x1 <mppe +H -M -S +L -D -C>]
sent [CCP ConfReq id=0x1]
sent [CCP ConfRej id=0x1 <mppe +H -M -S +L -D -C>]
rcvd [IPCP TermAck id=0x1]
rcvd [CCP ConfAck id=0x1]
rcvd [LCP TermReq id=0x2 "MPPE required but peer refused"]
LCP terminated by peer (MPPE required but peer refused)
sent [LCP TermAck id=0x2]
Connection terminated.
Script pptp 172.24.8.5 --nolaunchpppd finished (pid 3348), status = 0x0
Код:
using channel 8
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x866e2345> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xc84e8bc5> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xc84e8bc5> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x866e2345> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x866e2345]
rcvd [LCP EchoReq id=0x0 magic=0xc84e8bc5]
sent [LCP EchoRep id=0x0 magic=0x866e2345]
rcvd [CHAP Challenge id=0xd3 <846c26d14ebeb56a070413f6ada8591f>, name = "titan"]
sent [CHAP Response id=0xd3 <d18b73092c89033c53c0f7469ededa8400000000000000003398a7750fb598698d3ad392ca3b1
3fa0f5e1fb128564f1500>, name = "supersecret"]
rcvd [LCP EchoRep id=0x0 magic=0xc84e8bc5]
rcvd [CHAP Success id=0xd3 "S=8D97B9F1D972DA5A22D8B475CB5DA95DD0197869"]
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [CCP ConfReq id=0x1 <mppe +H -M -S +L -D -C>]
MPPE required but peer negotiation failed
sent [LCP TermReq id=0x2 "MPPE required but peer negotiation failed"]
sent [CCP ConfRej id=0x1 <mppe +H -M -S +L -D -C>]
rcvd [LCP TermReq id=0x2 "MPPE required but peer negotiation failed"]
sent [LCP TermAck id=0x2]
rcvd [LCP TermAck id=0x2]
Connection terminated.
Код:
using channel 12
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x2e1d63ab> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x516f03d0> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x516f03d0> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x2e1d63ab> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x2e1d63ab]
rcvd [LCP EchoReq id=0x0 magic=0x516f03d0]
sent [LCP EchoRep id=0x0 magic=0x2e1d63ab]
rcvd [CHAP Challenge id=0x96 <c80b0d6f75cabcd599de5e0dd66ef040>, name = "titan"]
sent [CHAP Response id=0x96 <7d0902b09c3db55bc34f84298e65cae40000000000000000c72205b7bd3319759924735111688
c4b1cb8082d330dfae600>, name = "supersecret"]
rcvd [LCP EchoRep id=0x0 magic=0x516f03d0]
rcvd [CHAP Success id=0x96 "S=6D6AF9CF0897E0BF75C55C1AEEDBD77877F515D9"]
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 <mppe +H -M -S +L -D -C>]
rcvd [CCP ConfReq id=0x1 <mppe +H -M -S +L -D -C>]
sent [CCP ConfAck id=0x1 <mppe +H -M -S +L -D -C>]
rcvd [CCP ConfAck id=0x1 <mppe +H -M -S +L -D -C>]
MPPE 40-bit stateless compression enabled
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 172.24.0.1>]
sent [IPCP ConfAck id=0x1 <addr 172.24.0.1>]
rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x2 <addr 213.148.24.88>]
sent [IPCP ConfReq id=0x3 <addr 213.148.24.88>]
rcvd [IPCP ConfAck id=0x3 <addr 213.148.24.88>]
local IP address 213.148.24.88
remote IP address 172.24.0.1
Script /etc/ppp/ip-up started (pid 3532)
Script /etc/ppp/ip-up finished (pid 3532), status = 0x0
Код: Выделить всё
ppp:2345:respawn:/usr/sbin/pppd nodetach call provider
Код:
#!/bin/sh
while [ $# -ge 1 ]; do
case "$1" in
--quick|-q)
QUICK=true
shift
;;
-*)
echo "\
Usage: pon [OPTIONS] [provider] [arguments]
-q|--quick pppd hangs up after all ip-up scripts are run
If pon is invoked without arguments, /etc/ppp/ppp_on_boot file will be
run, presuming it exists and is executable. Otherwise, a PPP connection
will be started using settings from /etc/ppp/peers/provider.
If you specify one argument, a PPP connection will be started using
settings from the appropriate file in the /etc/ppp/peers/ directory, and
any additional arguments supplied will be passed as extra arguments to
pppd.
"
exit 0
;;
*)
break
;;
esac
done
if [ ! -r /etc/ppp/peers/ ]; then
echo "Error: only members of the 'dip' group can use this command."
exit 1
fi
if [ "$1" ]; then
PROVIDER=$1
shift
fi
if [ -z "$PROVIDER" ]; then
if [ -x /etc/ppp/ppp_on_boot ]; then
[ "$QUICK" ] && touch /var/run/ppp-quick
exec /etc/ppp/ppp_on_boot
fi
# try the default script
PROVIDER=provider
fi
if [ ! -e "/etc/ppp/peers/$PROVIDER" ]; then
echo "\
The file /etc/ppp/peers/$PROVIDER does not exist. Please create it or use
a command line argument to use another file in the /etc/ppp/peers/ directory."
exit 1
fi
[ "$QUICK" ] && touch /var/run/ppp-quick
exec /usr/sbin/pppd call $PROVIDER "$@"
Код:
#!/bin/sh
# $Id: poff,v 1.8 1999/08/28 16:34:51 phil Exp $
# Written by John Hasler <john@dhh.gt.org> and based on work
# by Phil Hands <phil@hands.com>. Distributed under the GNU GPL
if [ -x /usr/bin/kill ]; then
KILL="/usr/bin/kill"
else
KILL="/bin/kill"
fi
SIG=TERM
DONE="stopped"
MODE=""
usage ()
{
cat <<!EOF!
usage: $0 [option] [provider]
options:
-r Cause pppd to drop the line and redial.
-d Toggle the state of pppd's debug option.
-c Cause pppd to renegotiate compression.
-a Stop all pppd's. 'provider' will be ignored.
-h Print this help summary and exit.
-v Print version and exit.
none Stop pppd.
Options may not be combined.
If 'provider' is omitted pppd will be stopped or signalled if and only if
there is exactly one running unless the '-a' option was given. If
'provider' is supplied the pppd controlling the connection to that
provider will be stopped or signalled.
!EOF!
}
# Get option. If there are none replace the "?" that getopts puts in
# FLAG on error with "null".
getopts rdcavh FLAG
if [ "$?" -ne 0 ]; then
FLAG="null"
fi
# Check for additional options. Should be none.
getopts :rdcavh DUMMY
if [ "$?" -eq 0 ]; then
echo "$0: Illegal option -- ${OPTARG}."
exit 1
fi
case $FLAG in
"r") SIG=HUP; DONE=signalled; shift ;;
"d") SIG=USR1; DONE=signalled; shift ;;
"c") SIG=USR2; DONE=signalled; shift ;;
"a") MODE="all"; shift ;;
"v") echo "$0$Revision: 1.8 $_TrickToPrint_RCS_Revision"; exit 0 ;;
"h") usage; exit 0 ;;
"?") exit 1;
esac
# Get the PIDs of all the pppds running. Could also get these from
# /var/run, but pppd doesn't create .pid files until ppp is up.
PIDS=$(pidof pppd)
# poff is pointless if pppd isn't running.
if [ -z "$PIDS" ]; then
echo "$0: No pppd is running. None ${DONE}."
exit 1
fi
# Find out how many pppd's are running.
N=$(echo "$PIDS" | wc -w)
# If there are no arguments we can't do anything if there is more than one
# pppd running.
if [ "$#" -eq 0 -a "$N" -gt 1 -a $FLAG != "a" ]; then
echo "$0: More than one pppd running and no "-a" option and
no arguments supplied. Nothing ${DONE}."
exit 1
fi
# If either there are no arguments or '-a' was specified kill all the
# pppd's.
if [ "$#" -eq 0 -o "$MODE" = "all" ]; then
$KILL -$SIG $PIDS || {
echo "$0: $KILL failed. None ${DONE}."
exit 1
}
exit 0
fi
# There is an argument, so kill the pppd started on that provider.
PEER=$(echo $1 | sed -e 's#/#\\/#g')
PID=$(ps -o pid,cmd axw | awk "/^ *[0-9]* *(\/usr\/sbin\/)?pppd call $PEER( |\$)/ {print \$1}")
if [ "$PID" ]; then
$KILL -$SIG $PID || {
echo "$0: $KILL failed. None ${DONE}."
exit 1
}
else
echo "$0: I could not find a pppd process for provider '$1'. None ${DONE}."
exit 1
fi
exit 0
Код: Выделить всё
[lexa@lexa bin]$ cat start-pptp
#!/bin/bash
echo "Starting pptp client..."
LOG="/var/log/start-pptp.log"
echo "==============================">>$LOG
echo -n "start-pptp at ">>$LOG
date "+%d.%m.%Y %T">>$LOG
echo "Adding routes to the routing table..."
route add -net xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx gw xxx.xxx.xxx.xxx
route add -host xxx.xxx.xxx.xxx gw xxx.xxx.xxx.xxx
route add -host xxx.xxx.xxx.xxx gw xxx.xxx.xxx.xxx
echo "Deleting default route..."
route del default
echo "Connecting to pptp server..."
pptp providername.ru >>$LOG
#echo "Stopping shorewall..."
#shorewall stop
[lexa@lexa bin]$ cat stop-pptp
#!/bin/bash
LOG="/var/log/start-pptp.log"
echo -n "Stop at ">>$LOG
date "+%d.%m.%Y %T">>$LOG
echo "Disconnecting from internet..."
#echo "Starting shorewall..."
#shorewall start
echo "Killing pptp and pppd..."
killall pptp
killall pppd
echo "To restart internet connection call restart-pptp"
[lexa@lexa bin]$ cat restart-pptp
#!/bin/bash
echo "Restarting internet connection"
echo "Start pptp client..."
pptp providername.ru
#echo "Stopping shorewall..."
#shorewall stop