Aller au contenu

Script installation Debian GNU/Linux et d'autres


Messages recommandés

Bonjour les gens !

un ti script pour installer une debian toute fraiche (carte de visite powered)

Toutes questions ou remarques sont les bienviendus !

#!/bin/sh
# History
# 1.0 - 05/08/2007 - 1ere version sur laquelle je penses à marquer les modifs.
# 1.1 - 08/08/2007 - Correction d'un bug concernant la prise en compte des scripts dans le dossier /etc/cron.hourly, pas de .sh
# 1.11 - 08/08/2007 - Ajout d'un fichier témoin afin de connaitre la version utilisée pour l'install
# 1.2 - 09/08/2007 - Ajout de lsof et de less
# 2.0 - 22/08/2007 - Ajout de la gestion des clés publiques pour les connexions SSH
# 2.1 - 23/08/2007 - Ajout d'un cron afin de garder à jour la liste des clés autorisées / correction d'un bug sous ntp
# 2.2 - 28/08/2007 - Ajout d'une modification sur la gestion du réseau
# 2.3 - 24/09/2007 - Correction d'un problème avec le script de mise à jour
# 3.0 - 25/09/2007 - Passage en version stable au vu de la nouvelle gestion des paquets
# 3.1 - 17/10/2007 - Ajout de la prise en compte du syslog déporté sur le serveur de surveillance
# 3.5 - 17/10/2007 - Remise en forme du script
# 3.6 - 17/10/2007 - Ajout de commentaire pour m'y retrouver (il était temps) et ajout de p7zip
# 3.7 - 17/10/2007 - Passage en format Linux (boulay de ne pas l'avoir fait avant)
# 4.0 - 17/10/2007 - Ajout de la possibilité de lancer ce script sur une debian deja installer afin de la mettre à jour et de lui apporter les nouvelles choses
# 4.1 - 19/10/2007 - Ajout de snmpd
# 4.11 - 25/10/2007 - Modifications mineures sur l'ordre d'execution des instructions
# 4.2 - 30/10/2007 - Modification afin de ne plus mettre à jour le système si on envoit le script sur une machine déjà installée
# 4.3 - 05/11/2007 - Ajout du paquet openssh-server (merci totor !)
# 4.5 - 09/12/2007 - Ajout d'un cron de mise a jour de la liste des paquets
# 4.55 - 09/12/2007 - Correction d'un bug avec la config de snmpd
# 4.6 - 11/11/2007 - Modification de la prise en compte du CtrlAltSuppr, ne reboot plus le serveur
# 4.7 - 19/11/2007 - Correction d'un souci sur les mises a jour qu ise faisaient meme si ce n'etait pas une premiere install et suppression des doublons
# 4.8 - 23/11/2007 - Ajout de la mise à jour auto du script InstallDeb.sh
# 4.9 - 29/11/2007 - Ajout du bash completion de la mort qui tue ('. /etc/bash_completion')
# 5.0 - 03/12/2007 - Ajout d'un script d'automatisation du clonage des serveurs
# 5.1 - 03/12/2007 - Changement du motd, correction de piti problemes
# 5.2 - 10/12/2007 - Correction d'un problème de echo
# 5.3 - 16/12/2007 - Correction de petits bugs divers et ajout de ftp dans les paquets à installer
# 5.4 - 18/12/2007 - Ajout de l'executable locate
# 5.5 - 29/12/2007 - Suppression de la creation du installdeb de fin, il ne sert plus à rien, on peut executer le vrai installdeb sur toute install
# 5.6 - 03/01/2008 - Correction d'un probleme sur l'ajout du fichier de version
# 5.7 - 18/03/2008 - Ajout de la config bourrinos de fail2ban
# 6.0 - 31/03/2008 - Ajout de postfix, et qui marche en plus
# 7.0 - 25/04/2008 - Ajout du script IpTables et du script de MAJ qui ouvre ce qu'il faut
# 7.1 - 25/04/2008 - Centralisation de tous les scripts du ftp dans Developpement/Jojo/Scripts
# 7.1.1 - 02/05/2008 - Correction d'un bug mineur du au changement de version de l'installer
# 7.2 - 26/05/2008 - Utilisation des 'here documents', merci Theocrite
# 7.3 - 27/05/2008 - Ajout du demon ntpd
# en prévision ==> 8.0 - - Ajout de la gestion de l'IDS

