Copie de contenu de dossiers avec TAR
ex: cd ACOPIER; tar cf - .| (cd CIBLE; tar xvf -)
explication: on va dans le dossier ACOPIER, on l'archive avec TAR (faire attention au "." de la commande). On "pipe" ensuite une série de commandes qui permettront d'aller dans le dossier CIBLE et d'extraire l'archive TAR.
--
Y.Pournin
Site: http://www.pournin.com
Comprendre et bien choisir son ELEVATOR
Sous les noyaux 2.6 il se configure en rajoutant elevator=XXX* dans son fichier grub.conf
Je vous renvoie sur cet article qui aborde ces différents elevator afin de choisir le plus efficace.
http://www.redhat.com/magazine/008jun05/features/schedulers/
*où XXX est un elevator (exemple pour l'elevator NOOP on ajoutera elevator=noop dans grub.conf)
--
Y.Pournin
Site: http://www.pournin.com
Bash et incrémentation
On est parfois amené à gérer des fichier issus de rotations de logs
(logrotate). On se voit donc gérer des fichiers de la forme: xxx.log.1,
xxx.log.2, etc.
Lorsque je scriptais ou que j'avais à gérer ces fichiers j'utilisais la
commande seq en bash
#for i in $(seq 1 5); do echo $i ; done
Avec la version 3 de bash on peut maintenant simplifier cette commande en:
#for i in {1..5}; do echo $i ; done
Je la trouve plus simple à mémoriser.
exemple d'application directe: for i in {1..5}; do gzip access_log.$i; done
-> On compressera tous les fichiers logs de 1 à 5
--
Y.Pournin
Site: http://www.pournin.com
OREON
Site: http://www.oreon-project.org/
Descriptif: "Oreon est un logiciel de surveillance et de supervision
réseau basé sur le moteur de récupération d'information Open Source le
plus performant : Nagios."
--
Y.Pournin
Site: http://www.pournin.com
Enfin.....la RHEL5!
J'en profite pour rajouter un nouveau thème à mon blog que j'appellerai "news" mais revenons-en à la RHEL 5:
un aperçu des applications fournies est disponible sur (l'excellent) site de RedHat Magazine:
http://www.redhatmagazine.com/2007/03/14/red-hat-enterprise-linux-5-application-overview/
Clairement Red Hat affiche sa volonté de répondre à SUSE avec de nombreuses applications tiers.
Avis aux RHCE: les examens RHEL5 seront accessibles en France à partir du 16/04/07 (Red Hat France me l'a confirmé). Il ne reste plus qu'à attendre la Centos 5, une très bonne distribution clone des RHEL ( http://www.centos.org)
NB: RHEL = Red Hat Enterprise Linux
--
Y.Pournin
Site: http://www.pournin.com
Ruby on Rails sur centos
http://wiki.rubyonrails.org/rails/pages/Rails+on+CentOS+4.3+with+Apache+and+FastCGI+Simply
Il a évolué depuis les dernières modifications que j' ai apportées.
--
Y.Pournin
Site: http://www.pournin.com
NPH PROXY
Description de l'outil
Toutes les informations ont été trouvées sur le site: http://www.jmarshall.com/tools/cgiproxy/
Installation
Une fois le script téléchargé nous le déployons sur notre serveur WEB.
Pour son fonctionnement il faut: mod_perl d'installé et modifier le chemin d'exécution du perl.
Nous souhaitons utiliser ce script pour des connexions classiques et des connexions chiffrées supportant SSL. Pour cela nous installons auparavant le module Perl Net::SSLeay avec l'outil CPAN.
Notre serveur de référence sera le serveur Example.com, voici les étapes de l'installation:
-
Créer le répertoire d'accueil:
#mkdir /data/www/www.example.com/Web_proxy
-
Vérifier que les droits d'exécution soient bien positionnés
-
Configurer le serveur Apache pour exécuter ce script (nous limitons son utilisation aux utilisateurs de l'intranet:
#######################################################
Alias /proxy "/data/www/www.example.com/Web_proxy"
<Directory "/data/www/www.example.com/Web_proxy">
Options +Includes +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
AllowOverride None
Order deny,allow
Deny from all
Allow from .example.com
AuthType Basic
AuthName "l'Intranet EXAMPLE.COM"
AuthUserFile /etc/httpd/conf/htpasswd/intranet/.htpasswd
require valid-user
satisfy any
</Directory>
#######################################################
-
Nous forçons aussi la navigation en https:
Redirect /proxy https://www.example.com/proxy le service apache est relancé pour prendre en compte les changements, nous pouvons utiliser le script à l'URL:
https://www.example.com/proxy/nph-proxy.cgi
Configuration
Nous allons maintenant décrire la configuration du proxy. Toutes les options sont disponibles sur:
http://www.jmarshall.com/tools/cgiproxy/#options
Le comportement que nous souhaitons:
-
Imposer une configuration standard pour les utilisateurs
-
Limiter les sites avec lesquels l'outil peut être exécuté
Pour cela nous modifions les options suivantes:
-
nous limitons l'affichage du script: $INSERT_ENTRY_FORM= 0
-
nous désactivons la configuration utilisateur: $ALLOW_USER_CONFIG= 0
-
nous précisons le mode SSL: $RUNNING_ON_SSL_SERVER= '1'
-
pas d'option "restart": $NO_LINK_TO_START= 1
-
nous limitons les sites avec lesquels l'outil doit être utilisé:
@ALLOWED_SERVERS=('\.yahoo\.com$','\.redhat\.com$') ;
Utilisation
Nous prendrons comm exemple l'accès au site WWW.SCIENCEDIRECT.COM
Le lien à créer est:
https://www.example.com/proxy/nph-proxy.cgi/111110A/http/www.sciencedirect.com/
Les options 111110A indiquent des choix sur le comportement du proxy qui sont:
-
Remove all cookies (except certain proxy cookies)
-
Remove all scripts (recommended for anonymity)
-
Remove ads
-
Hide referrer information
-
Show URL entry form
A prévoir
-
Vérifier les ressources prises par le script dans le cadre d'une utilisation à grande échelle
-
Tester la rapidité d'exécution des requêtes web
--
Y.Pournin
http://www.pournin.com
Aide mémoire Solaris
Cet article est issu du site http://www.e-atlantide.com/securite/sun.htm
Architecture matérielle hostid donne le numéro de série de la machine. utile pour certains produits dont les licences sont fournies pour un numéro de série donnée uname -nra n: affiche le nom d'hôte de la machine v: affiche la version du systèmes d'exploitation a: affiche toutes les informations liées au système prtdiag donne le type de serveur (par exemple Ultra 143 ou 170 ...), la capacité mémoire RAM ainsi que le nombre de processeurs installés Informations d'exploitation dmesg donne les derniers messages affichés lors du démarrage de la machine (/var/messages) | last reboot pour afficher la date et heure des derniers reboot de la machine df -k donne le taux d'occupation des partitions et disques durs de la machine Installation de patchs et packages showrev -p donne les numéros de série des différents patchs installés sur la machine pkginfo donne la liste des packages logiciels installés sur la machine pkgadd -d permet d'installer proprement des packages pour Solaris pkgrm permet de désinstaller proprement des packages pour Solaris |
Renseignements ls -alrtR a: affiche tous les fichiers y compris les fichiers cachés l: affichage des fichiers en formats long t: affichage des fichiers triés par date r: affichage inverse des fichiers triés (couplés à l'option -t) R: affichage récursif du -s s: affiche la taille en blocs de 512 octets du répertoire Copies et Déplacements cp -rip r: copie récursive des sous-répertoires i: copie en mode intéractif (demande de confirmation) p: préserver les date de modification et droits d'accès mv -if i: mode intéractif (demande de confirmation) f: forcer même si le fichier destination existe ln -s s: création d'un lien symbolique rm -ifr i: mode intéractif (demande de confirmation) f: forcer la suppression sans confirmation explicite r: suppression récursive des sous-répertoires rmdir suppression d'un répertoire vide Comparaison diff cmp | Droits d'accès chmod nnn chmod ugoa+rwx u: l'utilisateur détenteur de l'objet est concerné (user) g: le groupe dont appartient l'utilisateur (group) o: les autres (other) a: tous les utilisateurs (all) r: accès autorisé en lecture (read) w: accès autorisé en écriture (write) x: accès autorisé en exécution (execute) chown -R uid.gid chgrp gid R: récursif uid: User ID gid: Group ID Compression et Packaging tar tcxvf [ t: lister le contenu d'un fichier tar c: créer un fichier tar x: extraire un fichier tar compress/uncompress gzip/gunzip ( freeware GNU pour Solaris ) unzip ( freeware pour Solaris ) zcat Divers |
Renseignements ps -eaf a: affiche tous les processus sauf ceux non rattachés à un terminal e: affiche tous les processus f: affichage listing complet (full) /usr/ucb/ps -aux commande équivalent à la commande ci-dessus. Toutefois, elle permet d'afficher le taux d'occupation CPU et RAM par chacun des processus listés. C'est une commande SunOS préservée dans Solaris top (freeware) affiche en temps réel tous les processus triés par taux d'occupation CPU; non disponible en standard sous Solaris; plutôt un freeware utile - /usr/ucb/ps -aux donne ceci mais pas de rafraîchissement automatique fuser donne le PID (process ID) du processus utilisant le fichier , utile pour savoir si le fichier est libre ou pas avant de faire le ménage dans un dossier temporaire par exemple /tmp Arrêt (ou envoi d'un signal système) kill -9 pid arrêt d'un processus; à effectuer seulement en dernier recours car c'est un arrêt brutal ne permettant pas au service de s'arrêter proprement | kill -1 pid forcer le chargement des fichiers de configuration d'un processus - par exemple, le démon des services Internet inetd Renseignements système ipcs -mqs m: affiche les mémoires partagées actives utilisées par un processus q: idem mais pour les queues de messages s: idem mais pour les sémaphores ipcrm pour libérer les mémoires partagées, les queues de message ainsi que les sémaphores utilisées par un processus; permet un nettoyage système après un arrêt brutal d'un processus applicatif lsof (list of open files: freeware très utile pour Solaris) affiche toutes les ressources utilisées par tous les processus en cours d'exécution - par exemple, quel est le processus qui écoute sur le port TCP 1037 ? il suffit d'exécuter lsof | grep TCP lsof -g pid (list of open files: freeware très utile pour Solaris) affiche toutes les ressources utilisées par un processus donné pid, y compris les ressources réseau |
Recherche de chaîne de caractères et fichiers grep -i recherche la chaîne de caractères dans le fichier précisé i: ne pas tenir compte de la casse (majuscule ou minuscule) find / -print | xargs grep -i recherche tous les fichiers contenant la chaîne de caractères en partant du répertoire racine, on peut bien entendu restreindre cette recherche à un répertoire précis find / -type f -name -print recherche tous les fichiers dont le noms est à partir du répertoire racine, on peut bien entendu restreindre cette recherche à un répertoire précis awk awk -f traitement de fichiers structurés afin de reformater la présentation, idéal pour traiter des fichiers CSV - par exemple, pour extraire le premier champ d'un fichier CSV et modifier l'affichage: cat | awk -F\; ' { print "premier champ="$1} ' sed sed -f traitement de fichiers afin de reformater la présentation, idéal pour substituer une chaîne de caractères par une autre - par exemple, pour remplacer partout dans un fichier la chaîne "entreprise.fr" par "entreprise.com": cat | sed 's/entreprise.fr/entreprise.com/g' | Divers cat | wc -lw l: donne le nombre de lignes du fichier w: donne le nombre de mots du fichier cat | head -15 donne les 15 premières lignes du fichier cat | tail -15 donne les 15 dernières lignes du fichier tail -f donne les dernières lignes du fichier avec rafraîchissement dynamique | tee -a out affiche le résultat de la commande à l'écran (stdout) et en même temps redirige le résultat dans le fichier out en mode append (rajout) sort -u affiche les lignes triées d'un fichier u: les entrées identiques sont affichées une seule fois (unique) cut -df d: caractère délimiteur f: liste des champs à extraire par exemple: cut -d: -f 1,5 /etc/passwd paste -d ... d: caractère délimiteur |
--
Y.Pournin
http://www.pournin.com
Apache et certificat SSL
Dans le répertoire /etc/httpd/conf on exécute les commandes suivantes
1/openssl genrsa -out ssl.key/server.key 1024 (sans passphrase)2/openssl req -new -key ssl.key/server.key -out ssl.crt/server.csr
3/openssl req -x509 -days 10000 -key ssl.key/server.key \ -in ssl.crt/server.csr -out ssl.crt/server.cr
NB: "server" peut être remplacé par le nom du virtualhost
--
Y.Pournin
http://www.pournin.com
Include et apache
Dans le httpd.conf :
############################################################################################
# apache repond sur les port 80 (HTTP) de toutes les adresses IP du serveur (dans notre cas)
NameVirtualHost *:80
# apache repond sur le port 443 (HTTPS) de toutes les adresses IP du serveur (dans notre cas)
NameVirtualHost *:443
Include conf/httpd.virtualhost.conf
############################################################################################
On inclue un fichier conf/httpd.virtualhost.conf qui contiendra:
############################################################################################
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /data/www/html/
ServerName servername.example.com
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
include conf/sites.conf
include conf/proxy-http.conf
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@mpl.ird.fr
DocumentRoot /data/www/html/
ServerName servname.example.com:443
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
SSLEngine on
#SLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
include conf/sites.conf
Include conf/proxy-https.conf
</VirtualHost>
############################################################################################
De cette manière les sites du fichier sites.conf sont accessibles indifférement en http et en https.
Les fichiers proxy servent à rediriger les site d'http en https par exemple (pour le proxy-http.conf avec la fonction Redirect) ou à déclarer un site dans un seul virtualhost.
--
Y.Pournin
http://www.pournin.com
rpm --aid et gestion des dépendances
l'ensemble du contenu des CDROM est copié dans un répertoire
/data/nobkp/RedHat/RPMS
Afin d'utiliser pleinement la gestion des dépendances de ces RPMS (gérée
par l'option « --aid ») un fichier .rpmmacros doit être créé dans le
répertoire /root
Ce fichier contient les lignes suivantes :
%_solve_pkgsdir /data/nobkp/RedHat/RPMS/
%_solve_name_fmt %{?_solve_pkgsdir}%%{NAME}-%%{VERSION}-\
%%{RELEASE}.%%{ARCH}.rpm
La gestion des dépendances est prise en compte une fois que le compte
root s'est reconnecté.
Exemple de configuration Logwatch
Logwatch est un utilitaire qui envoie des mails quotidiens pour indiquer l'état du système.
Dans le fichier /etc/log.d/logwatch.conf on modifie les lignes suivantes :
Service=all est commenté pour spécifier les services auxquels on s'intéresse :
exemple:
Service = mountd
Service = sshd
Service = sshd2
Service = syslogd
Service = up2date
Service = zz-disk_space
Service = cron
Service = sudo
Service = ftpd-xferlog
Service = ftpd-messages
La liste des services surveillés par Logwatch se trouvent dans le répertoire : /etc/log.d/scripts/services--
Y.Pournin
http://www.pournin.com
Autorisation X Forwarding
Pour autoriser la récupération d'affichage X il faut:
- exécuter gdmsetup
- dans l'onglet sécurité décocher "Refuser les connexions TCP au serveur X"
- relancer le serveur X
Y.Pournin
http://www.pournin.com