diff -urN smeserver-xt_geoip-1.0.1.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/xt_geoip smeserver-xt_geoip-1.0.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/xt_geoip --- smeserver-xt_geoip-1.0.1.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/xt_geoip 2019-10-10 19:05:43.000000000 +0400 +++ smeserver-xt_geoip-1.0.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/xt_geoip 2019-10-16 17:59:19.000000000 +0400 @@ -254,17 +254,37 @@ Choose if you want to have the general filter to apply to all incoming connections or if you do not want to filter ports already defined with a specific service rule. This would allow you to have a service less restricted than the general rule if you enable this. - - COUNTRIES_LIST_DESCRIPTION - - + + SERVICE_LIST_DESCRIPTION + +
  • Click here to select new services among an available services list
  • + ]]> +
    +
    + + + LABEL_SERVICE_LIST + Service codes : + + + + SERV_LIST + List + + + + DESC_AVAILABLE_SERVICES + New Services selection +
    • Select here among the other services not yet managed individually. +
    • You may select one or more elements. Generally enabled and public ones. +
    ]]> +
    +
    + + LABEL_AVAILABLE_SERVICES + Available Services + - - - - SERVICE_DESCRIPTION - - diff -urN smeserver-xt_geoip-1.0.1.old/root/etc/e-smith/locale/fr/etc/e-smith/web/functions/xt_geoip smeserver-xt_geoip-1.0.1/root/etc/e-smith/locale/fr/etc/e-smith/web/functions/xt_geoip --- smeserver-xt_geoip-1.0.1.old/root/etc/e-smith/locale/fr/etc/e-smith/web/functions/xt_geoip 2019-10-10 19:05:43.000000000 +0400 +++ smeserver-xt_geoip-1.0.1/root/etc/e-smith/locale/fr/etc/e-smith/web/functions/xt_geoip 2019-10-16 18:00:05.000000000 +0400 @@ -93,12 +93,12 @@ IPT_LIST - Stats des connexions évitées à l'aide de XT-geoip + Filtrés SSH_LIST - Stats des erreurs SSH non bloquées par XT-geoip + Erreurs SSH @@ -119,7 +119,7 @@ STATS_DESCRIPTION - Statistiques pour Xtables GeoIP
      +

      Statistiques pour Xtables GeoIP

      • Pour 3 périodes : Jour, Semaine et Mois
      • Ips bloqués par pays triés par score
      • Erreurs Ssh par pays triées par score
      • @@ -142,7 +142,7 @@ PER_SERVICE_GEOIP - -> Services + Services @@ -191,8 +191,102 @@ - ERR_COUNTRY_MAX: {$ctr} - Code(s) pays inexistant(s) sur le serveur: {$listerr} + ERROR_COUNTRY_MAX: {$ctr} + Trop de codes pays saisis : {$ctr} - + + + SSH_LIST_DESCRIPTION +
      • Cliquer ici pour avoir les statistiques des erreurs SSH pour des accés non bloqués
      ]]> +
      + + + + IPT_LIST_DESCRIPTION +
    • Cliquer ici pour avoir les statistiques des connexions refusées
    ]]> +
    +
    + + + COUNTRY_LIST_DESCRIPTION +
  • Cliquer pour avoir une liste des codes pays disponibles
  • ]]> +
    +
    + + + LABEL_COUNTRY_LIST + Codes pays : + + + COUNTRY_LIST + Codes Pays + + + + CNTRY_LIST + Liste + + + + END_OF_CODES + Fin de la liste de codes + + + + LABEL_REVERSE_MATCH + Rejeté si + + + + DESC_REVERSE_MATCH + L'option qui suit permet de choisir de rejeter les visiteurs à partir de la liste de pays (==) + ce qui est le comportement par défaut, ou d'autoriser leurs accès (!=). + + + + LABEL_OTHERS + Filtre général uniquement pour les services sans règles d'accès + + + + DESC_OTHERS + Choisir d'appliquer le filtre général à tous les accés entrant + ou de ne pas le faire pour les ports faisant déjà l'objet d'un filtrage par service. + Ceci permet, si vous validez ici, d'avoir un service moins restreint qu'avec la règle générale. + + + + + SERVICE_LIST_DESCRIPTION + +
  • Cliquer ici pour pouvoir sélectionner de nouveaux services parmi les services disponibles restant
  • + ]]> +
    +
    + + + LABEL_SERVICE_LIST + Codes des Services : + + + + SERV_LIST + Liste + + + + DESC_AVAILABLE_SERVICES + Sélection de nouveaux services +
    • Choisir ici parmi les autres services non encore gérés individuellement. +
    • Vous pouvez choisir un ou plusieurs éléments. Généralement des services marqués enabled et public. +
    ]]> +
    +
    + + + LABEL_AVAILABLE_SERVICES + Services disponibles + + + diff -urN smeserver-xt_geoip-1.0.1.old/root/etc/e-smith/web/functions/xt_geoip smeserver-xt_geoip-1.0.1/root/etc/e-smith/web/functions/xt_geoip --- smeserver-xt_geoip-1.0.1.old/root/etc/e-smith/web/functions/xt_geoip 2019-10-10 19:05:43.000000000 +0400 +++ smeserver-xt_geoip-1.0.1/root/etc/e-smith/web/functions/xt_geoip 2019-10-16 23:49:18.000000000 +0400 @@ -103,7 +103,7 @@ COUNTRY_LIST_DESCRIPTION - + @@ -115,6 +115,13 @@ + + SERVICE_LIST_DESCRIPTION + + + + + STATS_DESCRIPTION @@ -268,6 +275,7 @@ + @@ -275,6 +283,19 @@ + + + + DESC_AVAILABLE_SERVICES + + + + + diff -urN smeserver-xt_geoip-1.0.1.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/xt_geoip.pm smeserver-xt_geoip-1.0.1/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/xt_geoip.pm --- smeserver-xt_geoip-1.0.1.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/xt_geoip.pm 2019-10-10 19:05:43.000000000 +0400 +++ smeserver-xt_geoip-1.0.1/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/xt_geoip.pm 2019-10-16 23:12:46.000000000 +0400 @@ -19,6 +19,8 @@ our @ISA = qw(esmith::FormMagick Exporter); our @EXPORT = qw( + otherServices + do_otherServices get_prop get_value get_badcountries @@ -281,6 +283,8 @@ my $self = shift; my $q = $self->{cgi}; + $self->turn_off_buttons(); + # Untaint $name before use in system() my $stats_type = $q->param ('type'); $stats_type =~ /(.+)/; $stats_type = $1; @@ -308,7 +312,7 @@ print "\n"; print $q->h3($self->localise('END_OF_STATS')); - $self->wherenext('First'); + #$self->wherenext('First'); return ''; } } @@ -496,6 +500,8 @@ my $self = shift; my $q = $self->{cgi}; + $self->turn_off_buttons(); + my $file = "/usr/share/xt_geoip/geoip_countries_list.txt"; unless ( -e $file ) { print $q->p($q->b($self->localise('INVALID_CODES_LIST'))); @@ -516,10 +522,56 @@ print "\n"; print $q->h3($self->localise('END_OF_CODES')); - $self->wherenext('First'); return ''; } +#Subroutine to list other services codes +sub otherServices +{ + my ($self, $choice) = @_; + + my %serv_ok = map { $_ => 1} split(/,/, $db->get_prop("masq", "XtServices")); + # unless $choice eq 'all'; + + my @serv_others = (); + + for ($db->get_all_by_prop(type => 'service')) + { + next unless $_->prop('TCPPort'); + # if ( $_->prop('TCPPort')) { + + # push @serv_others, $_->key unless exists( $serv_ok{$_->key}); + push @serv_others, $_->key unless $choice eq 'sel' and not exists( $serv_ok{$_->key}); + # } + } + + return \@serv_others; + +} + + +#Subroutine to update list services codes +sub do_otherServices +{ + my $self = shift; + + my $q = $self->{'cgi'}; + + my @selected = $q->param('SelectedServices'); + + my $serv1 = ($db->get_prop("masq", "XtServices")) || ''; + my $serv2 = join( ',', @selected); + + $self->wherenext('First'); + + return $self->success("NO_CHANGE") if ( $serv1 eq $serv2); + + $db->set_prop("masq", "XtServices", $serv2); + + return $self->success("SUCCESS"); +} + + 1;