# On definit une variable pour s'y retrouver dans les maj
VersPowered=7.3

# On cree la fonction qui va bien pour tester l'existence d'une chaine dans un fichier
# Si cette chaine n'existe pas, on la cree, sinon on passe
DaFonctionQuiDechireClassique ()
{
 grep '$1' $2 > /dev/nul 2>&1
 if [ $? -eq 1 ]
 then
		 echo $1 >> $2
 fi
}
DaFonctionQuiDechireRebootService ()
{
 grep '$1' $2 > /dev/nul 2>&1
 if [ $? -eq 1 ]
 then
		 echo $1 >> $2
		 /etc/init.d/$3 restart
 fi
}

# On configure apt
cat > /etc/apt/sources.list << EOF
deb [url="http://ftp.fr.debian.org/debian/"]http://ftp.fr.debian.org/debian/[/url] testing main contrib non-free
deb [url="http://ftp.fr.debian.org/debian/"]http://ftp.fr.debian.org/debian/[/url] stable main contrib non-free
deb [url="http://ftp.fr.debian.org/debian/"]http://ftp.fr.debian.org/debian/[/url] unstable main contrib non-free
deb [url="http://security.debian.org/"]http://security.debian.org/[/url] stable/updates main
EOF

cat > /etc/apt/preferences << EOF
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release a=testing
Pin-Priority: 300
Package: *
Pin: release a=unstable
Pin-Priority: 100
APT::Cache-Limit 90000000;
EOF


# On cree une mise a jour auto de la liste des paquets
cat > /etc/cron.weekly/aptidate << EOF
#!/bin/sh
#iptables -t BISOUNOURS -A OUTPUT -p tcp --dport 80 -j ACCEPT
aptitude update
#iptables -t BISOUNOURS -A OUTPUT -p tcp --dport 80 -j DROP
EOF

chmod +x /etc/cron.weekly/aptidate
/etc/init.d/cron restart

# On cree un script de maj qui permet d'ouvrir le port http pendant la maj
# Maj qui sera faite par le script MajPowa.sh, sinon ça marchera pas
cat > /root/MajPowa.sh << EOF
#!/bin/sh
# script de mise à jour du systeme qui pense à authoriser les acces http
#iptables -t BISOUNOURS -A OUTPUT -p tcp --dport 80 -j ACCEPT
aptitude update && aptitude update && aptitude safe-upgrade && aptitude dist-upgrade && aptitude safe-upgrade && aptitude dist-upgrade
#iptables -t BISOUNOURS -A OUTPUT -p tcp --dport 80 -j DROP
EOF

chmod +x /root/MajPowa.sh

/etc/cron.weekly/IpTablesScript
#update-rc.d IpTablesScript defaults

# On desactive les services inutiles
update-inetd --disable time
update-inetd --disable daytime
update-inetd --disable echo
update-inetd --disable chargen
update-inetd --disable ident
update-inetd --disable discard

# On reparametre la gestion du CtrlAltSuppr
sed -i 's/ca:12345:ctrlaltdel:\/sbin\/shutdown -t1 -a -r now/ca:12345:ctrlaltdel:\/bin\/echo que veut tu faire piti coquin/g' /etc/inittab

# On cree un systeme pour gerer l'authentification par clef publique
cd /root/
mkdir .ssh
chmod +x AjoutClefPublique.sh
/root/AjoutClefPublique.sh
cat > /etc/cron.daily/PublicKey << EOF
#!/bin/sh
/root/AjoutClefPublique.sh
EOF

chmod +x /etc/cron.daily/PublicKey

