]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/proxy.cgi
proxy.cgi: fix filename of ntlm authenticator.
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / proxy.cgi
index 137f528bfbc325805664b9bc0e95673432c48d60..8b3200dab4306eb570857f416f518c73c0cbf680 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2009  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # 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        #
@@ -82,7 +82,6 @@ my @templist=();
 my $cachemem=0;
 my $proxy1='';
 my $proxy2='';
-my $replybodymaxsize=0;
 my $browser_regexp='';
 my $needhup = 0;
 my $errormessage='';
@@ -180,6 +179,12 @@ close(FILE);
 &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
 &General::readhash("${General::swroot}/main/settings", \%mainsettings);
 
+my $green_cidr = &General::ipcidr("$netsettings{'GREEN_NETADDRESS'}\/$netsettings{'GREEN_NETMASK'}");
+my $blue_cidr = "# Blue not defined";
+if ($netsettings{'BLUE_DEV'}) {
+       $blue_cidr = &General::ipcidr("$netsettings{'BLUE_NETADDRESS'}\/$netsettings{'BLUE_NETMASK'}");
+}
+
 &Header::showhttpheaders();
 
 $proxysettings{'ACTION'} = '';
@@ -1193,10 +1198,10 @@ END
 
 if (!$proxysettings{'SRC_SUBNETS'})
 {
-       print "$netsettings{'GREEN_NETADDRESS'}\/$netsettings{'GREEN_NETMASK'}\n";
+       print "$green_cidr\n";
        if ($netsettings{'BLUE_DEV'})
        {
-               print "$netsettings{'BLUE_NETADDRESS'}\/$netsettings{'BLUE_NETMASK'}\n";
+               print "$blue_cidr\n";
        }
 } else { print $proxysettings{'SRC_SUBNETS'}; }
 
@@ -1785,9 +1790,9 @@ print <<END
 END
 ;
 if (!$proxysettings{'IDENT_HOSTS'}) {
-       print "$netsettings{'GREEN_NETADDRESS'}\/$netsettings{'GREEN_NETMASK'}\n";
+       print "$green_cidr\n";
        if ($netsettings{'BLUE_DEV'}) {
-               print "$netsettings{'BLUE_NETADDRESS'}\/$netsettings{'BLUE_NETMASK'}\n";
+               print "$blue_cidr\n";
        }
 } else {
        print $proxysettings{'IDENT_HOSTS'};
@@ -2692,10 +2697,10 @@ sub write_acls
        flock(FILE, 2);
        if (!$proxysettings{'SRC_SUBNETS'})
        {
-               print FILE "$netsettings{'GREEN_NETADDRESS'}\/$netsettings{'GREEN_NETMASK'}\n";
+               print FILE "$green_cidr\n";
                if ($netsettings{'BLUE_DEV'})
                {
-                       print FILE "$netsettings{'BLUE_NETADDRESS'}\/$netsettings{'BLUE_NETMASK'}\n";
+                       print FILE "$blue_cidr\n";
                }
        } else { print FILE $proxysettings{'SRC_SUBNETS'}; }
        close(FILE);
@@ -3069,19 +3074,12 @@ cache_mem $proxysettings{'CACHE_MEM'} MB
 END
        ;
 
-       if ($proxysettings{'CACHE_SIZE'} eq '0')
+       if ($proxysettings{'CACHE_SIZE'} ne '0')
        {
-               print FILE "cache_dir null /var/tmp\n\n";
-       } else {
                print FILE "cache_dir aufs /var/log/cache $proxysettings{'CACHE_SIZE'} $proxysettings{'L1_DIRS'} 256\n\n";
        }
 
-       if (($proxysettings{'ERR_DESIGN'} eq 'ipfire' ))
-       {
-               print FILE "error_directory $errordir.ipfire/$proxysettings{'ERR_LANGUAGE'}\n\n";
-       } else {
-               print FILE "error_directory $errordir/$proxysettings{'ERR_LANGUAGE'}\n\n";
-       }
+       print FILE "error_directory $errordir/$proxysettings{'ERR_LANGUAGE'}\n\n";
 
        if ($proxysettings{'OFFLINE_MODE'} eq 'on') {  print FILE "offline_mode on\n\n"; }
 
@@ -3194,7 +3192,7 @@ END
                {
                        if ($proxysettings{'NTLM_ENABLE_INT_AUTH'} eq 'on')
                        {
-                               print FILE "auth_param ntlm program $authdir/ntlm_auth $proxysettings{'NTLM_DOMAIN'}/$proxysettings{'NTLM_PDC'}";
+                               print FILE "auth_param ntlm program $authdir/ntlm_smb_lm_auth $proxysettings{'NTLM_DOMAIN'}/$proxysettings{'NTLM_PDC'}";
                                if ($proxysettings{'NTLM_BDC'} eq '') { print FILE "\n"; } else { print FILE " $proxysettings{'NTLM_DOMAIN'}/$proxysettings{'NTLM_BDC'}\n"; }
                                print FILE "auth_param ntlm children $proxysettings{'AUTH_CHILDREN'}\n";
                                if (!($proxysettings{'AUTH_IPCACHE_TTL'} eq '0')) { print FILE "\nauthenticate_ip_ttl $proxysettings{'AUTH_IPCACHE_TTL'} minutes\n"; }
@@ -3319,8 +3317,8 @@ END
        }
 
        print FILE <<END
-acl all src 0.0.0.0/0.0.0.0
-acl localhost src 127.0.0.1/255.255.255.255
+#acl all src all
+acl localhost src 127.0.0.1/32
 END
 ;
 open (PORTS,"$acl_ports_ssl");
@@ -3344,12 +3342,12 @@ acl IPFire_https port $https_port
 acl IPFire_ips              dst $netsettings{'GREEN_ADDRESS'}
 acl IPFire_networks         src "$acl_src_subnets"
 acl IPFire_servers          dst "$acl_src_subnets"
-acl IPFire_green_network    src $netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}
-acl IPFire_green_servers    dst $netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}
+acl IPFire_green_network    src $green_cidr
+acl IPFire_green_servers    dst $green_cidr
 END
        ;
