initial commit of file from CVS for smeserver-denyhosts on Sat Sep 7 19:51:06 AEST 2024

This commit is contained in:
Trevor Batley 2024-09-07 19:51:06 +10:00
parent 0752bb2038
commit 52e223dd5f
72 changed files with 2173 additions and 2 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*.rpm
*.log
*spec-20*
*.tgz

21
Makefile Normal file
View File

@ -0,0 +1,21 @@
# Makefile for source rpm: smeserver-denyhosts
# $Id: Makefile,v 1.1 2020/10/23 12:01:47 brianr Exp $
NAME := smeserver-denyhosts
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

View File

@ -1,3 +1,16 @@
# smeserver-denyhosts
# <img src="https://www.koozali.org/images/koozali/Logo/Png/Koozali_logo_2016.png" width="25%" vertical="auto" style="vertical-align:bottom"> smeserver-denyhosts
SMEServer Koozali developed git repo for smeserver-denyhosts smecontribs
## Wiki
<br />https://wiki.koozali.org/Denyhosts
<br />https://wiki.koozali.org/Denyhosts/fr
## Bugzilla
Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-denyhosts&product=SME%20Contribs&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)
## Description
<br />*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
*Once it has been checked, then this comment will be deleted*
<br />

1
contriborbase Normal file
View File

@ -0,0 +1 @@
contribs10

35
createlinks Executable file
View File

@ -0,0 +1,35 @@
#!/usr/bin/perl -w
use esmith::Build::CreateLinks qw(:all);
panel_link("denyhosts", "manager");
safe_symlink('restart', "root/etc/e-smith/events/conf-denyhosts/services2adjust/denyhosts");
foreach $file (
qw(/var/lib/denyhosts/allowed-hosts /etc/denyhosts.conf))
{
templates2events($file, qw(bootstrap-console-save conf-denyhosts smeserver-denyhosts-update));
}
foreach $file (
qw(/etc/hosts.allow))
{
templates2events($file, qw(conf-denyhosts smeserver-denyhosts-update));
}
my $event= "smeserver-denyhosts-update";
event_link("systemd-reload", $event, "89");
event_link("systemd-default", $event, "88");
safe_symlink('restart', "root/etc/e-smith/events/$event/services2adjust/denyhosts");
event_link("navigation-conf", $event, "80");
use esmith::Build::Backup qw(:all);
backup_includes("smeserver-denyhosts", qw(
/var/lib/denyhosts/
/etc/hosts.deny_ssh
/etc/hosts.deny_ssh.purge.bak
));
exit 0;

View File

@ -0,0 +1 @@
disabled

View File

@ -0,0 +1 @@
service

View File

@ -0,0 +1,64 @@
#!/usr/bin/perl -w
use strict;
use Errno;
use esmith::ConfigDB;
use esmith::util;
use esmith::db;
use Data::Validate::IP;
my $validator=Data::Validate::IP->new;
my $event = $ARGV [0];
my $ip = $ARGV [1];
my $whitelist = $ARGV [2];
my $debug=0;
die "IP missing" unless defined ($ip);
die "Not an IP" unless ($validator->is_ipv4($ip));
die "IP $ip not banned" unless (system("grep $ip /etc/hosts.deny_ssh ".'>/dev/null 2>&1') == 0);
die "can not stop denyhost" unless ( system("/etc/init.d/denyhosts","stop") ==0);
# unlist
my @files = ('/etc/hosts.deny_ssh', '/var/lib/denyhosts/hosts', '/var/lib/denyhosts/hosts-restricted' , '/var/lib/denyhosts/hosts-root', '/var/lib/denyhosts/hosts-valid', '/var/lib/denyhosts/users-hosts' );
foreach my $file (@files) {
if (system("grep $ip $file".' >/dev/null 2>&1') == 0) {
print "$ip removed from $file\n" if (system("sed -i '/$ip/d' $file") == 0 && $debug )
}
}
#(optional, whitelist) /var/lib/denyhosts/allowed-hosts
if (defined($whitelist)) {
# add to db
my $db = esmith::ConfigDB->open
|| warn "Couldn't open configuration database (permissions problems?)";
my $rec = $db->get('denyhosts');
if ($rec)
{
my $prop = $rec->prop('ValidFrom') || '';
my @vals = split /,/, $prop;
unless (grep /^$ip$/, @vals)
{ # already have this entry
if ($prop ne '')
{
$prop .= ",$ip";
}
else
{
$prop = "$ip";
}
$rec->set_prop('ValidFrom', $prop);
system("/sbin/e-smith/expand-template /var/lib/denyhosts/allowed-hosts");
print "Add to whitelist: $ip \n";
}
}
}
# /etc/init.d/denyhosts start
system("/etc/init.d/denyhosts","start");