# On cree un script pour faire les mises a jour du systeme, supprimer certains paquets et installer d'autres essentiels
if [ -f /etc/JojoVersion ]
then
echo $VersPowered > /etc/JojoVersion
cat > /root/InstallDebTemp.sh << EOF
aptitude update
aptitude purge ppp pppconfig pppoe pppoeconf lpr nfs-common portmap -y
aptitude update
aptitude install postfix ntp vim bzip2 fail2ban vlock unzip zip lsof less p7zip snmpd openssh-server linuxlogo ftp locate -y
EOF

chmod +x /root/InstallDebTemp.sh
/root/InstallDebTemp.sh
rm /root/InstallDebTemp.sh
else
echo $VersPowered > /etc/JojoVersion
cat > /root/InstallDebTemp.sh << EOF
aptitude update
aptitude purge ppp pppconfig pppoe pppoeconf lpr nfs-common portmap -y
aptitude update
aptitude update
aptitude upgrade -y
aptitude safe-upgrade -y
aptitude dist-upgrade -y
aptitude upgrade -y
aptitude safe-upgrade -y
aptitude dist-upgrade -y
aptitude install postfix ntp vim bzip2 fail2ban vlock unzip zip lsof less p7zip snmpd openssh-server linuxlogo ftp locate -y
EOF

chmod +x /root/InstallDebTemp.sh
/root/InstallDebTemp.sh
rm /root/InstallDebTemp.sh
fi

# On met a jour le motd
/usr/bin/linux_logo > /etc/motd

# On reparametre le reseau
sed -i 's/allow-hotplug eth0/auto eth0/' /etc/network/interfaces

# On parametre syslog pour qu'il synchronise avec notre serveur de surveillance
DaFonctionQuiDechireRebootService '\*.* @[u]ServeurSyslog[/u]' /etc/syslog.conf sysklogd
sed -i '/[u]ServeurSyslog[/u]/ s/\\//g' /etc/syslog.conf

# On configure vim pour qu'il ne nous embete plus avec les tabulations et les commentaires
DaFonctionQuiDechireClassique "set noautoindent" /etc/vim/vimrc

# On synchronise automatiquement avec un serveur de temps
cat > /etc/ntp.conf << EOF
# Nobody can poll me
retrict default ignore
# I can poll myself.
retrict 127.0.0.1
# Save the drift
driftfile /var/lib/ntp/ntp.drift
#Stats
statsdir /var/log/ntpstats/
statistics loopstats peerstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
#servers
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.orgEOF
EOF
/etc/init.d/ntp restart

# On automatise les sauvegardes des logiciels et fichiers de conf
cat > /etc/cron.weekly/saveconf << EOF
#!/bin/sh
cd /root
rm /root/CloneDeb.sh*
#iptables-save > /tmp/SaveIp
#modprobe ip_conntrack_ftp
#iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
#iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables-restore < /etc/cron.weekly/saveconf
chmod +x /root/CloneDeb.sh
EOF
chmod +x /etc/cron.weekly/saveconf
/etc/init.d/cron restart

# On configure snmpd
sed -i 's/ 127.0.0.1//g' /etc/default/snmpd
cat > /etc/snmp/snmpd.conf << EOF
syscontact [u]geoffroy.rabouin@atosoft.com[/u]
syslocation [u]Aubagne, France[/u]
# 1 cré des relations entre les communautéet des noms de sérité	   nom.secu	source		 communaute
com2sec LocalNet	[u]IpServeurNagios	Communauté[/u]
com2sec LocalNet	127.0.0.1/32	[u]Communauté[/u]
# 2 cré des relations entre des noms de groupes et les noms de sérité	   nom.groupe  version		nom.secu
group   ROGroup	 v2c			LocalNet
# 3 Crée les diverses vues qui seront autorisé aux groupes
view	tout		included	  .1
# 4 Indiquee les accèaux vues suivant les groupes
#	   nom.groupe  contexte modele.secu niveau.secu prefixe lecture ecriture notification
access  ROGroup	 ""	   v2c		 noauth	  exact   tout	none	 none
# Points de montage a surveiller
disk /
EOF
/etc/init.d/snmpd restart