-       if ($netsettings{'BLUE_DEV'}) { print FILE "acl IPFire_blue_network     src $netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}\n"; }
-       if ($netsettings{'BLUE_DEV'}) { print FILE "acl IPFire_blue_servers     dst $netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}\n"; }
+       if ($netsettings{'BLUE_DEV'}) { print FILE "acl IPFire_blue_network     src $blue_cidr\n"; }
+       if ($netsettings{'BLUE_DEV'}) { print FILE "acl IPFire_blue_servers     dst $blue_cidr\n"; }
        if (!-z $acl_src_banned_ip) { print FILE "acl IPFire_banned_ips       src \"$acl_src_banned_ip\"\n"; }
        if (!-z $acl_src_banned_mac) { print FILE "acl IPFire_banned_mac       arp \"$acl_src_banned_mac\"\n"; }
        if (!-z $acl_src_unrestricted_ip) { print FILE "acl IPFire_unrestricted_ips src \"$acl_src_unrestricted_ip\"\n"; }
@@ -3368,8 +3366,7 @@ acl IPFire_no_access_mac arp "$acl_src_noaccess_mac"
 END
                ;
                print FILE "deny_info ";
-               if ((($proxysettings{'ERR_DESIGN'} eq 'ipfire') && (-e "$errordir.ipfire/$proxysettings{'ERR_LANGUAGE'}/ERR_ACCESS_DISABLED")) ||
-                   (($proxysettings{'ERR_DESIGN'} eq 'squid') && (-e "$errordir/$proxysettings{'ERR_LANGUAGE'}/ERR_ACCESS_DISABLED")))
+               if (($proxysettings{'ERR_DESIGN'} eq 'squid') && (-e "$errordir/$proxysettings{'ERR_LANGUAGE'}/ERR_ACCESS_DISABLED"))
                {
                        print FILE "ERR_ACCESS_DISABLED";
                } else {
@@ -3377,8 +3374,7 @@ END
                }
                print FILE " IPFire_no_access_ips\n";
                print FILE "deny_info ";
