====== 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