# on configure postfix
echo "[u]Domaine[/u]" > /etc/mailname
cat > /etc/postfix/main.cf << EOF
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
myhostname = `sed -n 2p /etc/hosts | awk '{ print $2 }'`
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = '$HOSTNAME', localhost
relayhost = ServeurSmtpRelay
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
EOF
# on définit les aliases de mail
cat > /etc/aliases << EOF
postmaster:	root
hostmaster: root
webmaster: root
abuse: root
noc: root
security: root
root:   [u]mail@domaine.com[/u]
EOF
newaliases
/etc/init.d/postfix restart


# On cree les alias classiques
DaFonctionQuiDechireClassique 'alias ll="ls -altrh --color=auto"' /etc/profile
DaFonctionQuiDechireClassique 'alias vvv="vlock -a"' /etc/profile
DaFonctionQuiDechireClassique '. /etc/bash_completion' /etc/profile

IpTablesScripts

#!/bin/bash
# script pour sécuriser iptables
#
# 1.0 - 2007 - Blocage simple de quelques ports
# 2.0 - 26/04/2007 - Changement de stratégie, on bloque tout et on ouvre selectivement
#
# 3.0 en prevision, suppression de ssh car ouvert grace à knockd
#

Preliminaire () {
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
	for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
	do
		echo 1 > $filtre
	done
fi
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

modprobe ip_tables

# Ceinture de chastete
iptables -P INPUT DROP
iptables -P FORWARD DROP

# On met meme les lames de rasoir pour tuer tout ce qui ressort
iptables -P OUTPUT DROP

# Vidange manuelle
/sbin/iptables -F
/sbin/iptables -X

# On n'oublie pas de garder contact
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Autoriser le mano a mano
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
}

ReglesDouloureuses () {
# Autoriser les requetes SSH
# Parce que SSH, mangez en, c'est bon
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Quel serveur n'a pas besoin d'acces a un serveur DNS
# Un numéro de tel c'est bien, mais pouvoir mettre un nom dessus, s'mieux
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

# Vu qu'on synchro toute les heures sur un ntp
# s'mieux d'autoriser tout ça
# Et rien de pire que de louper un rencart a cause de l'heure
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT

# On autorise le snmp
# Toujours interessant de savoir ce que deviennent les bits
	iptables -A OUTPUT -p udp --dport 161 -j ACCEPT

	# On autorise l'export syslog
	# Toujours sympa de garder une trace de ce qu'on a fait ou raconter
	iptables -A OUTPUT -p udp --dport 514 -j ACCEPT

# Ne soyons pas trop vache, on autorise http
# quoi que ... on ne l'autorisera que quand on fera la maj du système
# (On la laisse là en aide mémoire)
# iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
# Ne pas oublier de faire la commande suivante ensuite
# iptables -A OUTPUT -p udp --dport 80 -j DROP
# Mais le script de maj s'en occupe tout seul
}

