Bienvenue...
Soumis par kacy le
...sur mon blog, j'utilise ce site pour noter les petites choses qui me sont utiles, que ça soit informatique ou autre :)
Soumis par kacy le
...sur mon blog, j'utilise ce site pour noter les petites choses qui me sont utiles, que ça soit informatique ou autre :)
Des fois on en a besoin, lorsqu'on a pas encore fait les ouvertures de flux qui vont bien. J'ai trouvé un p'tit tuto qui marche bien ici
Je claque le code ici histoire de pas le perdre :P
Create a template service file at `
/etc/systemd/system/[email protected]
`. The template parameter will correspond to the name of target host:[Unit] Description=Setup a secure tunnel to %I After=network.target [Service] Environment="LOCAL_ADDR=localhost" EnvironmentFile=/etc/default/[email protected]%i ExecStart=/usr/bin/ssh -NT -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -L ${LOCAL_ADDR}:${LOCAL_PORT}:localhost:${REMOTE_PORT} ${TARGET} # Restart every >2 seconds to avoid StartLimitInterval failure RestartSec=5 Restart=always [Install] WantedBy=multi-user.targetWe need a configuration file (inside `/etc/default`) for each target host we will be creating tunnels for. For example, let's assume we want to tunnel to a host named `jupiter` (probably aliased in `/etc/hosts`). Create the file at `
/etc/default/[email protected]
`:TARGET=jupiter LOCAL_ADDR=0.0.0.0 LOCAL_PORT=20022 REMOTE_PORT=22Note that for the above to work we need to have allready setup a password-less SSH login to target (e.g. by giving access to a non-protected private key).
Now we can start the service instance:
systemctl start secure-tunnel@jupiter.service systemctl status secure-tunnel@jupiter.serviceOr enable it, so it get's started at boot time:
systemctl enable secure-tunnel@jupiter.service
Pour forwarder un service d'une machine vers une autre il faut remplacer -L [...]
par
[...] -R ${REMOTE_PORT}:localhost:${LOCAL_PORT} [...]
et ajouter
GatewayPorts yes
dans le /etc/ssh/sshd_config
sur la machine distante pour autoriser SSH à pousser le port sur une autre interface que localhost
Du coup quand on fait un netstat
ça marche :)
[root@myhost:~]# netstat -an |grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN tcp 0 0 :::8080 :::* LISTEN
Une petite fonction bien utile à ajouter dans son .bashrc
whoswaps () { for file in /proc/*/status; do echo $file $(awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file); done | sort -k 3 -n -r | less }
Installer l'utilitaire socat
, ex. sous centos :
sudo yum install socat
Créer un fichier config ~/.ssh/config :
Host host-git ProxyCommand socat - PROXY:<proxy ip/host>:%h:%p,proxyport=<proxy port>
Changez les permissions de ce nouveau fichier :
chmod 600 ~/.ssh/config
Pour GIT, en l’occurrence vous pouvez ensuite éditer le fichier <REPO>/.git/config
et modifier la section remote
[remote "origin"] #url = https://[email protected]/chemin-du-repo.git url = ssh://user-git@host-git/chemin-du-repo.git
...ou si pas encore de remote origin
l'ajouter :
git remote add origin ssh://user-git@host-git/chemin-du-repo.git
puis pousser vos modifications :
git push -u origin master
Je tentais un yum update sur une VM lorsque subitement impossible de me connecter au proxy...
*grmbl* je me connecte donc à la VM du proxy, et là forcément le FS / à 100%, ça va moins bien marcher...
un p'tit
du -hs *
sur / et je vois que tout est bouffé par /var et donc en poussant le vice /var/log/maillog qui était à 2.2G...
Bref j'effectue une purge-a-la-porcasse (echo > /var/log/maillog) histoire de... et là bim ça défile a bloc dans /var/log/maillog
Donc déjà correction de la conf postfix (/etc/postfix/main.cf) vu que ça tentait la connexion sur de l'ipv6, modif de :
inet_protocols = all
en
inet_protocols = ipv4
Pis là je reload le service postfix et ça continue de défiler avec des messages genre "blocked to avoid spam", je check donc la file d'attente :
postqueue -p
+38000 messages en attente... *gni* je check le contenu, globalement la plupart de messages inutiles, bref re-purge de porcasse :
mailq | tail -n +2 | awk 'BEGIN { RS = "" } / [email protected]\.com$/ { print $1 }' | tr -d '*!' | postsuper -d -
Et voilà !!
netcat, un p'tit outil qu'il est bien :
Ouvrir un process qui écoute sur le port concerné sur le serveur de destination :
nc -lv <Numero de port>
Executer un test de connexion depuis le serveur client :
nc -zv <IP de destination> <Numéro de port>
Ce qui donne un truc du genre :
[kacy@SRVDEST:/]$ nc -lv <Numéro de port> Connection from <IP du client> port <Numéro de port> [tcp/*] accepted [kacy@SRVDEST:/]$
[kacy@SRVCLI:/]$ nc -zv <IP du SRVDEST> <Numéro de port> <Numéro de port> Connection to <IP du SRVDEST> <Numéro de port> port [tcp/*] succeeded! [kacy@SRVCLI:/]$