View File

@ -0,0 +1,58 @@
<lexicon lang="bg">
<entry>
<base>SERVICE_STATUS</base>
<trans>Състояние на услугата denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Състояние</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Разрешени хостове</h2> <p>Това е списък на хостовете, които няма да бъдат блокирани от denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Няма елементи</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>За да добавите нов разрешен хост въведете информацията по-долу.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Оторизиран IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>Това е списък на хостовете които са блокирани в момента и кога са видени за пръв път. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Хостът видян за пръв път</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>Новите настройки на denyhosts бяха записани.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Не успяхме да намерим запис за denyhosts в базата данни за конфигурации</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Грешка при опит за спиране на услугата</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>Беше махната забраната за този IP адрес</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>Беше махната забраната за този IP адрес и бе поставен бели списък</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Бял списък</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="da">
<entry>
<base>SERVICE_STATUS</base>
<trans>Blokerede værters servicestatus</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Tilladte Værter</h2> <p>Dette er en liste over værter der ikke vil blive blokeret af denyhost.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Ingen optegnelser</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>For at tilføje en ny tilladt vært, angiv detaljer nedenfor.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Autoriseret IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blokerede Værter</h2> <p>Dette er en liste over aktuelt blokerede værter og hvornår de først er set. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Vært set første gang</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>De nye indstillinger for blokerede væreter er gemt.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Er ikke i stand til at lokalisere optegnelser over blokerede værter i konfigurationdatabasen</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Fejl under forsøg på at stoppe denne service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>Det følgende IP er ikke længere blokeret</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>Det følgende IP er ikke længere blokeret og er hvidlistet</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Hvidliste</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="de">
<entry>
<base>SERVICE_STATUS</base>
<trans>Status des Dienstes denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Noch keine Einträge</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Um einen neuen zugelassenen Rechner für den Fernzugriff hinzuzufügen, geben Sie die erforderlichen Daten unten ein.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Berechtigte IPv4 Adresse hinzufügen</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host zuerst bemerkt am</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>Die neuen Einstellungen für den Dienst denyhosts wurden gespeichert.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>In der Konfigurationsdatenbank kann kein "denyhost" Eintrag gefunden werden.</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Fehler beim Versuch den service zu stoppen.</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>Der Client wurde getrennt</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelisten</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="el">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,66 @@
<lexicon lang="en-us">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans>
<![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2>
<p>This is a list of hosts that will not be blocked by denyhosts.</p>
]]>
</trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans>
<![CDATA[ <h2>Blocked Hosts</h2>
<p>This is a list of hosts that are currently blocked and when they were first seen.
]]>
</trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="es">
<entry>
<base>SERVICE_STATUS</base>
<trans>Estado del servicio Denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Estado</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Aún No Hay Entradas</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Para permitir un nuevo host, introduzca los detalles a continuación.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>IP autorizada</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host visto por primera vez</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>La nueva configuración de denyhosts ha sido guardada.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>No se puede ubicar el registro denyhosts en la base de datos de configuración</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Ocurrió un error mientras se detenía el servicio</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Estado Whitelists</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="et">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts teenuse olek</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Olek</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Pole veel sisestusi</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Uue hosti lubamiseks sisesta allpool andmed.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Autoriseeritud IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>Uued denyhosts seaded edukalt salvestatud.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Ei leia denyhosts kirjeid gonfiguratsiooni andmebaasist</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Teenuse peatamisel ilmnes viga</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Valge nimekirja olek</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="fr">
<entry>
<base>SERVICE_STATUS</base>
<trans>État du service Denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>État</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Hôtes Autorisés</h2> <p>Ceci est une liste d'hôtes qui ne seront pas interdits via denyhosts. ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Aucune entrée</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Pour ajouter un nouvel Hôte autorisé, entrez les informations ci-dessous :</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>IPv4 autorisée</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Liste des hôtes bloqués</h2> <p> Voici la liste des hôtes qui ont été bannis par denyhosts, ainsi que la date de leur ajout par denyhosts. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Hôte vu pour la première fois</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>Les nouveaux paramètres de denyhosts ont été enregistrés.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Impossible de trouver les informations dans la base de données de configuration.</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Une erreur s'est produite pendant l'arrêt du service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>L'IP a été dé-bannie </trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>L'IP a été dé-bannie et mise sur liste blanche</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Liste blanche</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="he">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>מצב</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="hu">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Állapot</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="id">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="it">
<entry>
<base>SERVICE_STATUS</base>
<trans>Stato del servizio Denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Stato</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Host accettati</h2> <p>Questa è la lista di host che non saranno bloccati da denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Nessun elemento inserito</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Per aggiungere un nuovo host, inserire i dettagli sotto.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Indirizzi IP autorizzati</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Host bloccati</h2> <p>Questa è la lista degli host attualmente bloccati e da quando. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Data del blocco</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>La nuova configurazione è stata salvata.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Impossibile trovare il record per Denyhosts nel db di configurazione</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Errore durante l'arresto del servizio</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>L'indirizzo IP è stato rimosso dalla ban-list</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>L'indirizzo IP è stato rimosso dalla ban-list ed inserito in white-list</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>White List</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="ja">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>状態</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>設定が保存されました。</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="nb">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="nl">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts dienst status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Nog geen gegevens</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Voer hieronder de details in voor een nieuwe toegestane host.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Geautoriseerd IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host voor het eerst gezien</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>De nieuwe denyhosts instellingen zijn opgeslagen.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Kan het denyhost record niet vinden in de configuratie database</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Fout opgetreden bij proberen dienst te stoppen</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>De verbinding met het systeem is verbroken</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Witte lijst</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="pl">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Stan</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>Ustawienia zostały zapisane.</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="pt-br">
<entry>
<base>SERVICE_STATUS</base>
<trans>Status do serviço denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Hosts Permitidos</h2> <p>Esta é uma lista dos hosts que não serão bloqueados pelo denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Nenhuma entrada ainda</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Para adicionar um novo host permitido entre com os detalhes abaixo.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>IP autorizado</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Hosts Bloqueados</h2> <p>Esta é uma lista dos hosts que estão atualmente bloqueados e quando eles foram vistos primeiro. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host visto primeiro em</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>As novas configurações do denyhosts foram salvas.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Incapaz de localizar registro denyhosts na configuração do banco de dados</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Erro enquanto tentando parar serviço</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>O seguinte IP deixou de ser banido</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>O seguinte IP deixou de ser banido e foi colocado na lista branca</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Lista Branca</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="pt">
<entry>
<base>SERVICE_STATUS</base>
<trans>Status do serviço denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Nenhuma entrada ainda</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Para adicionar um novo host permitido entre com os detalhes abaixo.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>IP autorizado</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host visto primeiro em</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>As novas configurações do denyhosts foram salvas.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Incapaz de localizar registro denyhosts na configuração do banco de dados</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Erro enquanto tentando parar serviço</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="ro">
<entry>
<base>SERVICE_STATUS</base>
<trans>Starea serviciului Denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Stare</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Clienti acceptați</h2> <p>Lista clienților ce nu vor fi blocați de "denyhosts".</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Nu există nici o înregistrare</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Pentru a adauga un client nou, introduceți datele aici.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>IP-uri autorizate</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Clienti blocați</h2> <p>Aceasta este lista clienților blocați și data când au apărut prima data. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Client observat prima data</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>Noile setări ale serviciului denyhosts au fost salvate</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Nu am putut localiza înregistrările serviciului denyhosts în baza de date de configurare</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>A apărut o eroare când s-a încercat oprirea serviciului</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="ru">
<entry>
<base>SERVICE_STATUS</base>
<trans>Состояние службы denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Состояние</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Разрешенные хосты</h2> <p>Это список узлов не блокируемых denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Нет элементов</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Чтобы добавить новый разрешенный хост введите подробности ниже.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Авторизованный IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Блокируемые хосты</h2> <p>Это список хостов, которые в настоящее время блокированы и время, когда они были впервые обнаружены. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Хост впервые обнаружен</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>Новые настройки denyhosts были сохранены.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Неудалось обнаружить запись denyhosts в бд конфигурации</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Ошибка при попытке остановить службу</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>Клиент был отключен</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Состояние whitelists</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="sl">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="sv">
<entry>
<base>SERVICE_STATUS</base>
<trans>Status på servicen Denyhosts</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Status</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Inga värden ännu</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>För att lägga till en ny tillåten värd, ange värden nedan.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Godkänd IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Värd sett första gången</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>De nya inställningarna har sparats.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Kan inte hitta denyhosts-posten i konfigurationsdatabasen</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Ett fel uppstod vid försök att stoppa service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>Klienten har blivit frånkopplad</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Vitlistans status</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="th">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts service status</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>สถานะ</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>No Entries Yet</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>To add a new allowed host, enter the details below.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Authorized IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Host first seen</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new denyhosts settings have been saved.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Unable to locate denyhosts record in configuration db</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Error while trying to stop service</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>Whitelist</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="tr">
<entry>
<base>SERVICE_STATUS</base>
<trans>Sunucu engelleme servisinin durumu</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>Durum</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>This is a list of hosts that will not be blocked by denyhosts.</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>Giriş izni yok</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>Yeni güvenilir sunucu eklemek için, gerekli bilgileri aşağıya tanımlayın.</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>Yetkilendirilmiş IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>This is a list of hosts that are currently blocked and when they were first seen. ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>Sunucunu ilk defa görülmesi</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>Yeni Engellenen Sunucu ayarları kaydedildi.</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>Veritabanında Engellenen Sunucu kaydı bulunamadı</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>Servisi durdurmaya çalışırken hata oluştu</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>The following IP has been unbanned</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>liste</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="zh-cn">
<entry>
<base>SERVICE_STATUS</base>
<trans>Denyhosts 服务状态</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>状态</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>Allowed Hosts</h2> <p>以下列表中的主机不会被阻止访问服务器。</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>还没有输入</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>要添加新的白名单主机,请在下面输入详情。</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>信任的IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>Blocked Hosts</h2> <p>这是当前被拒绝的未知且未取得信任的主机列表。 ]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>第一次出现的主机</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>新的 denyhosts 设置已被保存。</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>未能在本地配置数据库中找到 denyhosts 记录</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>停止服务时出错</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>客户端已被断开</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>白名单状态</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,58 @@
<lexicon lang="zh-tw">
<entry>
<base>SERVICE_STATUS</base>
<trans>阻擋主機之服務的狀態</trans>
</entry>
<entry>
<base>STATUS</base>
<trans>狀態</trans>
</entry>
<entry>
<base>VALIDFROM_DESC</base>
<trans><![CDATA[ <hr class="sectionbar" /><h2>主機白名單</h2> <p>以下列表中的主機將不會被主機黑名單所攔截。</p> ]]></trans>
</entry>
<entry>
<base>NO_ENTRIES_YET</base>
<trans>尚無輸入</trans>
</entry>
<entry>
<base>DESC_ADD_IP</base>
<trans>請於下方詳填欲新增主機的白名單。</trans>
</entry>
<entry>
<base>ADD_IP</base>
<trans>獲得授權的IP</trans>
</entry>
<entry>
<base>CURRENT_DENY_DESC</base>
<trans><![CDATA[ <h2>主機黑名單</h2> <p>此為初次訪問並於當下被拒絕的主機列表。]]></trans>
</entry>
<entry>
<base>FIRST_SEEN</base>
<trans>首次訪問的主機</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>新的主機黑名單之設定已經被保存。</trans>
</entry>
<entry>
<base>ERR_NO_RECORD</base>
<trans>無法在設定資料庫中取得主機黑名單的紀錄</trans>
</entry>
<entry>
<base>ERROR_STOPPING</base>
<trans>錯誤發生於試圖停止服務時</trans>
</entry>
<entry>
<base>SUCCESS_IP</base>
<trans>此終端機已中斷</trans>
</entry>
<entry>
<base>SUCCESS_IP_WHITE</base>
<trans>The following IP has been unbanned and whitelisted</trans>
</entry>
<entry>
<base>WHITELIST</base>
<trans>白名單</trans>
</entry>
</lexicon>

