+END
+ my @output = `tail -20 /var/tmp/log`;
+ foreach (@output) {
+ print "$_";
+ }
+ print <
+
+END
+ &Header::closebox();
+ &Header::closebigbox();
+ &Header::closepage();
+ exit;
+ refreshpage();
+}
+
&Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system2'});
print <
@@ -467,16 +538,12 @@ print <";
-} else {
- if ( $snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} && $md5 eq $realmd5 ) {
- $snortsettings{'INSTALLMD5'} = $realmd5;
- $snortsettings{'INSTALLDATE'} = `/bin/date +'%Y-%m-%d'`;
- &General::writehash("${General::swroot}/snort/settings", \%snortsettings);
- }
- print " $Lang::tr{'updates installed'}: $snortsettings{'INSTALLDATE'}";
+if ( $snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} ) {
+ $snortsettings{'INSTALLDATE'} = `/bin/date +'%Y-%m-%d'`;
+ &General::writehash("${General::swroot}/snort/settings", \%snortsettings);
}
+print " $Lang::tr{'updates installed'}: $snortsettings{'INSTALLDATE'}";
+
print <
@@ -501,11 +568,11 @@ if ( -e "/var/ipfire/guardian/guardian.conf" ) {
&Header::openbox('100%', 'LEFT', $Lang::tr{'guardian configuration'});
print < | ";
@@ -676,82 +748,27 @@ END
&Header::closebigbox();
&Header::closepage();
-sub getmd5 {
- # Retrieve MD5 sum from $url.md5 file
-
- my $md5buf;
- if ($snortsettings{'RULES'} eq 'subscripted') {
- $md5buf = &geturl("http://dl.snort.org/reg-rules/snortrules-snapshot-2.8_s.tar.gz.md5?oink_code=$snortsettings{'OINKCODE'}");
- } elsif ($snortsettings{'RULES'} eq 'registered') {
- $md5buf = &geturl("http://dl.snort.org/reg-rules/snortrules-snapshot-2.8.tar.gz.md5?oink_code=$snortsettings{'OINKCODE'}");
- } else {
- $md5buf = &geturl("http://www.snort.org/pub-bin/downloads.cgi/Download/comm_rules/Community-Rules-CURRENT.tar.gz.md5");
- }
-
- return undef unless $md5buf;
-
- if (0) { # 1 to debug
- my $filename='';
- my $fh='';
- ($fh, $filename) = tempfile('/var/tmp/XXXXXXXX',SUFFIX => '.md5' );
- binmode ($fh);
- syswrite ($fh, $md5buf->content);
- close($fh);
- }
-
- return $md5buf->content;
-}
sub downloadrulesfile {
- my $return = &geturl($url);
- return undef unless $return;
-
- if (index($return->content, "\037\213") == -1 ) { # \037\213 is .gz beginning
- $errormessage = $Lang::tr{'invalid loaded file'};
- return undef;
- }
-
- my $filename='';
- my $fh='';
- ($fh, $filename) = tempfile('/var/tmp/XXXXXXXX',SUFFIX => '.tar.gz' );#oinkmaster work only with this extension
- binmode ($fh);
- syswrite ($fh, $return->content);
- close($fh);
- return $filename;
-}
+ my $peer;
+ my $peerport;
-sub geturl ($) {
- my $url=$_[0];
+ unlink("/var/tmp/log");
unless (-e "${General::swroot}/red/active") {
$errormessage = $Lang::tr{'could not download latest updates'};
return undef;
}
- my $downloader = LWP::UserAgent->new;
- $downloader->timeout(5);
-
my %proxysettings=();
&General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
if ($_=$proxysettings{'UPSTREAM_PROXY'}) {
- my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);
- if ($proxysettings{'UPSTREAM_USER'}) {
- $downloader->proxy("http","http://$proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'}@"."$peer:$peerport/");
- } else {
- $downloader->proxy("http","http://$peer:$peerport/");
- }
+ ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);
}
- my $return = $downloader->get($url,'Cache-Control','no-cache');
-
- if ($return->code == 403) {
- $errormessage = $Lang::tr{'access refused with this oinkcode'};
- return undef;
- } elsif (!$return->is_success()) {
- $errormessage = $Lang::tr{'could not download latest updates'};
- return undef;
+ if ($peer) {
+ system("wget -r --proxy=on --proxy-user=$proxysettings{'UPSTREAM_USER'} --proxy-passwd=$proxysettings{'UPSTREAM_PASSWORD'} -e http_proxy=http://$peer:$peerport/ -o /var/tmp/log --no-check-certificate --output-document=/var/tmp/snortrules.tar.gz $url");
+ } else {
+ system("wget -r --no-check-certificate -o /var/tmp/log --output-document=/var/tmp/snortrules.tar.gz $url");
}
-
- return $return;
-
}
|