Catégories
autres outils dev planet-libre.org

scp et SSH en PHP

Hop,
J’ai eu besoin de faire un script un peu évolué pour jouer avec une base Oracle et des fichiers à ramener depuis un serveur distant.
Bref, j’ai pensé au PHP pour faire un truc assez fin, mêlant Oracle et des transferts de fichiers en « scp ».

Seule difficulté, installer le module SSH pour PHP. Ce que je décris ici.
Ensuite, les bouts de codes exemple sont sur la doc de PHP.

Côté serveur Debian

J’étais parti de l’installation PECL directement, ça plante, il manquait des petits bouts côté Debian

Catégories
autres outils Debian planet-libre.org reseau et sécu Ubuntu

SFTP, chroot et pas de SSH : bloquer un utilisateur dans un répertoire

Salut,
Un petit article sur ce sujet récurrent car il y a plein de méthodes, dont une assez simple, mais avec 2/3 points de paramétrage précis.
Le but est de permettre à un client/fournisseur d’envoyer/récupérer des fichiers sur un serveur, en SFTP, sans pour autant lui donner accès en SSH (exécuter des commandes) et sans voir autre part que son « home ».
Le tout sur un serveur SSH déjà monté et par ailleurs utilisé pour du SSH normal en interne, avec du SFTP normal aussi.

Il y a 3 méthodes courantes pour commencer à jouer avec les chroot ssh/sftp :

  • Héberger un serveur SSH en chroot normal : c’est chiant. Créer un « home », reproduire un minimum d’arborescence standard, d’utilisateurs etc.
  • Utiliser rssh comme shell alternatif, c’est un shell qui limite l’utilisateur à du SFTP, SCP, CVS, RSYNC etc. On choisit ce qu’on veut tolérer. Mais, l’utilisateur peut quand même se promener dans le système (tout « / »).
  • Enfin, ce que je vais décrire : utiliser la fonctionnalité de « chroot » intégrée aux serveurs SSH (serveur ssh >= 4.8, donc n’importe quel SSH d’une Debian stable de nos jours). On va simplement brider quelques comptes et mettre quelques permissions bien senties.
Catégories
Debian ligne de commande planet-libre.org Ubuntu

netcat : je « déTAR » d’une machine vers l’autre

« déTAR » à distance

Pense-bête : j’ai un gros .tar sur un serveur, je dois l’extraire sur un autre serveur. MAIS, sur cet autre serveur, je n’ai pas la place pour récupérer le .tar puis le décompresser, c’est-à-dire stocker deux fois en terme d’espace.
Donc j’utilise netcat pour faire un « pipe » entre commande d’une machine à l’autre.

Une fois le programme netcat installé, peu importe par quel biais, et en considérant que vous n’avez pas de restriction réseau entre les 2 machines (sinon ouvrez le port ci-dessous en UDP), vous faites ceci :