View File

@ -0,0 +1,3 @@
PERMS=0600
UID="root"
GID="root"

View File

@ -0,0 +1,5 @@
{
my $ADMIN_EMAIL = ( $denyhosts{'AdminEmail'} || 'admin@localhost');
$OUT="ADMIN_EMAIL = $ADMIN_EMAIL ";
}

View File

@ -0,0 +1 @@
AGE_RESET_INVALID=10d

View File

@ -0,0 +1 @@
AGE_RESET_RESTRICTED=25d

View File

@ -0,0 +1 @@
AGE_RESET_ROOT=25d

View File

@ -0,0 +1 @@
AGE_RESET_VALID=5d

View File

@ -0,0 +1 @@
BLOCK_SERVICE =

View File

@ -0,0 +1 @@
DAEMON_LOG = /var/log/denyhosts

View File

@ -0,0 +1 @@
DAEMON_PURGE = 1h

View File

@ -0,0 +1 @@
DAEMON_SLEEP = 30s

View File

@ -0,0 +1 @@
DENY_THRESHOLD_INVALID = 2

View File

@ -0,0 +1 @@
DENY_THRESHOLD_RESTRICTED = 1

View File

@ -0,0 +1 @@
DENY_THRESHOLD_ROOT = 1

View File

@ -0,0 +1 @@
DENY_THRESHOLD_VALID = 2

