X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=blobdiff_plain;f=html%2Fcgi-bin%2Findex.cgi;h=b3a262994b8b6e56dc327bb38af034b6b064a848;hp=01bb3d6850c13f25f5de12f6f8c94b348ed69353;hb=f536ab266173dd7d6ec5ddd984e0a458c1aedbc2;hpb=9776dede5dfed3803272ccbe627f862481cbdcd2 diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index 01bb3d685..b3a262994 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -40,6 +40,8 @@ my $warnmessage = ''; my $refresh = ""; my $ipaddr=''; +my $haveipsec=0; +my $haveovpn=0; &Header::showhttpheaders(); @@ -60,9 +62,7 @@ my %mainsettings = (); my $connstate = &Header::connectionstatus(); if ( -e "/var/ipfire/main/gpl-accepted" ) { -if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'} || $cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { - $refresh = ""; -} elsif ($connstate =~ /$Lang::tr{'connecting'}/ || /$Lang::tr{'connection closed'}/ ){ +if ($connstate =~ /$Lang::tr{'connecting'}/ || /$Lang::tr{'connection closed'}/ ){ $refresh = ""; } elsif ($connstate =~ /$Lang::tr{'dod waiting'}/ || -e "${General::swroot}/main/refreshindex") { $refresh = ""; @@ -138,7 +138,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'yes'} && $cgiparams{'gpl_accepted'} eq '1 system('touch /var/ipfire/main/gpl_accepted') } if ( -e "/var/ipfire/main/gpl_accepted" ) { -&Header::openbox('100%', 'center', &Header::cleanhtml(`/bin/uname -n`,"y")); +&Header::openbox('100%', 'center', ''); if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ )) { @@ -158,102 +158,57 @@ if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || ( print "$Lang::tr{'profile has errors'}\n \n"; } -#if ( $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) { -# $ipaddr = $netsettings{'RED_ADDRESS'}; -#} - -my $death = 0; -my $rebirth = 0; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) { - $death = 1; - &General::log($Lang::tr{'shutting down ipfire'}); - system '/usr/local/bin/ipfirereboot down'; -} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { - $rebirth = 1; - &General::log($Lang::tr{'rebooting ipfire'}); - system '/usr/local/bin/ipfirereboot boot'; -} +print < + + + + + + + "; } else { foreach my $line (@status) { if (($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) || @@ -377,65 +361,86 @@ END } } } - print ""; + print "$active"; } - } - if ( `cat /var/ipfire/ovpn/settings | grep ^ENABLED=on` || - `cat /var/ipfire/ovpn/settings | grep ^ENABLED_BLUE=on` || - `cat /var/ipfire/ovpn/settings | grep ^ENABLED_ORANGE=on`) { - my $ovpnip = `cat /var/ipfire/ovpn/settings | grep ^DOVPN_SUBNET= | cut -c 14- | sed -e 's\/\\/255.255.255.0\/\/'`; - print <
$Lang::tr{'network'}$Lang::tr{'ip address'}$Lang::tr{'status'}
$Lang::tr{'internet'}
$ipaddr $connstate +END + my $HOSTNAME = (gethostbyaddr(pack("C4", split(/\./, $ipaddr)), 2))[0]; + if ( "$HOSTNAME" ne "" ) { + print <Hostname:$HOSTNAME  +END + } -if ($death == 0 && $rebirth == 0) { - -if ($mainsettings{'REBOOTQUESTION'} eq "off") { -print < - - - - - - -
- + if ( -e "/var/ipfire/red/remote-ipaddress" ) { + my $GATEWAY = `cat /var/ipfire/red/remote-ipaddress`; + chomp($GATEWAY); + print <
Gateway:$GATEWAY  END -; -} else { - if ($cgiparams{'ACTION'} eq $Lang::tr{'reboot ask'}) { -print < - - - - - - - - - -
$Lang::tr{'reboot sure'}
- + } + + my $DNS1 = `cat /var/ipfire/red/dns1`; + my $DNS2 = `cat /var/ipfire/red/dns2`; + chomp($DNS1); + chomp($DNS1); + + if ( $DNS1 ) { print <
DNS-Server:$DNS1 END -; - } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown ask'}) { -print < - - - - - - - - + } + if ( $DNS2 ) { print <$DNS2 +END + } else { print < 
$Lang::tr{'shutdown sure'}
- -END -; - } else { -print < - - - - - - -
- END -; } -} -print < - - "; if ($confighash{$key}[0] eq 'off') { - $active = "
$Lang::tr{'network'} - IP - $Lang::tr{'status'} -
$Lang::tr{'internet'}
-
$ipaddr - $connstate -END +#Dial profiles if ( $netsettings{'RED_TYPE'} ne "STATIC" && $netsettings{'RED_TYPE'} ne "DHCP" ){ print `/usr/local/bin/dialctrl.pl show`; print < +
+ +
$Lang::tr{'profile'}:
"; } - my $HOSTNAME = (gethostbyaddr(pack("C4", split(/\./, $ipaddr)), 2))[0]; - if ( "$HOSTNAME" ne "" ) { - print <
Hostname:$HOSTNAME  -END - } - - if ( -e "/var/ipfire/red/remote-ipaddress" ) { - my $GATEWAY = `cat /var/ipfire/red/remote-ipaddress`; - chomp($GATEWAY); + if ( $netsettings{'GREEN_DEV'} ) { + my $sub=&General::iporsubtocidr($netsettings{'GREEN_NETMASK'}); print <Gateway:$GATEWAY  -END - } - - my $DNS1 = `cat /var/ipfire/red/dns1`; - my $DNS2 = `cat /var/ipfire/red/dns2`; - chomp($DNS1); - chomp($DNS1); - - if ( $DNS1 ) { print <DNS-Server:$DNS1 -END - } - if ( $DNS2 ) { print <$DNS2 -END - } else { print <  -END - } - - if ( $netsettings{'GREEN_DEV'} ) { print < + + + + + + +
$Lang::tr{'network'}$Lang::tr{'ip address'}$Lang::tr{'status'}
$Lang::tr{'lan'} - $netsettings{'GREEN_ADDRESS'} - + $netsettings{'GREEN_ADDRESS'}/$sub + END if ( `cat /var/ipfire/proxy/advanced/settings | grep ^ENABLE=on` ) { print $Lang::tr{'advproxy on'}; if ( `cat /var/ipfire/proxy/advanced/settings | grep ^TRANSPARENT=on` ) { print " (transparent)"; } } else { print $Lang::tr{'advproxy off'}; } } - if ( $netsettings{'BLUE_DEV'} ) { print <$Lang::tr{'wireless'}
-
$netsettings{'BLUE_ADDRESS'} - + $netsettings{'BLUE_ADDRESS'}/$sub + END if ( `cat /var/ipfire/proxy/advanced/settings | grep ^ENABLE_BLUE=on` ) { print $Lang::tr{'advproxy on'}; if ( `cat /var/ipfire/proxy/advanced/settings | grep ^TRANSPARENT_BLUE=on` ) { print " (transparent)"; } } else { print $Lang::tr{'advproxy off'}; } } - if ( $netsettings{'ORANGE_DEV'} ) { print <$Lang::tr{'dmz'}
-
$netsettings{'ORANGE_ADDRESS'} - Online + if ( $netsettings{'ORANGE_DEV'} ) { + my $sub=&General::iporsubtocidr($netsettings{'ORANGE_NETMASK'}); + print <$Lang::tr{'dmz'}
+
$netsettings{'ORANGE_ADDRESS'}/$sub + Online +END + } +#check if IPSEC is running +if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` || + `cat /var/ipfire/vpn/settings | grep ^ENABLED_BLUE=on` ) { + $haveipsec=1; + my $ipsecip = `cat /var/ipfire/vpn/settings | grep ^VPN_IP= | cut -c 8-`; +print<$Lang::tr{'ipsec'}
+
$ipsecip + Online +END +} + +#check if OpenVPN is running +my %confighash=(); +&General::readhash("${General::swroot}/ovpn/settings", \%confighash); + +if (($confighash{'ENABLED'} eq "on") || + ($confighash{'ENABLED_BLUE'} eq "on") || + ($confighash{'ENABLED_ORANGE'} eq "on")) { + my ($ovpnip,$sub) = split("/",$confighash{'DOVPN_SUBNET'}); + $sub=&General::iporsubtocidr($sub); + $ovpnip="$ovpnip/$sub"; + $haveovpn=1; +print < + + OpenVPN
+
$ovpnip + Online END } - if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` || - `cat /var/ipfire/vpn/settings | grep ^ENABLED_BLUE=on` ) { +print"
"; +&Header::closebox(); + +# Start of Box wich contains all vpn connections + &Header::openbox('100%', 'center', $Lang::tr{'vpn'}) if ($haveipsec || $haveovpn); + +#show ipsec connectiontable + if ( $haveipsec ) { my $ipsecip = `cat /var/ipfire/vpn/settings | grep ^VPN_IP= | cut -c 8-`; my @status = `/usr/local/bin/ipsecctrl I`; my %confighash = (); &General::readhasharray("${General::swroot}/vpn/config", \%confighash); print <
$Lang::tr{'vpn'}
-
$ipsecip - Online +
+ + + + + + END my $id = 0; my $gif; + my $col=""; foreach my $key (sort { uc($confighash{$a}[1]) cmp uc($confighash{$b}[1]) } keys %confighash) { if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; } - + my ($vpnip,$vpnsub) = split("/",$confighash{$key}[11]); + $vpnsub=&General::iporsubtocidr($vpnsub); + $vpnip="$vpnip/$vpnsub"; if ($id % 2) { - print ""; + $col="bgcolor='$color{'color20'}'"; + print ""; } else { - print ""; + $col="bgcolor='$color{'color22'}'"; + print ""; } - my $active = "
$Lang::tr{'ipsec network'}$Lang::tr{'ip address'}$Lang::tr{'status'}
$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")$confighash{$key}[11]
$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")$vpnip
$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")$confighash{$key}[11]
$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")$vpnip
$Lang::tr{'capsclosed'}
"; + my $active = "
$Lang::tr{'capsclosed'}
$Lang::tr{'capsclosed'}
"; + $active = "
$Lang::tr{'capsclosed'}$activeOpenVPN
-
$ovpnip - Online - -END - + print "
"; } ### -# m.a.d n2n +# Check if there is any OpenVPN connection configured. ### -if ( -d "${General::swroot}/ovpn/n2nconf") { -my %confighash=(); -my $display = ''; - -&General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); -foreach my $dkey (keys %confighash) { -if ($confighash{$dkey}[3] eq 'net') { - - - if (-e "/var/run/$confighash{$dkey}[1]n2n.pid") { - my @output = ""; - my @tustate = ""; - my $tport = $confighash{$dkey}[22]; - my $tnet = new Net::Telnet ( Timeout=>5, Errmode=>'return', Port=>$tport); - if ($tport ne '') { - $tnet->open('127.0.0.1'); - @output = $tnet->cmd(String => 'state', Prompt => '/(END.*\n|ERROR:.*\n)/'); - @tustate = split(/\,/, $output[1]); - if ( $tustate[1] eq 'CONNECTED') - { $display = "$Lang::tr{'capsopen'}"; - } else { - $display = "$tustate[1]"; } - +if ( $haveovpn ) +{ print <OpenVPN n2n
- $confighash{$dkey}[10] $display - +
+ + + + + END -; -} -} -} -} + # Check if the OpenVPN server for Road Warrior Connections is running and display status information. + my %confighash=(); + + &General::readhash("${General::swroot}/ovpn/settings", \%confighash); + # Print the OpenVPN N2N connection status. + if ( -d "${General::swroot}/ovpn/n2nconf") { + my %confighash=(); + + &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); + my $lines; + my $col=""; + foreach my $dkey (keys %confighash) { + $lines++; + if (($confighash{$dkey}[3] eq 'net') && (-e "/var/run/$confighash{$dkey}[1]n2n.pid")) { + my $tport = $confighash{$dkey}[22]; + next if ($tport eq ''); + + my $tnet = new Net::Telnet ( Timeout=>5, Errmode=>'return', Port=>$tport); + $tnet->open('127.0.0.1'); + my @output = $tnet->cmd(String => 'state', Prompt => '/(END.*\n|ERROR:.*\n)/'); + my @tustate = split(/\,/, $output[1]); + + my $display; + my $display_colour = $Header::colourred; + if ( $tustate[1] eq 'CONNECTED') { + $display_colour = $Header::colourgreen; + $display = $Lang::tr{'capsopen'}; + } else { + $display = $tustate[1]; + } + if ($lines %2){ + $col="bgcolor='$color{'color20'}'"; + }else{ + $col="bgcolor='$color{'color22'}'"; + } + #make cidr from ip + my ($vpnip,$vpnsub) = split("/",$confighash{$dkey}[11]); + my $vpnsub=&General::iporsubtocidr($vpnsub); + my $vpnip="$vpnip/$vpnsub"; + print < + + + + +END + } + } + } } - -### -# m.a.d n2n end -### - +&Header::closebox(); # Fireinfo if ( ! -e "/var/ipfire/main/send_profile") { $warnmessage .= "
  • $Lang::tr{'fireinfo please enable'}
  • "; @@ -510,28 +515,6 @@ END if ( -e "/var/run/need_reboot" ) { print "

    $Lang::tr{'needreboot'}!"; } -} else { - my $message=''; - if ($death) { - $message = $Lang::tr{'ipfire has now shutdown'}; - } else { - $message = $Lang::tr{'ipfire has now rebooted'}; - } - print < -
    $Lang::tr{'openvpn network'}$Lang::tr{'ip address'}$Lang::tr{'status'} + $confighash{$dkey}[1] + + $vpnip + + + + $display + + +
    - -
    -




    -
    -
    -$message - -END -; - -} - &Header::closebox(); }