Wiki | Contact

Captaine's blog

Tag - Ubuntu Server

Fil des billets - Fil des commentaires

lundi, juillet 21 2008

Widget Dotclear 2 pour afficher la bande passante consommée

Voici une petite extension (widget) pour Dotclear 2 qui permet à l'internaute de voir la bande passante utilisée sur le serveur grâce à l'utilitaire BWBar : plugin-bwbar-1.0.zip

Pour l’installer :
Il faut d'abord installer l'extension pour Dotclear, puis :

sudo apt-get install bwbar

Ensuite la configuration : On édite le fichier /etc/default/bwbar :

# Directory to put files into
DIR=/mon répertoire dotclear/plugins/bwbar/
# Who to run as
RUNAS=www-data
# What are the options (eth0, scale of 100mbps)
OPTIONS="eth0 100 -M -o -t 10 -x 200"

Dans cette configuration, on choisit de mettre le fichier image de la bande passante utilisée dans le dossier /mon répertoire dotclear/plugins/bwbar/ (car le plugin va chercher l'image dans son répertoire) avec comme bande passante maximale 100 Mbits/s sur eth0 (eth0 100 -M). La ré actualisation des valeurs toutes les 10s (-t 10). L'image a une largeur de 200 pixels (-x 200).

Voici d’autres options utiles pour la bwbar :

   * -i Mesure de la bande passante entrante (input)
   * -o mesure de la bande passante sortante (default)
   * -d Répertoire ou sont stockés les fichier
   * -f Nom du fichier texte de sortie (ubar.txt)
   * -p Nom du fichier graphique de sortie (ubar.png)
   * -t Intervalle de rafraichissement (15)
   * -x Largeur de la barre (600)
   * -y Hauteur de la barre (4)
   * -b Épaisseur de la bordure (1)
   * -k Bande passante mesurée en kbit/s
   * -M Bande passante mesurée en Mbit/s (default)
   * -G Bande passante mesurée en Gbit/s
   * -K Bande passante mesurée en KB/s
   * -m Bande passante mesurée en MB/s
   * -g Bande passante mesurée en GB/s


Puis on relance bwbar:

/etc/init.d/bwbar restart

Maintenant vous pouvez admirer votre barre de bande passante : BWBar

samedi, juillet 12 2008

Script Firewall IPv6 pour un serveur

Voici un petit script pour configurer un Firewall IPv6 sur un serveur :

#!/bin/bash
#-----------------------------------------------------------------------#
#                                                                       #
# Description : Firewal avec ip6tables                                  #
# OS          : Linux                                                   #
# Requires    : ip6tables - ip_conntrack* - modprobe                    #
# Licence     : GPL                                                     #
# Author      : Benoît Pourre <benoitpourre AT rt74.eu>			#
# Web site    : http://www.rt74.eu/                               	#
#                                                                       #
#-----------------------------------------------------------------------#

# Variables
export IF_RESEAU="eth0"

start_fw() 
{
	# On efface toutes les regles existantes
	/sbin/ip6tables -F

	# On supprime d'eventuelles regles personnelles
	/sbin/ip6tables -X

	# Mise en place des regles par defaut (on refuse tout par default)
	/sbin/ip6tables -P INPUT DROP
	/sbin/ip6tables -P FORWARD DROP
	/sbin/ip6tables -P OUTPUT DROP

	# On accepte les connexions sur la boucle locale (sur lo == 127.0.0.1)
	/sbin/ip6tables -A INPUT -i lo -j ACCEPT
	/sbin/ip6tables -A OUTPUT -o lo -j ACCEPT

	# On accepte la sortie de certain protocoles (commenter les lignes selon le besoin)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p UDP --dport domain -j ACCEPT		# Port 53   (Windows udp)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport domain -j ACCEPT		# Port 53   (Windows tcp)
	#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport netbios-ssn  -j ACCEPT    # Port 139  (smb or windows share)
	#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport microsoft-ds -j ACCEPT    # Port 445  (smb or windows share)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport http -j ACCEPT		# Port 80   (Http)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport https -j ACCEPT		# Port 443  (Https)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport imap -j ACCEPT		# Port 143  (Imap)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport imaps -j ACCEPT		# Port 993  (Imaps)
	#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport pop3 -j ACCEPT		# Port 110  (Pop3)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport smtp -j ACCEPT		# Port 25   (Smtp)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport smtps -j ACCEPT		# Port 465  (Smtps)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ftp-data -j ACCEPT	# Port 20   (Ftp Data)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ftp -j ACCEPT		# Port 21   (Ftp)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ssh -j ACCEPT		# Port 22   (Ssh)
	#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ldap -j ACCEPT            # Port 389  (ldap)
	#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ldaps -j ACCEPT           # Port 636  (ldaps)
	/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport 5222 -j ACCEPT            # Port 5222 (Jabber)
	#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport 6881:6889 -j ACCEPT	# Port 6881 a 6889 (Bittorrent)

	# On autorise les connexions deja etablies ou relatives a une autre connexion a sortir
	/sbin/ip6tables -A OUTPUT -o $IF_RESEAU --match state --state NEW,ESTABLISHED,RELATED -j ACCEPT

	# On autorise les connexions deja etablies a entrer
	/sbin/ip6tables -A INPUT  -i $IF_RESEAU --match state --state ESTABLISHED,RELATED -j ACCEPT

	# On autorise le PC a faire des ping sur des IP exterieur
	/sbin/ip6tables -A OUTPUT -p icmpv6 -j ACCEPT

	# On interdit les PC a l'exterieur de faire des ping
	/sbin/ip6tables -A INPUT -p icmpv6 -j ACCEPT

	# Ecriture de la politique de log
	# Ici on affiche [ip6tables DROP] dans /var/log/message a chaque paquet rejette par ip6tables
	/sbin/ip6tables -N LOG_DROP
	/sbin/ip6tables -A LOG_DROP -j LOG --log-level 1 --log-prefix '[ip6tables DROP]:'
	/sbin/ip6tables -A LOG_DROP -j DROP

	# On met en place les logs en entree, sortie et routage selon la politique LOG_DROP ecrit avant
	/sbin/ip6tables -A FORWARD -j LOG_DROP
	/sbin/ip6tables -A INPUT -j LOG_DROP
	/sbin/ip6tables -A OUTPUT -j LOG_DROP

	# Chargement du module de gestion des connexion state (autorisation des connexions deja etablies a passer le firewall)
	/sbin/modprobe ip_conntrack

	# Chargement du module special pour palier au probleme de connexion FTP passive
	/sbin/modprobe ip_conntrack_ftp
}
stop_fw() 
{

# Vidage des règles pour toutes les tables :
ip6tables -F

# permet l'effacement de toutes les chaînes qui ne sont pas par défaut dans la 
# table filter notamment LOG_ACCEPT
ip6tables -X

# On remet la politique par défaut à  ACCEPT dans les trois tables par défaut
ip6tables -P INPUT ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -P FORWARD ACCEPT

}

case "$1" in
	start)
		start_fw
		echo "firewall started"
		;;

	stop)
		stop_fw 
		echo "firewall stopped"
		;;

	restart)
		stop_fw
		echo "firewall stopped"
		start_fw
		echo "firewall restarted"
		;;

	*)
		echo "usage: $0 [start|stop|restart]" >&2
		exit 1

