mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
commit
b68f36ad51
4 changed files with 73 additions and 105 deletions
65
fail2ban.md
65
fail2ban.md
|
@ -1,57 +1,32 @@
|
||||||
# Fail2ban
|
# Fail2ban
|
||||||
|
|
||||||
For a number of reasons, an IP adresse may be wrongly blacklisted. If you wish to access your server through this specify IP you will need to unblock it.
|
Fail2Ban is an intrusion prevention software that protects computer servers from brute-force attacks. It monitors some log files and will ban IP addresses that shows brute-force-like behavior.
|
||||||
|
|
||||||
## IP unblock
|
In particular, Fail2ban monitors SSH connection attempts. After 5 failed login attempts on SSH, Fail2ban will ban the corresponding IP address from connecting through SSH for 10 minutes. If this IP is found to recidive several times, it might get ban for a week.
|
||||||
|
|
||||||
First, list all iptables rules with: `iptables -L --line-numbers` :
|
## Unban an IP
|
||||||
|
|
||||||
|
To unban an IP from fail2ban, you first need to access your server by some mean (e.g. from another IP by the one being banned).
|
||||||
|
|
||||||
|
Then look at fail2ban's log to identify in which jail the IP was put :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
root@beudi:~# iptables -L --line-numbers
|
$ tail /var/log/fail2ban.log
|
||||||
Chain INPUT (policy ACCEPT)
|
2019-01-07 16:24:47 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
num target prot opt source destination
|
2019-01-07 16:24:49 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
1 fail2ban-yunohost tcp -- anywhere anywhere multiport dports http,https
|
2019-01-07 16:24:51 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
2 fail2ban-nginx tcp -- anywhere anywhere multiport dports http,https
|
2019-01-07 16:24:54 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
3 fail2ban-dovecot tcp -- anywhere anywhere multiport dports smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
|
2019-01-07 16:24:57 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
4 fail2ban-sasl tcp -- anywhere anywhere multiport dports smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
|
2019-01-07 16:24:57 fail2ban.actions [1837]: NOTICE [sshd] Ban 11.22.33.44
|
||||||
5 fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
|
2019-01-07 16:24:57 fail2ban.filter [1837]: NOTICE [recidive] Ban 11.22.33.44
|
||||||
|
|
||||||
Chain FORWARD (policy ACCEPT)
|
|
||||||
num target prot opt source destination
|
|
||||||
|
|
||||||
Chain OUTPUT (policy ACCEPT)
|
|
||||||
num target prot opt source destination
|
|
||||||
|
|
||||||
Chain fail2ban-dovecot (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 RETURN all -- anywhere anywhere
|
|
||||||
|
|
||||||
Chain fail2ban-nginx (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 RETURN all -- anywhere anywhere
|
|
||||||
|
|
||||||
Chain fail2ban-sasl (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 RETURN all -- anywhere anywhere
|
|
||||||
|
|
||||||
Chain fail2ban-ssh (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 RETURN all -- anywhere anywhere
|
|
||||||
|
|
||||||
Chain fail2ban-yunohost (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 DROP all -- 80.215.197.201 anywhere
|
|
||||||
2 RETURN all -- anywhere anywhere
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Here, Ip adress `80.215.197.201` is banned in the `fail2ban-yunohost` rule.
|
Here, the IP `11.22.33.44` was banned in the `sshd` and `recidive` jails.
|
||||||
To unblock:
|
|
||||||
|
Then unban the IP with the following commands :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
iptables -D rule_name entry_number
|
$ fail2ban-client set sshd unbanip 11.22.33.44
|
||||||
|
$ fail2ban-client set recidive unbanip 11.22.33.44
|
||||||
```
|
```
|
||||||
|
|
||||||
For intance:
|
|
||||||
```bash
|
|
||||||
iptables -D fail2ban-yunohost 1
|
|
||||||
```
|
|
|
@ -1,57 +1,32 @@
|
||||||
# Fail2ban
|
# Fail2ban
|
||||||
|
|
||||||
Pour diverses raisons, il peut arriver qu’une adresse IP ait été blacklistée. Si vous souhaitez accéder à votre serveur depuis cette IP, il faudra la débloquer.
|
Fail2Ban est un logiciel de prévention des intrusions qui protège les serveurs informatiques contre les attaques de brute-force. Il surveille certains journaux et bannira les adresses IP qui montrent un comportement de brute-forcing.
|
||||||
|
|
||||||
## Débloquer une IP
|
En particulier, Fail2ban surveille les tentatives de connexion SSH. Après 5 tentatives de connexion échouées sur SSH, Fail2ban banniera l'IP de se connecter via SSH pendant 10 minutes. Si cette adresse récidive plusieurs fois, elle peut être bannie pendant une semaine.
|
||||||
|
|
||||||
Tout d’abord on affiche le listing de toutes les règles iptables avec la commande `iptables -L --line-numbers` :
|
## Débannir une IP
|
||||||
|
|
||||||
|
Pour débloquer une IP de fail2ban, vous devez d'abord accéder à votre serveur par un moyen quelconque (par exemple à partir d'une autre IP que celle bannie).
|
||||||
|
|
||||||
|
Ensuite, regardez le journal de fail2ban pour identifier dans quelle 'prison' (jail) l'IP a été bannie :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
root@beudi:~# iptables -L --line-numbers
|
$ tail /var/log/fail2ban.log
|
||||||
Chain INPUT (policy ACCEPT)
|
2019-01-07 16:24:47 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
num target prot opt source destination
|
2019-01-07 16:24:49 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
1 fail2ban-yunohost tcp -- anywhere anywhere multiport dports http,https
|
2019-01-07 16:24:51 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
2 fail2ban-nginx tcp -- anywhere anywhere multiport dports http,https
|
2019-01-07 16:24:54 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
3 fail2ban-dovecot tcp -- anywhere anywhere multiport dports smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
|
2019-01-07 16:24:57 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44
|
||||||
4 fail2ban-sasl tcp -- anywhere anywhere multiport dports smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
|
2019-01-07 16:24:57 fail2ban.actions [1837]: NOTICE [sshd] Ban 11.22.33.44
|
||||||
5 fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
|
2019-01-07 16:24:57 fail2ban.filter [1837]: NOTICE [recidive] Ban 11.22.33.44
|
||||||
|
|
||||||
Chain FORWARD (policy ACCEPT)
|
|
||||||
num target prot opt source destination
|
|
||||||
|
|
||||||
Chain OUTPUT (policy ACCEPT)
|
|
||||||
num target prot opt source destination
|
|
||||||
|
|
||||||
Chain fail2ban-dovecot (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 RETURN all -- anywhere anywhere
|
|
||||||
|
|
||||||
Chain fail2ban-nginx (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 RETURN all -- anywhere anywhere
|
|
||||||
|
|
||||||
Chain fail2ban-sasl (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 RETURN all -- anywhere anywhere
|
|
||||||
|
|
||||||
Chain fail2ban-ssh (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 RETURN all -- anywhere anywhere
|
|
||||||
|
|
||||||
Chain fail2ban-yunohost (1 references)
|
|
||||||
num target prot opt source destination
|
|
||||||
1 DROP all -- 80.215.197.201 anywhere
|
|
||||||
2 RETURN all -- anywhere anywhere
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Il nous indique que l’IP `80.215.197.201` est bannie dans la règle `fail2ban-yunohost`.
|
Ici, l'IP `11.22.33.44` a été bannie dans les jails `sshd` et `recidive`.
|
||||||
Pour la débloquer :
|
|
||||||
|
Puis débanissez l'IP avec les commandes suivantes :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
iptables -D nom_de_la_regle numéro_de_l_entrée
|
$ fail2ban-client set sshd unbanip 11.22.33.44
|
||||||
|
$ fail2ban-client set recidive unbanip 11.22.33.44
|
||||||
```
|
```
|
||||||
|
|
||||||
Par exemple :
|
|
||||||
```bash
|
|
||||||
iptables -D fail2ban-yunohost 1
|
|
||||||
```
|
|
||||||
|
|
24
ssh.md
24
ssh.md
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## What's SSH?
|
## What's SSH?
|
||||||
|
|
||||||
**SSH** stands for Secure Shell, and refers to a protocol that allows to remotly control a machine using the command line interface (CLI). It is available by default on Linux and Mac OS / OSX. On Windows, unfortunately you might need to use the [PuTTy](http://www.fastcomet.com/tutorials/getting-started/putty) software.
|
**SSH** stands for Secure Shell, and refers to a protocol that allows to remotly control a machine using the command line interface (CLI). It is available by default in any terminal on Linux and Mac OS / OSX. On Windows, you may want to use [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (after launching it, click on Session then SSH).
|
||||||
|
|
||||||
## During YunoHost installation
|
## During YunoHost installation
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ If you are installing at home (e.g. on a Raspberry Pi or OLinuXino), then you ne
|
||||||
|
|
||||||
- open a terminal and use `sudo arp-scan --local` to list the IP on your local network ;
|
- open a terminal and use `sudo arp-scan --local` to list the IP on your local network ;
|
||||||
- use your internet box / router interface to list the machines connected, or check the logs ;
|
- use your internet box / router interface to list the machines connected, or check the logs ;
|
||||||
- plug a screen on your server, log in and type `ifconfig`.
|
- plug a screen on your server, log in and type `hostname --all-ip-address`.
|
||||||
|
|
||||||
#### Connect
|
#### Connect
|
||||||
|
|
||||||
|
@ -26,15 +26,19 @@ ssh root@111.222.333.444
|
||||||
|
|
||||||
A password will be asked. If this is a VPS, your VPS provided should have communicated you the password. If you used a pre-installed image (for x86 computer or ARM board), the password should be `yunohost`.
|
A password will be asked. If this is a VPS, your VPS provided should have communicated you the password. If you used a pre-installed image (for x86 computer or ARM board), the password should be `yunohost`.
|
||||||
|
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
Since YunoHost 3.4, after running the postinstallation, you won't be able to login as `root` anymore. Instead, **you should login using the `admin` user !** In the event that the LDAP server is broken and the `admin` user is unusable, you may still however still be able to login using `root` from the local network.
|
||||||
|
</div>
|
||||||
|
|
||||||
#### Change the password!
|
#### Change the password!
|
||||||
|
|
||||||
After logging in for the first time, you should change the root password. The server might automatically ask you to do so. If not, use the command `passwd`. It is important to choose a reasonably strong password.
|
After logging in for the first time, you should change the root password. The server might automatically ask you to do so. If not, use the command `passwd`. It is important to choose a reasonably strong password. Note that the root password will be overriden by the admin password when you perform the postinstallation.
|
||||||
|
|
||||||
## After installing YunoHost
|
## After installing YunoHost
|
||||||
|
|
||||||
If you installed your server at home and are attempting to connect from outside your local network, make sure port 22 is correctly forwarded to your server.
|
If you installed your server at home and are attempting to connect from outside your local network, make sure port 22 is correctly forwarded to your server. (Reminder : since YunoHost 3.4 you should connect using the `admin` user !)
|
||||||
|
|
||||||
If you only know the IP of your server :
|
If you only know the IP address of your server :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh admin@111.222.333.444
|
ssh admin@111.222.333.444
|
||||||
|
@ -54,9 +58,13 @@ If you changed the SSH port, you need to add `-p <portnumber>` to the command, e
|
||||||
ssh -p 2244 admin@your.domain.tld
|
ssh -p 2244 admin@your.domain.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<div class="alert alert-info">
|
||||||
|
If you are connected as `admin` and would like to become `root` for more comfort (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su`.
|
||||||
|
</div>
|
||||||
|
|
||||||
## Which users?
|
## Which users?
|
||||||
|
|
||||||
By default, only the admin and root users can log in to YunoHost ssh server.
|
By default, only the `admin` user can log in to YunoHost ssh server.
|
||||||
|
|
||||||
YunoHost's users created via the administration interface are managed by the LDAP directory. By default, they can't connect via SSH for security reasons. If you want some users to have SSH access enabled, use the command:
|
YunoHost's users created via the administration interface are managed by the LDAP directory. By default, they can't connect via SSH for security reasons. If you want some users to have SSH access enabled, use the command:
|
||||||
|
|
||||||
|
@ -80,4 +88,6 @@ yunohost user ssh list-keys <username>
|
||||||
|
|
||||||
## Security and SSH
|
## Security and SSH
|
||||||
|
|
||||||
See the dedicated page [Security & SSH](security_en).
|
N.B. : `fail2ban` will ban your IP for 10 mimutes if you perform 5 failed login attempts. If you need to unban the IP, have a look at the page about [fail2ban](/fail2ban)
|
||||||
|
|
||||||
|
A more extensive discussion about security & SSH can be found on the [dedicated page](security_en).
|
||||||
|
|
24
ssh_fr.md
24
ssh_fr.md
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## Qu’est-ce que SSH ?
|
## Qu’est-ce que SSH ?
|
||||||
|
|
||||||
**SSH** est un accronyme pour Secure Shell, et désigne un protocole qui permet de contrôler à distance une machine via la ligne de commande (CLI). C'est aussi une commande disponible de base sur Linux et Mac OS / OSX. Sous Windows, malheureusement il vous faudra utiliser le logiciel [PuTTy](http://www.fastcomet.com/tutorials/getting-started/putty).
|
**SSH** est un accronyme pour Secure Shell, et désigne un protocole qui permet de contrôler à distance une machine via la ligne de commande (CLI). C'est aussi une commande disponible de base dans les terminaux de Linux et Mac OS / OSX. Sous Windows, il vous faudra utiliser le logiciel [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (après l'avoir lancer, cliquer sur Session puis SSH).
|
||||||
|
|
||||||
## Pendant l’installation de YunoHost
|
## Pendant l’installation de YunoHost
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ Si vous installez un serveur à la maison (par ex. sur Raspberry Pi ou OLinuXino
|
||||||
|
|
||||||
- ouvrez un terminal et tapez `sudo arp-scan --local` pour lister les IP des machines sur le réseau local ;
|
- ouvrez un terminal et tapez `sudo arp-scan --local` pour lister les IP des machines sur le réseau local ;
|
||||||
- utilisez l'interface de votre box internet pour lister les machines connectées, ou regarder les logs ;
|
- utilisez l'interface de votre box internet pour lister les machines connectées, ou regarder les logs ;
|
||||||
- branchez un écran sur votre serveur, loggez-vous et tapez `ifconfig`.
|
- branchez un écran sur votre serveur, loggez-vous et tapez `hostname --all-ip-address`.
|
||||||
|
|
||||||
#### Se connecter
|
#### Se connecter
|
||||||
|
|
||||||
|
@ -26,13 +26,17 @@ ssh root@111.222.333.444
|
||||||
|
|
||||||
Un mot de passe sera demandé. Si c'est un VPS, votre fournisseur devrait également vous avoir communiqué un mot de passe. Si vous avez utilisé une image pré-installée (pour x86 ou cartes ARM), le password devrait être `yunohost`.
|
Un mot de passe sera demandé. Si c'est un VPS, votre fournisseur devrait également vous avoir communiqué un mot de passe. Si vous avez utilisé une image pré-installée (pour x86 ou cartes ARM), le password devrait être `yunohost`.
|
||||||
|
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
Depuis YunoHost 3.4, après avoir effectué la postinstallation, il ne sera plus possible de se logguer avec l'utilisateur `root`. À la place, il vous faut **vous logguer avec l'utilisateur `admin` !**. Dans l'éventualité où le serveur LDAP serait cassé, rendant l'utilisateur `admin` inutilisable, vous devriez cependant pouvoir vous logguer avec l'utilisateur `root` depuis le réseau local.
|
||||||
|
</div>
|
||||||
|
|
||||||
#### Changer le mot de passe root !
|
#### Changer le mot de passe root !
|
||||||
|
|
||||||
Après vous être loggé pour la première fois, il vous faut changer le mot de passe root. Le serveur vous demandera peut-être automatiquement de le faire. Si ce n'est pas le cas, il faut utiliser la commande `passwd`. Il est important de choisir un mot de passe raisonnablement compliqué.
|
Après vous être loggé pour la première fois, il vous faut changer le mot de passe root. Le serveur vous demandera peut-être automatiquement de le faire. Si ce n'est pas le cas, il faut utiliser la commande `passwd`. Il est important de choisir un mot de passe raisonnablement compliqué. Notez que ce mot de passe sera écrasé ensuite par le mot de passe admin choisi lors de la postinstallation.
|
||||||
|
|
||||||
## Sur une instance déjà installée
|
## Sur une instance déjà installée
|
||||||
|
|
||||||
Si vous avez installé votre serveur à la maison et que vous cherchez à vous connecter depuis l'extérieur du réseau local, assurez-vous d'avoir bien redirigé le port 22 vers votre serveur.
|
Si vous avez installé votre serveur à la maison et que vous cherchez à vous connecter depuis l'extérieur du réseau local, assurez-vous d'avoir bien redirigé le port 22 vers votre serveur. (Rappel : depuis la version 3.4, il vous faut vous logguer avec l'utilisateur `admin` !)
|
||||||
|
|
||||||
Si vous connaissez seulement l'IP de votre serveur :
|
Si vous connaissez seulement l'IP de votre serveur :
|
||||||
|
|
||||||
|
@ -54,9 +58,13 @@ Si vous avez changé le port SSH, il faut rajouter `-p <numerodeport>` à la com
|
||||||
ssh -p 2244 admin@votre.domaine.tld
|
ssh -p 2244 admin@votre.domaine.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<div class="alert alert-info">
|
||||||
|
Si vous êtes connecté en tant qu'`admin` et souhaité devenir `root` pour plus de confort (par exemple, ne pas avoir à taper `sudo` à chaque commande), vous pouvez devenir `root` en tapant `sudo su`.
|
||||||
|
</div>
|
||||||
|
|
||||||
## Quels utilisateurs ?
|
## Quels utilisateurs ?
|
||||||
|
|
||||||
Par défaut, seulement les utilisateurs admin et root peuvent se logger en SSH sur une instance Yunohost.
|
Par défaut, seulement l'utilisateur `admin` peut se logger en SSH sur une instance Yunohost.
|
||||||
|
|
||||||
Les utilisateurs YunoHost créés via l'interface d'administration sont géré par la base de donnée LDAP. Par défaut, ils ne peuvent pas se connecter en SSH pour des raisons de sécurité. Si vous avez absolument besoin qu'un utilisateur dispose d'un accès SSH, vous pouvez utiliser la commande :
|
Les utilisateurs YunoHost créés via l'interface d'administration sont géré par la base de donnée LDAP. Par défaut, ils ne peuvent pas se connecter en SSH pour des raisons de sécurité. Si vous avez absolument besoin qu'un utilisateur dispose d'un accès SSH, vous pouvez utiliser la commande :
|
||||||
```bash
|
```bash
|
||||||
|
@ -75,8 +83,8 @@ yunohost user ssh remove-key <username> <key>
|
||||||
yunohost user ssh list-keys <username>
|
yunohost user ssh list-keys <username>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## SSH et sécurité
|
## SSH et sécurité
|
||||||
|
|
||||||
Voir la page dédiée à la [sécurité](security_fr).
|
N.B. : `fail2ban` banniera votre IP pour 10 minutes si vous échouez plus de 5 fois à vous identifier. Pour débannir une IP, vous pouvez regarder la page sur [fail2ban](/fail2ban_fr)
|
||||||
|
|
||||||
|
Une discussion plus complète de la sécurité et de SSH peut être trouvée sur [la page dédiée](security_fr).
|
||||||
|
|
Loading…
Reference in a new issue