Cette liste d'articles est en cours de rédaction, merci de me signaler les erreurs
Ils sont principalement ici pour m'aider quand je dois moi même les installer, mais ça peut être utile à d'autres personnes
psystem chez laposte avec un point net



Créer un certificat self-signé
openssl req -newkey rsa:1024 -x509 -nodes -out server.pem -keyout server.pem -days 365
req -> X.509 Certificate Signing Request (CSR) Management.
-x509
-nodes -> sans le -nodes cela entraînerais que la clef privée serais chiffrée avec un mot de passe
-newkey rsa:1024
-keyout server.pem -> la clé sera stoqué dans server.pem
-out server.pem -> le CSR sera stoqué dans server.pem
-days 365 -> durée du certificat


Creer un certificat signé par vous meme (ou par exemple CACert)
openssl req -nodes -new -keyout private.key -out server.csr
Ceci creer un fichier server.csr contenant une requete de certificat et une clé privé corespondante RSA 1024bit dans private.key
Pour le self signé il faut
openssl req -new -key privkey.pem -out cert.csr

de l'aide ici openssl aide




Les logs
Avant de travailler sur le serveur, il va falloir vérifier que toutes les actions seront bien "logées"

Configuration de syslog-NG Icone GentooIcone Freebsd
Syslog ng permet plus de choses que le syslog normal.
De plus sa configuration est plus sympa selon moi.
options { chain_hostnames(off); sync(0); };
source src { unix-stream("/dev/log"); internal(); };
source kernsrc { file("/proc/kmsg"); };

#description des destinations
destination authlog { file("/var/log/auth.log"); };
destination syslog { file("/var/log/syslog"); };
destination cron { file("/var/log/cron.log"); };
destination daemon { file("/var/log/daemon.log"); };
destination kern { file("/var/log/kern.log"); file("/dev/tty12"); };
destination lpr { file("/var/log/lpr.log"); };
destination user { file("/var/log/user.log"); };
destination uucp { file("/var/log/uucp.log"); };
#destination ppp { file("/var/log/ppp.log"); };
destination mail { file("/var/log/mail.log"); };
destination avc { file("/var/log/avc.log"); };
destination audit { file("/var/log/audit.log"); };
destination pax { file("/var/log/pax.log"); };
destination grsec { file("/var/log/grsec.log"); };
destination mailinfo { file("/var/log/mail.info"); };
destination mailwarn { file("/var/log/mail.warn"); };
destination mailerr { file("/var/log/mail.err"); };
destination newscrit { file("/var/log/news/news.crit"); };
destination newserr { file("/var/log/news/news.err"); };
destination newsnotice { file("/var/log/news/news.notice"); };
destination debug { file("/var/log/debug"); };
destination messages { file("/var/log/messages"); };
destination console { usertty("root"); };
destination console_all { file("/dev/tty12"); };
#destination loghost { udp("loghost" port(999)); };
destination xconsole { pipe("/dev/xconsole"); };
destination monimap {file("/var/log/imap.log"); };
destination monldap {file("/var/log/ldap.log"); };
destination monlocal1 {file("/var/log/local1.log"); };
destination monlocal2 {file("/var/log/local2.log"); };
destination monlocal3 {file("/var/log/local3.log"); };
destination monlocal5 {file("/var/log/local5.log"); };

#description des filtres
filter f_auth { facility(auth); };
filter f_authpriv { facility(auth, authpriv); };
filter f_syslog { not facility(authpriv, mail); };
filter f_cron { facility(cron); };
filter f_daemon { facility(daemon); };
filter f_kern { facility(kern); };
filter f_lpr { facility(lpr); };
filter f_mail { facility(mail); };
filter f_user { facility(user); };
filter f_uucp { facility(cron); };
#filter f_ppp { facility(ppp); };
filter f_news { facility(news); };
filter f_debug { not facility(auth, authpriv, news, mail); };
filter f_messages { level(info..warn) and not facility(auth, authpriv, mail, news); };
filter f_emergency { level(emerg); };
filter f_info { level(info); };
filter f_notice { level(notice); };
filter f_warn { level(warn); };
filter f_crit { level(crit); };
filter f_err { level(err); };
filter f_avc { match(".*avc: .*"); };
filter f_audit { match("^audit.*") and not match(".*avc: .*"); };
filter f_pax { match("^PAX:.*"); };
filter f_grsec { match("^grsec:.*"); };
filter f_local1 { facility(local1); };
filter f_local2 { facility(local2); };
filter f_local3 { facility(local3); };
filter f_local4 { facility(local4); };
filter f_local5 { facility(local5); };
filter f_local6 { facility(local6); };

