Archive pour catégorie Mémos

Accès à un lecteur réseau depuis Apache

Nos données étant de plus en plus souvent stockées sur des supports distants, il peut être nécessaire de donner accès à un lecteur réseau à notre serveur Apache.

Cette opération se révèle extrêmement facile sur un système Gnu/Linux puisqu’il suffit de créer un point de montage sur le système et d’autoriser son accès via la configuration d’Apache:

Monter le lecteur réseau automatiquement via fstab (y ajouter la ligne suivante):

//192.168.0.10/apache /mnt/netdrive smbfs rw,user,uid=1000,gid=1000,credentials=/etc/samba/pub.cred 0 0

user = n’importe quel utilisateur peut monter et démonter le partage
uid,gid = à qui appartient le partage (par défaut root.root avec les droits 755 donc un utilisateur ne peut écrire par défaut dans le partage)
credentials = on met pas l’utilisateur et le mot de passe en clair dans fstab mais dans un fichier /etc/samba/pub.cred (protégé en lecture lui)

le fichier pub.cred contient:
username=Domain\Apache
password=motdepasseassocie

source: Monter un partage Samba avec fstab de Jérome Hanoteau

Configurer les droits d’accès depuis Apache (/etc/apache2/sites-available/default ou autre), il faut ajouter les lignes suivantes (à adapter) entre les balises VirtualHost souhaitées:

1
2
3
4
5
6
7
Alias /netdrive/ "/mnt/netdrive/"
<Directory "/mnt/netdrive/">
    Options -Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

En revanche sous Windows, impossible d’accéder à un lecteur réseau depuis Apache avec une configuration par défaut. Et pour cause, par défaut le serveur Apache est lancé en tant que service par l’utilisateur « System », or cet utilisateur ne peut accéder aux partages réseaux.

La solution apparait donc simplement, il suffit de modifier le compte avec lequel le serveur Apache est lancé. Il faut remplacer l’utilisateur « System » par un utilisateur du domaine ayant les droits nécessaires sur les répertoires concernés. Pour la suite nous utiliserons donc l’utilisateur « domain\Apache ».

Les étapes:

  • Win+R
  • Services.msc
  • Clic droit sur « Apache »
  • Onglet « Log on »
  • Modifier le compte comme sur l’image ci-contre
  • Valider
  • Ajouter les droits sur les répertoires nécessaires au fonctionnement d’Apache pour cet utilisateur:
    • C:\Program Files\Apache Software Foundation\Apache2.2
    • C:\Windows\temp

Pour ajouter les droits sur un répertoire, il faut effectuer un clic droit sur celui-ci puis « Propriétés » puis dans l’onglet « Security », ajouter l’utilisateur souhaité et lui donner les droits souhaités (lecture, écriture pour les répertoires locaux nécessaires à Apache, lecture et/ou écriture pour les lecteurs réseaux en fonction des besoins).

Il faut également effectuer cette opération sur les répertoires réseaux que l’on souhaite lui rendre accessible.

/!\ !!! Nous touchons ici à la gestion des droits d’accès, veillez à ne pas fournir trop de droits à cet utilisateur afin de limiter l’impact en cas d’erreur dans la configuration (utiliser un utilisateur de base de votre domaine et ne lui donner accès qu’aux répertoires nécessaires). !!! /!\

N’oublions pas de relancer le service Apache une fois ces modifications effectuées afin de valider le fonctionnement du serveur avec ce nouvel utilisateur.

Nous passons ensuite à la configuration d’Apache à proprement parler, comment rendre accessible ce fameux lecteur réseaux ?

Contrairement à ce que l’on pourrait penser, il est impossible de dire à Apache d’utiliser un lecteur réseau identifié par une lettre. De même, la gestion des droits à ce répertoire doit se faire au niveau Windows et non dans la configuration d’Apache.

Ainsi au niveau de la configuration d’Apache lui-même, rien de spécial. Il est possible d’ajouter un alias pour faciliter les choses mais ce n’est pas obligatoire.

Alias /netdrive/ « //192.169.0.10/apache/ »

Il suffit ensuite d’utiliser soit le chemin réel, soit l’alias dans notre code PHP ou autre afin d’accéder à ces données.

Exemple:

Download test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// Affiche le contenu d'un fichier sur le réseau et déplace celui-ci
$rep = "//192.169.0.10/apache/";
$annee = date("Y");
$dest_rep = "//192.169.0.10/apache/$annee";
$dir = opendir($rep);
while ($f = readdir($dir))
{
   if(is_file($rep.$f))
   {
     echo $f;
     rename($rep.$f, $dest_rep.$f);
   }
}
?>

Étiquettes: , , , ,

Squid, Proxy et Reverse-Proxy sur un même serveur

