Introduction

Le service Shellinabox est un outil d'administration à distance par le web. Il est codé en C et s'installe sous la forme d'un démon. Notre installation sera spécifique: le démon ne sera accessible que sur l'interface réseau loopback et son accès via l'extérieur sera géré avec les options de serveur mandataire inverse d'Apache qui permettra un accès sécurisé (TLS+Authentification).

Ce service est critique car il permet d'accéder à distance à un shell sur le serveur.

Information Caractéristiques
Site web origine https://code.google.com/p/shellinabox/
Version installée 2.14-1
Code C
Paquet shellinabox

Pré-requis

  • Pour la réinstallation de Shellinabox, une connexion à Internet est indispensable, ne serait-ce que pour télécharger les paquets d'installation.
  • Shellinabox est destiné à être installé sur une distribution Debian Wheezy de base.
  • Pour effectuer une remise en service de Shellinabox, il est indispensable d'avoir réinstallé un serveur web fonctionnel.

Installation du logiciel

# aptitude install shellinabox

Répertoires concernés

  • L'éxécutable de shellinabox est stocké dans /usr/bin/shellinaboxd.
  • Les fichiers de configuration de shellinabox est situé dans /etc/shellinabox/. Ce répertoire contient essentiellement les CSS de l'application.
  • Il existe un fichier de configuration par défaut qui permet de modifier le comportement du démon shellinabox: /etc/default/shellinabox.

Restaurations

Le seul élément à restaurer est la configuration du service. Se référer à la procédure de restauration générique pour y parvenir.

# restore shellinabox /etc/default/
# chown root:root /etc/default/shellinabox

Normalement, la configuration du service est assurée par cette restauration. En cas de problème avec la sauvegarde, on pourra utiliser le fichier suivant pour configurer le service:

# Should shellinaboxd start automatically
SHELLINABOX_DAEMON_START=1
# TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=44200
# Parameters that are managed by the system and usually should not need
# changing:
# SHELLINABOX_DATADIR=/var/lib/shellinabox
# SHELLINABOX_USER=shellinabox
# SHELLINABOX_GROUP=shellinabox
# Any optional arguments (e.g. extra service definitions). Make sure
# that that argument is quoted.
#
# Beeps are disabled because of reports of the VLC plugin crashing
# Firefox on Linux/x86_64.
SHELLINABOX_ARGS="--no-beep --localhost-only --disable-ssl" 

Configuration de l'accès via le serveur Web

Normalement, la restauration du service Apache permet de rendre Shellinabox opérationnel après son installation. Il existe un élément de configuration d'Apache dédié à Shellinabox dont voici la définition juste pour rappel:

  # Configuration Shellinabox
  ProxyRequests Off
  ## Shellinabox sera disponible à l'emplacement /xxxx
  <Location /xxxx>
    ## On active les fonctions de Mandataire inverse
    ProxyPass http://localhost:44200                                                                                                                                                    
    ProxyPassReverse http://localhost:44200                                                                                                                                             
    ## On donne l'accès à cet emplacement à tout Internet
    Order allow,deny
    Allow from all
    ## On restreint l'accès à un utilisateur dédié
    AuthName "Acces Shellinabox"
    AuthType Basic
    AuthUserFile /etc/apache2/webdav-users
    Require user theadminuser
  </Location> 

De plus, Shellinabox nécessite des modules Apache à activer. Ces derniers ont été normalement activés lors de la restauration du service Apache mais les voici pour rappel:

# a2enmod proxy proxy_http

Procédure de vérification du service

  • Se connecter sur https://medspx.fr/###### et vérifier qu'une authentification HTTP Basic est bien demandée.
  • Se connecter avec un compte utilisateur connu et vérifier que le service fonctionne correctement.