Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
atelier:chantier:une-box-maison [12/12/2018 19:06] LaFouine [Utilisation] |
atelier:chantier:une-box-maison [28/05/2019 09:24] LaFouine [Serveur Unbound pour un dns local] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== une box avec debian ====== | ====== une box avec debian ====== | ||
- | * Objet : Faire une box maison avec ça distribution. | + | * Objet : Faire une box maison avec sa distribution. |
* Niveau requis :{{tag>débutant}} | * Niveau requis :{{tag>débutant}} | ||
- | * Commentaires : //Une box maison, avec unbound , isc-dhcp-server, isc-dhcp-client,iptables et surtout votre debian// | + | * Commentaires : //Une box maison, avec unbound , isc-dhcp-server, isc-dhcp-client, iptables et surtout votre debian// |
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
* Suivi : {{tag>en-chantier}} | * Suivi : {{tag>en-chantier}} | ||
* Création par [[user>LaFouine]] 27/11/2018 | * Création par [[user>LaFouine]] 27/11/2018 | ||
* Testé par <...> le <...> FIXME | * Testé par <...> le <...> FIXME | ||
- | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=284468#p284468 | en court de redaction ]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | + | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=284468#p284468 | en cours de redaction ]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME |
**Nota :** | **Nota :** | ||
Ligne 15: | Ligne 15: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | L’objectif de ce tutoriel n'est la que pour combler un vide qui est le suivant , les tutoriel pour | + | L’objectif de ce tutoriel est pour combler un vide qui est le suivant: les tutoriels pour |
- | unbound , isc-dhcp-server, isc-dhcp-client,iptables,hostapd sont souvent là, mai isoler. | + | unbound, isc-dhcp-server, isc-dhcp-client, iptables, hostapd sont souvent là, mais isolés. |
Pour un débutant c'est donc difficile de savoir par quoi commencer. | Pour un débutant c'est donc difficile de savoir par quoi commencer. | ||
Ligne 22: | Ligne 22: | ||
Et donc de savoir par quoi commencer. | Et donc de savoir par quoi commencer. | ||
- | Les conseil [conseil] sous cette clause | + | Les conseils [conseil] sous cette clause |
- | sont facultatif mai peuve faire gagnier du temps. | + | sont facultatifs mais peuvent faire gagner du temps. |
===== Installation ===== | ===== Installation ===== | ||
- | - isc-dhcp-client et iptable son en principe installer par défaut. | + | - isc-dhcp-client et iptable sont en principe installés par défaut. |
- iptables :en premier | - iptables :en premier | ||
- isc-dhcp-server :en second | - isc-dhcp-server :en second | ||
Ligne 33: | Ligne 33: | ||
- hostapd :en quatrième | - hostapd :en quatrième | ||
- net-tools :quand vous voulez | - net-tools :quand vous voulez | ||
- | - ulogd2 :je l'utilise, mai c'est pas indispensable | + | - ulogd2 :je l'utilise, mais ce n'est pas indispensable |
- | - matériel possédant aux moins 2 prise rj45 et du wifi. | + | - matériel possédant aux moins 2 prises rj45 et du wifi. |
=== Iptables === | === Iptables === | ||
- | __Note, ce tutoriel est en cour de rédaction donc ne pas s'en servir pour le moment.__ | + | __Note, ce tutoriel est en cours de rédaction donc ne pas s'en servir pour le moment.__ |
- | J'ai tenu a ce que ce soie fait avec debian , | + | J'ai tenu à ce que ce soit fait avec debian , |
- | plutôt que d'autre distribution, les raison son multiple, mai en voici quelque une. | + | plutôt que d'autres distributions, les raisons sont multiples, mais en voici quelques-unes. |
- | Une distribution que je connaît bien et donc les outils. | + | Une distribution que je connais bien et donc les outils. |
- | Un deuxième pc qui peux dépanner. | + | Un deuxième pc qui peut dépanner. |
- | Apprendre, et pouvoir contrôler son réseaux chez soi. | + | Apprendre, et pouvoir contrôler son réseau chez soi. |
etc etc. | etc etc. | ||
Le schéma est le suivant: | Le schéma est le suivant: | ||
- | [la box du FAI] <-> [la box maison] <-> vos machine | + | [la box du FAI] <-> [la box maison] <-> vos machines |
- | on s'ocuppe pas de l'ipv6, | + | on ne s'ocuppe pas de l'ipv6, |
- | j'ai malheureusement un FAI qui ne fourni pas ce type de prestation :( | + | j'ai malheureusement un FAI qui ne fournit pas ce type de prestation :( |
la configuration ipv6 n'est pas abordée, | la configuration ipv6 n'est pas abordée, | ||
- | je vous recommande de fermer ipv6 si comme mois rien ne peux passer, | + | je vous recommande de fermer ipv6 si comme moi rien ne peux passer, |
- | l'ipv6 est en principe une norme qui devrai être acceptée. | + | l'ipv6 est en principe une norme qui devrait être acceptée. |
iptables en premier pourquoi ? | iptables en premier pourquoi ? | ||
- | Parce que c est aussi la sécurité, | + | Parce que c'est aussi la sécurité, |
- | ensuite parce que cela peux loguer, | + | ensuite parce que cela peut loguer, |
- | les ligne suivante sont a adapter, car le nom de l'interface peux changer. | + | les lignes suivantes sont à adapter, car le nom de l'interface peut changer. |
- | la cible MASQUERADE indique de faire du nat, ce qui sera utilise dans ce tutoriel, | + | la cible MASQUERADE indique de faire du nat, ce qui sera utilisé dans ce tutoriel, |
il est possible de faire autrement avec un pont/bridge | il est possible de faire autrement avec un pont/bridge | ||
- | Requis: | + | Requis : |
<file iptablebox.sh> | <file iptablebox.sh> | ||
iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE | iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE | ||
Ligne 73: | Ligne 73: | ||
</file> | </file> | ||
- | Facultatif. | + | Facultatif : |
<file bash nom.sh> | <file bash nom.sh> | ||
Limit=30 | Limit=30 | ||
Ligne 83: | Ligne 83: | ||
</file> | </file> | ||
- | Note: Il faut savoir que ces règle disparaisse aux reboot. | + | Note : Il faut savoir que ces règles disparaissent au reboot. |
- | Comme il y beaucoup de tutoriel sur iptables. | + | Comme il y beaucoup de tutoriels sur iptables. |
- | je vais plutôt vous donner les lien sur la documentation (ça chargerai trop le tutoriel). | + | je vais plutôt vous donner les liens sur la documentation (ça chargerait trop le tutoriel). |
- | Sur debian facile[[https://debian-facile.org/doc:reseau:iptables-pare-feu-pour-une-passerelle]] | + | Sur Debian-Facile[[https://debian-facile.org/doc:reseau:iptables-pare-feu-pour-une-passerelle]] |
Lien externe plus complet: [[https://www.inetdoc.net/guides/iptables-tutorial/]] | Lien externe plus complet: [[https://www.inetdoc.net/guides/iptables-tutorial/]] | ||
- | ==================== isc-dhcp-server ================================ | + | === isc-dhcp-server === |
isc-dhcp-server. Important.! | isc-dhcp-server. Important.! | ||
- | Ne démarre pas si le fichier /etc/network/interfaces est pas en relation parfaite, j'explique: | + | Ne démarre pas si le fichier /etc/network/interfaces n'est pas en relation parfaite, j'explique: |
- | Il faut que l'interface soie opérationnel/active et donc bien paramétrer , sinon isc-dhcp-server ne démarra pas . | + | Il faut que l'interface soit opérationnelle/active et donc bien paramétrée , sinon isc-dhcp-server ne démarrera pas . |
si ce dernier ne démarre pas unbound en fera de même. | si ce dernier ne démarre pas unbound en fera de même. | ||
- | si vous utiliser un client windows pour tester, je vous recommande de le redémarrer, | + | Si vous utilisez un client windows pour tester, je vous recommande de le redémarrer, |
- | Windows à du mal avec le réseaux à ce mettre à jour correctement avec une reconnexion >--> reconnexion, | + | Windows à du mal avec le réseau à se mettre à jour correctement avec une reconnexion >--> reconnexion, |
- | de même pour la box, certain paramètre peuve changer /etc/resolv.conf est un classique. | + | de même pour la box, certains paramètres peuvent changer, /etc/resolv.conf est un classique. |
- | Parfois c'est certaine interface qui ne s'active pas. | + | Parfois c'est certaines interfaces qui ne s'activent pas. |
- | l'ordre de démarrage peux joue un rôle, je vous conseil de faire votre propre service ou de modifier la configuration de debian pour que cela démarre comme citer plus haut. | + | L'ordre de démarrage peut jouer un rôle, je vous conseille de faire votre propre service ou de modifier la configuration de Debian pour que cela démarre comme cité plus haut. |
- | Petite prenthese pour les débutan et aussi Facultatif: | + | Petite parenthèse pour les débutants et aussi facultative : |
- | je conseil d'utiliser les alias pour editer les fichier sa va grandement vous faciliter la tache, comme sa ce passe sous root | + | Je conseille d'utiliser les alias pour éditer les fichiers cela va grandement vous faciliter la tâche, comme cela se passe sous root. |
- | soiyer vigilant a ne pas faire n'importe quoi. sous debian si vous voulez que cela soie pour tout les utilisateur ça ce passe dans ce fichier | + | Soiyez vigilants à ne pas faire n'importe quoi sous Debian. Si vous voulez que cela soit pour tous les utilisateurs ça ce passe dans ce fichier : |
<code root>/etc/bash.bashrc</code> | <code root>/etc/bash.bashrc</code> | ||
Ligne 119: | Ligne 119: | ||
alias ndhcp=$Editeur' /etc/dhcp/dhcpd.conf' | alias ndhcp=$Editeur' /etc/dhcp/dhcpd.conf' | ||
</code> | </code> | ||
- | ce fichier est en root mai vous pouvez aussi placer cela aux niveau utilisateur, | + | Ce fichier est en root mais vous pouvez aussi placer cela au niveau utilisateur. Cela va vous éviter de taper chaque fois le chemin et en plus de devoir savoir où il se trouve: |
- | Cela va vous éviter de taper chaque fois le chemin et en plus de devoir ou il | + | |
- | ce trouve: | + | |
un oubli ? : **alias** | un oubli ? : **alias** | ||
- | vous les montreras. | + | vous le montrera. |
- | ====== configuration ====== | + | === isc-dhcp-server choisir les interfaces === |
- | Ces fichier sont sous **root** | + | |
+ | Ces fichiers sont sous **root** | ||
Donc penser à faire une sauvegarde avant toute chose ! | Donc penser à faire une sauvegarde avant toute chose ! | ||
éditer le fichier **/etc/default/isc-dhcp-server** | éditer le fichier **/etc/default/isc-dhcp-server** | ||
Ligne 137: | Ligne 136: | ||
- | vous remarquer qu'il manque l'interface enp1s0, car c est celle ci a un cable relier a la box du FAI , donc en dhcp ou en static | + | Vous remarquez qu'il manque l'interface enp1s0, car c'est celle qui a un câble relié à la box du FAI , donc en dhcp ou en static, regardez dans la doc de votre box du fournisseur pour y mettre une ip fixe c'est quand même plus pratique. |
- | regarder dans la doc de votre box du fournisseur pour y mettre une ip fixe c'est quand même plus pratique. | + | |
+ | === isc-dhcp-server configuration dhcp === | ||
éditer le fichier : **/etc/dhcp/dhcpd.conf** | éditer le fichier : **/etc/dhcp/dhcpd.conf** | ||
Ligne 184: | Ligne 184: | ||
</code> | </code> | ||
- | Ici soyer précis dans la syntaxe car si vous tromper d'un chiffre sa pas vous donne la moindre info. | + | Ici soyez précis dans la syntaxe car si vous trompez d'un chiffre cela ne vous donne la moindre info. |
- | **IMPORTANT**: une fois que tout fonctionne changer ces valeur pour des raison de sécurité évidement , | + | **IMPORTANT**: une fois que tout fonctionne changer ces valeurs pour des raison de sécurité évidentes, |
- | pour des raison qui mon poussez a faire cette documentation c'est le manque de wiki a fournir une ip complète... en gros une configuration qui fonctionne . | + | Pour les raisons qui m'ont poussé à faire cette documentation c'est le manque de wiki à fournir une ip complète... en gros une configuration qui fonctionne . |
- | ==== Configuration des interfaces ==== | + | === Configuration des interfaces === |
sujet : Le fichier /etc/network/interfaces | sujet : Le fichier /etc/network/interfaces | ||
- | __Conseille__: | + | __Conseil__: |
- | j'ai rencontrer un bug a un moment donner en changent la configuration de ce fichier. | + | J'ai rencontré un bug à un moment donné en changeant la configuration de ce fichier. |
- | Je recommande donc d’arrêter le service AVANT de le modifier! | + | Je recommande donc d’arrêter le service AVANT de le modifier! |
- | Profiter de faire de même, et donc ce qui l'utilise. | + | Profitez de faire de même, et donc ce qui l'utilise. |
- | pas la peine de dire que la connections est coupée si vous fait cela :) | + | Pas la peine de dire que la connection est coupée si vous faites cela :) |
<code root> | <code root> | ||
Ligne 243: | Ligne 243: | ||
</code> | </code> | ||
- | A ce stade les connexion filaire ne marchera pas car unbound n'est pas présent donc il faut faire la suite | + | A ce stade les connexions filaires ne marcheront pas car unbound n'est pas présent donc il faut faire la suite |
- | si vous voulez que cela marche ainsi utiliser le dns de la box à ce moment la :) | + | si vous voulez que cela marche ainsi utilisez le dns de la box à ce moment là :) |
- | Je remercie Mikl et raleur dans cette démarche qui sans leur aide j'aurai bien plus galérer | + | Je remercie Mikl et raleur dans cette démarche qui sans leur aide j'aurais bien plus galéré |
- | . | ||
Ligne 257: | Ligne 256: | ||
+ | ===== Serveur Unbound pour un dns local ===== | ||
+ | |||
+ | |||
+ | Soiyer particulièrement prudent car ce service est sensible aux vulnérabilité. | ||
+ | |||
+ | Note. Je ne suis pas parvenu a trouver une traduction en français des paramètres, | ||
+ | les valeurs sont à adapter selon vos besoins. j'ai donc juste indiquer les valeurs que j'utilise. | ||
+ | |||
+ | <code root> | ||
+ | nano /etc/unbound/unbound.conf | ||
+ | </code> | ||
+ | |||
+ | <code root> | ||
+ | cat /etc/unbound/unbound.conf | ||
+ | # Unbound configuration file for Debian. | ||
+ | # | ||
+ | # See the unbound.conf(5) man page. | ||
+ | # | ||
+ | # See /usr/share/doc/unbound/examples/unbound.conf for a commented | ||
+ | # reference config file. | ||
+ | # | ||
+ | # The following line includes additional configuration files from the | ||
+ | # /etc/unbound/unbound.conf.d directory. | ||
+ | include: "/etc/unbound/unbound.conf.d/*.conf" | ||
+ | |||
+ | #server: | ||
+ | port: 53 #port d'écoute | ||
+ | do-ip4: yes # | ||
+ | do-ip6: yes # | ||
+ | do-udp: yes #protocole autorisé | ||
+ | do-tcp: yes #indique de communiquer sur le protocole TCP | ||
+ | #interface: 0.0.0.0 | ||
+ | access-control: 192.168.50.0/24 allow | ||
+ | interface: 192.168.50.51 #requi wifi | ||
+ | interface: 192.168.4.21 #requi rj45 | ||
+ | interface: 192.168.3.21 #requi rj45 | ||
+ | interface: 192.168.2.21 #requi rj45 | ||
+ | interface: 127.0.0.1 #? | ||
+ | access-control: 127.0.0.1 allow #? | ||
+ | access-control: 192.168.0.0/24 allow #requis rj45 | ||
+ | access-control: 192.168.2.0/24 allow #requis rj45 | ||
+ | access-control: 192.168.3.0/24 allow #requis rj45 | ||
+ | access-control: 192.168.4.0/24 allow #requis rj45 | ||
+ | access-control: 192.168.50.0/24 allow #requis wifi (pas en service) | ||
+ | private-address: 192.168.0.0/24 #renforce le coter priver et protège de la technique des "Relais DNS" | ||
+ | unwanted-reply-threshold: 10000000 #eviter l'empoisonnement DNS | ||
+ | aggressive-nsec: yes | ||
+ | harden-algo-downgrade: no #l algorithme le plus faible est exclut no | ||
+ | hide-identity: yes # | ||
+ | hide-version: yes | ||
+ | harden-glue: yes | ||
+ | #ssl-upstream: yes # oblige à communiquer sur le protocole TLS. :yes:erreur :debug: tcp error for address 8.8.8.8 port 53 | ||
+ | #ssl-port: 853 | ||
+ | prefetch: yes # garde en cache les bons résultats | ||
+ | prefetch-key: yes # | ||
+ | cache-min-ttl: 100000 #durée minimal | ||
+ | cache-max-ttl: 200000 #durée max | ||
+ | key-cache-size: 50m | ||
+ | infra-cache-numhosts: 1000000 #nombre de host qui peuve etre mis en cache | ||
+ | do-ip6: no #desactive les requetes ipv6 | ||
+ | tcp-idle-timeout: 15000 #delai avant de signialer un timout sur la connextion | ||
+ | |||
+ | harden-below-nxdomain: yes | ||
+ | harden-dnssec-stripped: yes #DNSSEC pour les zones de confiance | ||
+ | val-clean-additional: no #toutes les données DNS non sécurisées son effacee | ||
+ | do-not-query-localhost: yes #permet d'interoger localhost | ||
+ | so-reuseport: yes #linux seulment ameliore les performance udp | ||
+ | #serve-expired: <yes or no> # tester | ||
+ | num-threads: 4 | ||
+ | key-cache-slabs: 8 | ||
+ | infra-cache-slabs: 8 | ||
+ | msg-cache-slabs: 8 | ||
+ | rrset-cache-slabs: 8 | ||
+ | key-cache-size: 100m | ||
+ | key-cache-slabs: 2m | ||
+ | harden-short-bufsize: yes #contre les très petites tailles de mémoire tampon EDNS. | ||
+ | harden-large-queries: yes #contre les requêtes volumineuses | ||
+ | num-queries-per-thread: 100 | ||
+ | |||
+ | val-log-level: 2 #log | ||
+ | verbosity: 5 #plage de 1 a 5 , 5 permet le plus parlant | ||
+ | log-time-ascii: yes #valable sur un autre fichier que syslog | ||
+ | log-queries: yes #affiche une ligne par requete | ||
+ | log-replies: yes #affiche une ligne par requete,(réponse) | ||
+ | log-local-actions: yes #affiche les info de la zone local | ||
+ | log-servfail: yes #afficher pourquoi les requêtes renvoient SERVFAIL Ref doc | ||
+ | |||
+ | logfile: /var/log/unbound.log #chemin d'accès | ||
+ | |||
+ | #private-domain: "domroxlan.dom" #domaine local | ||
+ | |||
+ | forward-zone: | ||
+ | name: "." | ||
+ | #forward-addr: 192.168.0.1@53 | ||
+ | forward-addr: 1.1.1.1@53 | ||
+ | forward-addr: 1.0.0.1@53 | ||
+ | forward-addr: 65.2.17.60@53 | ||
+ | forward-addr: 65.2.17.61@53 | ||
+ | forward-addr: 66.2.24.158@53 | ||
+ | forward-addr: 67.2.24.162@53 | ||
+ | forward-addr: 8.8.8.8@53 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | il peux être nécessaire de changer le fichier | ||
+ | |||
+ | <code root>/etc/resolv.conf</code> | ||
+ | |||
+ | de façons a ce qu'il contienne : | ||
+ | <code root> | ||
+ | nameserver 127.0.0.1 | ||
+ | </code> | ||
+ | |||
+ | Rappelle: Ce fichier a la fâcheuse tendance a ce modifier. Vous pouvez donc le verrouiller avec la commande chattr, | ||
+ | **Attention** c'est pas anodin car le système ne peux plus mettre a jour le fichier. | ||
+ | Par exemple, si vous supprimer le paquet unbound l'ip ne pourra plus ce mettre à jours. (c'est un exemple parmi les nombreuse autres mauvaise surprise qui en découle.) | ||
+ | |||
+ | Attention l'utilisation peux empêcher le système d'écrire du coup le répertoire /etc est utiliser a la place. | ||
+ | vous aurez alors quelque chose de semblable | ||
+ | <code root> | ||
+ | ls /etc |grep resolv.conf.dhclient | ||
+ | -rw-r--r-- 1 root root 47 mai 25 03:31 resolv.conf.dhclient-new.12784 | ||
+ | -rw-r--r-- 1 root root 47 mai 25 12:06 resolv.conf.dhclient-new.13099 | ||
+ | -rw-r--r-- 1 root root 47 mai 25 20:57 resolv.conf.dhclient-new.13271 | ||
+ | </code> | ||
+ | |||
+ | Pour tester utiliser la commande: dig | ||
+ | |||
+ | Si vous êtes sur un O.S propriétaire il peux s'avérer utile d'y effacer le cache dns sur un client windows on utilisera: | ||
+ | <code>ipconfig /flushdns </code> | ||
+ | A partir la cela devrai suffire pour une connexion filaire, | ||
Ligne 265: | Ligne 395: | ||
+ | ===== a suivre le wifi ===== | ||