Archive

Archives pour la catégorie ‘Réseau’

Fail2ban, POSTFIX and SPAM

18/02/2024 Comments off

source: deribin.com

Very simple solution:
1) add rule to /etc/fail2ban/jail.conf:

[spam]
enabled = true
filter = spam
action = iptables[name=SPAM, port=smtp, protocol=tcp]
sendmail-whois[name=SPAM, [email protected], [email protected]]
logpath = /var/log/mail.log
bantime = 3600
ignoreip = 127.0.0.1 xxx.xxx.xxx.xxx/xx
maxretry = 2

Lire la suite...

Linux Debian – XChat & FiSH plugin : Crypter vos conversations IRC avec Blowfish

18/02/2024 Comments off

source: Yohann's blog

Afin de garder un peu d’intimité sur un salon IRC, vous pouvez crypter vos conversations.

Les personnes n’ayant pas connaissance de la clef de cryptage ne verront que du Braille :

<pseudo> +OK xVUrz/Egtcg1
<pseudo> +OK PuA621ObE81/zK9Fs17LfdN0
<pseudo> +OK zCeES1cO0YQ.hM.fe0dLF1N04KAF01JIvQl0XNS0P1bSPIg.DMg.V16nSSF

En fait, tout ceci est une conversation en français tout à fait compréhensible, du moment ou l’on connait la clef de cryptage, et où tout le monde utilise le même charset.

Je vous explique dans la suite de ce billet, comment compiler le plugin BlowFish pour XChat, sous Linux Debian.

source: http://www.queret.net/blog/post/2007/10/02/102-linux-debian-xchat-fish-plugin-cypter-vos-conversations-irc-avec-blowfish

Afin de garder un peu d’intimité sur un salon IRC, vous pouvez crypter vos conversations.

Les personnes n’ayant pas connaissance de la clef de cryptage ne verront que du brailles :

<pseudo> +OK xVUrz/Egtcg1
<pseudo> +OK PuA621ObE81/zK9Fs17LfdN0
<pseudo> +OK zCeES1cO0YQ.hM.fe0dLF1N04KAF01JIvQl0XNS0P1bSPIg.DMg.V16nSSF

En faite tout ceci est une conversation en français tout à fait compréhensible, du momment ou l’on connais la clef de cryptage, et ou tout le monde utilise le meme charset.

Je vous explique dans la suite de ce billet, comment compiler le plugins BlowFish pour XChat, sous Linux Debian. Lire la suite…

Categories: Logiciel, Réseau Tags:

Rate-limit Incoming Port 22 Connections

17/02/2024 Comments off

Both netfilter and pf provides rate-limit option to perform simple throttling on incoming connections on port # 22.

Iptables Example

The following example will drop incoming connections which make more than 5 connection attempts upon port 22 within 60 seconds:

#!/bin/bash
inet_if=eth1
ssh_port=22
$IPT -I INPUT -p tcp --dport ${ssh_port} -i ${inet_if} -m state --state NEW -m recent  --set
$IPT -I INPUT -p tcp --dport ${ssh_port} -i ${inet_if} -m state --state NEW -m recent  --update --seconds 60 --hitcount 5 -j DROP

Call above script from your iptables scripts. Another config option:

$IPT -A INPUT  -i ${inet_if} -p tcp --dport ${ssh_port} -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
$IPT -A INPUT  -i ${inet_if} -p tcp --dport ${ssh_port} -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -o ${inet_if} -p tcp --sport ${ssh_port} -m state --state ESTABLISHED -j ACCEPT
# another one line example
# $IPT -A INPUT -i ${inet_if} -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -m limit --limit 5/minute --limit-burst 5-j ACCEPT

See iptables man page for more details.

*BSD PF Example

The following will limits the maximum number of connections per source to 20 and rate limit the number of connections to 15 in a 5 second span. If anyone breaks our rules add them to our abusive_ips table and block them for making any further connections. Finally, flush keyword kills all states created by the matching rule which originate from the host which exceeds these limits.

sshd_server_ip="202.54.1.5"
table <abusive_ips> persist
block in quick from <abusive_ips>
pass in on $ext_if proto tcp to $sshd_server_ip port ssh flags S/SA keep state (max-src-conn 20, max-src-conn-rate 15/5, overload <abusive_ips> flush)

Outil keychain

14/02/2024 Comments off

I. Introduction

Ce guide ou « cookbook » est orienté pour des distributions de type Debian (dont Ubuntu fait partie), sachant que le principe reste identique sur d’autres distributions Linux. La connexion SSH de chacune des deux machines doit être préalablement configurée et fonctionnelle.

