====== Serveur chd-stg2 ======
===== Caractéristiques =====
* Machine virtuelle (KVM amd64)
* Debian 8
===== Roles =====
* Utilitaires de gestion du réseau (AirControl, mise à jour routeur..)
* DNS autoritaire pour les reverse DNS IPv6
===== Notes d'installation =====
==== Système / Réseau ====
# Parti d'une migration de la VM stg2.tetaneutral.net
# TODO : reprendre la doc du wiki TTN
apt-get autoremove --purge rpcbind nfs-common vim-tiny
apt-get install --purge nullmailer
# Donner chd.sx comme smarthost
# Permettre ping depuis www-data (et autres user simples)
setcap cap_net_raw+p /bin/ping
module(load="imudp")
input(type="imudp" port="514" ruleset="rs_remote")
template(name="t_remote_logfile" type="string" string="/var/log/remote/%fromhost-ip%.log")
ruleset(name="rs_remote") {
action(type="omfile" dynaFile="t_remote_logfile" dynaFileCacheSize="400")
}
===== Serveur DNS (autorité pour reverse DNS) =====
''ns2.chd.sx'' est un ''bind9'' sur ''chd-stg2''. Il y a une délégation de zone vers ''all-knowing-dns'' sur ''ns3.chd.sx'' (même machine) pour les IPv6.
[[http://all-knowing-dns.zekjur.net/|http://all-knowing-dns.zekjur.net/]]
apt-get install bind9 all-knowing-dns
editor /etc/all-knowing-dns.conf
service all-knowing-dns restart
editor /etc/bind/{named.conf.options,named.conf.local,db.185.131.40,db.185.131.41}
editor /etc/bind/{db.2a03:a0a0::,db.2a03:a0a0:1::,db.2a03:a0a0::upstream,db.2a03:a0a0:1::upstream}
service bind9 restart
Requêtes d'essai :
$ dig +short 0.0.0.0.0.a.0.a.3.0.a.2.ip6.arpa. SOA
ns2.chd.sx. dnsmaster.chd.sx. 2016121101 10800 900 604800 10800
$ dig +short 0.0.0.0.0.a.0.a.3.0.a.2.ip6.arpa. NS
ns1.chd.sx. # bind slave
ns2.chd.sx. # bind master
$ dig +short 0.0.0.0.0.0.a.0.a.3.0.a.2.ip6.arpa. NS
ns3.chd.sx. # all-knowing-dns
$ dig +short 40.131.185.in-addr.arpa. SOA
ns2.chd.sx. dnsmaster.chd.sx. 2016121101 10800 900 604800 10800
$ dig +short 41.131.185.in-addr.arpa. SOA
ns2.chd.sx. dnsmaster.chd.sx. 2016121101 10800 900 604800 10800
$ dig +short 40.131.185.in-addr.arpa. NS
ns2.chd.sx.
ns1.chd.sx.
$ dig +short -x 2a03:a0a0::1
chd-stg1.chd.sx.
$ dig +short -x 2a03:a0a0::2
chd-stg2.chd.sx.
$ dig +short -x 2a03:a0a0::3
ipv6-000000000000000000000003.chd.sx.
$ dig +short -x 2a03:a0a0:0:8001:2f5:f0ff:fe40:71fe
ipv6-0000800102f5f0fffe4071fe.chd.sx.
$ dig +short -x 185.131.40.1
chd-stg1.chd.sx.
$ dig +short -x 185.131.40.2
chd-stg2.chd.sx.
$ dig +short -x 185.131.40.3
chd-stg2.chd.sx.
$ dig +short -x 185.131.40.4
$ dig +short -x 185.131.40.9
srv1.stg.prosoluce.net.
$ dig +short -x 185.131.40.10
backup3.stg.prosoluce.net.
$ dig +short -x 185.131.40.11
$ dig +short -x 185.131.40.33
ipv4-40-33.chd.sx.
$ dig +short -x 185.131.40.34
ipv4-40-34.chd.sx.
$ dig +short -x 185.131.40.254
ipv4-40-254.chd.sx.
$ dig +short -x 185.131.41.1
ipv4-41-1.chd.sx.
$ dig +short -x 185.131.41.2
ipv4-41-2.chd.sx.
$ dig +short -x 185.131.41.254
ipv4-41-254.chd.sx.
===== Mise à jour routeur =====
mkdir /root/git
cd /root/git
git clone ssh://root@chd.sx/var/git/chd_openwrt.git
cd /var/www
ln -s /root/git/chd_openwrt/maj
cd /usr/local/bin/
ln -s /root/git/chd_openwrt/build-openwrt-dev.sh
ln -s /root/git/chd_openwrt/build-openwrt.sh
cd /var/cache
mkdir build-openwrt build-openwrt-dev
chown www-data build-openwrt build-openwrt-dev
editor /etc/fstab
# Ajouter :
tmpfs /var/cache/build-openwrt/build tmpfs uid=33,gid=33,mode=0750,size=512M 0 0
tmpfs /var/cache/build-openwrt-dev/build tmpfs uid=33,gid=33,mode=0750,size=512M 0 0
mount -a # Vérifier que les deux tmpfs sont montés
* Lancer via le web une première tentative de mise à jour en utilisant les dépôts officiels (sans la modification de repositories.conf dans build-openwrt-dev.sh donc)
* Si tout fonctionne correctement, un fichier .bin est proposé au téléchargement après une bonne minute
* Le log est dans ''/tmp/build-openwrt-dev.sh_*''
* Faire un cache local des paquets ''.ipk'' nécessaires (gagne du temps, des ressources et limite grandement les aléas de la disponibilité du serveur web d'en face) :
cd /root/git/chd_openwrt
./mirrorring-bare-minimum.sh
find /var/www/lede-project
# Doit lister environ 66 fichiers .ipk et quelques Packages.gz
===== Compilation OpenWRT pour ImageBuilder custom (obsolète avec LEDE) =====
* 2017-06-20 : Utiliser le ImageBuilder tout prêt de [[http://lede-project.org]]
* [[https://wiki.openwrt.org/doc/howto/buildroot.exigence|https://wiki.openwrt.org/doc/howto/buildroot.exigence]]
* [[https://wiki.openwrt.org/doc/howto/build|https://wiki.openwrt.org/doc/howto/build]]
apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk subversion
mkdir /var/cache/buildroot-cc-wr740nv5
chown www-data: /var/cache/buildroot-cc-wr740nv5
cd /var/cache/buildroot-cc-wr740nv5
screen
sudo -u www-data bash
editor ~/.bashrc
# Ajouter : export PATH="/var/cache/buildroot-cc-wr740nv5/openwrt/staging_dir/host/bin:/var/cache/buildroot-cc-wr740nv5/openwrt/staging_dir/toolchain---/bin:$PATH"
git clone https://git.openwrt.org/15.05/openwrt.git
cd openwrt/
git checkout 37e7a90e677eb5b5488c4a29f4bb90440cc4a0f1
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
# Target system : Atheros AR7xxx/AR9xxx
# Subtarget : Generic
# Target Profile : Default profile (all drivers)
# Target Images : squashfs
# Build the OpenWrt Image Builder
./scripts/diffconfig.sh > diffconfig
CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_generic=y
CONFIG_TARGET_ar71xx_generic_Default=y
CONFIG_IB=y
CONFIG_IB_STANDALONE=y
# CONFIG_PACKAGE_kmod-nls-base is not set
# CONFIG_PACKAGE_kmod-usb-core is not set
# CONFIG_PACKAGE_kmod-usb-ohci is not set
# CONFIG_PACKAGE_kmod-usb2 is not set
# CONFIG_PACKAGE_uboot-ar71xx-nbg460n_550n_550nh is not set
make world
==== AirControl2 ====
TODO : Détailler l'installation (par cyril)
=== Nettoyage base ===
Ajout d'une tâche cron à nous car c'est pas prévu et ces connards là stockent les métriques en pgsql et pas en rrd et n'agrègent jamais rien. Le ''vacuum full'' n'est vraiment pas optionnel.
(VM)root@chd-stg2:/etc/cron.d# cat aircontrol2
# cron-jobs for aircontrol 2
MAILTO=root
0 2 28 * * root if [ -x /opt/Ubiquiti/AirControl2/cleanDB ]; then cd /opt/Ubiquiti/AirControl2; ./cleanDB -e 300 -t 300 -s 30 -v > /dev/null; echo "VACUUM FULL;" | sudo -u postgres psql ac2; fi