Blog

Bienvenue...

...sur mon blog, j'utilise ce site pour noter les petites choses qui me sont utiles, que ça soit informatique ou autre :)

Il y a 1 année 7 mois

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.target

We 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=22

Note 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.service

Or 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
Il y a 1 année 7 mois

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
}
Il y a 1 année 8 mois

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
Il y a 4 années 4 mois

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à !!

Il y a 4 années 8 mois

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:/]$ 

Pages