Linux

Installer Trac + SVN sur une Debian Plesk

Nous allons créer deux sous-domaines sous Plesk :

  • svn.mydomain.com : pour gérer le subversion
  • trac.mydomain.com : pour gérer trac

Pour information, Subversion (en abrégé svn) est un système de gestion de versions, distribué sous licence Apache et BSD. Il a été conçu pour remplacer CVS. Ses auteurs s’appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et considèrent que le modèle de CVS est le bon, et que seule son implémentation est en cause. Le projet a été lancé en février 2000 par CollabNet, avec l’embauche par Jim Blandy de Karl Fogel, qui travaillait déjà sur un nouveau gestionnaire de version.

Trac est un système Open Source de gestion complète de projet par Internet, développé en Python.

Trac inclut :
* Un Wiki,
* Gestion de feuilles de route,
* Historique,
* Rapport de bugs,
* Explorateur subversion.

Nous allons installer le logiciel subversion sur notre machine.

apt-get install subversion

Installer le module Webdav pour apache 2

apt-get install mod_dav_svn

On vérifie la version du SVN ainsi que présence du module webdav.

svn --version

On crée le répertoire dans notre sous domaine pour la repository.

mkdir /var/www/vhosts/mydomain.com/subdomains/svn/httpdocs/repo

Création d’une repositery vide dans notre répertoire.

svnaddmin create /var/www/vhosts/mydomain.com/subdomains/svn/httpdocs/repo

On défini les accès a notre repository pour Apache et SVN.

chmod -R 777 /var/www/vhosts/mydomain.com/subdomains/svn/httpdocs/repo

Nous allons, maintenant, installer le logiciel TRAC sur notre machine.
Soit par le dépot :

apt-get install trac

Soit par easy_install :

apt-get install python-setuptools
easy_install Trac

On crée le répertoire dans notre sous domaine pour l’environnement TRAC.

mkdir /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo

Génère l’environnement de TRAC dans notre répertoire.

trac-admin /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo initenv

On se déplace dans le répertoire du sous-domaine.

cd /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs

On change le groupe de permissions de tracrepo et sous répertoire en psacln qui est l’utilisateur Apache de Plesk.

chgrp -R psacln *

On change le propriétaire de tracrepo et sous répertoire avec l’utilisateur FTP du domaine (mydomainuser : à modifier ci-dessous).

chown -R mydomainuser *

Gestion de l’Authentification :

La protection de l’SVN et du TRAC se fera à l’aide d’un login Apache. Pour ceci nous allons créer un fichier de mot de passe :

htpasswd -c /etc/auth-file

Pour ajouter un utilisateur :

htpasswd /etc/auth-file

Configuration d’apache
Pour le fichier /var/www/vhosts/mydomain.com/subdomains/trac/conf/vhost.conf :

<Location />
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonInterpreter main_interpreter
PythonOption TracEnv /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo
PythonOption TracUriRoot /
SetEnv PYTHON_EGG_CACHE /tmp
AuthType Basic
AuthName « myproject »
AuthUserFile /etc/auth-file
Require valid-user
</Location>

Pour le fichier /var/www/vhosts/mydomain.com/subdomains/svn/conf/vhost.conf :

<Location />
DAV svn
SVNPath /var/www/vhosts/mydomain.com/subdomains/svn/httpdocs/repo
AuthType Basic
AuthName « myproject SVN »
AuthUserFile /etc/auth-file
Require valid-user
</Location>

Ne pas oublier de rendre possible en lecture et écriture :
/var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo/db
Et
/var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo/db/trac.db

On demande à Plesk de prendre en compte notre configuration :

/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=mydomain.com 

On relance Apache

service httpd restart

Penser à configurer votre TRAC dans le fichier :
/var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo/conf/trac.ini.

Pour donner les droits admins à un user sur Trac :

trac-admin /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo/ permission add user TRAC_ADMIN

Sources :

http://www.chaodisiaque.com/article-installation-svn-trac-307.html

http://cms.ersezer.com/index.php/menuwebdev/58-contentplesksvntrac.html

Commandes Linux

commandes Linux

//==============================================
// Commande pour nettoyer le répertoire /tmp :
//==============================================

find /tmp -type f -mtime +3 | xargs -r -n 10 rm

//==============================================
// Informations sur l’espace disque disponible
//==============================================

df -h

//==============================================
// Espace disque utilisé par un répertoire
//==============================================

du -sh /tmp/

//==============================================
// Espace disque utilisé par un répertoire + ses sous-répertoires
//==============================================

du -h --max-depth=2 /tmp/

//==============================================
// Nombre de fichiers dans un répertoire
//==============================================

ls -1A |wc -l

Installer Munin sur Plesk

On installe munin

apt-get install munin munin-node

Créer depuis plesk un nouveau sous-domaines « munin » sur l’un de vos nom de domaine

On va changer le propriétaire du répertoire httpdocs correspondant + modifier le chmod en 0755 (rwxr-xr-x)

chown munin:munin /var/www/vhosts/mondomaine.fr/subdomains/munin/httpdocs

Editer le fichier /etc/munin/munin.conf et modifier la variable htmldir

htmldir	/var/www/vhosts/mondomaine.fr/subdomains/munin/httpdocs

