Add SSH section

This commit is contained in:
Yorick Barbanneau 2022-12-01 21:54:36 +01:00
parent db4be169ee
commit 160b792888

View file

@ -114,6 +114,95 @@ exemple pour le traffic http:
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
```
## SSH
SSH est bien plus qu'un outils pour se connecter sur un TTY à distance de
manière sécurisée. Il est possible de faire des rebonds, de rediriger les
connexions, créer des tunnels etc.
Certaines options de la ligne de commande peuvent être intéressante:
* `-f`: passer SSH en tâche de fond et rendre la main. Utile pour les tunnels
* `-N`: ne pas exécuter de commandes, utile lorsqu'on redirige simplement des
ports.
* `-n`: ne rien lire sur l'entrée standard, utile pour juste lancer une
application sur le serveur cible
* `-T`: ne pas allouer de pseudo terminal (mode non interactif)
* `-t`: forcer l'allocation de pseudo terminal
### Connexion par rebond
Le principe: utiliser un serveur pour faire un rebond et ainsi accéder à une
machine non accessible
```
ssh -J ssh.domain.com leserveur.domain.local
```
Je me connecte ainsi à `leserveur.domain.local` en passant par `ssh.domain.com`
Il est possible d'automatiser le rebond dans le fichier de configuration de ssh
(`~/.ssh/config`):
```
# Se connecter à mcgonagall en passant par jaguar
Host mcgonagall
Hostname mcgonagall
ProxyJump <user>@jaguar.emi.u-bordeaux.fr
User <user>
```
### Créer un tunnel
Il est aussi possible de créer un tunnel sécurisé afin d'accéder à une ressource
d'un réseau local en passant par un serveur SSH:
```
ssh -L 8443:192.168.0.254:443 ssh.domain.com
```
Ici la connections se fait comme suit:
```
localhost:8443 -> ssh.domain.com -> 192.168.0.253:443
```
Il est possible de faire l'inverse avec `-R`
### Proxy SOCKS
Il est possible de créer un proxy socks afin de faire une redirection de ports
dynamique (avec des applications qui le supporte):
```
ssh -D 9050 -Nf ssh.domaine.com
```
Il est par exemple possible de configure son navigateur web afin d'utiliser ce
proxy pour y faire transiter les données. Le site visité identifiera sa source
comme `ssh.domain.com`.
#### proxychains
Proxychains est un logiciel permettait de "proxyfier" n'importe quel logiciel.
Il est par exemple possible de lancer un scan de port via un proxy socks pour
être au plis près de sa cible.
La configuration se fait dans le fichier `/etc/proxychains.conf`, dans notre
exemple plus haut il faut ajouter la ligne si elle n'y est pas:
```
socks4 127.0.0.1 9050
```
Puis lancer un scan de ports en préfixant la commande de `proxychains`:
```
proxychains nmap -sV macible.domain.com
```
Il est ainsi possible de scanner les ports d'une machine inaccessible auparavant.
## Gnutls
### Mettre en place un serveur / client (tester les certificats)