]> bicyclesonthemoon.info Git - yplom/proxy/commitdiff
minimal changes, some description.
authorb <b@05ce6ebb-7522-4a6e-a768-0026ae12be9f>
Thu, 17 Dec 2015 18:55:45 +0000 (18:55 +0000)
committerb <b@05ce6ebb-7522-4a6e-a768-0026ae12be9f>
Thu, 17 Dec 2015 18:55:45 +0000 (18:55 +0000)
git-svn-id: svn://botcastle1b/yplom/proxy@14 05ce6ebb-7522-4a6e-a768-0026ae12be9f

access.1.pl
config.1.txt
configure.pl
proxy.1.pl
readthis.txt
rewrite.1.pl
settings

index 77cc7293822c28d6ff8bdb7036e3361bfbfe8528..6bbaa1d478391508d272ecea9b8ee63f8451b9f3 100644 (file)
@@ -31,8 +31,7 @@ use proxy_lib qw(access);
 
 $|=1;
 
-while (<STDIN>) {
-       my $line=$_;
+while (defined(my $line = <STDIN>)) {
        if ($line =~ s/^([0-9]+ )//) {
                print $1;
        }
index f5b5182ffdff29e2b114acd8317c8d474d63b6d0..074787d1b3b6009c5f6b9f56fab10507d2266577 100644 (file)
@@ -3,7 +3,7 @@
 #copy this to your Apache2 configuration,
 #remember to make the server listen on these ports:
 ###LISTEN_HTTP;
-####LISTEN_HTTPS;
+###LISTEN_HTTPS;
 
 ###VIRTUAL_HOST_HTTP;
 ###SERVER_ADMIN;
index 0b08d37776498da1e0afeae7d312e857031661b1..1c9545de221b399cedfe33ccb0a37e6c5a7c26da 100755 (executable)
@@ -19,13 +19,12 @@ unless (open $configfile, "<", $ARGV[0]) {
 
 # Read the config file, line format:
 # some_name = some value # some comment
-while ($line = <$configfile>) {
+while (defined(my $line = <$configfile>)) {
        $line =~ s/[\r\n]//g;
-       $line =~ s/#.*$//;
-       if ($line =~ /^ *([a-zA-Z0-9_]+) *= *(.*)$/){
-               $name=$1;
-               $value=$2;
-               $value =~ s/ *$//;
+       $line =~ s/#.*$//; #comment
+       if ($line =~ /^[ \t]*([a-zA-Z0-9_\-\.]+)[ \t]*=[ \t]*([^ \t](.*[^ \t])?)[ \t]*$/){
+               my $name=$1;
+               my $value=$2;
                $set{$name}=$value;
        }
 }
@@ -108,7 +107,7 @@ $def{'CM'} = 'CM='.$set{'chmod'};
 # ###SOME_NAME;
 # If found - replace.
 
-while ($line = <STDIN>) {
+while (defined($line = <STDIN>)) {
        $line =~ s/[\r\n]//g;
        if ($line =~ /###([a-zA-Z0-9_]+);/) {
                print "$def{$1}\n";
index af0b02c6ddf004fffd6859ba31d89b770d90983f..05244b53542996004bc80a75466ceb134118823d 100755 (executable)
@@ -190,14 +190,12 @@ sub proxy {
        # loop not only the port number but also the host name is required. But is not
        # always easy (or possible) to predict if a hostname will point to the proxy
        # or not. Blocking port numbers is easier.
-       #That's why the proxy should not be installed on the default port numbers, 80
+       # That's why the proxy should not be installed on the default port numbers, 80
        # or 443 because then it will not work!
        if ($port =~ BLOCK_PORT) {
                return fail("Status: 403 Forbidden\n","403 Forbidden","The proxy does not accept port number $port because of infinite loop prevention.");
        }
        
-       
-       
        foreach my $envk (keys %ENV) { 
                # The relevant http variables either start with HTTP_ or CONTENT_.
                my $headarg='';
index 34f7efc8cd133367a1a372225ef68c0c08687c08..52cf1c33c1c265f9208a24363c078a91cef0b537 100644 (file)
@@ -1,4 +1,20 @@
-There will be more information later.
+This is the proxy software.
+It depends on some other software:
+-Apache2 (2.2)
+-Squid (3.5)
+-Perl
+-curl
+-gzip (only for compressing old log files)
+and for compilation:
+-gcc
+-cp
+-mo
+-rm
+-chmod
+
+It might work with other versions of Apache2 or Squid. It may work with other
+www server software (it uses the "HTTPS" CGI variable to detect if protocol is
+HTTPS, "HTTPS" is not defined in rfc3875).
 
 Recommended situation is when the software and data directories belong to a
 dedicatad user account.
@@ -11,7 +27,7 @@ To compile/install:
 
 Log in to the user account that will own the proxy.
 (If not, you will have to change file ownerships later.)
-Edit the file 'settings' to have values relevant to your server.
+Edit the file 'settings' to have values relevant to your server/computer.
 Create the directories defined there and set correct permissions and ownership.
 Run 'make.sh'. It will generate the programs and copy them to the correct
 location.
@@ -23,3 +39,4 @@ Restart Apache2 and Squid.
 To set an username/password:
 Create a file in data_path/pass. Username is filename.
 Inside the file should be one line with URL-encoded password.
+Usernames can be made of letters, numbers and "_".
index 1ffe9edb08c0f9871adb1cae69dc79812590079c..f612736cbace0b71a311a7649bccd96c7d37b0f5 100755 (executable)
@@ -12,8 +12,8 @@
 
 $|=1;
 
-while (<STDIN>) {
-       if ($_ =~ /^([0-9]+ )/) {
+while (defined($line = <STDIN>)) {
+       if ($line =~ /^([0-9]+ )/) {
                print $1;
        }
        print 'OK rewrite-url="'.REWRITE_URL."\"\n";
index fec92250a5159e36f911931f9b100e2fcbc70d10..ed34e1725bcbf58e272d94246a193e8a850e6ab3 100644 (file)
--- a/settings
+++ b/settings
@@ -1,14 +1,14 @@
 #all directory paths must end with '/' and must already exist.
 
 bin_path  = /yplom/bin/proxy/  #Where the software will be located
-lib_path  = /yplom/lib/proxy/
+lib_path  = /yplom/lib/proxy/  #Where the library will be located
 data_path = /yplom/data/proxy/ #where the proxy will remember data; subdir:
                                #access, pass, archive
-log_path  = /yplom/log/proxy/  #where the proxy will remember data
+log_path  = /yplom/log/proxy/  #where the proxy will write logs
 tmp_path  = /yplom/tmp/proxy/  #for temporary fies
 www_path  = /yplom/www/proxy/  #for the www server (unused)
 
-#the server must recognise these domains as itself (127.0.0.1)
+#the server must recognise these domains as itself (127.0.0.1)!
 #http and ssl proxy ports must be accessible from outside
 #Don't set the ports to default values of non-proxy http(s): 80, 443!
 http_proxy_domain  = bicyclesonthemoon.info
@@ -26,6 +26,8 @@ ssl_cert = /etc/apache2/ssl/proxy.crt
 
 # The domain and path used for proxy unlocking
 # doesn't have to be a real domain
+# But if it's real it will be proxied without unlock verification!
+# Better set your own domain here.
 unlock_domain       = yplom.bicyclesonthemoon.info
 unlock_path         = /proxy/unlock
 unlock_domain_regex = ^yplom\.bicyclesonthemoon\.info(:[0-9]*)?$
@@ -36,13 +38,17 @@ unlock_path_regex   = ^\/proxy\/unlock\/?$
 block_host_regex = ^(localhost|(botcastle[0-9]*))$
 
 #Time in minutes
-timeout_unlock = 90
-timeout_inact  = 15
+timeout_unlock = 90 # lock the proxy this many minutes after unlocking
+timeout_inact  = 15 # lock the proxy this many minutes after last activity
 
 #Time in seconds
 timeout_arch = 172800 # how old files must be to safely remove them
 
-path    = /usr/local/bin:/usr/bin:/bin
+path    = /usr/local/bin:/usr/bin:/bin #The path environment variable. Must be
+                                       #overwritten if SETUID. Otherwise
+                                       #launching programs may fail. (Perl
+                                       #security...)
+#paths to software
 perl    = /usr/bin/perl
 curl    = /usr/bin/curl
 chmod   = /bin/chmod
@@ -50,7 +56,7 @@ cp      = /bin/cp
 mv      = /bin/mv
 rm      = /bin/rm
 gcc     = /usr/bin/gcc
-gzip    = /bin/gzip
+gzip    = /bin/gzip    # not needed if logs_uncompressed=0
 c_flags = -g -Wall
 
 log_size_limit    = 65536 # How big can a log file be