View File

@ -0,0 +1,3 @@
# default EPEL does not work for SME ( trailing $)
FAILED_ENTRY_REGEX2 = (?P<invalid>(Illegal|Invalid)) user (?P<user>.*) from (::ffff:)?(?P<host>\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\})

View File

@ -0,0 +1,3 @@
# default EPEL does not work for SME ( trailing $)
FAILED_ENTRY_REGEX6 = Did not receive identification string .*from (::ffff:)?(?P<host>\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\})

View File

@ -0,0 +1,3 @@
# default EPEL does not work for SME ( trailing $)
FAILED_ENTRY_REGEX7 = User (?P<user>.*) from (::ffff:)?(?P<host>\S+) not allowed because not listed in AllowUsers

View File

@ -0,0 +1 @@
HOSTNAME_LOOKUP=YES

View File

@ -0,0 +1 @@
HOSTS_DENY = /etc/hosts.deny_ssh

View File

@ -0,0 +1 @@
LOCK_FILE = /var/run/denyhosts.pid

View File

@ -0,0 +1 @@
PURGE_DENY = 1w

View File

@ -0,0 +1 @@
RESET_ON_SUCCESS = yes

View File

@ -0,0 +1 @@
SECURE_LOG = /var/log/sshd/sshd.log

View File

