Archives de la catégorie ‘Ubuntu’

#!/bin/bash
# System-wide crontab file and cron job directory. Change these for your system. 
CRONTAB='/etc/crontab' 
CRONDIR='/etc/cron.d' 
# Single tab character. Annoyingly necessary. 
tab=$(echo -en "\t") 
# Given a stream of crontab lines, exclude non-cron job lines, replace 
# whitespace characters with a single space, and remove any spaces from the 
# beginning of each line. 
function clean_cron_lines() { 
    while read line ; do 
        echo "${line}" | 
            egrep --invert-match '^($|\s*#|\s*[[:alnum:]_]+=)' | 
            sed --regexp-extended "s/\s+/ /g" | 
            sed --regexp-extended "s/^ //" 
    done; 
} 
# Given a stream of cleaned crontab lines, echo any that don't include the 
# run-parts command, and for those that do, show each job file in the run-parts 
# directory as if it were scheduled explicitly. 
function lookup_run_parts() { 
    while read line ; do 
        match=$(echo "${line}" | egrep -o 'run-parts (-{1,2}\S+ )*\S+') 
        if [[ -z "${match}" ]] ; then 
            echo "${line}" 
        else 
            cron_fields=$(echo "${line}" | cut -f1-6 -d' ') 
            cron_job_dir=$(echo  "${match}" | awk '{print $NF}') 
            if [[ -d "${cron_job_dir}" ]] ; then 
                for cron_job_file in "${cron_job_dir}"/* ; do  # */ <not a comment> 
                    [[ -f "${cron_job_file}" ]] && echo "${cron_fields} ${cron_job_file}" 
                done 
            fi 
        fi 
    done; 
} 
# Temporary file for crontab lines. 
temp=$(mktemp) || exit 1 
# Add all of the jobs from the system-wide crontab file. 
[[ -f ${CRONTAB} ]] && cat "${CRONTAB}" | clean_cron_lines | lookup_run_parts >"${temp}"  
# Add all of the jobs from the system-wide cron directory. 
[[ -f ${CRONTAB} ]] && cat "${CRONTAB}" | clean_cron_lines | lookup_run_parts >"${temp}"  
# Add all of the jobs from the system-wide cron directory. 
[[ -d ${CRONDIR} ]] && ( cat "${CRONDIR}"/* 2> /dev/null | clean_cron_lines >>"${temp}" ||  true ) # */ <not a com
ment>
# Add each user's crontab (if it exists). Insert the user's name between the 
# five time fields and the command. 
while read user ; do 
    crontab -l -u "${user}" 2>/dev/null | 
        clean_cron_lines | 
        sed --regexp-extended "s/^((\S+ +){5})(.+)$/\1${user} \3/" >>"${temp}" 
done < <(cut --fields=1 --delimiter=: /etc/passwd) 
# Output the collected crontab lines. Replace the single spaces between the 
# fields with tab characters, sort the lines by hour and minute, insert the 
# header line, and format the results as a table. 
cat "${temp}" | 
    sed --regexp-extended "s/^(\S+) +(\S+) +(\S+) +(\S+) +(\S+) +(\S+) +(.*)$/\1\t\2\t\3\t\4\t\5\t\6\t\7/" | 
    sort --numeric-sort --field-separator="${tab}" --key=2,1 | 
    sed "1i\mi\th\td\tm\tw\tuser\tcommand" | 
    column -s"${tab}" -t 
rm --force "${temp}"

Depuis la version Etch de Debian, le module iscsi_tcp est intégré dans le noyau. Il ne vous reste plus qu’à installer un outil d’administration et à configurer

1. Installation

# apt-get install open-iscsi

configuration du fichier /etc/iscsi/iscsid.conf

discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <votre identifiant de connexion au SAN>
discovery.sendtargets.auth.password = <le mot de passe>
node.session.auth.authmethod = CHAP
node.session.auth.username = <votre identifiant de connexion au SAN>
node.session.auth.password = <le mot de passe>
node.startup = automatic

2. Configuration d’une connexion

#iscsiadm   --mode node  --targetname "iqn.2007-01.org.debian.foobar:CDs"  -p 192.168.0.1:3260 --op=update --name node.session.auth.authmethod --value=CHAP
#iscsiadm   --mode node  --targetname "iqn.2007-01.org.debian.foobar:CDs"  -p 192.168.0.1:3260 --op=update --name node.session.auth.username --value=$Id
#iscsiadm   --mode node  --targetname "iqn.2007-01.org.debian.foobar:CDs"  -p 192.168.0.1:3260 --op=update --name node.session.auth.password --value=$MDP
#iscsiadm   --mode node  --targetname "iqn.2007-01.org.debian.foobar:CDs"  -p 192.168.0.1:3260 --login

le fichier /etc/iscsi/nodes/iqn.2007-01.org.debian.foobar:CDs/192.168.0.1,3260 est automatiquement créé

3. Administration

3.1 Inventaire des Target iSCSI disponibles

#iscsiadm -m discovery -t st -p 192.168.0.20

192.168.0.1:3260,1 iqn.2007-01.org.debian.foobar:CDs
192.168.0.1:3260,1 iqn.2007-01.org.debian.foobar:USB

3.2 Ouvrir une connexion

#iscsiadm -m node –targetname « iqn.2007-01.org.debian.foobar:CDs » –portal « 192.168.0.1:3260 » –login

un nouveau périphérique iSCSI est alors créé dans /dev/sdx et automatiquement monté sur /dev/disk/by-path/ip-xxxxxxxx

3.3 Monter un disque iSCSI

Modifier le fichier /etc/fstab

#device         mount point     FS      Options Backup  fsck

LABEL=data1     /mnt/data1      ext3    _netdev 0       0

3.4 Déconnexion d’un disque iSCSI

#iscsiadm  -m node  --targetname "iqn.2007-01.org.debian.foobar:CDs" --portal "192.168.0.1:3260" --logout

3.5 Trouver l’initiateur iqn

L’initiateur iSCSI a aussi son propre iqn que vous trouverez dans le fichier /etc/iscsi/initiatorname.iscsi.

Attention : après installation du paquet open-iscsi, ce fichier ne contient que

GenerateName=yes"

C’est au premier démarrage du démon que l’iqn est créé

4. Erreurs fréquentes

ietd: CHAP initiator auth.: No valid user/pass combination for initiator iqn.1993-08.org.debian:01:123456789abcd found
=> Erreur de login/mot de passe

1. Où en suis-je avec la pagination ?

En cas de gros traitement en mémoire RAM, linux (comme tout autre OS) écrit dans une partition appelée SWAP. Cette SWAP étant hébergée sur le disque dur, vous comprendrez facilement que les temps d’accès sont plus élevés qu’en mémoire centrale. De ce fait, si votre serveur possède beaucoup de RAM, il écrit moins sur la SWAP. Pour connaitre le nombre de fois qu’il écrit sur la SWAP

#cat /proc/sys/vm/swappiness

La valeur doit être entre 50 et 60.

Le cas échéant, paginez moins :

Editez le fichier /etc/sysctl.conf, cherchez la ligne swappiness et réduisez sa valeur. En cas d’absence, ajoutez la ligne

vm.swappiness=1

2. Afficher le top 10 des processus consommateurs de mémoire

# ps -auxf | sort -nr -k 4 | head -10

3. Afficher le top 10 des processus consommateurs de CPU

# ps -auxf | sort -nr -k 3 | head -10

4. SAR

SAR est utilisé dans 2 cas :

  • Monitorer les performances systèmes en temps réel (CPU, mémoire, I/O, …)
  • Collecter les données de performance en tâche de fond

SAR fait partie du package SYSSTAT.

Vous pouvez monitorer :

  • Usage CPU,
  • Statistiques/CPU,
  • Mémoire libre et utilisée,
  • Espace de SWAP utilisé et libre,
  • I/O,
  • Activité sur un périphérique particulier (I/O),
  • Statistiques réseau,
  • Récupérer les données SAR sur une période données,
  • ..

Quelques exemples :

$ sar -b 1 3

Statistiques I/O par interval d’1 seconde et 3 fois

5. Tcpdump

tcpdump est un analyseur de paquets réseaux.

exemple de commande permettant l’affichage des paquets en ASCII

$ tcpdump -A -i eth0

De nombreux filtres existent pour permettre l’analyse des paquets réseaux.

$ man tcpdump

6. Iostat

5. Mpstat

6. Vmstat

7. PS Command

8. Free

 

9. TOP

 

10. Pmap

11. Netstat

12. IPTraf

IPTraf permet le monitoring des flux réseau. Ses principales caractéristiques sont :

  • console texte,
  • affiche les flux réseaux qui passent sur votre réseau. Il affiche en outre, les flags TCP, paquets, compteur de bytes, ICMP, OSPF, …
  • interface de statistiques étendue
  • découverte LAN et affichage de leur activité
  • affichage des protocols
  • journalisation

13. Strace

14. Lsof

16. GkrellM

17. w and uptime

18. /proc

19. KDE System Guard

20. GNOME System Monitor

21. Conky

22. Cacti

23. Vnstat

24. Htop

25. Socket Statistics – SS

1. Un SBS : c’est quoi ?

Bon nombre de petites et moyennes entreprises sacrifient l’informatique et la sécurité sur l’autel de la trésorerie et du manque de moyens.

Un SBS (Small Business Server) vous permettra de profiter d’un service informatique complet et autonome.

Complet, car vous profiterez d’une solution de messagerie et Webmail, d’un serveur d’impression, d’un serveur de fichiers central, d’une mise en réseau de vos postes de travail (Windows, Linux, …) facile, d’un accès Internet sécurisé, d’un antispam, d’un pare-feu, …

Autonome, une interface graphique (Web) vous permettra de configurer vos différents services.

2. Installation depuis le CD-ROM

La méthode la plus facile pour installer Zentyal sur un serveur (ou ordinateur) from scratch est l’utilisation du CD-ROM. Ce CD contient Zentyal et toutes ses dépendances. La version 3.0 repose sur la distribution Ubuntu Server 12.04 et est disponible en 32bits et 64bits.

Si vous souhaitez configurer votre partition ou spécifier votre serveur proxy, sélectionnez « expert mode ».

Une fois que l’installation est terminée, vous avez accès à l’interface web

https://<adresse IP du serveur Zentyal>

Loguez-vous en utilisant le nom d’utilisateur et le mot de passe deamandé lors de l’installation. Cepenadant, un utilisateur membre du groupe « admin » peut se loguer.

3. Installation depuis le dépôt Zentyal

3.1 Configuration du source.list

Sous Ubuntu 12.04 :

Ajoutez à votre fichier /etc/apt/sources.list

deb http://ppa.launchpad.net/zentyal/3.0/ubuntu precise main
deb http://archive.zentyal.org/zentyal 3.0 main extra

Le dépôt Zentyal et le PPA nécessitent une authentification.

Importez la clé public :

#apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 10E239FF
#wget -q http://keys.zentyal.org/zentyal-3.0-archive.asc -O- | apt-key add -

Vous pouvez aussi copier/coller la commande suivante :

#apt-get install -y python-software-properties && add-apt-repository ppa:zentyal/3.0 && apt-get update

3.2 Installation

L’architecture logcielle de Zentyal est modulaire, ce qui vous permet d’ajouter et supprimer des modules selon votre besoin. Vous disposez à ce jour de plus de 30 modules.

Zentyal simplifie son utilisation en proposant des profils. Chaque profil contient un groupe d’applications. Vous trouverez ci-dessous la liste des profils et de leurs applications :

  • zentyal-office: zentyal-samba, zentyal-printers, zentyal-antivirus, zentyal-ebackup, zentyal-remoteservices
  • zentyal-communication: zentyal-mail, zentyal-jabber, zentyal-asterisk, zentyal-mailfilter, zentyal-antivirus, zentyal-ebackup, zentyal-remoteservices
  • zentyal-gateway: zentyal-squid, zentyal-trafficshaping, zentyal-l7-protocols, zentyal-ebackup, zentyal-remoteservices
  • zentyal-infrastructure: zentyal-dhcp, zentyal-dns, zentyal-openvpn, zentyal-webserver, zentyal-ftp, zentyal-ntp, zentyal-ebackup, zentyal-remoteservices

Après modification de votre fichier sources.list, vous devez mettre à jour votre base de données :

#apt-get update
#apt-get install zentyal

Une fois que l’installation est terminée, vous avez accès à l’interface web

https://<adresse IP du serveur Zentyal>

Une interface graphique complète est disponible (je ne vous la recommande pas, SSH suffit) :

#apt-get install zenbuntu-desktop

Enfin rebootez votre serveur.

3.3 Installation de modules supplémentaires

Installation de tous les modules :

#apt-get install zentyal-all

Installation d’un module au choix :

#apt-get install zentyal-office
  • zentyal-antivirus : antivirus ClamAV
  • zentyal-asterisk : une solution de ToIP
  • zentyal-ca : serveur de certificats
  • zentyal-dhcp : attribution dynamique d’adresses IP
  • zentyal-dns : résolution de noms
  • zentyal-ebackup : sauvegarde en réseau
  • zentyal-firewall : pare-feu
  • zentyal-ftp : transfert de fichier
  • zentyal-ids : détection d’intrusion réseau
  • zentyal-jabber : messagerie instantanée
  • zentyal-l7-protocols : traffic shapping (optimisation des flux réseau) et QoS via layer 7
  • zentyal-ltsp : virtualisation des postes de travail
  • zentyal-mail : messagerie électronique
  • zentyal-mailfilter : anti-spam
  • zentyal-monitor : supervision
  • zentyal-network : interface web d’admistration Zentyal
  • zentyal-ntp : serveur de temps identique à cet article
  • zentyal-nut : interface Web d’administration des onduleurs du type UPS
  • zentyal-objects
  • zentyal-openvpn : accès VPN
  • zentyal-printers : serveur d’impressions
  • zentyal-remoteservices
  • zentyal-samba : serveur de fichiers
  • zentyal-services : gestion des services
  • zentyal-software : gestion des mises à jour
  • zentyal-squid : proxy
  • zentyal-trafficshaping : traffic shapping (optimisation des flux réseau)
  • zentyal-users : activation PAM et SSH
  • zentyal-usercorner : LDAP
  • zentyal-webserver : serveur apache
  • zentyal-radius : authentification réseau sécurisée
  • zentyal-webmail : serveur apache accès à votre messagerie
  • zentyal-zarafa : groupware

4. Machines virtuelles

Les installation des machines virtuelles ne sont pas réalisées régulièrement. Il peut donc y avoir des paquets non à jour. Si vous avez une connexion Internet, les dernières mises à jour seront appliquées durant l’installation.