wok-current rev 18017
ppp:add ppp.cgi
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat May 02 16:52:55 2015 +0200 (2015-05-02) |
parents | 5b7188f5cd91 |
children | 86becc422032 |
files | ppp/receipt ppp/stuff/ppp.cgi |
line diff
1.1 --- a/ppp/receipt Sat May 02 15:04:14 2015 +0200 1.2 +++ b/ppp/receipt Sat May 02 16:52:55 2015 +0200 1.3 @@ -12,6 +12,8 @@ 1.4 CONFIG_FILES="/etc/ppp" 1.5 HOST_ARCH="i486 arm" 1.6 1.7 +SUGGESTED="tazpanel" 1.8 + 1.9 # Rules to configure and make the package. 1.10 compile_rules() 1.11 { 1.12 @@ -40,11 +42,14 @@ 1.13 # Rules to gen a SliTaz package suitable for Tazpkg. 1.14 genpkg_rules() 1.15 { 1.16 - mkdir -p $fs/usr 1.17 + mkdir -p $fs/usr $fs/var/www/tazpanel/menu.d/network 1.18 cp -a $install/usr/sbin $fs/usr 1.19 [ -d "$install/usr/lib" ] && cp -a $install/usr/lib $fs/usr 1.20 cp -a $stuff/pppnc-server $fs/usr/sbin 1.21 ln $fs/usr/sbin/pppnc-server $fs/usr/sbin/pppnc-client 1.22 + cp -a $stuff/ppp.cgi $fs/var/www/tazpanel 1.23 + ln -s ../../ppp.cgi $fs/var/www/tazpanel/menu.d/network/ppp 1.24 + 1.25 # Config files. 1.26 mkdir -p $fs/etc/ppp/scripts $fs/etc/ppp/ip-up.d $fs/etc/ppp/ip-down.d 1.27 cp $stuff/README.scripts $fs/etc/ppp
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/ppp/stuff/ppp.cgi Sat May 02 16:52:55 2015 +0200 2.3 @@ -0,0 +1,338 @@ 2.4 +#!/bin/sh 2.5 +# 2.6 +# Network/PPP configuration CGI interface 2.7 +# 2.8 +# Copyright (C) 2015 SliTaz GNU/Linux - BSD License 2.9 +# 2.10 + 2.11 +# Common functions from libtazpanel 2.12 +. lib/libtazpanel 2.13 +get_config 2.14 + 2.15 + 2.16 +case "$1" in 2.17 + menu) 2.18 + TEXTDOMAIN_original=$TEXTDOMAIN 2.19 + export TEXTDOMAIN='ppp' 2.20 + 2.21 + cat <<EOT 2.22 +<li><a data-icon="removable" href="ppp.cgi" data-root>$(_ 'PPP Modem')</a></li> 2.23 +<li><a data-icon="upgrade" href="ppp.cgi#pppnc" data-root>$(_ 'Route shortcut')</a></li> 2.24 +EOT 2.25 + [ "$(which pptp 2>/dev/null)$(which pptpd 2>/dev/null)" ] && cat <<EOT 2.26 +<li><a data-icon="eth" href="ppp.cgi#pptp" data-root>$(_ 'VPN PPTP')</a></li> 2.27 +EOT 2.28 + [ "$(which pppssh 2>/dev/null)" ] && cat <<EOT 2.29 +<li><a data-icon="eth" href="ppp.cgi#pppssh" data-root>$(_ 'VPN PPP/SSH')</a></li> 2.30 +EOT 2.31 + export TEXTDOMAIN=$TEXTDOMAIN_original 2.32 + exit 2.33 +esac 2.34 + 2.35 + 2.36 +# 2.37 +# Commands 2.38 +# 2.39 + 2.40 +case " $(GET) " in 2.41 +*\ setppprtc\ *) 2.42 + if [ "$(GET start_rtc)" -a "$(GET user)" ]; then 2.43 + grep -s "$(GET user)" /etc/ppp/pap-secrets || 2.44 + echo "$(GET user) * $(GET pass)" >> /etc/ppp/pap-secrets 2.45 + grep -s "$(GET user)" /etc/ppp/chap-secrets || 2.46 + echo "$(GET user) * $(GET pass)" >> /etc/ppp/chap-secrets 2.47 + sed -i 's/^name /d' /etc/ppp/options 2.48 + echo "name $(GET user)" >> /etc/ppp/options 2.49 + /etc/ppp/scripts/ppp-off 2.50 + /etc/ppp/scripts/ppp-on & 2.51 + fi 2.52 + if [ "$(GET stop_rtc)" ]; then 2.53 + /etc/ppp/scripts/ppp-off 2.54 + fi 2.55 + ;; 2.56 +*\ setpppoe\ *) 2.57 + if [ "$(GET start_pppoe)" -a "$(GET user)" ]; then 2.58 + grep -s "$(GET user)" /etc/ppp/pap-secrets || 2.59 + echo "$(GET user) * $(GET pass)" >> /etc/ppp/pap-secrets 2.60 + grep -s "$(GET user)" /etc/ppp/chap-secrets || 2.61 + echo "$(GET user) * $(GET pass)" >> /etc/ppp/chap-secrets 2.62 + grep -qs pppoe /etc/ppp/options || cat > /etc/ppp/options <<EOT 2.63 +plugin rp-pppoe.so 2.64 +noipdefault 2.65 +defaultroute 2.66 +mtu 1492 2.67 +mru 1492 2.68 +lock 2.69 +EOT 2.70 + sed -i 's/^name /d' /etc/ppp/options 2.71 + echo "name $(GET user)" >> /etc/ppp/options 2.72 + ( . /etc/network.conf ; pppd $INTERFACE & ) 2.73 + fi 2.74 + if [ "$(GET stop_pppoe)" ]; then 2.75 + killall pppd 2.76 + fi 2.77 + ;; 2.78 +*\ setpppnc\ *) 2.79 + [ "$(GET stop_pppncs)" ] && killall pppnc-server 2.80 + [ "$(GET start_pppncs)" ] && 2.81 + pppnc-server $(GET port) "$(GET localip):$(GET remoteip)" & 2.82 + [ "$(GET stop_pppncc)" ] && killall pppnc-client 2.83 + [ "$(GET start_pppncc)" ] && 2.84 + pppnc-client $(GET serverip) $(GET port) "$(GET routes)" & 2.85 + ;; 2.86 +*\ setpppssh\ *) 2.87 + cat > /etc/ppp/pppssh <<EOT 2.88 +PEER="$(GET peer)" 2.89 +SSHARG="$(GET ssharg)" 2.90 +LOCALIP="$(GET localip)" 2.91 +REMOTEIP="$(GET remoteip)" 2.92 +LOCALPPP="$(GET localpppopt)" 2.93 +REMOTEPPP="$(GET remotepppopt)" 2.94 +ROUTES="$(GET routes)" 2.95 +EOT 2.96 + [ "$(GET pass)" ] && export DROPBEAR_PASSWORD="$(GET pass)" 2.97 + if [ "$(GET send_key)" ]; then 2.98 + ( dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key ; 2.99 + cat /etc/ssh/ssh_host_rsa_key.pub ) 2> /dev/null | \ 2.100 + grep ^ssh | dbclient $(echo $(GET send_key) | sed \ 2.101 + 's/.*\([A-Za-z0-9_\.-]*\).*/\1/') "mkdir .ssh 2> /dev/null ; \ 2.102 + while read key; do for i in authorized_keys authorized_keys2; do \ 2.103 + grep -qs '\$key' .ssh/\$i || echo '\$key' >> .ssh/\$i ; done ; done ; \ 2.104 + chmod 700 .ssh ; chmod 600 .ssh/authorized_keys*" 2.105 + fi 2.106 + if [ "$(GET stop_pppssh)" ]; then 2.107 + ppp="$(sed '/pppd/!d;s/.*="\([^"]*\).*/\1/' /usr/bin/pppssh)" 2.108 + kill $(busybox ps x | grep "$ppp" | awk '/dbclient/{print $1}') 2.109 + fi 2.110 + if [ "$(GET start_pppssh)" ]; then 2.111 + pppssh "$(GET ssharg) $(GET peer)" \ 2.112 + "$(GET localip):$(GET remoteip) $(GET localpppopt)" \ 2.113 + "$(GET remotepppopt)" & 2.114 + fi 2.115 + ;; 2.116 +esac 2.117 + 2.118 +USERNAME="$(sed '/^name/!d;s/^[^ ]* *//' /etc/ppp/options)" 2.119 +PASSWORD="$(awk -v key=$USERNAME "\$1==key{print \$3}" /etc/ppp/pap-secrets)" 2.120 +ACCOUNT="$(sed '/^ACCOUNT=/!d;s/^.*=\([^ \t]*\).*/\1/' /etc/ppp/scripts/ppp-on)" 2.121 +PASSRTC="$(sed '/^PASSWORD=/!d;s/^.*=\([^ \t]*\).*/\1/' /etc/ppp/scripts/ppp-on)" 2.122 +PHONE="$(sed '/^TELEPHONE=/!d;s/^.*=\([^ \t]*\).*/\1/' /etc/ppp/scripts/ppp-on)" 2.123 +TITLE="$(_ 'TazPanel - Network') - $(_ 'PPP Connections')" 2.124 +header 2.125 +xhtml_header | sed 's/id="content"/id="content-sidebar"/' 2.126 +cat << EOT 2.127 +<div id="sidebar"> 2.128 +<section> 2.129 + <header> 2.130 + $(_ 'Documentation') 2.131 + </header> 2.132 + <a data-icon="web" href="http://ppp.samba.org/" target="_blank">$(_ 'PPP web page')</a><p> 2.133 + <a data-icon="help" href="index.cgi?exec=pppd%20--help" target="_blank">$(_ 'PPP help')</a><p> 2.134 + <a data-icon="help" href="index.cgi?exec=man%20pppd" target="_blank">$(_ 'PPP Manual')</a><p> 2.135 +EOT 2.136 +[ "$(which pptp 2>/dev/null)" ] && cat <<EOT 2.137 + <a data-icon="web" href="http://pptpclient.sourceforge.net/" target="_blank">$(_n 'PPTP web page')</a><p> 2.138 + <a data-icon="help" href="index.cgi?exec=pptp" target="_blank">$(_ 'PPTP Help')</a><p> 2.139 +EOT 2.140 +[ "$(which pptpd 2>/dev/null)" ] && cat <<EOT 2.141 + <a data-icon="web" href="http://poptop.sourceforge.net/" target="_blank">$(_n 'PPTPD web page')</a><p> 2.142 + <a data-icon="help" href="index.cgi?exec=pptpd%20--help" target="_blank">$(_ 'PPTPD Help')</a><p> 2.143 +EOT 2.144 +[ "$(which pppssh 2>/dev/null)" ] && cat <<EOT 2.145 + <a data-icon="web" href="http://doc.slitaz.org/en:guides:vpn" target="_blank">$(_n 'VPN Wiki')</a><p> 2.146 + <a data-icon="help" href="index.cgi?exec=dbclient" target="_blank">$(_ 'SSH Help')</a><p> 2.147 +EOT 2.148 +cat << EOT 2.149 + <footer> 2.150 + </footer> 2.151 +</section> 2.152 +<section> 2.153 + <header> 2.154 + $(_ 'Configuration') 2.155 + </header> 2.156 + <a data-icon="conf" href="index.cgi?file=/etc/ppp/scripts/ppp-on" target="_blank">$(_ 'PPP RTC script')</a><p> 2.157 + <a data-icon="conf" href="index.cgi?file=/etc/ppp/scripts/ppp-on-dialer" target="_blank">$(_ 'PPP dailer chat')</a><p> 2.158 + <a data-icon="conf" href="index.cgi?file=/etc/ppp/options" target="_blank">$(_ 'PPP options')</a><p> 2.159 + <a data-icon="conf" href="index.cgi?file=/etc/ppp/chap-secrets" target="_blank">$(_ 'chap users')</a><p> 2.160 + <a data-icon="conf" href="index.cgi?file=/etc/ppp/pap-secrets" target="_blank">$(_ 'pap users')</a><p> 2.161 +EOT 2.162 +for i in /etc/ppp/peers/* ; do 2.163 + [ -s "$i" ] && cat << EOT 2.164 + <a data-icon="conf" href="index.cgi?file=$i" target="_blank">$(basename $i)</a><p> 2.165 +EOT 2.166 +done 2.167 +[ "$(which pptpd 2>/dev/null)" ] && cat <<EOT 2.168 + <a data-icon="conf" href="index.cgi?file=/etc/pptpd.conf" target="_blank">$(_ 'pptpd.conf')</a><p> 2.169 +EOT 2.170 +if [ "$(busybox ps x | grep "pppd" | awk '/modem/{print $1}')" ]; then 2.171 + start_disabled='disabled' 2.172 +else 2.173 + stop_disabled='disabled' 2.174 +fi 2.175 +cat << EOT 2.176 + <footer> 2.177 + </footer> 2.178 +</section> 2.179 +</div> 2.180 + 2.181 +<section> 2.182 + <header> 2.183 + <span data-icon="removable">$(_ 'RTC modem') - 2.184 + $(_ 'Manage RTC Internet connections')</span> 2.185 + </header> 2.186 +<form action="index.cgi" id="indexform"></form> 2.187 +<form method="get" action="?setppprtc"> 2.188 + <table> 2.189 + <tr> 2.190 + <td>$(_ 'Username')</td> 2.191 + <td><input type="text" name="user" size="40" value="$ACCOUNT" /></td> 2.192 + </tr> 2.193 + <tr> 2.194 + <td>$(_ 'Password')</td> 2.195 + <td><input type="text" name="pass" size="40" value="$PASSRTC" /></td> 2.196 + </tr> 2.197 + <tr> 2.198 + <td>$(_ 'Phone number')</td> 2.199 + <td><input type="text" name="phone" size="40" value="$PHONE" /></td> 2.200 + </tr> 2.201 + </table> 2.202 +</form> 2.203 + <footer><!-- 2.204 + --><button form="conf" type="submit" name="start_rtc" data-icon="start" $start_disabled>$(_ 'Start' )</button><!-- 2.205 + --><button form="conf" type="submit" name="stop_rtc" data-icon="stop" $stop_disabled >$(_ 'Stop' )</button><!-- 2.206 + --></footer> 2.207 +</section> 2.208 +EOT 2.209 + 2.210 +if [ "$(which pppoe 2>/dev/null)" ]; then 2.211 + cat <<EOT 2.212 +<a name="pppoe"></a> 2.213 +<section> 2.214 + <header> 2.215 + <span data-icon="eth">$(_ 'Cable Modem') - 2.216 + $(_ 'Manage PPPoE Internet connections')</span> 2.217 + </header> 2.218 +<form method="get" action="?setpppoe"> 2.219 + <table> 2.220 + <tr> 2.221 + <td>$(_ 'Username')</td> 2.222 + <td><input type="text" name="user" size="40" value="$USERNAME" /></td> 2.223 + </tr> 2.224 + <tr> 2.225 + <td>$(_ 'Password')</td> 2.226 + <td><input type="text" name="pass" size="40" value="$PASSWORD" /></td> 2.227 + </tr> 2.228 + </table> 2.229 +</form> 2.230 + <footer><!-- 2.231 + --><button form="conf" type="submit" name="start_pppoe" data-icon="start" >$(_ 'Start' )</button><!-- 2.232 + --><button form="conf" type="submit" name="stop_pppoe" data-icon="stop" >$(_ 'Stop' )</button><!-- 2.233 + --></footer> 2.234 +</section> 2.235 +EOT 2.236 +fi 2.237 + 2.238 +busybox ps x | grep -v grep | grep -q pppnc_server || stops_disabled='disabled' 2.239 +busybox ps x | grep -v grep | grep -q pppnc_client || stopc_disabled='disabled' 2.240 +cat <<EOT 2.241 +<a name="pppnc"></a> 2.242 +<section> 2.243 + <header> 2.244 + <span data-icon="upgrade">$(_ 'Route shortcut') - 2.245 + $(_ 'Reach unreachable networks')</span> 2.246 + </header> 2.247 +<form method="get" action="?setppprc"> 2.248 + <table> 2.249 + <tr> 2.250 + <td>$(_ 'TCP port')</td> 2.251 + <td><input type="text" name="port" size="50" value="1111" /></td> 2.252 + </tr> 2.253 + <tr> <td colspan=2 align=center>--- $(_ 'Server only') ---</td> </tr> 2.254 + <tr> 2.255 + <td>$(_ 'Local IP address')</td> 2.256 + <td><input type="text" name="localip" size="50" value="${LOCALIP:-192.168.254.1}" /></td> 2.257 + </tr> 2.258 + <tr> 2.259 + <td>$(_ 'Remote IP address')</td> 2.260 + <td><input type="text" name="remoteip" size="50" value="${REMOTEIP:-192.168.254.2}" /></td> 2.261 + <tr> <td colspan=2 align=center>--- $(_ 'Client only') ---</td> </tr> 2.262 + <tr> 2.263 + <td>$(_ 'Server IP address')</td> 2.264 + <td><input type="text" name="serverip" size="50" value="1.2.3.4" /></td> 2.265 + </tr> 2.266 + <tr> 2.267 + <td>$(_ 'Server routes')</td> 2.268 + <td><input type="text" name="routes" size="50" value="${ROUTES:-192.168.10.0/24 192.168.20.0/28}" title="$(_ 'Routes on peer network to import')"/></td> 2.269 + </tr> 2.270 + </table> 2.271 +</form> 2.272 + <footer><!-- 2.273 + --><button form="conf" type="submit" name="start_pppncs" data-icon="start" >$(_ 'Start server' )</button><!-- 2.274 + --><button form="conf" type="submit" name="stop_pppncs" data-icon="stop" $stops_disabled>$(_ 'Stop server' )</button><!-- 2.275 + --><button form="conf" type="submit" name="start_pppncc" data-icon="start" >$(_ 'Start client' )</button><!-- 2.276 + --><button form="conf" type="submit" name="stop_pppncc" data-icon="stop" $stopc_disabled>$(_ 'Stop client' )</button><!-- 2.277 + --></footer> 2.278 +</section> 2.279 +EOT 2.280 +if [ "$(which pppssh 2>/dev/null)" ]; then 2.281 + [ -s /etc/ppp/pppssh ] && . /etc/ppp/pppssh 2.282 + ppp="$(sed '/pppd/!d;s/.*="\([^"]*\).*/\1/' /usr/bin/pppssh)" 2.283 + if [ "$(busybox ps x | grep "$ppp" | awk '/dbclient/{print $1}')" ]; then 2.284 + start_disabled='disabled' 2.285 + else 2.286 + stop_disabled='disabled' 2.287 + fi 2.288 + cat <<EOT 2.289 +<a name="pppssh"></a> 2.290 +<section> 2.291 + <header> 2.292 + <span data-icon="eth">$(_ 'Virtual Private Network') - 2.293 + $(_ 'Manage private TCP/IP connections')</span> 2.294 + </header> 2.295 +<form method="get" action="?setpppssh"> 2.296 + <table> 2.297 + <tr> 2.298 + <td>$(_ 'Peer')</td> 2.299 + <td><input type="text" name="peer" size="50" value="${PEER:-user@elsewhere}" /></td> 2.300 + </tr> 2.301 + <tr> 2.302 + <td>$(_ 'SSH options')</td> 2.303 + <td><input type="text" name="ssharg" size="50" value="$SSHARG" /></td> 2.304 + </tr> 2.305 + <tr> 2.306 + <td>$(_ 'Password')</td> 2.307 + <td><input type="password" name="pass" size="50" title="Should be empty to use the SSH key ; useful to send the SSH key only" /></td> 2.308 + </tr> 2.309 + <tr> 2.310 + <td>$(_ 'Local IP address')</td> 2.311 + <td><input type="text" name="localip" size="50" value="${LOCALIP:-192.168.254.1}" /></td> 2.312 + </tr> 2.313 + <tr> 2.314 + <td>$(_ 'Remote IP address')</td> 2.315 + <td><input type="text" name="remoteip" size="50" value="${REMOTEIP:-192.168.254.2}" /></td> 2.316 + </tr> 2.317 + <tr> 2.318 + <td>$(_ 'Local PPP options')</td> 2.319 + <td><input type="text" name="localpppopt" size="50" value="$LOCALPPP" /></td> 2.320 + </tr> 2.321 + <tr> 2.322 + <td>$(_ 'Remote PPP options')</td> 2.323 + <td><input type="text" name="remotepppopt" size="50" value="${REMOTEPPP:-proxyarp}" title="$(_ "You may 'proxyarp' to use the new routes")" /></td> 2.324 + </tr> 2.325 + <tr> 2.326 + <td>$(_ 'Peer routes')</td> 2.327 + <td><input type="text" name="routes" size="50" value="${ROUTES:-192.168.10.0/24 192.168.20.0/28}" title="$(_ 'Routes on peer network to import')"/></td> 2.328 + </tr> 2.329 + </table> 2.330 +</form> 2.331 + <footer><!-- 2.332 + --><button form="conf" type="submit" name="start_pppssh" data-icon="start" $start_disabled>$(_ 'Start' )</button><!-- 2.333 + --><button form="conf" type="submit" name="stop_pppssh" data-icon="stop" $stop_disabled>$(_ 'Stop' )</button><!-- 2.334 + --><button form="conf" type="submit" name="send_key" data-icon="sync" >$(_ 'Send SSH key' )</button><!-- 2.335 + --></footer> 2.336 +</section> 2.337 +EOT 2.338 +fi 2.339 + 2.340 +xhtml_footer 2.341 +exit 0