PROJET AUTOBLOG


Le Blog de Cyrille BORNE

Site original : Le Blog de Cyrille BORNE

⇐ retour index

Un peu de serveur debian mais pas trop, épisode 1

dimanche 24 avril 2016 à 08:00

Bien. J'ai donc viré mon ipfire qui ne répondait plus au besoin du contrôle parental, je vous rappelle que j'utilisais aussi Ipfire de façon détournée, à savoir serveur de fichiers et petit serveur web pour y mettre mon BoZon. Remplacement par Debian. Je vous évite l'affront de : 

  1. je vais sur le site debian pour chercher une netinstall
  2. je la colle dans multisystem
  3. je fais une installation avec 4 partitions séparées, le /, le home, le var et le swap. Je fais ce choix simplement parce qu'à partir du moment où je vais avoir du web, il vaut mieux prévoir un gros var
  4. je suis la netinstall, étape par étape pour me retrouver avec une invite. 

La première chose que je fais, je passe l'ordinateur en ipfixe de façon à pouvoir virer le clavier et l'écran et tout piloter par SSH. En root, édition du fichier /etc/network/interfaces pour avoir un truc qui ressemble à ça : 

iface eth0 inet static
address 192.168.x.x
netmask 255.255.255.0
gateway 192.168.x.x 

A partir de ce moment là je peux me connecter en SSH à mon serveur. Il est à noter que par sécurité dans debian et depuis quelques temps, on ne peut plus par défaut accéder à la machine en root, si bien qu'il faut se connecter en user puis en root. Installation de fail2ban, j'irai configurer dans un prochain épisode et application du script ci-dessous que j'ai trouvé sur le site de Rémi Poignon

créer le fichier ​nano /etc/init.d/firewall et coller y le contenu de ce qui suit en supprimant ou en rajoutant les lignes qui vont vous intéresser : 

#!/bin/sh 
# Réinitialise les règles
iptables -t filter -F 
iptables -t filter -X 
 
# Bloque tout le trafic
iptables -t filter -P INPUT DROP 
iptables -t filter -P FORWARD DROP 
iptables -t filter -P OUTPUT DROP 
 
# Autorise les connexions déjà établies et localhost
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -t filter -A INPUT -i lo -j ACCEPT 
iptables -t filter -A OUTPUT -o lo -j ACCEPT 
 
# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT 
iptables -t filter -A OUTPUT -p icmp -j ACCEPT 
 
# SSH
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT    # Attention, si vous avez changé le port SSH dans le fichier /etc/ssh/sshd_config, indiquez le à la place de 22 
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT 
 
# DNS
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT 
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT 
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT 
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT 
# NTP (horloge du serveur) 
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
 
# HTTP
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT 
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT 
# HTTP Caldav
iptables -t filter -A OUTPUT -p tcp --dport 8008 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8008 -j ACCEPT
# HTTPS
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
# HTTPS Caldav
iptables -t filter -A OUTPUT -p tcp --dport 8008 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT
# FTP 
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT 
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT 
# Mail SMTP 
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT 
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT 
iptables -t filter -A INPUT -p tcp --dport 587 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 465 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 465 -j ACCEPT
 
# Mail POP3
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT 
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT 
 
# Mail IMAP
iptables -t filter -A INPUT -p tcp --dport 993 -j ACCEPT 
iptables -t filter -A OUTPUT -p tcp --dport 993 -j ACCEPT 
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
# Anti Flood / Deni de service / scan de port
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

donner les droits d'exécution : ​chmod +x /etc/init.d/firewall

exécuter le script : /etc/init.d/firewall

inscrit au démarrage : update-rc.d firewall defaults

​On peut vérifier en faisant un iptables -L que toutes les règles sont en place. C'est vraiment intéressant comme principe pour moi qui ne connais absolument rien à IPTABLES car en fait c'est très intuitif. A chaque redémarrage, il vire tout, il bloque tout et il applique les règles données en clair. Je sais déjà que je vais devoir ajouter les ports pour jabber par exemple, et certainement virer DAV. On voit ici juste une "faille", si on a bloqué des adresses manuellement, elles seront retirées de la machine au démarrage suivant. Néanmoins, une debian ne doit pas théoriquement rebooter chaque matin. 

Du fait d'utiliser BoZon j'ai trois choses à mettre en place : 

en root apt-get install php5-gd ph5p-curl php5 libapache2-mod-bw 

Les premiers sont les dépendances nécessaires au fonctionnement de BoZon, le dernier permet de limiter la bande passante. On va éditer le fichier /etc/apache2/sites-available/000-default.conf, et y coller 

BandwidthModule On
ForceBandWidthModule On
Bandwidth all 162400
<Directory /var/www/html/>
AllowOverride all
</Directory>

Il est à noter que je ne fais pas plusieurs virtualhost ne gérant pour ce serveur qu'un seul nom de domaine et certainement un seul site. La première partie concerne la limitation de la bande passante, avec la taille en bits. Il est même possible de mettre des limitations par extension de fichiers, si vous partagez par exemple avec tata Simone vos merveilleux films de vacances qui font quelques gigas. La fin c'est pour activer le htaccess. 

Voilà à l'heure actuelle où j'en suis, j'étudie tranquillement à mon rythme, c'est toujours ça de pris pour le cerveau. Pas de regret de ne pas avoir pris de solution clé en main, on apprend plus et on cadre mieux le besoin pour des performances assez intéressantes, seulement 130 Mo de RAM sont occupés. 

Trop de forum debian va certainement tuer quelque chose

samedi 23 avril 2016 à 19:00