Pour que Munin prenne en compte nos modifications : redémarrons le

/etc/init.d/munin-node restart

Pour aller plus loin de vous conseille ces deux sites :

Optimisation Serveur Apache

Penser à modifier votre MaxClients (150 -> 800 par exemple : à voir selon la capacité de votre serveur) et pour les sites avec très peu de contenu statiques on désactive KeepAlive

Modifier le fichier logrotate.conf et mettre daily au lieu de weekly et rotate 2 au lieu de 4 (on ne garde les logs que sur 2 semaines et non 4)

Compatibilité Debian 32 bits / 64 bits

Pour éviter les problèmes de compatibilités entre Debian 32 et 64 :

apt-get intall ia32-libs

Quand PECL ne marche pas….

Il m’arrive souvent que PECL ne fonctionne pas à cause du phpize malgré le php5-dev, voici la solution que je préconise :

wget http://pecl.php.net/get/monExtension.tgz
tar zxvf monExtension.tgz
cd monExtension
phpize
./configure
make
make install

Plesk 8.3 – Revalider une licence

/usr/local/psa/admin/bin/keymng –install –source-file=/usr/local/psa/tmp/psa.key

Penser à ouvrir les ports de votre firewall pour Plesk

iptables -t filter -A OUTPUT -d ka.swsoft.com -p tcp --dport 5224 -j ACCEPT
iptables -t filter -A INPUT -d ka.swsoft.com -p tcp --dport 5224 -j ACCEPT

Sécuriser son serveur Web Partie 2

On se rend compte de plusieurs dès lors où on a un peu d’expérience dans le domaine du Web : personne n’est protégé du serveur à l’application Web, tout ce qui fonctionne ne rime pas forcément avec protection.

C’est d’autant plus vrai qu’il n’existe pas de méthode pour rendre son serveur 100% protégé dans le temps. Toutefois, je vais tâcher de vous proposer un certains nombre d’actions qui devrait limiter au maximum ce genre de menace.

Commençons par le commencement

  1. On va auditer votre configuration php grâce à phpsecinfo
  2. On va auditer le serveur avec rkhunter : apt-get install rkhunter (tout simplement pour l’installer) et pour éxécuter un audit il suffit de taper : rkhunter
  3. Vérifier la version de votre kernel : uname -r > 2.6.24.1
  4. Vérifier également avec la commandes history (que c’est bien vous qui avez rentré les dernière commandes ssh)
  5. Pour éviter les attaques Brutes Force on va modifier le port par défaut de SSH et ne plus autoriser à se connecter avec le root (plus d’informations ici)
    1. adduser yourusername
    2. Dans le fichier /etc/ssh/sshd_config, on modifie PermitRootLogin yes en PermitRootLogin no
  6. On installe fail2ban
  7. On installe mod_security pour Apache2

Bien entendu je rappelle des choses élémentaires :

  1. Éviter les mots de passe courts et trop simple (pour éviter de rentrer dans le cas d’une attaque par dictionnaire)
  2. Veuillez à mettre des mots de passe différents pour chacun des comptes : FTP, SSH, SQL, etc…
  3. Veuillez à ne pas communiquer les codes root ou les laisser à la portée de n’importe qui
  4. Pour SQL, créer des utilisateurs sur mesure par rapport a votre besoin (SELECT, UPDATE, INSERT)

Gestion des .fr sous Plesk 8.3

Pour gérer les .fr sous Plesk, c’est facile quand on sait ce qu’il faut faire ^^

Alors voyons ça dans le détail :

  1. Plesk > Serveur > Paramètre DNS > ACL Commun : on ajoute l’adresse IP du serveur DNS Secondaire
  2. Modifions le template : Plesk > Serveur > Paramètre DNS
    1. On modifie le NS primaire avec l’adresse physique de son serveur (OVH : nsXXXX.ovh.net, Dedibox: sd-XXXX.dedibox.fr)
    2. On crée le NS pour le serveur DNS Secondaire (OVH : sdns1.ovh.net, Dedibox: nssec.dedibox.fr)
  3. On édite le fichier /etc/named.conf et on décommente la ligne
    1. // query-source address * port 53;
  4. RIPE conseille d’utiliser le format AAAAMMJJNN, où AAAA est l’année (quatre chiffres), MM est le mois (deux chiffres), JJ est le jour du mois (deux chiffres) et nn est la version par jour (deux chiffres).
    1. Connectez-vous à la base de données de Plesk (psa).
    2. Lancez l’interrogation suivante :
    3. insert into misc (param,val) values (‘SOA_SERIAL_MODE’, ‘AAAAMMJJnn’)

PS : si un domaine a été créé avant la modification du template, il vous faudra modifier manuellement les NS.

Apache – Address already in use: make_sock: could not bind to address

Apache – Address already in use: make_sock: could not bind to address

08/06/2005 This error message can be caused by an improper shut down, the apache processes are still hanging around and apachectl restart won’t work.

Solution

just kill off the hanging processes:

# fuser 80/tcp
80/tcp:               3010  3702  4088 16754
# kill -n 9 3010
# kill -n 9 3702
# kill -n 9 4088
# kill -n 9 16754
# apachectl start

or if there’s loads of processes use
#for i in $(fuser 80/tcp);do kill -n 9 $i;done
to kill them all off