Gestion des logs système (venant des logs des services).
ps ax | grep syslog 2618 ? Ss 0:00 /sbin/syslogd
Configuration dans /etc/syslog.conf
facility.level
facility = type de service
level = niveau d'information:
Debug = bcp info, emergency = très grave alerte
Il faut d'abord dire au syslog qu'il accepte les logs à distance (remote): Dans /etc/init.d/sysklogd: changer la ligne:
SYSLOGD=""
en
SYSLOGD="-r"
Et redémarrer le service
/etc/init.d/sysklogd restart
Ensuite, sur la machine distante, changer la ligne (si on veut par exemple redireger les logs du service):
lpr.* -/var/log/lpr.log
en:
lpr.* @192.168.2.42
et redémarrer le service.
Pour tester: redémarrer le système d'impression sur la machine distante:
/etc/init.d/lpd restart
et on voit dans le syslog ceci (dernière ligne):
403-15:~# tail -f /var/log/syslog May 12 14:22:01 403-15 exiting on signal 15 May 12 14:22:02 403-15 syslogd 1.4.1#17: restart (remote reception). May 12 14:25:10 403-15 exiting on signal 15 May 12 14:25:11 403-15 syslogd 1.4.1#17: restart (remote reception). May 12 14:25:19 403-15 lpd[1622]: restarted May 12 14:25:19 192.168.2.42 lpd[1622]: restarted May 12 14:27:00 403-15 lpd[1643]: restarted May 12 14:27:00 192.168.2.42 lpd[1643]: restarted May 12 14:27:06 403-15 exiting on signal 15 May 12 14:27:07 403-15 syslogd 1.4.1#17: restart (remote reception). May 12 14:27:36 192.168.2.158 lpd[3366]: restarted
syslog va toujours écrire dans le même fichier, au bout d'un temps, ça prend de la place (partition saturée). logrotate permet d'archiver les logs.
configuration /etc/logrotate.conf et dans le répertoire /etc/logrotate.d/ (pour des services spécifiques)
On peut paramétrer quand faire les rotations de log (défaut = chaque semaine), combien de semaines il garde (défaut = 4 semaines) Pour Apache, c'est chaque semaine mais il garde un an (par défaut). On peut aussi choisir de “roter” quand le fichier de logs atteint une certaine taille.
Logrotate est exécuté par cron:
ls -l /etc/cron.daily/l* -rwxr-xr-x 1 root root 89 2005-05-25 11:49 /etc/cron.daily/logrotate
qui contient:
#!/bin/sh test -x /usr/sbin/logrotate || exit 0 /usr/sbin/logrotate /etc/logrotate.conf
Virtual Private Network.
On peut utiliser plusieurs techniques:
Il faut d'abord générer 2 clefs:
403-15:~# openssl genrsa -out server.key
403-11:~# openssl genrsa -out client.key
Ensuite, générer 2 demandes de certificat (utiliser cacert.pem):
openssl req -new -key client.key -out client.csr
openssl req -new -key server.key -out server.csr
S'assurer qu'au préalable la machine est déjà une autorité de certification, ou taper:
/usr/lib/ssl/misc/CA.pl -newca
et taper enter à la première question (cf. cours du 1)).
Et enfin, faire les demandes de certificat pour obtenir:
scp client.csr 192.168.2.42:/root/
openssl ca -policy policy_anything -out client.crt -infiles client.csr
scp client.crt 192.168.2.158:/root/
openssl ca -policy policy_anything -out server.crt -infiles server.csr
Ensuite, on peut générer sur le serveur une clef Diffie-Hellman (dh1024.pem):
openssl dhparam -out dh1024.pem 1024
Sur le serveur, ajouter un fichier server.conf contenant:
dev tun ifconfig 10.1.0.2 10.1.0.1 remote 192.168.2.158 route 10.1.0.0 255.255.255.0 tls-server dh dh1024.pem ca cacert.pem cert server.crt key server.key
Recopier cacert.pem dans le répertoire courant:
cp demoCA/cacert.pem ./
Sur le client, créer un fichier client.conf contenant:
dev tun ifconfig 10.1.0.1 10.1.0.2 remote 192.168.2.42 route 10.1.0.0 255.255.255.0 tls-client ca cacert.pem cert client.crt key client.key
où cacert.pem est la clef publique de l'autorité de certification (il faut donc la recopier sur le client VPN):
scp demoCA/cacert.pem 192.168.2.158:/root/
Finalement, installer openvpn sur les 2 machines (client et serveur):
aptitude install openvpn
Répondre successivement oui et non aux questions.
Lancer le serveur:
openvpn --config server.conf Fri May 12 15:46:28 2006 OpenVPN 2.0 i386-pc-linux [SSL] [LZO] [EPOLL] built on Apr 6 2006 Fri May 12 15:46:28 2006 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Fri May 12 15:46:28 2006 WARNING: file 'server.key' is group or others accessible Fri May 12 15:46:28 2006 TUN/TAP device tun0 opened Fri May 12 15:46:28 2006 /sbin/ifconfig tun0 10.1.0.2 pointopoint 10.1.0.1 mtu 1500 Fri May 12 15:46:28 2006 UDPv4 link local (bound): [undef]:1194 Fri May 12 15:46:28 2006 UDPv4 link remote: 192.168.2.158:1194 Fri May 12 15:46:28 2006 read UDPv4 [ECONNREFUSED]: Connection refused (code=111)
Ensuite lancer le client:
openvpn --config client.conf Fri May 12 15:46:46 2006 OpenVPN 2.0.6 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on Apr 5 2006 Fri May 12 15:46:46 2006 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Fri May 12 15:46:46 2006 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info. Fri May 12 15:46:46 2006 WARNING: file 'client.key' is group or others accessible Fri May 12 15:46:46 2006 TUN/TAP device tun0 opened Fri May 12 15:46:46 2006 /sbin/ifconfig tun0 10.1.0.1 pointopoint 10.1.0.2 mtu 1500 Fri May 12 15:46:46 2006 UDPv4 link local (bound): [undef]:1194 Fri May 12 15:46:46 2006 UDPv4 link remote: 192.168.2.42:1194 Fri May 12 15:46:46 2006 [carl] Peer Connection Initiated with 192.168.2.42:1194 Fri May 12 15:46:47 2006 Initialization Sequence Completed
Sur le serveur, on voit l'établissement de la connexion:
Fri May 12 15:46:42 2006 [toto] Peer Connection Initiated with 192.168.2.158:1194 Fri May 12 15:46:43 2006 Initialization Sequence Completed
S'il y a un serveur web qui tourne sur le serveur VPN (ou mieux, derrière), tester en surfant depuis le client sur le serveur en utilisant l'IP du tunnel:
links http://10.1.0.2/