@ -0,0 +1 @@
SMTP_FROM = DenyHosts <nobody@{"$DomainName";}>

View File

@ -0,0 +1 @@
SMTP_HOST = localhost

View File

@ -0,0 +1 @@
SMTP_PORT = 25

View File

@ -0,0 +1 @@
SMTP_SUBJECT = DenyHosts Report

View File

@ -0,0 +1 @@
SSHD_FORMAT_REGEX = @[0-9a-f]\{24\}(?P<message>.*)

View File

@ -0,0 +1,3 @@
# default EPEL does not work for SME ( trailing $)
SUCCESSFUL_ENTRY_REGEX = Accepted (?P<method>\S+) for (?P<user>.*?) from (::ffff:)?(?P<host>\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\})( port \d+)?( ssh2)?

View File

@ -0,0 +1 @@
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES

View File

@ -0,0 +1 @@
SYSLOG_REPORT=YES

View File

@ -0,0 +1 @@
WORK_DIR = /var/lib/denyhosts

View File

@ -0,0 +1,4 @@
{
my @vals = split ",", ($denyhosts{ValidFrom} || '');
$OUT = join "\n", @vals;
}

View File

@ -0,0 +1 @@
127.0.0.1

View File

@ -0,0 +1,44 @@
#!/usr/bin/perl -wT
# vim: ft=xml ts=8 sw=4 noet:
#----------------------------------------------------------------------
# heading : Security
# description : SSH Denyhosts
# navigation : 5000 5250
#----------------------------------------------------------------------
use strict;
use esmith::FormMagick::Panel::denyhosts;
my $f = esmith::FormMagick::Panel::denyhosts->new();
$f->display();
__DATA__
<form title="SSH Denyhosts" header="/etc/e-smith/web/common/head.tmpl"
footer="/etc/e-smith/web/common/foot.tmpl">
<page name="First" post-event="change_settings()"
pre-event="print_status_message()">
<field type="select" id="status"
options=" 'enabled' => 'ENABLED', 'disabled' => 'DISABLED'"
value="get_prop('denyhosts', 'status')">
<label>STATUS</label>
<description>SERVICE_STATUS</description>
</field>
<subroutine src="show_valid_from_list()"/>
<field type="text" id="ip" value=""
validation="ip_number_or_blank">
<description>DESC_ADD_IP</description>
<label>ADD_IP</label>
</field>
<subroutine src="print_button('SAVE')" />
<subroutine src="show_current_deny()"/>
</page>
<page name="Second"
pre-event="RemoveIP()">
<subroutine src="print_status_message()" />
<subroutine src="back()" />
</page>
</form>

