trucmuche2005 Posté(e) le 18 septembre 2012 Partager Posté(e) le 18 septembre 2012 Bonjour ! Je suis sous DSM 4.1 et j'aimerais pouvoir avoir un log reprenant les dates & heures de connexions des utilisateurs (de certains utilisateurs seulement, idéalement), mais aussi un relevé des tentatives d'accès au NAS. Mon but est de voir quand certains utilisateurs accèdent aux fichiers que je mets à leur disposition, et aussi de dépister les éventuels problèmes de sécurité, les attaques subies etc, pour mieux protéger mon installation. Comment puis-je faire ? C'est syslog qui me permet cela ? (j'ai l'impression que non) Je vous remercie pour vos conseils ! Belle après-midi ! Trucmuche 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Digital3D Posté(e) le 24 septembre 2012 Partager Posté(e) le 24 septembre 2012 Ca m'intéresse aussi, as tu trouvé une réponse ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
trucmuche2005 Posté(e) le 24 septembre 2012 Auteur Partager Posté(e) le 24 septembre 2012 pas encore, non... Tenons-nous au courant :-) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Digital3D Posté(e) le 25 septembre 2012 Partager Posté(e) le 25 septembre 2012 Je crois avoir trouvé. A droite dans les Widgets, tu cliques sur "Journaux récents" et tu vas dans l'onglet "Transfert de fichier", là je vois qui accéde à quel fichier. C'est ce que je recherchais. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
trucmuche2005 Posté(e) le 25 septembre 2012 Auteur Partager Posté(e) le 25 septembre 2012 Content pour toi ! Cela ne correspond pas tout à fait à ce que je souhaite. J'ai pu trouver comment voir quel utilisateur se connecte et plein de choses intéressantes dans les Journaux Systèmes (merci à toi !) mais je n'ai pas encore trouvé comment voir les tentatives de login infructueuses, les attaques login par ssh, les tentatives d'accéder à des ports de l'extérieur, ou des choses comme cela... Savez-vous où trouver cela ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 4 octobre 2012 Partager Posté(e) le 4 octobre 2012 (modifié) Pour ma part, je me suis fait un petit script perl qui tourne en crontab 1 fois par semaine. Le script parse le fichier /var/log/message qui contient les informations sur les connexions ssh (Accepted ou Failed), construit un fichier temporaire de résultat en séparant les Failed des Accepted et envoie un mail avec ce résultat dans le corps du message. Le mail est envoyé en utilisant la commande "nail" disponible via ipkg. Le script perl est adaptable selon les besoin (filtrage de certain utilisateurs, filtre sur autre chose que sshd dans le fichier /var/log/messages ...) Ce script est bien évidement développé "rapidement", mais fonctionnel, si cela intéresse quelqu'un, n'hésitez pas à me MP Modifié le 5 octobre 2012 par loli71 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
trucmuche2005 Posté(e) le 8 octobre 2012 Auteur Partager Posté(e) le 8 octobre 2012 Bonjour ! J'ai vu ton script ici les jours derniers, malheureusement lorsque j'avais peu de temps et je vois qu'il a été supprimé depuis... Pourquoi avoir changé d'avis et avoir caché ce script ? Ne peut-il pas être d'utilité publique ? J'comprends pas trop la motivation... En tout cas, moi ca m'intéresse et je n'ai pas eu le temps d'en faire un copier-coller... Merci d'avance ! Trucmuche 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 8 octobre 2012 Partager Posté(e) le 8 octobre 2012 (modifié) Salut Trucmuche, Désolé d'avoir enlever le script, il n'était pas très propre, je voulais juste le remettre au mieux pour que tout à chacun puisse l'utiliser à sa convenance, mais j'ai été très pris ces derniers jours. je rattrape donc mon retard en mettant ici le script corrigé et avec en plus quelques commentaires : #!/usr/bin/perl my $message='/var/log/messages'; # fichier de log a surveiller my $dest='mon.adresse@mail.com'; # adresse mail à modifier my %connexionsok; my @connexionsfailed; my $entete, $texte; my $date=`date`; chomp($date); $entete="SSHD surveillance $date"; open(TEXTE, ">/tmp/texte.txt") or die; # recherche du mot "sshd" dans le fichier de log : open (MSG, "/bin/grep sshd $message |"); while ( defined( my $line = <MSG> )) { chomp($line); if (my ($date, $value, $type, $user, $adresse) = ( $line =~ m/^(.*) sshd\[\d+\]: ((?:Accepted|Failed)) (\w+) for (\w+) from (\d+\.\d+\.\d+\.\d+).*$/)) { # recuperation des lignes de la forme # Oct 4 23:16:36 sshd[14190]: Accepted publickey for USER from XXX.XXX.XXX.XXX port 65017 ssh2 # Oct 4 17:51:28 sshd[25256]: Accepted password for USER from XXX.XXX.XXX.XXX port 43954 ssh2 # Oct 4 17:56:45 sshd[13272]: Failed password for USER from XXX.XXX.XXX.XXX port 37651 ssh2 if ($value eq 'Accepted') { my ($moisday) = ($date =~ m/^(\w+\s+\d+)\s+.*$/); my $k="$moisday"."$user"."$adresse"."$type"; $connexionsok{$k}=$moisday.'#'.$type.'#'.$user.'#'.$adresse; } else { push(@connexionsfailed,"$date".'#'."$type".'#'."$user".'#'."$adresse"); } } } close(MSG); print TEXTE "############################\nConnexions Failed:\n"; foreach my $v (@connexionsfailed) { my ($date,$type,$user,$adresse) = split('#', $v); # recuperation du nom par resolution nslookup depuis l'adresse IP my $name=`nslookup $adresse | grep "^Address.*: $adresse"`; chomp($name); $name =~ s/^Address.*:\s+${adresse}\s+//; print TEXTE "$date $user (authtype:$type) $adresse (nom:$name)\n"; } print TEXTE "\n############################\nConnexions Accepted:\n"; foreach my $k (sort( {$a cmp $b} keys(%connexionsok))) { my ($moisday,$type,$user,$adresse) = split('#', $connexionsok{$k}); # recuperation du nom par resolution nslookup depuis l'adresse IP my $name=`nslookup $adresse | grep "^Address.*: $adresse"`; chomp($name); $name =~ s/^Address.*:\s+${adresse}\s+//; print TEXTE "$moisday $user (authtype:$type) $adresse (nom:$name)\n"; } close(TEXTE); # Envoie du mail par le programme nail (ipkg) `/opt/bin/nail -s "$entete" $dest </tmp/texte.txt`; # suppression du fichier temporaire # decommentez la ligne suivante si vous souhaitez ne pas garder le ficheir en local #unlink("/tmp/texte.txt"); Modifié le 11 octobre 2012 par loli71 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
trucmuche2005 Posté(e) le 10 octobre 2012 Auteur Partager Posté(e) le 10 octobre 2012 Super ! Grand merci :-) Je vais regarder cela d 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 11 octobre 2012 Partager Posté(e) le 11 octobre 2012 MAJ de mon script pour une petite correction concernant la récupération des noms par la commande nslookup. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
trucmuche2005 Posté(e) le 11 octobre 2012 Auteur Partager Posté(e) le 11 octobre 2012 Salut ! En pratique, tu fais comment pour l'utiliser, ce script ? Tu cr 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 11 octobre 2012 Partager Posté(e) le 11 octobre 2012 Pour l'executer je mets effectivement la tâche cron suivante dans le fichier /etc/crontab : 01 0 * * 0 root /opt/bin/surveillance_sshd.pl 2>&1 >/dev/null[/CODE] Comme le fichier /var/log/message tourne automatiquement chaque dimanche matin à 00:05, en lançant mon script chaque dimanche à 00:01 (avant la rotation), j'obtiens bien toutes les tentatives de connexions ssh de la semaine qui vient de passer. après, si tu souhaites le lancer tous les jours, tu auras les tentatives de la journée ajoutées aux tentatives déjà reçues dans le mail de la veille, mais ce n'est pas forcément gênant si tu le sais. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
trucmuche2005 Posté(e) le 12 octobre 2012 Auteur Partager Posté(e) le 12 octobre 2012 Super :-) Donc 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 12 octobre 2012 Partager Posté(e) le 12 octobre 2012 C'est avec plaisir ;-) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
nasmanu Posté(e) le 23 janvier 2013 Partager Posté(e) le 23 janvier 2013 merci loli71 pour ton script, ca fonctionne impec. j'ai juste galéré pour configurer le fichier nail.rc avec gmail. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
roulitto Posté(e) le 27 février 2014 Partager Posté(e) le 27 février 2014 Tout dépend de ce que tu appel par loguer tout ce que fait un utilisateur. Est-ce en connection telnet ou ssh? en graphique je ne saurait te dire... Si tel est le cas j'ai un petit script qui permet de faire cela uniquement lors de connexion ennoncés ci-dessus... chaque commande tapé sera logué dans un fichier (mais pas le résultat). si ça interesse quelqu'un... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.