Un petit mémo sur Squid pour ouvrir cette nouvelle année pour laquelle je souhaite mes Meilleurs Voeux à chacun de vous, fidèles lecteurs ou lecteurs d’un jour, vous êtes de plus en plus nombreux à suivre ce blog et je vous en remercie, continuons sur cette lancée pour 2011.

Squid peut être configuré en tant que « Proxy » (comportement par défaut), il permet dans ce cas à ses utilisateurs d’accéder à tout ou partie d’internet ou de divers Intranet. Il peut également servir de « Reverse-Proxy » , il permet alors de rendre disponible certaines ressources internes (provenant d’un ou plusieurs serveurs) tout en proposant une mise en cache, ce qui va alléger la charge des serveurs situés derrière lui.

Schéma du principe de fonctionnement du Reverse-Proxy:

Par défaut, une seule instance de squid peut être lancée à la fois. Si l’on souhaite mettre en oeuvre un Proxy et un Reverse-Proxy sur un même serveur, il va falloir procéder à quelques modification dans la configuration de squid.

Nous n’allons pas nous occuper ici de la configuration de Squid en mode Proxy puisque la configuration par défaut permet déjà ce fonctionnement. Nous allons donc permettre le lancement de multiples instances et configurer le Reverse-Proxy.

Nous allons donc avoir 2 fichiers de configurations différents:

/etc/squid/squid.conf
/etc/squid/squid-reverse.conf

Voyons un exemple de ce que peut donner la configuration du fichier squid-reverse.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# nom du reverse-proxy et port d'écoute
visible_hostname test
http_port 80 defaultsite=192.168.0.5
#
# le site proposé par défaut par le reverse-proxy se trouve sur 192.168.0.5:
cache_peer 192.168.0.5 parent 80 0 no-query no-digest originserver name=test
acl webserver dst 192.168.0.5
http_access allow webserver
#
# autoriser l'utilisation du reverse-proxy sur le port 80 pour tout le monde:
acl all src 0.0.0.0/0.0.0.0
http_access allow all
acl web port 80
http_access allow web
#
# configuration du cache:
cache_dir ufs /var/spool/squid3 2048 16 256
coredump_dir /var/spool/squid3
cache_effective_group proxy
cache_mem 50 MB
minimum_object_size 0 KB
maximum_object_size 64096 KB
#
# Emplacement du PID et des fichiers de logs:
pid_filename /var/run/squid-reverse.pid
access_log /var/log/squid/access-reverse.log squid
cache_log /var/log/squid/cache-reverse.log
#
forwarded_for on

Nous devrons ensuite générer le cache correspondant à ces 2 configurations:

/usr/sbin/squid -z

/usr/sbin/squid -z -f /etc/squid/squid-reverse.conf

Puis modifier le script de lancement de squid, ou en ajouter un pour les gérer indépendamment, nous allons ajouter un fichier:

/etc/init.d/squid-reverse

Pour faire simple et tester, il suffit d’y placer la commande de lancement suivante:

/usr/sbin/squid -f /etc/squid/squid-reverse.conf

Libre à vous ensuite de créer un véritable script de lancement en vous basant sur le script de lancement de Squid ou sur le template disponible (« /etc/init.d/skeleton« ).

Lancer ces scripts automatiquement au démarrage pour démarrer le Proxy et le Reverse-Proxy:

update-rc.d -f squid defaults

update-rc.d -f squid-reverse defaults

Nos 2 services ne devant pas être utilisés par les mêmes personnes, le proxy sera utilisé depuis le réseau interne tandis que le reverse-proxy sera utilisé par les internautes souhaitant accéder à notre site, nous penserons également à configurer un parefeu à l’aide d’iptables afin de sécuriser ce serveur proxy, un exemple suivra dans le prochain article.

Sources et ressources relatives:

Étiquettes: , , ,

Utiliser Wp-codebox pour afficher du code sur WordPress

Petit mémo sur les balises à utiliser pour l’affichage de code avec coloration syntaxique via le plugin Wp-Codebox sous WordPress:

a89063ff6c9edd65d2b70cfc904504fb003

Liste des différentes options:

  • lang: Langage du code utilisé
  • file: Nom du fichier généré pour téléchargement
  • line: Ligne à partir de laquelle le contenu doit être affiché
  • colla: + pour maximiser par défaut, +/- pour minimiser par défaut

Seul le langage utilisé est obligatoire pour bénéficier de la coloration syntaxique fournie par le plugin. Les autres paramètres sont facultatifs.

Étiquettes: , ,

Adaptateur USB => DB9 sous Linux

Il m’arrive de devoir configurer des switches. En général cette configuration passe par SSH pour les switches déjà en activité mais lors de leur première configuration, ceux-ci nécessitent l’utilisation d’un câble console.

Hors sur mon laptop, je n’ai pas de port série (db9). J’ai donc trouvé un adaptateur usb => db9.

