diff options
Diffstat (limited to 'proxy_wizard')
-rwxr-xr-x | proxy_wizard/Squid.pm | 6 | ||||
-rw-r--r-- | proxy_wizard/proxy.wiz | 758 | ||||
-rw-r--r-- | proxy_wizard/scripts/Squidconf.pm | 121 |
3 files changed, 4 insertions, 881 deletions
diff --git a/proxy_wizard/Squid.pm b/proxy_wizard/Squid.pm index 89f4cee6..f7287e49 100755 --- a/proxy_wizard/Squid.pm +++ b/proxy_wizard/Squid.pm @@ -2,8 +2,10 @@ # Drakwizard -# Copyright (C) 2002 Arnaud Desmons <adesmons@mandrakesoft.com> -# Copyright (C) 2003 Florent Villard <warly@mandrakesoft.com> +# Copyright (C) 2002,2003 Mandrakesoft +# +# Authors: Arnaud Desmons <adesmons@mandrakesoft.com> +# Florent Villard <warly@mandrakesoft.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/proxy_wizard/proxy.wiz b/proxy_wizard/proxy.wiz deleted file mode 100644 index d4f61e4a..00000000 --- a/proxy_wizard/proxy.wiz +++ /dev/null @@ -1,758 +0,0 @@ -<?xml version="1.0"?> - - -<Wizard - name="general" - libScript="__WIZ_HOME__/common/scripts/functions.sh" - wizardTitle="Squid wizard" - imagePosition="top" - defaultImage="__WIZ_HOME__/proxy_wizard/images/proxy.png" - perlModule="__WIZ_HOME__/proxy_wizard/scripts/Squidconf.pm" - rpm="squid" - summaryFunc="do_it_squid" -> - <Variable - name="var_wiz_squid_level" - comment="The proxy access control level" - shellVariable="wiz_squid_level" - defaultValue="2" - valueIsTranslated="false" - > - </Variable> - - <Variable - name="wiz_squid_port" - shellVariable="wiz_squid_port" - valueIsTranslated="false" - defaultValue="3128" - > - </Variable> - - <Variable - name="wiz_squid_mem" - shellVariable="wiz_squid_mem" - defaultValue="16" - valueIsTranslated="false" - > - </Variable> - - <Variable - name="wiz_squid_disk" - shellVariable="wiz_squid_disk" - defaultValue="200" - valueIsTranslated="false" - > - </Variable> - - <Variable - name="wiz_squid_mynetw" - shellVariable="wiz_squid_mynetw" - valueIsTranslated="false" - > - </Variable> - - <Variable - name="wiz_squid_defdir" - shellVariable="wiz_squid_defdir" - defaultValue="/var/spool/squid" - valueIsTranslated="false" - > - </Variable> - - <Variable - name="wiz_squid_cachepeer" - shellVariable="wiz_squid_cachepeer" - valueIsTranslated="false" - > - </Variable> - - <Variable - name="wiz_squid_peerport" - shellVariable="wiz_squid_peerport" - defaultValue="3128" - valueIsTranslated="false" - > - </Variable> - - <Variable - name="wiz_squid_menupeer" - shellVariable="wiz_squid_menupeer" - defaultValue="1" - valueIsTranslated="false" - > - </Variable> - - <Page - name="Welcome" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="true" - > - - <Info - helpText="Proxy Configuration Wizard" - > - </Info> - - - <Info - helpText="Squid is a web caching proxy server, it allows faster web access for your local network." - > - </Info> - - <Info - helpText="This wizard will help you in configuring your proxy server." - > - </Info> - </Page> - - <Page - name="port" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - func="testport" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="true" - > - - <Target - targetName="warningport" - jumpIndex="1" - > - </Target> - - <Target - targetName="errorlow" - jumpIndex="2" - > - </Target> - - <Target - targetName="memory" - jumpIndex="0" - > - </Target> - - <Info - helpText="Proxy Port" - > - </Info> - - - <Info - helpText="Proxy port value sets what port the proxy server will listen on for http requests. Default is 3128, other common value can be 8080, the port value needs to be greater than 1024." - > - </Info> - - - <Freetext - variableName="wiz_squid_port" - helpText="Proxy port:" - editable="true" - > - </Freetext> - - </Page> - - <Page - name="memory" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - jumpPage="ask_level" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="true" - > - - <Info - helpText="Proxy Cache Size" - > - </Info> - - - <Info - helpText="Memory Cache is the amount of RAM dedicated to cache memory operations (note that actual memory usage of the whole squid process is bigger)." - > - </Info> - - <Info - helpText="Disk Cache is the amount of disk space that can be used for caching on disk." - > - </Info> - - - <Freetext - name="wiz_squid_mem" - variableName="wiz_squid_mem" - helpText="Memory cache (MB):" - editable="true" - > - </Freetext> - - <Freetext - name="wiz_squid_disk" - variableName="wiz_squid_disk" - helpText="Disk space (MB):" - editable="true" - > - </Freetext> - - - <Info - helpText="For your information, here is /var/spool/squid space on disk:" - > - </Info> - - <Info - helpText="Filesystem Size Used Avail Use% Mounted on" - > - </Info> - - <Info - comment="free space on disk" - fillScript="__WIZ_HOME__/proxy_wizard/scripts/dfh.sh" - > - </Info> - - </Page> - - <Page - name="ask_level" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - jumpScript="__WIZ_HOME__/proxy_wizard/scripts/echolevel.sh $wiz_squid_level" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="true" - > - - <Target - targetName="cachepeer" - jumpIndex="1" - > - </Target> - - <Target - targetName="shownet" - jumpIndex="2" - > - </Target> - - <Target - targetName="cachepeer" - jumpIndex="3" - > - </Target> - - <Info - helpText="Access Control" - > - </Info> - - - <Info - helpText="The proxy can be configured to use different access control levels." - > - </Info> - - <Info - helpText="Choose the level that suits your needs. If you don't know, the Local Network level is usually the most appropriate. Beware that the All level may be not secure." - > - </Info> - - <Chooser - name="chooser1" - variableName="var_wiz_squid_level" - helpFontName="Default" - helpFontStyle="plain" - helpFontSize="12" - editable="false" - > - - <Option - value="1" - description="All - No access restriction" - > - </Option> - - <Option - value="2" - description="Local Network - access for local network (recommended)" - > - </Option> - - <Option - value="3" - description="Localhost - access restricted to this server only" - > - </Option> - </Chooser> - </Page> - - <Page - name="warningport" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - jumpPage="memory" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="true" - > - - <Info - helpText="Warning:" - > - </Info> - - - <Info - helpText="You have entered a port that may be useful for this service:" - > - </Info> - <Info - helpText="Press Next if you want to keep this value, or Back to correct your choice." - > - </Info> - - <Freetext - fillfunc="port" - helpText="/etc/services:" - editable="false" - > - </Freetext> - </Page> - - <Page - name="shownet" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - jumpPage="cachepeer" - executionLevel="NORMAL" - is="var_wiz_squid_level=2" - nextFinish="false" - canBack="true" - canCancel="true" - > - - <Info - helpText="Grant access on local network" - > - </Info> - - - <Info - helpText="Access will be allowed for hosts on the network. Here is the information found about your current local network, you can modify it if needed." - > - </Info> - - <Info - helpText="You can use either a numeric format like \q192.168.1.0/255.255.255.0\q or a text format like \q.domain.net\q" - > - </Info> - - - <Freetext - name="f_wiz_squid_mynetw" - variableName="wiz_squid_mynetw" - fillfunc="network_mask" - helpText="Authorized network:" - editable="true" - help="Use numeric format like \q192.168.1.0/255.255.255.0\q or a text format like \q.domain.net\q" - > - </Freetext> - - </Page> - - <Page - name="cachepeer" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - jumpScript="__WIZ_HOME__/proxy_wizard/scripts/echolevel.sh $wiz_squid_menupeer" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="true" - > - <Target - targetName="doit2" - jumpIndex="1" - > - </Target> - - <Target - targetName="valcachepeer" - jumpIndex="2" - > - </Target> - <Info - helpText="Cache hierarchy" - > - </Info> - - - <Info - helpText="As an option, Squid can be configured in proxy cascading. You can add a new upper level proxy by specifying its hostname and port." - > - </Info> - - <Info - helpText="You can safely select \qNo upper level proxy\q if you don't need this feature." - > - </Info> - - - <Chooser - name="chooser4" - variableName="wiz_squid_menupeer" - helpFontName="Default" - helpFontStyle="plain" - helpFontSize="12" - editable="false" - > - - <Option - value="1" - description="No upper level proxy (recommended)" - > - </Option> - - <Option - value="2" - description="Define an upper level proxy" - > - </Option> - - </Chooser> - - - </Page> - - - <Page - name="valcachepeer" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - jumpPage="doit" - executionLevel="NORMAL" - nextFinish="false" - is="wiz_squid_menupeer=2" - canBack="true" - canCancel="true" - > - - <Info - helpText="Cache hierarchy" - > - </Info> - - - <Info - helpText="Enter the qualified hostname (like \qcache.domain.net\q) and the port of the proxy to use." - > - </Info> - - - <Freetext - name="_wiz_squid_cachepeer" - variableName="wiz_squid_cachepeer" - helpText="Upper level proxy hostname:" - editable="true" - > - </Freetext> - - <Freetext - name="_wiz_squid_peerport" - variableName="wiz_squid_peerport" - helpText="Upper level proxy port:" - editable="true" - > - </Freetext> - - </Page> - - <Page - name="doit" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - func="do_it_squid" - nextButtonText="Configure" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="true" - > - - <Target - targetName="catastrophic_exit" - jumpIndex="1" - > - </Target> - - <Target - targetName="done" - jumpIndex="10" - > - </Target> - - <Info - helpText="Configuring the Proxy" - > - </Info> - - - <Info - helpText="The wizard collected the following parameters needed to configure your proxy:" - > - </Info> - - <Freetext - name="s_port" - variableName="wiz_squid_port" - helpText="Port:" - editable="false" - > - </Freetext> - - <Freetext - name="s_mem" - variableName="wiz_squid_mem" - helpText="Memory cache (MB):" - editable="false" - > - </Freetext> - - <Freetext - name="s_disk" - variableName="wiz_squid_disk" - helpText="Disk space (MB):" - editable="false" - > - </Freetext> - - <Freetext - name="s_level" - fillScript="__WIZ_HOME__/proxy_wizard/scripts/showlevel.sh $wiz_squid_level" - helpText="Access Control:" - editable="false" - > - </Freetext> - - <Freetext - name="s_peer" - variableName="wiz_squid_cachepeer" - helpText="Upper level proxy hostname:" - editable="false" - > - </Freetext> - - <Freetext - name="s_peerport" - variableName="wiz_squid_peerport" - helpText="Upper level proxy port:" - editable="false" - > - </Freetext> - - - <Info - helpText="To accept these values, and configure your server, click the Next button or use the Back button to correct them." - > - </Info> - </Page> - - <Page - name="doit2" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - func="do_it_squid" - nextButtonText="Configure" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="true" - > - - <Target - targetName="catastrophic_exit" - jumpIndex="1" - > - </Target> - - <Target - targetName="done" - jumpIndex="10" - > - </Target> - - <Info - helpText="Configuring the Proxy" - > - </Info> - - - <Info - helpText="The wizard collected the following parameters needed to configure your proxy:" - > - </Info> - - - - <Freetext - name="s_port" - variableName="wiz_squid_port" - helpText="Port:" - editable="false" - > - </Freetext> - - <Freetext - name="s_mem" - variableName="wiz_squid_mem" - helpText="Memory cache (MB):" - editable="false" - > - </Freetext> - - <Freetext - name="s_disk" - variableName="wiz_squid_disk" - helpText="Disk space (MB):" - editable="false" - > - </Freetext> - - <Freetext - name="s_level" - variableName="wiz_squid_mynetw" - fillScript="__WIZ_HOME__/proxy_wizard/scripts/showlevel.sh $wiz_squid_level" - helpText="Access Control:" - editable="false" - > - </Freetext> - - - <Info - helpText="To accept these values, and configure your server, click the Next button or use the Back button to correct them." - > - </Info> - </Page> - - <Page - name="done" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - nextButtonText="Quit" - executionLevel="NORMAL" - nextFinish="true" - canBack="false" - canCancel="false" - > - - <Info - helpText="Congratulations" - > - </Info> - - - <Info - helpText="The wizard successfully configured your proxy server." - > - </Info> - </Page> - - <Page - name="catastrophic_exit" - comment="Exit in case of catastrophhic system error" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - nextButtonText="Exit" - executionLevel="NORMAL" - nextFinish="true" - canBack="false" - canCancel="false" - > - - <Info - helpText="Something terrible happened" - > - </Info> - </Page> - - <Page - name="error_need_root" - comment="Error: this wizard must run as root." - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - nextButtonText="OK" - executionLevel="NORMAL" - nextFinish="false" - canBack="false" - canCancel="false" - > - - <Info - helpText="This Wizard needs to run as root" - > - </Info> - </Page> - - <Page - name="errorlow" - comment="lt 1024" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - jumpPage="port" - nextButtonText="OK" - executionLevel="NORMAL" - nextFinish="false" - canBack="true" - canCancel="false" - > - - <Info - helpText="Warning:" - > - </Info> - - - <Info - helpText="You must choose a port greater than 1024 and lower than 65535" - > - </Info> - - - - <Info - helpText="Press back to change the value." - > - </Info> - - </Page> - - <Page - name="error_need_net" - helpURL="file:/usr/share/doc/mandrake/${LANG}/ref.html/wiz-proxy.html" - subWizard="__WIZ_HOME__/server_wizard/server.wiz" - executionLevel="NORMAL" - nextFinish="false" - canBack="false" - canCancel="true" - > - - <Info - helpText="Network not configured yet" - > - </Info> - - - <Info - helpText="You have to configure the basic network parameters before launching this wizard." - > - </Info> - - <Info - helpText="Press next to configure these parameters now, or Cancel to exit this wizard." - > - </Info> - - - <Info - helpText="If you choose to configure now, you will automatically continue with the Proxy configuration." - > - </Info> - </Page> -</Wizard> diff --git a/proxy_wizard/scripts/Squidconf.pm b/proxy_wizard/scripts/Squidconf.pm deleted file mode 100644 index 56548652..00000000 --- a/proxy_wizard/scripts/Squidconf.pm +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/perl - -# Drakwizard - -# Copyright (C) 2002 MandrakeSoft Arnaud Desmons (adesmons@mandrakesoft.com) -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - -package Squidconf; -use lib '/usr/lib/libDrakX'; -require "__WIZ_HOME__/common/scripts/Vareqval.pm"; -require "__WIZ_HOME__/common/scripts/Varspaceval.pm"; -require "__WIZ_HOME__/common/scripts/IFCFG.pm"; -use MDK::Common; -use services; -use strict; -use standalone; - -sub network_mask { - my $o = IFCFG->new(); - my $wiz_ip_server = $o->itf_get("IPADDR"); - my $mask = $o->itf_get("NETMASK"); - "$1.$2.$3.0/$mask" if $wiz_ip_server =~ /(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/; -} - -sub testport { - if ($ENV{wiz_squid_port} == 3128 || $ENV{wiz_squid_port} == 8080) { - return 0; - } - elsif ($ENV{wiz_squid_port} <= 1024 || $ENV{wiz_squid_port} >= 65536) { - return 2; - } - 1; -} - -sub port { - my $ret; - my @lines = grep(/$ENV{wiz_squid_port}\/tcp/, cat_("/etc/services")); - foreach (@lines) { - s/\t/ /g; - $ret .= "\n$_"; - } - $ret; -} - -sub do_it_squid { - my $file="/etc/squid/squid.conf"; - -f $file and MDK::Common::cp_af($file, $file.".orig"); - MDK::Common::cp_af("__WIZ_HOME__/proxy_wizard/scripts/squid.conf.default", $file); - substInFile { - s|^\s*\#?\s*(cache_dir.*$ENV{wiz_squid_defdir}\s*)\d*(.*)|$1$ENV{wiz_squid_disk}$2|; - s|^\s*\#?\s*(acl\s*mynetwork\s*src\s*).*$|$1$ENV{wiz_squid_mynetw}\n|; - s|^\s*\#?\s*(cache_mem\s*)\d*(\s*MB.*)|$1$ENV{wiz_squid_mem}$2|; - s|^\s*\#?\s*(http_port\s*)\d*(.*)|$1$ENV{wiz_squid_port}$2|; - } $file; - print "LEVEL $ENV{'wiz_squid_level'}\n\n"; - exit; - standalone::explanations("$file: cache_dir = $ENV{wiz_squid_defdir} $ENV{wiz_squid_disk} -mynetw = $ENV{wiz_squid_mynetw} cache_mem = $ENV{wiz_squid_mem} http_port = $ENV{wiz_squid_port} -level = $ENV{wiz_squid_level}"); - if ($ENV{wiz_squid_level} == 1) { - substInFile { - s|^\s*\#?\s*(http_access\s*)deny(\s*all.*)|\#$&\n$1allow$2|; - } $file; - } - elsif ($ENV{wiz_squid_level} == 2) { - substInFile { - s|^\s*\#?\s*(http_access\s*)allow(\s*all.*)|\#$&\n$1deny$2|; - s|^\s*\#?\s*(http_access\s*allow\s*)localhost|\#$&\n$1mynetwork|; - } $file; - } - elsif ($ENV{wiz_squid_level} == 3) { - substInFile { - s|^\s*\#?\s*(http_access\s*)allow(\s*all.*)|\#$&\n$1deny$2|; - s|^\s*\#?\s*(http_access\s*allow\s*)mynetwork|\#$&\n$1localhost|; - } $file; - } else { # should not happen - die "wiz_squid_level error"; - } - my $t = 0; - foreach (cat_($file)) { - if (/^\s*cache_peer.*/) { - $t = $_;; - last; - } - } - if ($ENV{wiz_squid_menupeer} == 1 && length $t) { - substInFile { - s|^\s*!\#\s*(cache_peer.*)|\#$&|; - } $file; - } - elsif ($ENV{wiz_squid_menupeer} == 2 && length $ENV{wiz_squid_cachepeer}) { - if (lenght $t) { - substInFile { - s|^\s*\#?\s*(cache_peer.*)|\#$&|; - } $file; - } - append_to_file($file, "cache_peer $ENV{wiz_squid_cachepeer} parent $ENV{wiz_squid_peerport} 3130"); - } - system("/sbin/chkconfig --level 345 squid on"); - if (services::is_service_running('squid')) { - services::restart('squid') - } else { - services::start('squid') - } - 10; -} -1; |