Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
fr:burp [2019/12/30 23:27] – [Restaurer une sauvegarde] Deed | fr:burp [2020/12/18 10:38] – [Côté serveur (Xunre)] Avec root ça marchait pas zatalyz | ||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
Les principes généraux de la sauvegarde d'un serveur sont dans l' | Les principes généraux de la sauvegarde d'un serveur sont dans l' | ||
+ | <WRAP center round info 60%> | ||
+ | Trop de blabla ? La version courte de cet article est sur [[fr: | ||
+ | </ | ||
===== Burp, le logiciel de base ===== | ===== Burp, le logiciel de base ===== | ||
Ligne 36: | Ligne 39: | ||
En lojban, Blanu veut dire " | En lojban, Blanu veut dire " | ||
</ | </ | ||
+ | <WRAP center round tip 90%> | ||
+ | Astuce n°2 : Un backup, c'est trop peu ! | ||
+ | |||
+ | Si, dans ce tutoriel, on va surtout détailler comment Blanu est sauvegardé sur Xunre, nous allons aussi envisager qu'un autre serveur de backup existe, Crino (" | ||
+ | |||
+ | Ainsi, la configuration dans Blanu pour l' | ||
+ | </ | ||
+ | |||
==== Paramétrer les fichiers de client ==== | ==== Paramétrer les fichiers de client ==== | ||
Ligne 41: | Ligne 52: | ||
Burp permet beaucoup de choses et ce fichier, abondamment commenté, donne un aperçu des possibilités. | Burp permet beaucoup de choses et ce fichier, abondamment commenté, donne un aperçu des possibilités. | ||
+ | |||
+ | Sur Blanu, nous allons copier ce fichier dans le dossier ''/ | ||
Nous allons faire simple et modifier uniquement les lignes suivantes : | Nous allons faire simple et modifier uniquement les lignes suivantes : | ||
Ligne 46: | Ligne 59: | ||
* '' | * '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
* '' | * '' | ||
- | <WRAP center round info 90%> | + | Sur la machine client |
- | Il y a aussi des indications de port ('' | + | < |
+ | ca_burp_ca = / | ||
+ | ca_csr_dir = / | ||
+ | ssl_cert_ca = / | ||
+ | ssl_cert = / | ||
+ | ssl_key = / | ||
+ | # Attention celui-ci doit être le même nom côté serveur et client ! | ||
+ | ssl_peer_cn = xunreserver | ||
+ | </ | ||
- | Par contre, dans le cas de deux VM sur un hyperviseur, | + | C'est tout pour le moment |
- | On peut aussi faire mentir le DNS, en ajoutant l'ip par rapport au nom de domaine. | + | === Ports, hyperviseurs, |
+ | |||
+ | Il y a aussi des indications de port ('' | ||
+ | |||
+ | == Cas de deux VM sur le même hyperviseur == | ||
+ | La bonne pratique d'une sauvegarde consiste à envoyer les données sauvegardées dans un autre lieu physique (de préférence distant de plusieurs centaines de kilomètres). Ainsi, si le datacenter crame, vous n'avez pas tout perdu. | ||
+ | |||
+ | Mais diverses raisons peuvent amener à sauver une VM sur une autre, sur le même [[fr: | ||
+ | |||
+ | Si Xunre et Blanu sont deux VM sur le même hyperviseur, | ||
+ | |||
+ | On peut faire mentir le DNS, en ajoutant l'ip par rapport au nom de domaine. | ||
Par exemple, dans ''/ | Par exemple, dans ''/ | ||
Ligne 62: | Ligne 94: | ||
Si ce n'est pas fait, lors d'une sauvegarde, on aura l' | Si ce n'est pas fait, lors d'une sauvegarde, on aura l' | ||
- | 2019-06-09 08:18:19: burp[24782] Could not find ssl_cert / | + | 2019-06-09 08:18:19: burp[24782] Could not find ssl_cert /etc/burp/xunre/ |
- | 2019-06-09 08:18:19: burp[24782] Could not find ssl_key / | + | 2019-06-09 08:18:19: burp[24782] Could not find ssl_key /etc/burp/xunre/ |
- | 2019-06-09 08:18:19: burp[24782] Could not find ssl_cert_ca / | + | 2019-06-09 08:18:19: burp[24782] Could not find ssl_cert_ca /etc/burp/xunre/ |
+ | == Cas d'un client envoyant vers un serveur dans une VM == | ||
+ | Dans le cas où Blanu est sur un dédié, et que Xunre est sur un autre dédié MAIS dans une VM, il y a aussi un problème, lié au fait que le nom de domaine ne va pas forcément renvoyer sur la VM. Pour être plus précis, ici on ne passe pas par Apache. | ||
- | </WRAP> | + | À ce moment, on va bidouiller iptable. Plus précisément, |
- | + | ||
+ | <code>iptables -t nat -I PREROUTING -p tcp --destination-port 4971 -j DNAT --to 192.168.20.16: | ||
+ | iptables -t nat -I PREROUTING -p tcp --destination-port 4972 -j DNAT --to 192.168.20.16: | ||
+ | |||
+ | iptables-save > / | ||
+ | </ | ||
- | Sur la machine client (Blanu), pour le moment, c'est tout ! | ||
==== Paramétrer la partie serveur ==== | ==== Paramétrer la partie serveur ==== | ||
Ligne 89: | Ligne 127: | ||
ca_server_name = burpserver | ca_server_name = burpserver | ||
ca_burp_ca = / | ca_burp_ca = / | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Si le client a comme valeur | ||
+ | ssl_peer_cn = xunreserver | ||
+ | Alors le serveur doit avoir la valeur | ||
+ | ca_server_name = xunreserver | ||
+ | </ | ||
Ligne 97: | Ligne 142: | ||
restore_client = blanu | restore_client = blanu | ||
- | Enregistrez, savourez. | + | Enregistrez. |
- | Il faut encore déclarer ailleurs les détails du ou des clients à sauver. Chaque client est représenté par un fichier dans ''/ | + | Il faut encore déclarer ailleurs les détails du ou des clients à sauver. Chaque client est représenté par un fichier dans ''/ |
+ | sudo nano / | ||
- | Le contenu minimal du fichier ressemble à ça : | + | Le contenu minimal du fichier ressemble à ça (en mettant le bon mot de passe) |
< | < | ||
password = abcd</ | password = abcd</ | ||
Ligne 110: | Ligne 156: | ||
Sur chacun des serveurs, lancer la commande suivante, qui va vérifier que tout se passe bien, sans rien écrire (cela liste les sauvegardes, | Sur chacun des serveurs, lancer la commande suivante, qui va vérifier que tout se passe bien, sans rien écrire (cela liste les sauvegardes, | ||
- | sudo burp -a l | + | sudo burp -c / |
- | S'il n'y a pas d' | + | S'il n'y a pas d' |
- | sudo burp -a b | + | sudo burp -c / |
- | Pour vérifier les sauvegarde d'un client externe. Par exemple, sur Xunre, vérifier qu'on a bien les sauvegardes de Blanu : | + | Explication : |
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Pour vérifier les sauvegarde d'un client externe, par exemple, sur Xunre, vérifier qu'on a bien les sauvegardes de Blanu : | ||
sudo burp -a l -C blanu | sudo burp -a l -C blanu | ||
+ | |||
+ | ==== Réaliser les sauvegardes régulières ==== | ||
+ | Cela fonctionne juste avec cron. | ||
+ | |||
+ | === Côté client (Blanu) === | ||
+ | |||
+ | Si tout va bien, il est temps de paramétrer des sauvegardes régulières. | ||
+ | |||
+ | Sur votre client Blanu, créez les règles suivantes dans le cron de l' | ||
+ | |||
+ | Pour le client : | ||
+ | < | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * ''>>/ | ||
+ | |||
+ | Si vous envoyez les sauvegardes à un second serveur, vous pouvez ajouter la ligne suivante : | ||
+ | < | ||
+ | * '' | ||
+ | |||
+ | Voici à quoi devrait ressembler votre cron pour la partie concernant Burp : | ||
+ | < | ||
+ | # CLIENT Burp | ||
+ | 20 4 * * * / | ||
+ | |||
+ | # Si vous avez du mysql ou autre BDD, pensez au script | ||
+ | 00 1 * * * / | ||
+ | </ | ||
+ | |||
+ | <WRAP center round todo 60%> | ||
+ | Faire un lien vers le script de mysql backup. | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Côté serveur (Xunre) === | ||
+ | |||
+ | Votre crontab reprend les mêmes éléments côté client mais ajoute des éléments côté serveur pour s' | ||
+ | < | ||
+ | # Envoie un résumé à 6h (donc, tous les jours). | ||
+ | 0 6 * * * / | ||
+ | |||
+ | # The following will run file deduplication over all client storages every | ||
+ | # Saturday at 8 in the morning. Again, if your server is using a different | ||
+ | # config file to / | ||
+ | #0 8 * * 6 / | ||
+ | </ | ||
+ | |||
+ | <WRAP center round todo 60%> | ||
+ | Cette partie serait à améliorer : envoyer un mail s'il y a un souci, plutôt ? | ||
+ | |||
+ | La déduplication, | ||
+ | </ | ||
==== Restaurer une sauvegarde ==== | ==== Restaurer une sauvegarde ==== | ||
Ligne 139: | Ligne 243: | ||
burp -ar -C nom_du_client | burp -ar -C nom_du_client | ||
| | ||
- | ==== Sauvegarder sur un 2eme servers | + | ==== Sauvegarder sur un deuxième serveur |
+ | Faire une copie du fichier de configuration client pour le deuxième serveur, Crino : | ||
+ | cp / | ||
+ | nano / | ||
- | cp burp.conf burp-2sauvgarde.conf | + | Changer l' |
+ | < | ||
+ | server = crino | ||
+ | password = ******* | ||
+ | cname = blanucrino | ||
+ | |||
+ | ca_burp_ca = / | ||
+ | ca_csr_dir = /etc/burp/ | ||
+ | ssl_cert_ca = / | ||
+ | ssl_cert = /etc/burp/ | ||
+ | ssl_key = / | ||
+ | |||
+ | ssl_peer_cn = crino | ||
+ | </ | ||
+ | |||
+ | Crino (côté second serveur, donc), doit avoir son nom en rapport pour le certificat : | ||
+ | ca_server_name = crino | ||
+ | |||
+ | Lancer la commande de vérification depuis Blanu : | ||
+ | burp -c / | ||
| | ||
- | =====Burp-ui , interface web===== | + | Pour lancer une sauvgarde manuellement: |
+ | burp -c / | ||
+ | |||
+ | ===== Burp-ui , interface web ===== | ||
+ | L' | ||
+ | |||
+ | <WRAP center round todo 60%> | ||
+ | Cette partie n'est pas assez testée, on n'a pas encore fait marcher ce truc. | ||
+ | </ | ||
====Installation de Burp-ui==== | ====Installation de Burp-ui==== | ||
- | Dans une VM web : | + | Voir https:// |
+ | |||
+ | En root : | ||
apt install python3-pip | apt install python3-pip | ||
pip3 install burp-ui | pip3 install burp-ui | ||
| | ||
- | Pour voir si tout fonctionne | + | Pour voir si tout fonctionne |
burp-ui -- | burp-ui -- | ||
- | ====configuration conf==== | + | Par défaut, le fichier de configuration se trouve dans ''/ |
+ | |||
+ | Si vous testez juste "si ça marche", | ||
+ | |||
+ | ==== burpui.cfg | ||
+ | Changez la partie concernant les identifiants. Il y a plusieurs possibilités, | ||
+ | |||
+ | <WRAP center round todo 60%> | ||
+ | bloc à faire : paramétrer un fichier de conf idéal, commenté, et le partager ici. | ||
+ | </ | ||
====configuration service==== | ====configuration service==== | ||
+ | <WRAP center round todo 60%> | ||
+ | bloc à faire : expliquer comment faire que burpui soit en prod, donc toujours lancé. | ||
+ | </ | ||
====configuration web==== | ====configuration web==== | ||
Ligne 166: | Ligne 315: | ||
===Nginx :=== | ===Nginx :=== | ||
+ | Sur le serveur où est installé burp-ui : | ||
<code bash> | <code bash> | ||
server { | server { | ||
Ligne 189: | Ligne 339: | ||
</ | </ | ||
+ | Si la VM où est burp-ui est elle-même derrière un proxy, la VM-proxy doit contenir un fichier de configuration de ce genre : | ||
+ | |||
+ | < | ||
+ | server { | ||
+ | listen | ||
+ | server_name " | ||
+ | |||
+ | location / { | ||
+ | proxy_set_header | ||
+ | proxy_set_header | ||
+ | proxy_pass | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Erreurs diverses ===== | ||
+ | ==== Sur le serveur ==== | ||
+ | |||
+ | L' | ||
+ | < | ||
+ | 2020-12-16 09:43:46 +0000: burp[6400] Connecting to localhost: | ||
+ | 2020-12-16 09:43:46 +0000: burp[6400] main socket: network read problem in asfd_do_read_ssl: | ||
+ | 140108238101952: | ||
+ | 2020-12-16 09:43:46 +0000: burp[6400] This is probably caused by the peer exiting. | ||
+ | 2020-12-16 09:43:46 +0000: burp[6400] Please check the peer's logs. | ||
+ | 2020-12-16 09:43:46 +0000: burp[6400] problem with auth | ||
+ | </ | ||
+ | |||
+ | Faites | ||
+ | sudo ps -A | grep burp | ||
+ | Et tuez le processus, puis relancez les commandes. | ||
+ | |||
+ | ==== Sur le client ==== | ||
+ | === Peer exiting === | ||
+ | |||
+ | On a changé le serveur où sauver les choses, et là, burp nous dit ça côté client : | ||
+ | < | ||
+ | 2020-12-16 10:10:40 +0000: burp[7295] Could not find ssl_cert_ca / | ||
+ | 2020-12-16 10:10:40 +0000: burp[7295] Connecting to nuxru.khaganat.net: | ||
+ | 2020-12-16 10:10:40 +0000: burp[7295] main socket: network read problem in asfd_do_read_ssl: | ||
+ | 140426189172160: | ||
+ | 2020-12-16 10:10:40 +0000: burp[7295] This is probably caused by the peer exiting. | ||
+ | 2020-12-16 10:10:40 +0000: burp[7295] Please check the peer's logs. | ||
+ | 2020-12-16 10:10:40 +0000: burp[7295] problem with auth | ||
+ | </ | ||
+ | |||
+ | Ici aussi, tuez le processus ET supprimez le certificat actuel : | ||
+ | sudo / | ||
+ | |||
+ | En relançant la commande, cela le régènerera. | ||
- | ==== Fin ==== | + | === unexpected command in authorise_client |
- | Pour la premiere connection | + | < |
- | | + | 2020-12-16 10:53:00 +0000: burp[1190987] Could not find ssl_cert / |
- | | + | 2020-12-16 10:53:00 +0000: burp[1190987] Could not find ssl_key / |
+ | 2020-12-16 10:53:00 +0000: burp[1190987] Could not find ssl_cert_ca / | ||
+ | 2020-12-16 10:53:00 +0000: burp[1190987] Connecting to nuxru.khaganat.net: | ||
+ | 2020-12-16 10:53:00 +0000: burp[1190987] unexpected command in authorise_client(): | ||
+ | Avant de trop s' | ||
===== Sources, Liens utiles ===== | ===== Sources, Liens utiles ===== |