La connexion d’un client SSH vers un serveur SSH est fonction (d’au moins) trois paramètres principaux :

  • l’utilisateur distant ;
  • l’adresse de la machine distante ;
  • le port utilisé pour la connexion.

On appellera « machine A » ou « client » la machine cliente depuis laquelle on cherchera à se connecter sur le serveur SSH de la « machine B ». Les utilisateurs de chaque machine seront nommés respectivement user_a et user_b.

Un tutoriel spécifique à la mise en place d’une connexion SSH se trouve ici.

L’installation du chainage de clés par keychain permettra à l’utilisateur user_a de la machine cliente « machine A » de se connecter sur la « machine B » en tant que user_b sans entrer de mot de passe ou de passphrase.

L’intérêt principal est d’éviter d’entrer un mot de passe ou une passphrase à chaque connexion SSH mais seulement une fois, lors du lancement de votre « machine A », et pas du tout pour vos shells en tâches de fond.

Une application possible est de pouvoir utiliser les ressources du serveur SSH au travers de scripts shell. Par exemple, les scripts de sauvegarde (avec les commandes scp ou rsync utilisant elles-mêmes le protocole SSH) d’une « machine A » vers une « machine B » pourront alors être lancés en tâches de fond (cronjob) sans avoir à se soucier de quoi que ce soit. Presque le bonheur ! On verra comment réaliser cela dans un exemple en fin de ce tutoriel.

Attention cependant à conserver une configuration sécurisée, notamment si vous êtes plusieurs utilisateurs sur la même machine cliente. En particulier, l’utilisateur root ne doit jamais disposer de ce mode de connexion « automatisée ».

Attention cependant à conserver une configuration sécurisée, notamment si vous êtes plusieurs utilisateurs sur la même machine cliente. En particulier, l’utilisateur root ne doit jamais disposer de ce mode de connexion « automatisée ».

Tout le tutoriel est réalisé en ligne de commande mais ces manipulations sont également possibles en mode graphique.

II. Prérequis

L’utilisateur root est requis pour la plupart des installations ci-dessous, même si je n’évoque ou n’explicite pas l’utilisation de « sudo », à envisager dans le cas des distributions Ubuntu. Les utilisateurs user_a et user_b devront exister sur chacune des deux machines, disposer de leurs répertoires HOME (man adduser) respectifs, et idéalement être autorisés à exécuter du script bash (vous pouvez vérifier que c’est le cas dans /etc/passwd).

Attention cependant à conserver une configuration sécurisée, notamment si vous êtes plusieurs utilisateurs sur la même machine cliente. En particulier, l’utilisateur root ne doit jamais disposer de ce mode de connexion « automatisée ».

Exemple sur la machine A

sudo adduser user_a cat /etc/passwd #... d'autres utilisateurs listés user_a:x:1003:1003:,,,:/home/user_a:/bin/bash

II-A. Installer les paquets nécessaires

Machine A : ligne de commande en tant que root

aptitude install ssh openssh-client keychain

Machine B : ligne de commande en tant que root

aptitude install ssh openssh-client keychain
  1. S’il s’agit d’une réinstallation, pensez bien à stopper tous les processus SSH et « purger » l’installation existante avant de procéder à la réinstallation (man aptitude),
  2. aptitude a disparu des installations standards depuis la version ubuntu 10.10. Il faut donc l’installer si vous êtes dans ce cas (avec sudo apt-get pour les « ubuntistes« ).

Lire la suite…

Categories: Réseau, Système Tags: ,

How to Use RSA Key for SSH Authentication

12/02/2024 Comments off

If your daily activity requires loging in a lot of Linux systems through SSH, you will be happy to know (if you don’t already) that there’s a way to allow secure, authenticated remote access, file transfer, and command execution without having to remember passwords for each individual host you connect.

The $HOME/.ssh/authorized_keys file contains the RSA keys allowed for RSA authentication. Each line contains one key, which consists of the following fields: options, bits, exponent, modulus and comment. The first field is optional, bits, exponent and modulus fields give the RSA key and the last field isn’t used at all in the authentication process, but it will be somewhat convenient to the user, for instance to know which key is for which machine.

Before we start, make sure your computer has a ssh client installed and the remote Linux system has ssh installed and sshd running, with RSA authentication enabled (RSAAuthentication yes in /etc/ssh/sshd_config).

Lire la suite…

Categories: Réseau, Système Tags: , ,