Consolation () {
# On cherche quelles sont les règles à appliquer
# On va sortir la liste des paquets et grep'er dessus
# pour savoir les softs installes

# on sauvegarde la liste des paquets
# Un annuaire bien range, toujours agreable quand on recherche quelqun
dpkg --get-selections > /tmp/FileDpkg
# On test ftpd
# la classe, on pose ce qu'on veut, ca crie pas et on revient quand on veut si on connait le code
cat /tmp/FileDpkg | grep -v "-" | grep ftpd > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	modprobe ip_conntrack_ftp
	iptables -A INPUT -p tcp --dport 20 -j ACCEPT
	iptables -A INPUT -p tcp --dport 21 -j ACCEPT
	iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
fi
# On test postfix
# Un ti texto de temps en temps, ca coute rien et ca sauve des soirees
cat /tmp/FileDpkg | grep -v "-" | grep postfix > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 25 -j ACCEPT
	iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
fi
# On test bind
# revoila mon annuaire
cat /tmp/FileDpkg | grep -v "-" | grep bind > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 53 -j ACCEPT
	iptables -A INPUT -p udp --dport 53 -j ACCEPT
fi
# On test apache
# une joli presentation, toujours un plus
cat /tmp/FileDpkg | grep -v "-" | grep apache > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 80 -j ACCEPT
	iptables -A INPUT -p tcp --dport 443 -j ACCEPT
fi
# On test ispconfig
# Une chambre bien rangee, sla classe
cat /tmp/FileDpkg | grep -v "-" | grep ispconfig > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 81 -j ACCEPT
fi
# On test courier-pop
# Et pop, sussprise
cat /tmp/FileDpkg | grep -v "-" | grep courier-pop > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 110 -j ACCEPT
	iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
fi
# On test courier-imap
# Les texto bien rangés, ca evite les mauvaises surprises de "c'est qui celle la"
cat /tmp/FileDpkg | grep -v "-" | grep courier-imap > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 143 -j ACCEPT
	iptables -A OUTPUT -p tcp --dport 143 -j ACCEPT
fi
# On test Pyzor
cat /tmp/FileDpkg | grep -v "-" | grep pyzor > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 24441 -j ACCEPT
	iptables -A OUTPUT -p tcp --dport 24441 -j ACCEPT
fi
# On test dcc
cat /tmp/FileDpkg | grep -v "-" | grep dcc > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 6277 -j ACCEPT
	iptables -A OUTPUT -p tcp --dport 6277 -j ACCEPT
fi
# On test razor
cat /tmp/FileDpkg | grep -v "-" | grep razor > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 7 -j ACCEPT
	iptables -A OUTPUT -p tcp --dport 7 -j ACCEPT
	iptables -A INPUT -p tcp --dport 2703 -j ACCEPT
	iptables -A OUTPUT -p tcp --dport 2703 -j ACCEPT
fi
# On test clam
cat /tmp/FileDpkg | grep -v "-" | grep clam > /dev/null 2>&1 && i=1 || i=2
if [ $i -eq 1 ]
then
	iptables -A INPUT -p tcp --dport 22641 -j ACCEPT
	iptables -A OUTPUT -p tcp --dport 22641 -j ACCEPT
fi
}

# On Envoi La Sauce ...
Preliminaire || exit
ReglesDouloureuses || exit
# owned
# Ne pas lacher le morceau
# On enchaine
Consolation || exit

echo "Et v'la, protected :!:"

Lien vers le commentaire
Partager sur d’autres sites

Il y aurait plein de trucs à dire :keskidit:

Mais en gros :

* Il faudrait apprendre l'utilisation des here documents : http://en.wikipedia.org/wiki/Here_document#Unix-Shells

* Il faudrait utiliser les outils appropriés ;)

http://www.informatik.uni-koeln.de/fai/

http://www.debian.org/releases/stable/i386/apb.html.en

* Il ne faut JAMAIS utiliser ntpdate dans une cron. On ne l'utilise uniquement que pour mettre à jour de manière brutale (au reboot par exemple pour éviter de mettre 5 jours à booter comme ça peut arriver des fois). Pour le reste il faut utiliser ntpd et au moins 3 serveurs. Par contre le hwclock est une bonne idée. C'est pour l'instant nécessaire, mais il est prévu que ce soit géré directement par ntpd à l'avenir.

* C'est dommage de ne pas utiliser exim quand on utilise debian :transpi:

Sinon merci d'avoir partagé et respecté la devise du forum ;)

Je n'ai pas eu le temps de regarder en détail. Je verrais ça plus tard :keskidit:

Lien vers le commentaire
Partager sur d’autres sites

Je connais FAI, je l'utilise pour déployer les Debian sur un parc complet, pas pour une machine par ci par là ...

Je regarde du coté de simple-CDD, qui semble interessant pour l'utilisation que j'en ai.

Ce script est surtout destiné aux gens qui ne prévoient pas d'installer à tour de bras des Linux.

Pour le ntpdate ... cela vient d'un souci sous vmware qui ne garde pas une horloge constante et qui du coup me décale mes horaires.