#melange
log { source(src); filter(f_authpriv); destination(authlog); };
log { source(src); filter(f_syslog); destination(syslog); };
log { source(src); filter(f_cron); destination(cron); };
log { source(src); filter(f_daemon); destination(daemon); };
log { source(kernsrc); filter(f_kern); destination(kern); };
log { source(src); filter(f_lpr); destination(lpr); };
log { source(src); filter(f_mail); destination(mail); };
log { source(src); filter(f_user); destination(user); };
log { source(src); filter(f_uucp); destination(uucp); };
log { source(kernsrc); filter(f_pax); destination(pax); };
log { source(kernsrc); filter(f_grsec); destination(grsec); };
log { source(kernsrc); filter(f_audit); destination(audit); };
log { source(kernsrc); filter(f_avc); destination(avc); };
log { source(src); filter(f_mail); filter(f_info); destination(mailinfo); };
log { source(src); filter(f_mail); filter(f_warn); destination(mailwarn); };
log { source(src); filter(f_mail); filter(f_err); destination(mailerr); };
log { source(src); filter(f_news); filter(f_crit); destination(newscrit); };
log { source(src); filter(f_news); filter(f_err); destination(newserr); };
log { source(src); filter(f_news); filter(f_notice); destination(newsnotice); };
log { source(src); filter(f_debug); destination(debug); };
log { source(src); filter(f_messages); destination(messages); };
log { source(src); filter(f_emergency); destination(console); };
#log { source(src); filter(f_ppp); destination(ppp); };
log { source(src); destination(console_all); };
log { source(src); filter(f_local6); destination(monimap); };
log { source(src); filter(f_local4); destination(monldap); };
log { source(src); filter(f_local1); destination(monlocal1); };
log { source(src); filter(f_local2); destination(monlocal2); };
log { source(src); filter(f_local3); destination(monlocal3); };
log { source(src); filter(f_local5); destination(monlocal5); };
#spetial syslog par reseau
destination syslogreseau { udp( "t34.montjoie.net" port(514)) ; } ;
log { source(src); destination(syslogreseau); };

Configuration de logrotateIcone GentooIcone Debian
weekly
rotate 52
create
compress
include /etc/logrotate.d
notifempty
nomail
noolddir
# no packages own lastlog or wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 12
}
/var/log/imap.log {
rotate 52
}
/var/log/ldap.log {
rotate 52
}
/var/log/auth.log {
rotate 52
}
/var/log/syslog {
rotate 52
}
/var/log/ulogd.syslogemu {
daily
rotate 52
olddir /var/log/ulog
postrotate
/etc/init.d/ulogd restart
endscript
}
/var/log/mail.log {
weekly
rotate 52
}
/var/log/mail.info {
weekly
rotate 52
}
/var/log/amavis.log {
daily
rotate 52
create 0660 amavis munin
olddir /var/log/amavis
postrotate
/etc/init.d/amavisd restart
rm /var/lib/munin/plugin-state/amavis.offset
endscript
}
/var/log/debug {
daily
rotate 52
olddir /var/log/debug_old
}
/var/log/grsec.log {
weekly
compress
rotate 5
}

Configuration de newsyslog Icone OpenBSDIcone Freebsd