View File

@ -0,0 +1,8 @@
[Service]
ExecStartPre=
ExecStartPre=/sbin/e-smith/service-status denyhosts
TimeoutStartSec=300
Restart=always
[Install]
WantedBy=sme-server-target

View File

@ -0,0 +1,305 @@
#!/usr/bin/perl -w
package esmith::FormMagick::Panel::denyhosts;
use strict;
use esmith::ConfigDB;
use esmith::FormMagick;
use esmith::util;
use esmith::cgi;
use File::Basename;
use Exporter;
use Carp;
use Data::Validate::IP;
our @ISA = qw(esmith::FormMagick Exporter);
our @EXPORT = qw(get_value get_prop change_settings RemoveIP);
my $scriptname = basename($0);
our $VERSION = sprintf '%d.%03d', q$Revision: 1.00 $ =~ /: (\d+).(\d+)/;
our $db = esmith::ConfigDB->open
|| warn "Couldn't open configuration database (permissions problems?)";
sub new {
shift;
my $self = esmith::FormMagick->new();
$self->{calling_package} = (caller)[0];
bless $self;
return $self;
}
sub get_prop
{
my $fm = shift;
my $item = shift;
my $prop = shift;
return $db->get_prop($item, $prop) || '';
}
sub get_value {
my $fm = shift;
my $item = shift;
return ($db->get($item)->value());
}
sub ip_number_or_blank
{
my $self = shift;
my $ip = shift;
if (!defined($ip) || $ip eq "")
{
return 'OK';
}
return CGI::FormMagick::Validator::ip_number($self, $ip);
}
sub _get_valid_from
{
my $self = shift;
my $rec = $db->get('denyhosts');
return undef unless($rec);
my @vals = (split ',', ($rec->prop('ValidFrom') || ''));
return @vals;
}
sub ip_sort(@)
{
return esmith::util::IPquadToAddr($a) <=> esmith::util::IPquadToAddr($b);
}
sub show_valid_from_list
{
my $self = shift;
my $q = $self->{cgi};
print '<tr><td colspan=2>',$q->p($self->localise('VALIDFROM_DESC')),'</td></tr>';
my @vals = $self->_get_valid_from();
if (@vals)
{
print '<tr><td colspan=2>',
$q->start_table({class => "sme-border"}),"\n";
print $q->Tr(
esmith::cgi::genSmallCell($q, $self->localise('IP_ADDRESS'),"header"),
esmith::cgi::genSmallCell($q, $self->localise('REMOVE'),"header"));
my @vals_sorted= sort ip_sort @vals;
my @cbGroup = $q->checkbox_group(-name => 'validFromRemove',
-values => [@vals_sorted], -labels => { map {$_ => ''} @vals_sorted });
foreach my $val (@vals_sorted)
{
print $q->Tr(
esmith::cgi::genSmallCell($q, $val, "normal"),
esmith::cgi::genSmallCell($q, shift(@cbGroup),
"normal"));
}
print '</table></td></tr>';
}
else
{
print $q->Tr($q->td($q->b($self->localise('NO_ENTRIES_YET'))));
}
return '';
}
sub show_current_deny
{
my $self = shift;
my $q = $self->{cgi};
print '<tr><td colspan=2>',$q->p($self->localise('CURRENT_DENY_DESC')),'</td></tr>';
my %vals = ();
if (open(DENY, "/etc/hosts.deny_ssh") ) {
%vals = map { m{DenyHosts: (.*) \| (.*)$}; $2 => $1; } grep /DenyHosts:/, <DENY>;
close DENY;
}
if (%vals)
{
print '<tr><td colspan=2>',
$q->start_table({class => "sme-border"}),"\n";
print $q->Tr(
esmith::cgi::genSmallCell($q, $self->localise('IP_ADDRESS'),"header"),
esmith::cgi::genSmallCell($q, $self->localise('FIRST_SEEN'),"header"),
esmith::cgi::genSmallCell($q, $self->localise('ACTION'),"header"));
foreach my $val (sort ip_sort keys %vals)
{
my $action3 ="<a href=\"$scriptname?page=0&page_stack=&Next=Next&action=RemoveIP&IP=$val&wherenext=Second\">".$self->localise('REMOVE')."</a>" .
" <a href=\"$scriptname?page=0&page_stack=&Next=Next&action=RemoveIP&IP=$val&wherenext=Second&Whitelist=true\">".$self->localise('WHITELIST')."</a>" ;
print $q->Tr(
esmith::cgi::genSmallCell($q, $val, "normal"),
esmith::cgi::genSmallCell($q, $vals{$val}, "normal"),
esmith::cgi::genSmallCell($q, $action3, "normal"));
}
print '</table></td></tr>';
}
else
{
print $q->Tr($q->td($q->b($self->localise('NO_ENTRIES_YET'))));
}
return '';
}
sub add_new_valid_from
{
my $self = shift;
my $q = $self->{cgi};
my $ip = $q->param('ip');
# do nothing if no ip was added
return 1 unless ($ip);
my $rec = $db->get('denyhosts');
unless ($rec)
{
return $self->error('ERR_NO_RECORD');
}
my $prop = $rec->prop('ValidFrom') || '';
my @vals = split /,/, $prop;
return '' if (grep /^$ip$/, @vals); # already have this entry
if ($prop ne '')
{
$prop .= ",$ip";
}
else
{
$prop = "$ip";
}
$rec->set_prop('ValidFrom', $prop);
$q->delete('ip');
return 1;
}
sub remove_valid_from
{
my $self = shift;
my $q = $self->{cgi};
my @remove = $q->param('validFromRemove');
my @vals = $self->_get_valid_from();
foreach my $entry (@remove)
{
return undef unless $entry;
unless (@vals)
{
print STDERR "ERROR: unable to load ValidFrom property from conf db\n";
return undef;
}
@vals = (grep { $entry ne $_ } @vals);
}
my $prop;
if (@vals)
{
$prop = join ',',@vals;
}
else
{
$prop = '';
}
$db->get('denyhosts')->set_prop('ValidFrom', $prop);
$q->delete('validFromRemove');
return 1;
}
sub change_settings {
my ($fm) = @_;
my $q = $fm->{'cgi'};
my %conf;
# Don't process the form unless we clicked the Save button. The event is
# called even if we chose the Remove link or the Add link.
return unless($q->param('Next') eq $fm->localise('SAVE'));
my $ip = ($q->param ('ip') || '');
my $status = ($q->param ('status') || 'status');
#------------------------------------------------------------
# Looks good; go ahead and change the access.
#------------------------------------------------------------
my $rec = $db->get('denyhosts');
$rec->set_prop('status', $status) if $rec;
return '' unless $fm->add_new_valid_from;
return '' unless $fm->remove_valid_from;
unless ( system( "/sbin/e-smith/signal-event", "conf-denyhosts" ) == 0 )
{
$fm->error('ERROR_UPDATING');
return undef;
}
if ( $rec->prop('status') eq 'disabled' )
{
unless ( `/etc/init.d/denyhosts stop` )
{
$fm->error('ERROR_STOPPING');
return undef;
}
}
$fm->success('SUCCESS');
}
# validate subnet
# RemoveIP after validation
sub RemoveIP {
my $fm = shift;
my $q = $fm->{'cgi'};
# my ($fm) = @_;
# my $q = $fm->{'cgi'};
# use Data::Dumper;
#warn Dumper($fm);
my %conf;
my $ip = ($q->param('IP') || '');
my $whitelist = ($q->param('Whitelist'))? "true" : '';
#check ip
my $validator=Data::Validate::IP->new;
unless ($validator->is_ipv4($ip))
{
$fm->error('ERROR_STOPPING');
return undef;
}
$ip = $validator->is_ipv4($ip);
unless ( system( "/etc/e-smith/events/actions/denyhost-purge none $ip $whitelist".' >/dev/null 2>&1' ) == 0 )
{
$fm->error('ERROR_UPDATING');
return undef;
}
if ($whitelist ne "" ) {
$fm->success($fm->localise('SUCCESS_IP_WHITE').": $ip",'First');
}
else
{
$fm->success($fm->localise('SUCCESS_IP').": $ip",'First');
}
}
sub back {
my $fm = shift;
my $q = $fm->{'cgi'};
print "<a href='$scriptname'>".$fm->localise('Back')."</a>";
return;
}
1;