C'est Arnaud qui a donné l'info dans le forum, des dissidents du canal historique debian-fr ont monté un nouveau forum, à l'ancienne, parce qu'il est vrai que discourse le moteur de forum quand tu as passé un certain âge, c'est particulièrement déstabilisant pour ne pas dire gerbatoire. La cartographie des forum debian c'est désormais,

Ma crainte à l'heure actuelle est double. La première c'est que les gros balèses en debian disparaissent de la carte. Pourquoi ? Tout simplement parce que le gros balèse maîtrise ce qu'il veut maîtriser, que c'était rigolo d'avoir des défis techniques, qu'aider les gens c'était sympa mais pas le simple quidam, le petit balèse qui en veut et qu'aujourd'hui tout ça ressemble vraiment trop à la plèbe qui mériterait de lire man au moins dix fois avant de poser des questions. Je googlise beaucoup et toutes mes réponses sont souvent trouvées dans debian-fr, j'ai un petit niveau debian, mais mes recherches sont quand même plus complexes que la moyenne et ça c'est un problème. Car, avec un fork du forum, un administrateur qui n'a pas l'air très attaché et caractériel, vous vous doutez que ce n'est pas moi qui jetterai la pierre, un gros sabordage de site, je le vois venir gros comme un rocher de la clape. 

La situation est quand même unique, chaque distribution possède son forum officiel, chez debian forcément c'est pas possible d'avoir une adresse de référence. Ce n'est pas bon d'avoir cette division, car comme j'aime à le faire remarquer, les gens passent plus de temps sur facebook et youtube qu'à réellement partager de façon sérieuse, si bien que disperser les forces vives de la nations qui sont devenues rares, je crains fort qu'on doive prochainement se coller réellement à man pour s'en sortir dans debian ou passer à l'anglais pour se faire RTFMiser par nos amis de l'autre côté de l'océan. 

Le retour du contrôle parental ou le filtrage délicat de https, en action

samedi 23 avril 2016 à 08:00

Donc voilà l'engin sur la table, vous voyez que ça correspond à la photo de notre épisode précédent, je suis d'ailleurs un peu vert, le lendemain il était en promo cinq euros moins cher. 

Cep me demandait comment ça se branchait, il y a un trou dans le LAN, je prends le fil bleu qui part de la Livebox dans un des emplacements de base et libre et je rentre dedans. Il me reste au cas où quatre emplacements filaires supplémentaires ce qui fait que le hotspot peut aussi faire office de switch. Ne faites pas attention, au fil noir qui va dans le port USB c'est ma chromecast. J'ai acheté le modèle de base et j'ai surtout fait la vérification que le modèle était compatible avec dd-wrt pour gérer dnsmasq. Dnsmasq est un petit serveur de DNS, il y a un endroit dans lequel on peut gérer les DNS et par le fait gérer ce que je veux faire, mettre les DNS d'OpenDNS. L'opération si elle est simple n'est pas sans risque puisqu'il s'agit tout de même de flasher du hardware et ça n'est pas sans conséquence, on risque de tout simplement tuer l'appareil sans possibilité de retour en arrière. Il se trouve que ce petit routeur pas cher permet d'alimenter les DNS, donc même pas besoin de le flasher, c'est beau la vie, c'est comme faire du crépi. 

Comme vous le voyez j'ai mis les DNS d'OpenDNS, il est évident qu'il faut avoir fait un compte de l'autre côté pour que ça fonctionne. Ce petit hotspot est une véritable tuerie, on peut modifier les DNS, appliquer un contrôle parental interne que je n'ai pas regardé, il est possible de poser des plages horaires, de limiter la bande passante, enfin bref beaucoup de fonctionnalités pour un très faible prix. 

Ce qui est positif

Ce qui est très négatif

Une solution en attendant

Les gosses à passer des heures devant les youtubeurs ont créé la sensation que tous les parents connaissent, celle des gamins le cul de le canapé. Curieusement plus de youtube, ils utilisent les technologies pour faire autre chose, autre chose de moins passif. Si je sais pertinemment que le filtrage parental n'est pas la solution, c'est en tout cas un moyen pour moi de montrer mon mécontentement et mon ras le bol de la sous culture dans ma maison. Il parait évident que le contrôle parental, ça n'est qu'une question de temps, avec des enfants qui grandissent et qui seront suffisamment grands pour faire leurs choix, peut être que la solution OpenDNS sera la définitive, peut être que si ça remue chez le libre je remontera un serveur qui va bien, tout ceci pour moi c'est en attendant de ne plus avoir besoin de ce type de solutions. Pour l'heure j'ai un joli serveur sur lequel je vais mettre de la debian ou une variante d'afin d'avoir bien plus de liberté que ce que m'offre ifpfire pour faire un serveur web, j'ai toujours une instance de BoZon à héberger. 

Ceci est un écran de la nouvelle Xubuntu

vendredi 22 avril 2016 à 22:44

Comme vous pouvez le constater, il n'y a aucun changement à l'oeil nu depuis maintenant quatre bonnes années facile, y a que le passage en rose avec la licorne qui avait pu donner une occasion de gueuler. 

C'était un écran de la nouvelle version de Xubuntu, je vous donne rendez vous dans six mois pour une nouvelle capture où nous pourrons encore constater que rien n'a changé. 

Créer une clé USB bootable simplement avec Etcher

vendredi 22 avril 2016 à 21:46

Une alternative supplémentaire à Unetbootin pour ne citer que lui. Je n'utilise pour ma part que Multisystem et la commande dd

https://angristan.fr/creer-cle-usb-carte-sd-bootable-simplement-etcher/