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
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 logrotate
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
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
On va creer deux serveurs presque identiques sturmovik.montjoie.fr et t34.montjoie.fr
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
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
- PaX Control --->
- [ ] Support soft mode
- [ ] Use legacy ELF header marking
- [ ] Use ELF program header marking (NEW)
- MAC system integration (direct) --->
- Non-executable pages --->
- [*] Enforce non-executable pages
- [*] Paging based non-executable pages
- [*] Segmentation based non-executable pages
- Default non-executable page method (SEGMEXEC) --->
- [ ] Emulate trampolines
- [*] Restrict mprotect()
- [ ] Disallow ELF text relocations
- [*] Enforce non-executable kernel pages
- Address Space Layout Randomization --->
- [*] Address Space Layout Randomization
- [ ] Randomize kernel stack base
- [ ] Randomize user stack base
- [ ] Randomize mmap() base
- --- Disable the vsyscall page
- Miscellaneous hardening features --->
- [ ] Sanitize all freed memory
- [ ] Prevent invalid userland pointer dereference
GRSECURITY
[*] Grsecurity
- Security Level (Custom) --->
- ( ) Low
- ( ) Medium
- ( ) High
- ( ) Custom
- Address Space Protection --->
- [ ] Deny writing to /dev/kmem, /dev/mem, and /dev/port
- [*] Disable privileged I/O
- [*] Remove addresses from /proc/ <pid/ >[smaps|maps|stat]
- [*] Deter exploit bruteforcing
- [ ] Runtime module disabling
- [ ] Hide kernel symbols
- Role Based Access Control Options --->
- Filesystem Protections --->
- [ ] Proc restrictions
- [ ] Linking restrictions
- [ ] FIFO restrictions
- [ ] Chroot jail restrictions
- Kernel Auditing --->
- [ ] Single group for auditing
- [ ] Exec logging
- [*] Ressource logging
- [ ] Log execs within chroot
- [ ]
- [ ]
- Executable Protections --->
- Network Protections --->
- Sysctl support --->
- Logging Options --->
- (10) Seconds in between log messages (minimum)
- (4) Number of messages in a burst (maximum)
La doc de
openldap
Testé sous
En cours de test sous
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
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
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
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
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;
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
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 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 10
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