SSHD (OpenSSH)
Rajouter:
AllowUsers montjoie
LoginGraceTime 60 par default c'est 120s mais pour moi c'est trop long
PermitRootLogin no (mieux pour auditer qui fait quoi/se connecte quand on est plusieurs "root"
PermitEmptyPasswords no
Authentification par clé publique
Création de la paire de clé RSA
ssh-keygen
Verifier les droits/utilisateurs de ~/.ssh (600)
Verifier les droits/utilisateurs de ~/.ssh/authorized_keys (600)
Liens Tutorial SSH

Creer une zone DNS avec BIND9

a verifier
$TTL 86400
@ IN SOA ns1.montjoie.net. admin.montjoie.net. (
2006070407 ; Serial
21600 ; Refresh
120 ; Retry
604800 ; Expire
86400 ) ; Minimum

; Declaration du serveur de nom
IN NS ns1.montjoie.net.
IN NS ns6.gandi.net.
IN MX 10 mail.montjoie.net.
; IN MX 20 ns1.montjoie.net.

@ IN A 1.1.1.1 ip du dns montjoie.net

; Declaration des serveurs de la zone
ns1 IN A 1.1.1.1 ip du serveur de nom
mail IN A 1.1.1.2 ip du serveur de mail

; Declaration des alias
www IN CNAME mail


Installation de Cyrus-sasl Openldap Postfix sous Gentoo Hardened en environnement multi domaine multi site (redondance)

On va creer deux serveurs presque identiques sturmovik.montjoie.fr et t34.montjoie.fr

exemple
La base LDAP ainsi que les mails de sturmovik devra se repliquer vers t34. De plus le t34.montjoie.fr herbergera aussi montjoie.net au niveau mail.

dans /etc/portage/package.use:
net-nds/openldap -sasl
Vu que openldap sera la base de donnée d'identifiants il ne faut pas qu'il aille demander sa propre authentification au saslauhtd

emerge cyrus-sasl cyrus-imapd cyrus-imap-admin postfix openldap


Configuration de PAX et GRSecurity
En cours de test
Ceci est juste ma configuration actuelle, elle pourra évoluer avec le temps
Je vais bientot rajouter des comentaires sur chaque option
PAX

[*] Enable various PaX features
GRSECURITY
[*] Grsecurity



Configuration de OpenLDAP
La doc de openldap
Testé sous Icone gentoo Icone Freebsd En cours de test sous Icone OpenBSD

pour le bind to 127.0.0.1 il faut mettre dans /etc/conf.d/slapd
OPTS="-h 'ldaps://0.0.0.0 ldap://127.0.0.1 ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
Toute perssonne (par exemple la replication) voulant contacter le SLAPD devra le faire en ldaps

Rajouter au schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
Changer le suffix et rootdn
suffix "dc=montjoie,dc=fr"
rootdn "cn=Manager,dc=montjoie,dc=fr"
Changer le pass root DN avec slappasswd
Copier la chaine obtenue dans rootpw de slapd.conf

Creer le certificat de chaque serveur LDAP
le mettre dans les lignes TLS...
TLSCAPath /etc/ssl/certs
TLSCertificateFile /etc/ssl/montjoie.crt
TLSCertificateKeyFile /etc/ssl/private/montjoie.key
TLSCACertificateFile /etc/ssl/cacert.crt

Tester avec ldapsearch -v -x -Z -W -D 'cn=Manager,dc=montjoie,dc=fr' -b 'dc=montjoie,dc=fr'


Contenu de fichier.ldif
dn: dc=montjoie,dc=fr
objectClass: top
objectClass: dcObject
objectClass: organization
dc: montjoie
o: montjoie

dn: ou=adresses,dc=montjoie,dc=fr
objectClass: top
objectClass: organizationalUnit
ou: adresses

dn: ou=equipes,dc=montjoie,dc=fr
objectClass: top
objectClass: organizationalUnit
ou: equipes
Ajouter avec:
ldapadd -v -W -x -Z -D 'cn=Manager,dc=montjoie,dc=fr' -f fichier.ldif
-v pour verbose, -W pour prompt bind password, -x simple auth, -Z start TLS

Création d'un "utilisateur"
dn: cn=montjoie,ou=equipes,dc=montjoie,dc=fr
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: montjoie
gn: montjoie
sn: montjoie
uid: montjoie
mail: montjoie@montjoie.fr

Creer un mot de passe avec:
ldappasswd -v -W -S -x -Z -D 'cn=Manager,dc=montjoie,dc=fr' 'cn=montjoie,ou=equipes,dc=montjoie,dc=fr'
-v pour verbose, -W pour prompt bind password, -x simple auth, -Z start TLS, -S pour prompt password

Exemples de configuration bi domaine (en cours de test!!!)
database bdb
suffix "dc=montjoie,dc=fr"
rootdn "cn=Manager,dc=montjoie,dc=fr"
rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxx
directory /var/lib/openldap-data/montjoie.ft
index objectClass eq

database bdb
suffix "dc=montjoie,dc=net"
rootdn "cn=Manager,dc=montjoie,dc=net"
rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxx
directory /var/lib/openldap-data/montjoie.net
Index objectClass eq
Penser a creer et verifier les droits des repertoires montjoie.fr et montjoie.net

ACL propres (en cours de paranoiasisation)
access to attrs=userPassword
by self write
by dn="cn=lecopieurreplicateur,dc=montjoie,dc=fr" write
by anonymous auth
by * none
access to *
by dn="cn=lecopieurreplicateur,dc=montjoie,dc=fr" write
by * read

Configuration de DB_CONFIG
a faire
par defaut ya ca:
# one 0.25 GB cache
set_cachesize 0 268435456 1
# Data Directory
#set_data_dir db
# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
#set_lg_dir logs



Replication Slurpd
Doc sur Slurpd

Testé sous Icone gentoo Icone Freebsd

Mettre ca dans le slapd.conf du maitre (sturmovk)
replica host=montjoie.fr:636
binddn="cn=replicator,dc=montjoie,dc=fr"
bindmethod=simple credentials=XXXX
replogfile /var/db/openldap-slurp/replica/montjoie.fr
slurpd lire le log /var/db/openldap-slurp/replica/montjoie.fr et contactera montjoie.fr:636 avec le dn fournit pour envoyer les modifs
bien sur il faut que ce compte ai les droits d'écriture sur le ldap secondaire

Mettre ca dans le slapd.conf de l'esclave LDAP (t34)
updatedn "cn=replicator,dc=montjoie,dc=fr"

Au final ca donne ca sur t34:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

access to attrs=userPassword
by self write
by dn="cn=lecopieurreplicateur,ou=equipes,dc=montjoie,dc=fr" write
by anonymous auth
by * none

access to *
by self write
by dn="cn=lecopieurreplicateur,ou=equipes,dc=montjoie,dc=fr" write
by * read

TLSCAPath /etc/ssl/certs
TLSCertificateFile /etc/ssl/montjoie.crt
TLSCertificateKeyFile /etc/ssl/private/montjoie.key
TLSCACertificateFile /etc/ssl/cacert.crt
#######################################################################
# BDB database definitions
#######################################################################
database bdb
suffix "dc=montjoie,dc=fr"
rootdn "cn=Manager,dc=montjoie,dc=fr"
rootpw {SSHA}XXXX
updatedn "cn=lecopieurreplicateur,ou=equipes,dc=montjoie,dc=fr"
directory /var/lib/openldap-data/montjoie.fr
index objectClass eq

database bdb
suffix "dc=montjoie,dc=net"
rootdn "cn=Manager,dc=montjoie,dc=net"
rootpw {SSHA}XXXX
directory /var/lib/openldap-data/montjoie.net
Index objectClass eq


Configuration de Saslauthd
Fichier de conf: /etc/conf.d/saslauthd
FreeBSD ( /usr/local/etc/saslauthd.conf)
Mettre dans ce fichier -a ldap
SASLAUTHD_OPTS="${SASLAUTH_MECH} -a ldap -d"
Contenu de saslauthd.conf (il faut le creer dans /etc/)
ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=equipes,dc=%2,dc=%1
ldap_filter: cn=%u
ldap_default_realm: montjoie.fr


Il reste plus qu'à tester l'authentification SASL/LDAP avec testsaslauthd



Configuration de Cyrus


Apres l'installation verifier l'existence de l'utilisateur cyrus
ainsi que des bons droits sur /var/imap
utiliser ce script pour prpearer cyrus
/usr/share/doc/cyrus-imapd-2.2.12/tools/mkimap

Fichiers de configuration de Cyrus est imapd.conf dans /etc/ (et cyrus.conf voir plus loin)
FreeBSD ( /usr/local/etc/imapd.conf)
sasl_pwcheck_method: saslauthd
sasl_mech_list: plain <- sinon cyradm ne marche pas et cest pas grave on va faire du TLS
admins: montjoie
defaultacl: anyone lrs
allowanonymouslogin: no
allowplaintext: yes
allowplainwithouttls: no
unixhierarchysep: yes
autocreatquotas: 10000 <- pour les quotas
en cas de multidomaine rajouter:
virtdomains: yes
defaultrealm: montjoie.fr
loginrealms: montjoie.fr montjoie.net
lmtp_downcase_rcpt: yes

faut remplier ca pour le TLS
tls_ca_path: /etc/ssl/certs
tls_ca_file: /etc/ssl/cacert.crt
tls_cert_file: /etc/ssl/moncrt.crt
tls_key_file: /etc/ssl/private/makey.key

Dans /etc/cyrus.conf
Virer imapd et pop3 et mettre imaps
...
SERVICES {
# Add or remove based on preferences.
# imap cmd="imapd" listen="imap2" prefork=0
# pop3 cmd="pop3d" listen="pop-3" prefork=0

# Don't forget to generate the needed keys for SSL or TLS
# (see doc/html/install-configure.html).
imaps cmd="imapd -s" listen="imaps" prefork=0
#pop3s cmd="pop3d -s" listen="pop3s" prefork=0
...
ATTENTION: apparament cyradm ne sait pas faire du TLS, donc il faut laisser imap. On peux le bloquer au niveau firewall

Ensuite il faut creer les mailbox avec cyradm
cyradm --user montjoie localhost
cyradm> cm user/montjoie@montjoie.local
ne surtous pas oublier le user/

pour logguer cyrus:
destination monimap {file("/var/log/imap.log"); };
filter f_local { facility(local6); };
log { source(src); filter(f_local); destination(monimap); };

a chercher, sur gentoo ca dit ca
* If the queue directory of the mail daemon resides on an ext2
* or ext3 filesystem you need to set it manually to update
* synchronously. E.g. 'chattr +S /var/spool/mqueue'.



Configuration de Murder (replication cyrus)
Doc sur murder
Je n'ai pas encore finalisé l'installation de Murder mais voici l'état ou j'en suis

Sur le BackEnd


a mettre dans imapd.conf
mupdate_server: montjoie.fr
mupdate_port: 3905
mupdate_authname: murder@montjoie.fr
mupdate_username: murder@montjoie.fr
mupdate_password: murder
mupdate_realm: montjoie.fr
attention apparament il prend pas en compte le realm d'où le @montjoie.fr dans le user et authname

a mettre dans cyrus.conf dans la section services
mupdate cmd="/usr/lib/cyrus/mupdate -m" listen=3905 prefork=1

Sur le FrontEnd / Mupdate Master


a mettre dans imapd.conf
mupdate_server: 127.0.0.1
mupdate_port: 3905
mupdate_authname: murder@montjoie.fr
mupdate_username: murder@montjoie.fr
mupdate_password: murder
mupdate_realm: montjoie.fr
attention apparament il prend pas en compte le realm d'où le @montjoie.fr dans le user et authname

proxy_authname: murder@montjoie.fr
proxy_password: murder
proxy_realm: montjoie.fr

sur la mailing list de cyrus un mec dit de mettre ca mais je lai pas trouvé encore dans la doc
#lmtp_admins: murder@montjoie.fr

a mettre dans cyrus.conf dans la section services
imap cmd="proxyd" listen="imap2" prefork=0
imaps cmd="proxyd -s" listen="imaps" prefork=0
lmtpunix cmd="lmtpproxyd" listen="/var/imap/socket/lmtp" prefork=0


Configuration de Postfix
Testé sous Icone gentoo Icone Freebsd

mettre dans /etc/sasl2/smtpd.conf
pwcheck_method:saslauthd
mech_list: plain login
Verifier les parametres suivant dans main.cf
myhostname=
mydomain=

mailbox_transport = lmtp:unix:/var/imap/socket/lmtp OU virt-cyrus (les deux marchent FIXME)
virtual_mailbox_domains= montjoie.com montjoie.net
virtual_transport = virt-cyrus
virtual_alias_maps = hash:/usr/local/etc/postfix/virtual

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

smtp_sasl_auth_enable = yes

pour faire du tls
smtp_tls_CApath = /etc/ssl
smtp_tls_key_file = /etc/ssl/private/montjoie.key
smtp_tls_cert_file = /etc/ssl/montjoie.crt

smtpd_tls_CApath = /etc/ssl
smtpd_tls_key_file = /etc/ssl/private/montjoie.key
smtpd_tls_cert_file = /etc/ssl/montjoie.crt


Penser à faire un newaliases pour transformer en .db le aliases
Et à mettre un vrai alias en face de postmaster vu que aucun compte unix n'a d'adresse ex:
postmaster: denis.montjoie@montjoie.com
faire un postconf pour verifier la conf et la resolution des $myhostname et $mydomain

Pour que le smtp accepte que les mails pour des personnes existantes
Créer un fichier /etc/postfix/monldapchercher
server_host = localhost
search_base = ou=equipes,dc=%2,dc=%1
bind = no
scope = sub
query_filter = (mail=%s)
result_attribute = mail
et mettre dans main.cf
local_recipient_maps = ldap:/etc/postfix/monldapchercheuser
virtual_uid_maps = ldap:/etc/postfix/monldapchercheuser





Monitorage munin

pour tomcat installer XML-Simple

Un exemple de script home made (pas fini)
#!/bin/sh
# Modification 3 Decembre 2006
# Plugin to monitor the amavis mail filter.
# Parameters understood:
# config (required)
# autoconf (optional)
# Config variables:
#
# amavislog - file where amavis logs are written
#

AMAVIS_LOG=${logfile:-/var/log/amavis.log}

if [ "$amavislog" ]; then AMAVIS_LOG=$amavislog ; fi

if [ "$1" = "config" ]; then
echo 'graph_title Amavis statistics'
echo 'graph_order virus spams total'
echo 'graph_vlabel nb'
echo 'virus.label virus'
echo 'spams.label spams'
echo 'total.label total'
exit 0
fi

total=U
virus=U
spams=U

total=`cat /var/log/amavis.log | grep 'Passed' | wc -l`
virus=`cat /var/log/amavis.log | grep 'INFECTED' | wc -l`
spams=`cat /var/log/amavis.log | grep 'Blocked SPAM' | wc -l`

echo "virus.value ${virus}"
echo "spams.value ${spams}"
echo "total.value ${total}"


Et un autre

#!/bin/sh
# Modification 3 Decembre 2006
# Plugin Pour monitorer le smart cciss

if [ "$1" = "config" ]; then
echo 'graph_title HDD Temp statistics'
echo 'graph_order Temp0 Temp1 Temp2 Temp3'
echo 'graph_vlabel nb'
echo 'Temp0.label Temp0'
echo 'Temp1.label Temp1'
echo 'Temp2.label Temp2'
echo 'Temp3.label Temp3'
exit 0
fi

Smart0=U
Smart1=U
Smart2=U
Smart3=U

Smart0=`/root/sm5/smartctl -a -d cciss,0 /dev/cciss/c0d0 | grep 'Current Drive Temperature' | sed "s/^.*Temperature:[ ]*//g" | cut -d\ -f1`
Smart1=`/root/sm5/smartctl -a -d cciss,0 /dev/cciss/c0d1 | grep 'Current Drive Temperature' | sed "s/^.*Temperature:[ ]*//g" | cut -d\ -f1`
Smart2=`/root/sm5/smartctl -a -d cciss,0 /dev/cciss/c0d2 | grep 'Current Drive Temperature' | sed "s/^.*Temperature:[ ]*//g" | cut -d\ -f1`
Smart3=`/root/sm5/smartctl -a -d cciss,0 /dev/cciss/c0d3 | grep 'Current Drive Temperature' | sed "s/^.*Temperature:[ ]*//g" | cut -d\ -f1`

echo "Temp0.value ${Smart0}"
echo "Temp1.value ${Smart1}"
echo "Temp2.value ${Smart2}"
echo "Temp3.value ${Smart3}"




Script firewall automatique

#!/sbin/runscript
#by montjoie
depend() {
need net
}
start() {
/etc/firewall/firewall.script
}



IPsec
EN COURS de test
ipsec avec les regles de firewall corespondantes
HOW TO
#!/usr/sbin/setkey -f
# Configuration for 192.168.1.30

# Flush the SAD and SPD
flush;
spdflush;

# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity)
# and authentication using 128 bit long keys
add 192.168.1.30 192.168.1.88 esp 0x201 -m tunnel -E 3des-cbc
0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831
-A hmac-md5 0xc0291ff014dccdd03874d9e8e4cdf3e6;

add 192.168.1.88 192.168.1.30 esp 0x301 -m tunnel -E 3des-cbc
0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df
-A hmac-md5 0x96358c90783bbfa3d7b196ceabe0536b;

# Security policies
spdadd 192.168.1.30 192.168.1.88 any -P out ipsec
esp/tunnel/192.168.1.30-192.168.1.88/require;

spdadd 192.168.1.88 192.168.1.30 any -P in ipsec
esp/tunnel/192.168.1.88-192.168.1.30/require;



Filtrage mail avec Amavis couplé à Clamd



Amavis et Spamassassin
http://www.yrex.com/spam/spamconfig.php
http://www.gentoo.org/doc/fr/mailfilter-guide.xml
perldoc Mail::SpamAssassin::Conf

dans /etc/conf.d/spamd modifier:
SPAMD_OPTS="-m 5 -c -H -u nobody"
PIDFILE="/var/run/spamd/spamd.pid"
Creer le repertoire /var/run/spamd/
dans /etc/spamassassin/local.cf mettre
ok_locales fr en
bayes_auto_lean 0
bayes_learn_during_report 0
trusted_networks 127.0.0.1
report_safe 0

Razor
mkdir /var/amavis/razor
razor-admin -d -home=/var/amavis/razor/ -create




KerberosKerberos




OpenVPN

Coté serveur
server 10.0.0.0 255.255.255.0
ca /etc/ssl/cacert.crt
cert /etc/ssl/plop.crt
key /etc/ssl/private/plop.key
dh dh1024.pem
dev tun
comp-lzo
persist-tun
persist-key
user nobody
group nobody
daemon
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
Coté client
remote plop.montjoie.net
ifconfig 10.0.0.8 10.0.0.1
dev tun
comp-lzo
persist-tun
persist-key
user nobody
group nobody
daemon
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log


Java en environnement hardened

Installer le jdk 1.5
[ebuild N ] dev-java/java-config-wrapper-0.12-r1
[ebuild N ] dev-java/java-config-2.0.30
[ebuild N ] dev-java/java-config-1.3.7
[ebuild N ] dev-java/sun-jdk-1.5.0.08 USE="-X -alsa -doc -examples -jce -nsplugin"
[ebuild N ] virtual/jdk-1.5.0
chpax -pemrxs java


Apache VirtualHost mod_ssl mod_jk
VirtualHost

mod_ssl
SSLCACertificateFile cacert.crt
SSLVerifyClient Require

mod_jk



Tomcat en environnement hardened



Postgresql
Pour l'install sous gentoo
par défaut Postgres ne log rien, remédions à cela
/var/lib/postgresql/data/postgresql.conf
log_destination = 'stderr'
redirect_stderr = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
Pour le ssl:
ssl = on



Snort
[ebuild R ] net-analyzer/snort-2.6.1.3-r1 USE="dynamicplugin -flexresp -flexresp2 -gre -inline -linux-smp-stats -mysql -odbc -perfprofiling -postgres -prelude -react (-selinux) -sguil -snortsam -timestats"



Tripwire
/etc/tripwire/twconfig.sh
tripwire --init



XEN
XEN sous debian Etch from source
apt-get install python2.4-dev libssl-dev iproute bridge-utils build-essential libx11-dev libncurses5-dev mercurial linux32 gawk gettext

auto dummy0
iface dummy0 inet static
address 192.168.1.2.1
netmask 255.255.255.0

auto xenbr0
iface xenbr0 inet static
address 192.168.2.2
netmask 255.255.255.0
bridge_ports dummy0
bridge_maxwait 0

grub
title xen3
root (hd0,0)
kernel /boot/xen-3.2.1.gz
module /boot/vmlinuz-2.6.18.8-xenmonen root=/dev/hda1 ro

hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg

debootstrap etch /mnt ftp://ftp.fr.debian.org/debianv

fichier guest xen pur

fichier guest kernel.org
kernel="/boo/kernelorg2626"
root="/dev/xvda1 ro"
vif=[ 'bridge=xenbr0' ]

disk = [ 'phy:/dev/hda2,xvda1,w']


glsa-check
glsa-check -m


Red Hat: particularités Icone RedHat
doc sur RedHat
Red hat place ces fichiers de façon différentes des autres (et vice versa)
Petit aide mémoire pour moi
Config réseau dans /etc/sysconfig/network-scripts/ifcfg-eth0
# Realtek Semiconductor Co., Ltd. RTL-8029(AS)
DEVICE=eth0
BOOTPROTO=static
BROADCAST=10.0.0.255
HWADDR=52:54:00:12:34:56
IPADDR=10.0.0.3
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=10.0.0.0
ONBOOT=yes

Config réseau dans /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=plopinette
GATEWAY=10.0.0.1
ntsysv


Solaris 10Icone Solaris
Doc sur Solaris 10
ps -aF
sconadm
patchadd
Voir aussi ici pour l'installation de solaris 10

Sparc64 Gentoo
prtconf


SE linux
Liens redhat
Liens debian
documentation d'install debian selinux

documentation d'install Gentoo selinux
News fro SELinux
documentation Fedora selinux
sestatus
semanage

a suivre....


Politique SELinux xchat TE policy file
Politique SELinux xchat FC policy file
Politique SELinux xchat IF policy file
Politique SELinux amsn TE policy file
Politique SELinux amsn FC policy file
Politique SELinux amsn IF policy file
Politique SELinux pidgin policy TE file
Politique SELinux pidgin policy FC file
Politique SELinux pidgin policy IF file


Subversion + apache mod_DAV
Activé les modules suivant dans apache:
DAV SVN et SVN_AUTHZ
Voici la conf
<Location /svn>
DAV svn
SVNParentPath /usr/home/svn/repos/montjoie.fr/
SVNIndexXSLT "http://svn.montjoie.fr/svnindex.xsl"
AuthzSVNAccessFile /usr/home/svn/access/controle
Satisfy Any
Require valid-user

AuthType Basic
AuthName "Subversion Repositories"
AuthUserFile /usr/home/svn/access/users
</Location>
Exemple de fichier de controle
[groups]
groupe1=bob,henry
groupe2=alex

[documentation:/]
alex= rw
@groupe1 = rw
@groupe2=rw

[test:/]
alex= rw
@groupe1 = rw
@groupe2=r


Sauvegarde amanda
creer l'arbo suinvate
/var/mon_amanda
/var/mon_amanda/cassettes
/var/mon_amanda/cassettes/slot1
/var/mon_amanda/cassettes/slot2
/var/mon_amanda/log
/var/mon_amanda/index
/var/mon_amanda/dumps
/var/mon_amanda/curinfo
creer lien symbolique /var/mon_amanda/cassettes/data vers /var/mon_amanda/cassettes/slot1


modifier amanda.conf (dans /usr/local/etc/montjoie pour FreeBSD)
(montjoie est le nom de la conf)
dumpuser "operator"
tpchanger "chg-disk"
tapedev "file:/var/mon_amanda/cassettes"
define tapetype DISQUEDUR {
comment "mon disque"
length 900 mbytes
}

dans holdingdisk hd1 {
modifier directory "/var/mon_amanda/dumps"

Pour verifier la conf, faire un su - operator
et amcheck montjoie
et amverify montjoie

a suivre...


Configurer PHP
safe_mode
register_globals
suhosin


Les locales

dans /etc/env.d/02locale
LC_ALL="fr_FR@euro"
LC_COLLATE="fr_FR@euro"
LC_CTYPE="fr_FR@euro"
LC_MESSAGES="fr_FR@euro"
LC_MONETARY="fr_FR@euro"
LC_NUMERIC="fr_FR@euro"
LC_TIME="fr_FR@euro"
LC_PAPER="fr_FR@euro"
LANG="fr_FR@euro"



test
lspci
lsusb
fail2ban
dstat
gentoolkit
lshw

Portage 2.0.54-r2 (hardened/x86/2.6, gcc-3.4.6, glibc-2.3.6-r3, 2.6.14-hardened-r8 i686)
=================================================================
System uname: 2.6.14-hardened-r8 i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.6.14
dev-lang/python: 2.4.2
dev-python/pycrypto: [Not Present]
dev-util/ccache: [Not Present]
dev-util/confcache: [Not Present]
sys-apps/sandbox: 1.2.17
sys-devel/autoconf: 2.13, 2.59-r7
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils: 2.16.1-r2
sys-devel/libtool: 1.5.22
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i386-pc-linux-gnu"
CFLAGS="-O2 -march=athlon -pipe"
CHOST="i386-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=athlon -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://mirror.ovh.net/gentoo-distfiles/"
LANG="fr_FR@euro"
LC_ALL="fr_FR@euro"
LINGUAS="fr"
MAKEOPTS="-j2"
PKGDIR="/usr/portage//packages/x86/"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage/"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="authdaemond berkdb bzip2 crypt dlloader expat hardened ldap ncurses nls pam pcre perl php pic python readline sasl ssl tcpd udev userlocales x86 xorg zlib linguas_fr userland_GNU kernel_linux elibc_glibc"
Unset: CTARGET, INSTALL_MASK, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTAGE_RSYNC_OPTS, PORTDIR_OVERLAY

La parano avec Stalinette la souris verte Copyright Montjoie & Stalinette 2005-2009