107
smeserver-denyhosts.spec Normal file
View File

@ -0,0 +1,107 @@
# $Id: smeserver-denyhosts.spec,v 1.10 2024/09/04 11:16:24 terryfage Exp $
# Authority: unnilennium
# Name: Jean-Philippe Pialasse
Summary: smeserver-denyhosts
%define name smeserver-denyhosts
%define version 2.9
%define release 21
Name: %{name}
Version: %{version}
Release: %{release}%{?dist}
License: GPL
Group: Applications/System
Source: %{name}-%{version}.tar.xz
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
BuildArch: noarch
BuildRequires: e-smith-devtools >= 1.13.1-03
Requires: smeserver-release >= 8.0
Requires: denyhosts >= 2.6-20
Requires: e-smith-formmagick >= 1.4.0-12
Requires: e-smith-openssh >= 2.6.0-4
Provides: perl(esmith::FormMagick::Panel::denyhosts)
%description
Integration package to mesh denyhosts with SME Server.
%prep
%setup
%build
/usr/bin/perl createlinks
%install
/bin/rm -rf $RPM_BUILD_ROOT
(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT)
/bin/rm -f %{name}-%{version}-filelist
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT > %{name}-%{version}-filelist
%files -f %{name}-%{version}-filelist
%defattr(-,root,root,-)
%clean
rm -rf $RPM_BUILD_ROOT
%post
touch /etc/hosts.deny_ssh
%changelog
* Sat Sep 07 2024 cvs2git.sh aka Brian Read <brianr@koozali.org> 2.9-21.sme
- Roll up patches and move to git repo [SME: 12338]
* Sat Sep 07 2024 BogusDateBot
- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
by assuming the date is correct and changing the weekday.
* Wed Sep 04 2024 Terry Fage <terry@fage.id.au> 2.9-20.sme
- apply locale 2024-09-04.patch
* Sat Jul 30 2022 Jean-Philippe Pialasse <tests@pialasse.com> 2.9-19.sme
- add Provides perl(esmith::FormMagick::Panel::denyhosts)
* Sat Jul 30 2022 Brian Read <brianr@bjsystems.co.uk> 2.9-18.sme
- Re-build and link to latest devtools [SME: 11997]
* Fri Jul 22 2022 Jean-Philippe Pialasse <tests@pialasse.com> 2.9-17.sme
- add to core backup [SME: 12003]
* Thu Dec 09 2021 Jean-Philippe Pialasse <tests@pialasse.com> 2.9-16.sme
- Re-build and link to latest devtools log path [SME: 11804]
- Re-build and link to latest devtools multiple rpm owner [SME: 11677]
* Sun Aug 22 2021 Terry Fage <terry.fage@gmail.com> 2.9-15.sme
- apply locale 2021-08-21 patch
* Mon Mar 15 2021 Jean-Philippe Pialasse <tests@pialasse.com> 2.9-14.sme
- change pid file reference [SME: 11254]
- increase timeout for the service file and restart always
* Mon Mar 15 2021 Jean-Philippe Pialasse <tests@pialasse.com> 2.9-12.sme
- import to SME10 [SME: 11459]
- remove template-custom as integrated in core [SME: 11254]
* Sat Dec 07 2019 SME Translation Server <translations@contribs.org> 2.9-11.sme
- apply locale 2019-12-07 patch
* Sun Mar 24 2019 Jean-Philipe Pialasse <tests@pialasse.com> 2.9-10.sme
- ease unban [SME: 9458]
* Mon Feb 06 2017 Jean-Philipe Pialasse <tests@pialasse.com> 2.9-7.sme
- Re-build and link to latest devtools removing from whitelist does not remove the desired IP but a random one [SME: 10076]
* Mon Mar 30 2015 JP Pialasse <tests@pialasse.com> 2.9-6.sme
- Re-build and link to latest devtoolsed non working REGEX [SME: 8894]
- Re-build and link to latest devtoolsed should isntall epel version not repoforge [SME: 8892]
* Sun Mar 29 2015 JP Pialasse <tests@pialasse.com> 2.9-1.sme
- Re-build and link to latest devtoolsed path to perl modules
* Mon Jun 16 2014 JP Pialasse <tests@pialasse.com> 2.8-1.sme
- initial import to SME9 contribs
* Sun Jul 14 2013 JP Pialasse <tests@pialasse.com> 2.7-2.sme
- apply locale 2013-07-14 patch
* Sun Jun 3 2012 JP PIALASSE tests@pialasse.com 2.7-1.sme
- Initial version