Afin de l’utiliser sous Linux, il suffit de charger le bon module.

Ici il me suffit donc de charger le module pl2303 à chaque démarrage afin de pouvoir l’utiliser.

Charger manuellement ce module:

modprobe pl2303 ou insmod pl2303 (selon votre distribution)

Charger automatiquement ce module au démarrage:

echo pl2303 | sudo tee -a /etc/modules

(permet d’ajouter pl2303 au fichier /etc/modules)

Une fois cet adaptateur reconnu, nous pouvons l’utiliser directement via le périphérique /dev/ttyUSB0.

Il est possible d’utiliser Putty avec le port indiqué (/dev/ttyUSB0) mais étant sous Linux, il est également possible d’utiliser directement les TTY (ces consoles accessibles via CTRL+ALT+Fx).

Voici donc la manipulation à effectuer:

cd /etc/event.d

sudo cp tty1 ttyS0

Éditer le fichier ttySo via vim, nano ou votre éditeur favori:

Remplacez la dernière ligne par : exec /sbin/getty ttyUSB0 9600

Étiquettes: , , , , ,

Limiter l’indexation avec robots.txt

À l’heure où de plus en plus de données personnelles circulent sur le web sans le consentement de leurs auteurs, il est bon de rappeler à chacun que des gestes simples permettent de limiter l’absorption de nos données par les moteurs de recherche.

Lorsque votre site web est en phase de développement ou lorsque vous souhaitez que votre site reste privé, n’apparaisse pas dans les résultats des moteurs de recherche, une solution très simple et rapide à mettre en place existe.

Il suffit de placer à la racine de votre site, un fichier « robots.txt » contenant quelques directives à l’attention des robots que ceux-ci explorent votre site en quête de pages à référencer ou dans le cas de robots malicieux, en quête de fichiers spécifiques.

Ce petit fichier permet donc de contrôler l’indexation du contenu de nos site web par les moteurs de recherches.

Voici un tableaux avec quelques directives et leur utilité:

CommandeValeurUtilité
User-agent:* (pour tous) ou nom de l’agentNom du robot concerné
Allow:Chemin du répertoire ou fichierAutoriser l’exploration
Disallow:Chemin du répertoire ou fichierInterdire l’exploration

Le chemin des répertoires ou fichiers concernés peuvent ne pas être totalement définis afin de masquer le nom de ceux-ci.

Les noms des robots sont disponibles sur robotstxt.org

Pour aller plus loin, n’oubliez pas de limiter l’accès à vos données sensibles en verrouillant leur accès via un fichier .htaccess et une protection par mot de passe sur ces répertoires.

infoCes directives n’ont pas nécessairement besoin d’apparaître dans un fichier robots.txt pour être appliquées. Il faut donc être très prudent dans leur utilisation.

Étiquettes: , , , ,

Le multiplexage des connexions SSH.

Bonjour à tous,

voici aujourd’hui un lien vers un article de qualité permettant à tous de comprendre le principe du multiplexage ainsi que son intérêt dans l’utilisation d’ SSH.

SSH est un protocole incontournable, à la fois parce que c’est une manière fiable et sécurisée pour accéder à des machines quand on n’a qu’une confiance limitée dans le réseau qui va acheminer nos messages, et aussi parce qu’il peut servir de transport pour d’autres protocoles non sécurisés.

Cet article va aborder une fonctionnalité très utile d’OpenSSH et de la version 2 du protocole pour partager des connexions.

Même si ce n’est pas une nouveauté (la première implémentation est apparue dans OpenSSH version 3.9p1), c’est fichtrement commode, et une petite explication de texte n’est pas totalement superflue.

Lire la suite de cet article sur UnixGarden.

Étiquettes: , , , ,

Lecteur / Graveur inutilisable sous Ubuntu

Bonjour à tous,

je me suis aperçu il y a peu de temps que mon lecteur DVD et mon graveur ne fonctionnait plus correctement sous Ubuntu.

Ceux-ci fonctionnent parfaitement lorsque je démarre mon PC mais plus par la suite. Ainsi, après un CD gravé, les lecteurs ne semblent plus reconnus par Ubuntu.

Pour ceux qui rencontreraient ce type de problème, une solution simple consiste à désactiver le support de l’acpi au boot.

Il suffit pour cela d’ajouter l’argument suivant à votre séquence de démarrage:

noapic

  • Pour les utilisateurs de Grub, ceci est à ajouter à la fin de la ligne kernel du fichier /boot/grub/menu.lst
  • Pour les utilisateurs de Grub2, il suffit d’ajouter cet argument à la ligne GRUB_CMD_LINUX_DEFAULT= du fichier /etc/default/grub puis d’executer la commande update-grub afin de prendre en compte ces modifications.

Étiquettes: , , , ,

Page optimized by WP Minify WordPress Plugin