Ticket #1356: ziproxy-webif-2.patch

Datei ziproxy-webif-2.patch, 6.3 KB (hinzugefügt von M66B, vor 7 Jahren)

Support for transparent proxy, authentication & deny list

  • make/ziproxy/files/.language

     
     1languages 
     2{ de en } 
     3default 
     4{ en } 
     5files 
     6{ 
     7    usr/lib/cgi-bin/ziproxy.cgi 
     8} 
  • make/ziproxy/files/root/usr/lib/cgi-bin/ziproxy.cgi

     
     1#!/bin/sh 
     2 
     3. /usr/lib/libmodcgi.sh 
     4 
     5check "$ZIPROXY_ENABLED" yes:auto "*":man 
     6check "$ZIPROXY_PREEMPTNAMERES" yes:preemptnameres 
     7check "$ZIPROXY_TRANSPARENTPROXY" yes:transparentproxy 
     8 
     9sec_begin '$(lang de:"Starttyp" en:"Start type")' 
     10 
     11cat << EOF 
     12<p> 
     13<input id="e1" type="radio" name="enabled" value="yes"$auto_chk><label for="e1"> $(lang de:"Automatisch" en:"Automatic")</label> 
     14<input id="e2" type="radio" name="enabled" value="no"$man_chk><label for="e2"> $(lang de:"Manuell" en:"Manual")</label> 
     15EOF 
     16cat << EOF 
     17</p> 
     18EOF 
     19 
     20sec_end 
     21sec_begin '$(lang de:"ziproxy" en:"ziproxy")' 
     22 
     23cat << EOF 
     24<table border="0"> 
     25<tr> 
     26    <td>$(lang de:"Port" en:"Port"):</td> 
     27    <td><input type="text" name="port" size="10" maxlength="10" value="$(html "$ZIPROXY_PORT")"></td> 
     28</tr> 
     29<tr> 
     30    <td>$(lang de:"Error log file" en:"Error log file"):</td> 
     31    <td><input type="text" name="errorlog" size="40" maxlength="255" value="$(html "$ZIPROXY_ERRORLOG")"></td> 
     32</tr> 
     33<tr> 
     34    <td>$(lang de:"Preemptive DNS" en:"Preemptive DNS"):</td> 
     35    <td> 
     36        <input type="hidden" name="preemptnameres" value="no"> 
     37        <input id="id_preemptnameres" type="checkbox" name="preemptnameres" value="yes"$preemptnameres_chk> 
     38    </td> 
     39</tr> 
     40<tr> 
     41    <td>$(lang de:"Transparent proxy" en:"Transparent proxy"):</td> 
     42    <td> 
     43        <input type="hidden" name="transparentproxy" value="no"> 
     44        <input id="id_transparentproxy" type="checkbox" name="transparentproxy" value="yes"$transparentproxy_chk> 
     45    </td> 
     46</tr> 
     47<tr> 
     48    <td>$(lang de:"Authentication user" en:"Authentication user"):</td> 
     49    <td><input type="text" name="authuser" size="20" maxlength="64" value="$(html "$ZIPROXY_AUTHUSER")"></td> 
     50</tr> 
     51<tr> 
     52    <td>$(lang de:"Authentication password" en:"Authentication password"):</td> 
     53    <td><input type="text" name="authpasswd" size="20" maxlength="64" value="$(html "$ZIPROXY_AUTHPASSWD")"></td> 
     54</tr> 
     55<tr> 
     56    <td>$(lang de:"URL deny list" en:"URL deny list"):</td> 
     57    <td><textarea id="id_urldeny" style="width: 550px;" name="urldeny" rows="15" cols="80" wrap="off" >$ZIPROXY_URLDENY</textarea></td> 
     58</tr> 
     59<tr> 
     60    <td>$(lang de:"Extra options" en:"Extra options"):</td> 
     61    <td><textarea id="id_extra" style="width: 550px;" name="extra" rows="15" cols="80" wrap="off" >$ZIPROXY_EXTRA</textarea></td> 
     62</tr> 
     63</table> 
     64 
     65EOF 
     66 
     67sec_end 
  • make/ziproxy/files/root/etc/init.d/rc.ziproxy

    Property changes on: make/ziproxy/files/root/usr/lib/cgi-bin/ziproxy.cgi
    ___________________________________________________________________
    Added: svn:executable
       + *
    
     
     1#!/bin/sh 
     2 
     3DAEMON=ziproxy 
     4DAEMON_CONFIG="/mod/etc/$DAEMON.conf" 
     5 
     6. /etc/init.d/modlibrc 
     7 
     8DAEMON_USER=nobody 
     9DAEMON_GROUP=nobody 
     10 
     11start() { 
     12    if [ "$ZIPROXY_TRANSPARENTPROXY" == "yes" ]; then 
     13        /usr/sbin/iptables -t nat -A PREROUTING -i lan -p tcp --dport 80 -j REDIRECT --to-port $ZIPROXY_PORT 
     14    fi 
     15    modlib_startdaemon $DAEMON -d -c $DAEMON_CONFIG 
     16} 
     17 
     18stop() { 
     19    $DAEMON -k -c $DAEMON_CONFIG 
     20    if [ -e /usr/sbin/iptables ] && /usr/sbin/iptables -t nat -S PREROUTING | grep -q "to-ports $ZIPROXY_PORT" ; then 
     21        /usr/sbin/iptables -t nat -D PREROUTING -i lan -p tcp --dport 80 -j REDIRECT --to-ports $ZIPROXY_PORT 
     22    fi 
     23} 
     24 
     25config() { 
     26    modlib_config 
     27} 
     28 
     29case $1 in 
     30    ""|load) 
     31        modreg cgi 'ziproxy' 'ziproxy' 
     32        modreg daemon $DAEMON 
     33 
     34        modlib_addgroup $DAEMON_GROUP 
     35        modlib_adduser $DAEMON_USER -s /bin/false -D -S -H -G $DAEMON_GROUP -g $DAEMON_GROUP 
     36 
     37        modlib_start $ZIPROXY_ENABLED 
     38        ;; 
     39    unload) 
     40        modunreg daemon $DAEMON 
     41        modunreg cgi $DAEMON 
     42        modlib_stop 
     43        ;; 
     44    start) 
     45        modlib_start 
     46        ;; 
     47    stop) 
     48        modlib_stop 
     49        ;; 
     50    restart) 
     51        modlib_restart 
     52        ;; 
     53    status) 
     54        modlib_status 
     55        ;; 
     56    *) 
     57        echo "Usage: $0 [load|unload|start|stop|restart|status]" 1>&2 
     58        exit 1 
     59        ;; 
     60esac 
     61 
     62exit 0 
  • make/ziproxy/files/root/etc/default.ziproxy/ziproxy.cfg

    Property changes on: make/ziproxy/files/root/etc/init.d/rc.ziproxy
    ___________________________________________________________________
    Added: svn:executable
       + *
    
     
     1export ZIPROXY_ENABLED='no' 
     2export ZIPROXY_PORT='3131' 
     3export ZIPROXY_ERRORLOG='/var/log/ziproxy.log' 
     4export ZIPROXY_PREEMPTNAMERES='no' 
     5export ZIPROXY_TRANSPARENTPROXY='no' 
     6export ZIPROXY_AUTHUSER='' 
     7export ZIPROXY_AUTHPASSWD='' 
     8export ZIPROXY_URLDENY='' 
     9export ZIPROXY_EXTRA='' 
  • make/ziproxy/files/root/etc/default.ziproxy/ziproxy_conf

     
     1#!/bin/sh 
     2 
     3echo "Port=$ZIPROXY_PORT" 
     4echo "ErrorLog=\"$ZIPROXY_ERRORLOG\"" 
     5 
     6cat << EOF 
     7PIDFile="/var/run/ziproxy.pid" 
     8RunAsUser="nobody" 
     9RunAsGroup="nobody" 
     10EOF 
     11 
     12[ "$ZIPROXY_PREEMPTNAMERES" == "yes" ] && echo "PreemptNameRes=true" 
     13[ "$ZIPROXY_TRANSPARENTPROXY" == "yes" ] && echo "TransparentProxy=true" 
     14 
     15mkdir -p /tmp/ziproxy 
     16 
     17if [ -n "$ZIPROXY_AUTHUSER" ] && [ -n "$ZIPROXY_AUTHPASSWD" ]; then 
     18    echo "$ZIPROXY_AUTHUSER:$ZIPROXY_AUTHPASSWD" >/tmp/ziproxy/http.passwd 
     19    echo "AuthMode=1" 
     20    echo "AuthPasswdFile=\"/tmp/ziproxy/http.passwd\"" 
     21fi 
     22 
     23if [ -n "$ZIPROXY_URLDENY" ]; then 
     24    echo "$ZIPROXY_URLDENY" >/tmp/ziproxy/deny.list 
     25    echo "URLDeny=\"/tmp/ziproxy/deny.list\"" 
     26fi 
     27 
     28echo "$ZIPROXY_EXTRA"