-               if ((($proxysettings{'ERR_DESIGN'} eq 'ipfire') && (-e "$errordir.ipfire/$proxysettings{'ERR_LANGUAGE'}/ERR_ACCESS_DISABLED")) ||
-                   (($proxysettings{'ERR_DESIGN'} eq 'squid') && (-e "$errordir/$proxysettings{'ERR_LANGUAGE'}/ERR_ACCESS_DISABLED")))
+               if (($proxysettings{'ERR_DESIGN'} eq 'squid') && (-e "$errordir/$proxysettings{'ERR_LANGUAGE'}/ERR_ACCESS_DISABLED"))
                {
                        print FILE "ERR_ACCESS_DISABLED";
                } else {
@@ -3397,7 +3393,7 @@ END
        my $blue_net = ''; #BLUE empty by default
        my $blue_ip = '';
        if ($netsettings{'BLUE_DEV'} && $proxysettings{'ENABLE_BLUE'} eq 'on') {
-               $blue_net = "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}";
+               $blue_net = "$blue_cidr";
                $blue_ip  = "$netsettings{'BLUE_ADDRESS'}";
        }
        if (!-z $acl_include)
@@ -3406,7 +3402,7 @@ END
                print FILE "\n#Start of custom includes\n\n";
                while (<ACL>) {
                        $_ =~ s/__GREEN_IP__/$netsettings{'GREEN_ADDRESS'}/;
-                       $_ =~ s/__GREEN_NET__/$netsettings{'GREEN_NETADDRESS'}\/$netsettings{'GREEN_NETMASK'}/;
+                       $_ =~ s/__GREEN_NET__/$green_cidr/;
                        $_ =~ s/__BLUE_IP__/$blue_ip/;
                        $_ =~ s/__BLUE_NET__/$blue_net/;
                        $_ =~ s/__PROXY_PORT__/$proxysettings{'PROXY_PORT'}/;
@@ -3811,19 +3807,23 @@ END
 
                if ($proxysettings{'FORWARD_IPADDRESS'} eq 'off')
                {
-                       print FILE "header_access X-Forwarded-For deny all\n";
+                       print FILE "request_header_access X-Forwarded-For deny all\n";
+                       print FILE "reply_header_access X-Forwarded-For deny all\n";
                }
                if ($proxysettings{'FORWARD_VIA'} eq 'off')
                {
-                       print FILE "header_access Via deny all\n";
+                       print FILE "request_header_access Via deny all\n";
+                       print FILE "reply_header_access Via deny all\n";
                }
                if (!($proxysettings{'FAKE_USERAGENT'} eq ''))
                {
-                       print FILE "header_access User-Agent deny all\n";
+                       print FILE "request_header_access User-Agent deny all\n";
+                       print FILE "reply_header_access User-Agent deny all\n";
                }
                if (!($proxysettings{'FAKE_REFERER'} eq ''))
                {
-                       print FILE "header_access Referer deny all\n";
+                       print FILE "request_header_access Referer deny all\n";
+                       print FILE "reply_header_access Referer deny all\n";
                }
 
                print FILE "\n";
@@ -3869,16 +3869,19 @@ END
 request_body_max_size $proxysettings{'MAX_OUTGOING_SIZE'} KB
 END
        ;
-       $replybodymaxsize = 1024 * $proxysettings{'MAX_INCOMING_SIZE'};
        if ($proxysettings{'MAX_INCOMING_SIZE'} > 0) {
-               if (!-z $acl_src_unrestricted_ip) { print FILE "reply_body_max_size 0 deny IPFire_unrestricted_ips\n"; }
-               if (!-z $acl_src_unrestricted_mac) { print FILE "reply_body_max_size 0 deny IPFire_unrestricted_mac\n"; }
+               if (!-z $acl_src_unrestricted_ip) { print FILE "reply_body_max_size none IPFire_unrestricted_ips\n"; }
+               if (!-z $acl_src_unrestricted_mac) { print FILE "reply_body_max_size none IPFire_unrestricted_mac\n"; }
                if ($proxysettings{'AUTH_METHOD'} eq 'ncsa')
                {
-                       if (!-z $extgrp) { print FILE "reply_body_max_size 0 deny for_extended_users\n"; }
+                       if (!-z $extgrp) { print FILE "reply_body_max_size none for_extended_users\n"; }
                }
        }
-       print FILE "reply_body_max_size $replybodymaxsize deny all\n\n";
+       
+       if ( $proxysettings{'MAX_INCOMING_SIZE'} != '0' )
+       {
+               print FILE "reply_body_max_size $proxysettings{'MAX_INCOMING_SIZE'} KB all\n\n";
+       }
 
        print FILE "visible_hostname";
        if ($proxysettings{'VISIBLE_HOSTNAME'} eq '')