Vu que la compilation des vmwares-tools plante régulièrement, j'avais pris cette solution.

Pour info, pourquoi ne jamais utiliser ntpdate en cron ?

j'aime pas Exim ^^

pour les 'Here document', j'avais vu, j'utilisais, mais j'ai oublié ^^

surtout que c'est mieux en plus ... je corrige ça.

Lien vers le commentaire
Partager sur d’autres sites

Je connais FAI, je l'utilise pour déployer les Debian sur un parc complet, pas pour une machine par ci par là ...

Je regarde du coté de simple-CDD, qui semble interessant pour l'utilisation que j'en ai.

Bah, c'est moins potentiellement puissant que FAI, mais c'est aussi beaucoup plus léger... en gros, ça se cantonne de modifier le Debian-installer selon tes besoins...

Pour installer une petite Debian toute simple, ou juste une base (genre, avec console-setup et kdm installés et configurés pour unifier la gestion des langues avec le clickodrome... ce qui est sans doute ce qui me fait le plus pester à l'installation d'une Debian... m'enfin, de toute façon, il y a toujours des petites conneries que chacun préfère changer), c'est nickel... après, c'est sûr, si tu veux installer des Vservers, des Xen, ou des trucs KVMisés (j'attends la para-virtualisation pour tester... faudrait que je regarde si ça n'a pas été backporté dans le prochain CentOS, pour voir), bah, FAI est le sauveur...

Ce script est surtout destiné aux gens qui ne prévoient pas d'installer à tour de bras des Linux.

De toute façon, le mieux est de faire ses scripts soi-même... mais en donner des exemples est une bonne initiative :transpi:

Pour le ntpdate ... cela vient d'un souci sous vmware qui ne garde pas une horloge constante et qui du coup me décale mes horaires.

Vu que la compilation des vmwares-tools plante régulièrement, j'avais pris cette solution.

Pour info, pourquoi ne jamais utiliser ntpdate en cron ?

Si tu fais ça quand l'OS tourne, tu risques de (enfin, tu vas) faire des sauts brutaux dans le temps... du coup, tu risques de te retrouver avec des fichiers qui n'ont pas la date qu'ils sont supposés avoir les uns par rapport aux autres, et tu risques de te retrouver avec des bugs, des logs qui partent en sucette, et cie... quitte à faire du saut brutal, autant le faire au boot, quand les choses sont encore calmes...

j'aime pas Exim ^^

postfixçapueçaypalibre :keskidit: ... en plus, Debian permet quand même de vachement facilement configurer la base avec debconf, et ils ont fait beaucoup d'efforts sur la conf du bousin... sous Debian, je trouve que c'est plus la chienlie qu'autre chose de s'en affranchir... bon, après, les goûts, les couleurs, ...

pour les 'Here document', j'avais vu, j'utilisais, mais j'ai oublié ^^

surtout que c'est mieux en plus ... je corrige ça.

:keskidit:

Lien vers le commentaire
Partager sur d’autres sites

J'ai modifié le script pour prendre en compte les here documents.

Les 3/4 de mes machines étant sous vmware, je garde le ntp ... et j'assume, je vais voir à réfléchir quand même, mais après.

il est vrai que ça me fait quelques trucs rigolo sur les dates ... à voir à l'usage.

Lien vers le commentaire
Partager sur d’autres sites

Pour le ntpdate ... cela vient d'un souci sous vmware qui ne garde pas une horloge constante et qui du coup me décale mes horaires.

Vu que la compilation des vmwares-tools plante régulièrement, j'avais pris cette solution.

Pour info, pourquoi ne jamais utiliser ntpdate en cron ?

C'est très mauvais.

Ça c'était pour l'euphémisme. Maintenant on recommence sans euphémisme :

C'est très TRÈS mauvais pour plusieurs raisons.

  1. La majorité des gens mettent un ntpdate dans un cron toutes les heures ou à un nombre de minutes piles. Ce qui fait que les serveurs ntp souffrent toutes les heures pendant plusieurs secondes parce que tout le monde met à jour en même temps. ntp est fait pour ça bon sang. Il randomise le temps entre deux synchronisations. C'est presque un manque de respect pour toutes les personnes qui fournissent gracieusement un service et qui se font remercier en mettant le serveurs à genoux ou en tout cas en explosant sa bande passante. C'est pourquoi le dev va retirer ntpdate dans les futures releases.
  2. ntpdate c'est le truc brutal. Ce qui a de nombreux désavantages sur une machine en cours d'utilisation. Ça peut faire des "sauts" de temps, ce qui peut provoquer certaines inconsistances notamment dans les logs, les bases de données ou dans les arborescences de fichiers. Dans le cas le plus dramatique (bien qu'improbable) ça peut faire paniquer tous les logiciels mal conçus qui s'appuient trop fort sur la date de fichiers ou de données.
  3. ntpd ne fait pas de retour en arrière par défaut. Si tu es en avance, il va faire avancer le temps très lentement. Ça évite le message comme quoi ton fs a été modifié dans le futur.
  4. ntpdate ne corrige pas le drift. Si tu dis que vmware décale ton horloge avec le temps, alors tu as tout intérêt à utiliser ntpd qui va "apprendre" comment fonctionne ton horloge et à quelle vitesse elle se décale. Le démon sera alors capable de corriger ton horloge (approximativement) même sans connexion.
  5. ntpd est prévu pour maintenir une horloge à l'heure. Il utilise tout un tas d'algorithmes statistiques prenant en compte la latence du réseau la dispersion etc. de façon à être ultra précis. Ce n'est pas la préoccupation de ntpdate. De toutes façons dès que tu as lancé ntpdate, ton horloge recommence à avoir du drift les secondes d'après.

Enfin ce n'est pas compliqué de faire tourner un démon ntp. il suffit d'une ligne par server et d'une ligne pour le driftfile (pas dans le /etc/ si possible. /var semble mieux approprié). Tu peux aussi mettre un restrict si tu veux que ce ne soit qu'un client final.

j'aime pas Exim ^^
C'est compréhensible. Je n'aimais pas non plus au début, mais je n'utilise plus que ça maintenant.
Lien vers le commentaire
Partager sur d’autres sites

[*] ntpd est prévu pour maintenir une horloge à l'heure. Il utilise tout un tas d'algorithmes statistiques prenant en compte la latence du réseau la dispersion etc. de façon à être ultra précis. Ce n'est pas la préoccupation de ntpdate. De toutes façons dès que tu as lancé ntpdate, ton horloge recommence à avoir du drift les secondes d'après.

Enfin ce n'est pas compliqué de faire tourner un démon ntp. il suffit d'une ligne par server et d'une ligne pour le driftfile (pas dans le /etc/ si possible. /var semble mieux approprié). Tu peux aussi mettre un restrict si tu veux que ce ne soit qu'un client final.

Je pensai que ntpd fournissait uniquement le service et ne permettait par la synchro ...

Je comprends le souci, je rtfm toussa, et je corrige.

Merci des infos !

[edit]

script modifié.

Lien vers le commentaire
Partager sur d’autres sites

Bah tu sais même où je travaille au taf, c'était basé sur du ntpdate partout avant que j'arrive...

La conf ntpdate dans le cron était même présent dans fai.

Bref pour info, voilà ma conf du boulot (ma machine perso)

cat /etc/ntp.conf 
# Nobody can poll me
retrict default ignore
# I can poll myself.
retrict 127.0.0.1 
# Save the drift
driftfile /var/lib/ntp/ntp.drift
#Stats
statsdir /var/log/ntpstats/
statistics loopstats peerstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
#servers
server chronos1
server chronos2

Pour les serveurs, ce sont des serveurs de temps locaux. À la place tu peux utiliser (au choix)

Debian :

server 0.debian.pool.ntp.org
server 1.debian.pool.ntp.org
server 2.debian.pool.ntp.org
server 3.debian.pool.ntp.org

fr :

server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.org

eu :

 server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org

monde :

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...