esac
exit 0

Vous pouvez le télécharger Script firewall IPv6 ip6tables ici.

Il faut ensuite le placer dans /etc/init.d. Pour qu'il soit exécuté au démarrage :

sudo update-rc.d script-ip6tables start 99 2 . stop 00 2 0 1 6 .

lundi, juin 23 2008

Avoir une interface graphique Gnome sur Ubuntu Server

Ubuntu Server s'installe par défaut sans interface graphique. Cependant, il peut être utile et pratique d'en avoir une que l'on peut lancer à la demande. Après quelques recherches, je suis tombé sur un début de solution :

apt-get install ubuntu-desktop

Malheureusement, ce paquet installe Gnome avec toutes les applications préinstallées sur la version Desktop d'Ubuntu telles que OpenOffice, Evolution... J'ai ensuite trouvé l'alternative qui installe Gnome de manière minimaliste :

apt-get install x-window-system-core xserver-xorg gnome-core

Cela permet d'installer uniquement Gnome avec les polices de caractères dont il a besoin et le seveur X. Pour le lancer, il faut d'abord être loggé, puis lancer la commande

startx

On peut ensuite ajouter quelques utilitaires bien pratiques :

apt-get install gnome-utils gnome-nettool gparted firefox

L'intérêt de cette solution est que l'environnement graphique n'est pas systématiquement chargé au démarrage du système. Gnome