-
Debian
Bienvenue sur la page consacrée à l'univers Debian
Vous y trouverez :
- Script de configuration global
- Toutes les commandes Debian utilesInstallation de Debian 11 et boîte à outils
- Installation Debian 11.7
- Configuration réseau
- Renommer une VM sous debian
- Compresser/décompresser en zip, tar.gz (.tar.gz, .tgz), bzip2 (.bzp2, .tbz2, .tbz, .tar.bz2)
- Rsync
- Créer une partition sur /dev/sdb avec fdisk. Formater en ext4
- Exécuter une tâche au démarrage du serveur avec Cron
- Aspirer un site web avec wget
- Installer btop sur debian
- Réaliser un test de stress du CPU et de la RAM
- Installer un serveur de logs (Rsyslog) et configurer un client debian 12Configuration d'un Serveur Web et outils d'administration
- Configurer un site internet en http sur Apache2 (Debian 11)
- Configurer un site internet en https (SCRIPT)
- Configurer un site intranet en https sur Apache2 AUTOSIGNE (Debian 11)
- Configurer un site intranet/internet en https sur Apache2 (signé par une autorité distante)
- Configurer un site internet en http sur Nginx (Debian 11)
- Configurer un Forward Proxy avec Nginx sur Debian
- Configurer un serveur (client) afin qu'il émette ses requêtes web à un serveur de Forward Proxy
- Configurer un Reverse Proxy avec Nginx sur Debian
- Configurer le Serveur Proxy Squid sur Debian
- Installation wordpress sur architecture LAMP
- Installation wordpress en https (SCRIPT)
- Installation GLPI 10.0.8
- Migration de GLPI (en http) d'un serveur à un autre
- Installer FusionInventory sur GLPI
- Installation d'OCSinventory
- Installation de Webmin sur Debian 12
- Installation PHP8.0 sur Debian 11.5. Installer apache2 et le module PHP8.0 associé
- Rediriger les requêtes HTTP vers HTTPS, avec ou sans changement des ports par défaut d'Apache
- Changer les ports d'écoute d'Apache
- Rediriger les requêtes HTTP vers HTTPS, avec ou sans changement des ports par défaut d'Nginx
- SSL - Comment retrouver les informations entrées dans votre demande de signature .csr
- Créer des utilisateurs à partir d'un fichier .csv
- Faciliter les recherches de fichiers avec "locate"Base SQL : (voir la rubrique MySQL)
- Installer MySQL 8.0 sur Debian 11.5Sécuriser son serveur
- Sécuriser l'accès en SSH, Autoriser/Interdire/Restreindre l'accès en SSH
- Génerer des clefs SSH pour se connecter à un serveur distant
- Sécuriser un serveur Linux
- Configurer Fail2ban (configurer un anti-ddos simple)
- Tester votre configuration Fail2ban contre les DDoS
- Faire un scan de ports avec Nmap
- Cours IPtables
- Configurer IPtables
- Configurer un Bastion avec IPtables
- Pare-feu : Shorewall
- Nftables, basics
Serveur FTP
- Installation d'un serveur FTP (VsFTPd) sur Debian 11/12
- VsFTPd : Configurer un serveur FTP public (anonyme)
- Lier un répertoire à un autre, avec des permissions différentes dans le dossier miroir
Serveur Mail
- Envoyer un courriel (email) en lignes de commandes -
Par majekla le 29 Juillet 2023 à 10:47
L'idée est de permettre l'accès à tout le monde, sans mot de passe, à un répertoire du serveur Debian.
(et d'empêcher les utilisateurs connectés d'en sortir !).
Le script global-deb vous permet de faire cette installation automatiquementPassez en root
su -
1) Installez VsFTPd
apt install vsftp -y
systemctl enable vsftpd
2) Renommez le fichier de configuration par défaut afin de le préserver
mv /etc/vsftpd.conf /etc/vsftpd.conf.BAK
3) Ecrivez votre propre fichier de configuration (/etc/vsftpd.conf) avec le contenu suivant :
### CONFIG FTP PUBLIC ###
listen=NO
listen_ipv6=YES
anonymous_enable=YES
anon_root=/srv/ftp/ANON
no_anon_password=YES
hide_ids=YES
# Si vous voulez donner le droit d'écrire et d'uploader, décommentez les lignes suivantes :
#write_enable=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES
#anon_umask=022
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
# Bon à savoir, pas de session anonyme possible en FTPS !
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
# Dans le cas où vous voudriez restreindre l'accès au serveur à une seule interface, entrez l'IP de l'interface du serveur voulue et décommentez les 2 lignes.
# Par défaut, VsFTPd écoutera sur toutes les interfaces
#listen=YES
#listen_address=IP-DE-LINTERFACE-VOULUE4) Créez le répertoire pour les anonymes :
mkdir -p /srv/ftp/ANON/PUBLIC
chown nobody:nogroup /srv/ftp/ANON
chmod a+rwx /srv/ftp/ANON/PUBLIC
Les utilisateurs pourront uploader dans le dossier "PUBLIC" mais pas à la racine de leur répertoire.
5) Redémarrez le serveur :
systemctl restart vsftpd
Les utilisateurs peuvent désormais se connecter sans mot de passe.
votre commentaire -
Par majekla le 21 Juillet 2023 à 09:36
Le script pour Debian 11 ne fonctionne pas sur Bookworm
Le script général a été mis à jour.
Voici comment procéder :
En root :su -
apt install python3 shared-mime-info unzip apt-show-versions libapt-pkg-perl libauthen-pam-perl libio-pty-perl libnet-ssleay-perl curl -y
curl -L -O https://www.webmin.com/download/deb/webmin-current.deb
dpkg -i webmin-current.deb
systemctl restart webmin
On accède toujours à la console via le navigateur web d'un client sur le même réseau (à moins de changer cela dans /etc/webmin/miniserv.conf) :https://IP-SERVEUR-WEBMIN:10000
votre commentaire -
Par majekla le 18 Juillet 2023 à 11:12
Plusieurs outils vous permettent de faire cela : stress, s-tui, stressapptest etc..
C'est utile pour tester le bon fonctionnement des alertes d'un superviseur (entre autres)
Nous allons utiliser le plus basique : stress, mais vous pouvez installer s-tui si vous souhaitez voir qques couleurs sur votre ligne de commande !
1) Passez en root :su -
2) Installer stress, s-tui, stressapptest
apt install stress s-tui stressapptest -y
3) Effectuez un test de stress.
On considère que :
- le test doit durer 5minutes
- vous avez 2 consoles SSH ouvertes. L'une pour monitorer (avec top,htop,btop..), l'autre pour exécuter la commande de stress
- on veut de la verbosité !
- on ne lance qu'un processus (-c) de stress.stress -c 1 -t 2m -v
Le stress devrait couvrir 100% de la capacité du CPU.
Si vous souhaitez un stress "plus contrôlé" (il vous faut au moins 2 coeurs sur votre serveur) :stress -c 1 -i 50 -t 2m -v
(faîtes varier le nombre pour augmenter ou diminuer la charge CPU jusqu'à arriver au niveau de stress que vous souhaitez...)).
Il faut parfois attendre environ 1 minute pour atteindre le maximum de stress occasionné par le nombre indiqué (ça monte d'un coup au début, puis il faut attendre pour franchir un nouveau pallier), et vous verrez le CPU monter subitement d'un coup.Si vous souhaitez utiliser s-tui, lancez simplement :
s-tui
Si vous souhaitez essayer stressapptest :
stressapptest -m 1 -M 300 -s 120
va tester 300Mo de RAM pendant 120 secondes. (par exemple.. mais vous pouvez également stresser le CPU avec stressapptest.. Voir MAN)
votre commentaire -
Par majekla le 18 Juillet 2023 à 10:58
On doit passer par Snap, ce qui n'est pas vraiment une bonne idée sur un serveur debian... néanmoins, je précise comment procéder :
1) Passer en rootsu -
2) Installer snapd
apt install snapd -y
3) Installer le noyau de snap
snap install core
4) Installer btop
snap install btop
5) Redémarrer votre serveur :
reboot
Vous pouvez à présent vous servir de btop... :btop
votre commentaire -
Par majekla le 13 Juillet 2023 à 15:13
La commande "locate" (qui s'installe) créée une base de données (un index... en termes windosiens) qui vous permettra ensuite de recherche des fichiers de façon récursive, beaucoup plus rapidement qu'avec find !
On passe en root :su -
On installe locate :
apt install locate -y
On lance l'indexation de la totalité des fichiers (elle se refera automatiquement tous les jours) :
updatedb
Et maintenant on peut commencer à chercher !
locate .conf
... vous sortira la liste de tous les fichiers .conf présents !
Voirman locate
pour obtenir plus d'informations sur les options disponibles !
votre commentaire -
Par majekla le 10 Juillet 2023 à 10:00
Lorsque vous démarrez votre serveur et passez en root, vous obtenez un prompt tel que
root@debian:~#
(c'est ce "debian" que nous allons changer en "SRV-DEBIAN" pour l'exemple).
Le renommage d'un serveur debian se fait en remplaçant le nom actuel dans 2 fichiers :
- /etc/hosts
- /etc/hostname
Pour ce faire, passez en root (si vous n'y êtes pas déjà)su -
Puis modifiez les 2 fichiers comme annoncé plus haut (vous pouvez utiliser les 2 commandes suivantes en copier/coller pour aller plus vite, sinon utilisez nano /etc/hosts et nano /etc/hostname pour modifier à la main, puis remplacez debian par SRV-DEBIAN)
sed -i "s/debian/SRV-DEBIAN/" /etc/hosts
sed -i "s/debian/SRV-DEBIAN/" /etc/hostname
Enfin, redémarrez votre serveur :
reboot
votre commentaire -
Par majekla le 6 Juin 2023 à 09:59
Nftables isn't as straightforward to use as iptables...
We have a few operations to perform beforehand:
Create a table, which will contain:
our 'input' and 'output' chains (the inbound and outbound directions for our flows).
Create our usual firewall rules
Ntables operates on the principle of tables.
The following is an introduction to nftables.. Further exploration will be necessary
1) Create a table
It will contain our 'chains', which in turn will contain our 'rules'.
I name it 'default' because I don't intend to create multiple for this tutorial... But of course, you can create multiple tables !nft add table ip default
(replace ip with ip6 for an IPv6 table)
To display our created table:nft list tables
To delete our table :
nft delete table ip default
2) Creating input and output chains:
nft add chain ip default INBOUND_TRAFFIC { type filter hook input priority 0; }
nft add chain ip default OUTBOUND_TRAFFIC { type filter hook output priority 0; }
To view the chains :
nft list table ip default
To remove a chain :
nft delete chain ip default OUTBOUND_TRAFFIC
3) Creating our rules
We open what we need, then we close.
The last rule is used to close
Example : opening a port for TCP (such as HTTPS, for your web server)nft add rule default INBOUND_TRAFFIC tcp dport 443 accept
Allow ping (but not to be pingable)
nft add rule default OUTBOUND_TRAFFIC icmp type echo-request accept
nft add rule default INBOUND_TRAFFIC icmp type echo-reply accept
Allow HTTPS outbound :
nft add rule default OUTBOUND_TRAFFIC tcp dport 443 accept
Closing :
nft add rule default INBOUND_TRAFFIC drop
nft add rule default OUTBOUND_TRAFFIC drop
To view our rules :
nft -a list table ip default
Each rule is identifiable by its position and cas thus be replaced or modified more easily than before.
To delete the rule at "handle 1":nft delete rule default OUTBOUND_TRAFFIC position 1
To add a rule just before position 1 :
nft insert rule default OUTBOUND_TRAFFIC position 1 ip daddr 132.18.24.16 drop
Ban an IP
nft add rule default INBOUND_TRAFFIC ip saddr 132.18.24.16 drop
nft add rule default OUTBOUND_TRAFFIC ip saddr 132.18.24.16 drop
To ban an entire subnet, replace the IP with CIDR notation: 132.18.24.16/24
Delete all rules from the OUTBOUND_TRAFFIC in our "default" filter :nft flush chain default OUTBOUND_TRAFFIC
Create a scripted rules file : /etc/nftables.conf
A file with a default table already exists; we can make a copy and write our own file, as shown below :
In a way similar to IPF, we indicate the command to use at the beginning of the script.
Please note, what follows is very basic (SSH, http, https, and ping):#!/sbin/nft -f
# Flush last ruleset :
flush ruleset
# Creation of the default table
add table default
# Creation of inbound and outbound flows
add chain ip default INBOUND_TRAFFIC { type filter hook input priority 0; }
add chain ip default OUTBOUND_TRAFFIC { type filter hook output priority 0; }
# List of rules
add rule default INBOUND_TRAFFIC tcp dport 22 accept
add rule default OUTBOUND_TRAFFIC tcp sport 22 accept
add rule default INBOUND_TRAFFIC tcp sport 80 accept
add rule default OUTBOUND_TRAFFIC tcp dport 80 accept
add rule default INBOUND_TRAFFIC tcp sport 443 accept
add rule default OUTBOUND_TRAFFIC tcp dport 443 accept
add rule default INBOUND_TRAFFIC udp sport 53 accept
add rule default OUTBOUND_TRAFFIC udp dport 53 accept
add rule default INBOUND_TRAFFIC icmp type echo-request accept
add rule default OUTBOUND_TRAFFIC icmp type echo-reply accept
# Close the firewall :
add rule default INBOUND_TRAFFIC drop
add rule default OUTBOUND_TRAFFIC drop
I encourage you to refer to the following article for further details (especially regarding the flags) :
https://wiki.gentoo.org/wiki/Nftables/Examples#Typical_workstation_.28separate_IPv4_and_IPv6.29
votre commentaire -
Par majekla le 26 Avril 2023 à 16:10
L'idée ici, c'est de migrer GLPI d'un serveur nommé "SOURCE" à un serveur nommé "DESTINATION".
Pré-requis :
- GLPI est correctement installé et fonctionnel sur le serveur SOURCE.
- Il a été initialisé proprement et nous avons rajouté un utilisateur afin de vérifier que l'utilisateur sera bien migré.La migration en deux mots :
La méthode que je vous propose est de faire un dump SQL de glpi (sur le serveur SOURCE), de le compresser, puis de l'envoyer via scp/sftp sur le serveur DESTINATION.
Sur le serveur DESTINATION, nous allons tout simplement réinstaller glpi avec le script global-DEB3 (rubrique 7, choix 4, en prenant soin de recréer le même nom de base SQL et le même utilisateur privilégié sur la base SQL pour GLPI).
ATTENTION, la version de GLPI doit être rigoureusement la même sur les 2 serveurs. Dans le script, il s'agît de la 10.0.4. Ce tuto vous montre comment réinstaller GLPI manuellement, à vous de changer la version téléchargée de GLPI si vous le souhaitez.
Grâce à un ordinateur CLIENT (avec un environnement de bureau) sur le même réseau que le serveur DESTINATION, nous nous connecterons à l'IP du serveur DESTINATION, nous installerons GLPI en initialisant la nouvelle base SQL, comme s'il s'agissait d'une nouvelle installation. Nous nous loguerons dans GLPI grâce à l'utilisateur par défaut glpi/glpi, puis nous retournerons sur le serveur DESTINATION puis nous importerons le dump arrivé du serveur SOURCE dans la nouvelle base SQL.... GLPI n'y voit que du feu !Sur le Serveur SOURCE :
(Passez en root pour commencer)su -
1) Exporter la base SQL de glpi.
(la mienne s'appelle glpidb)mysqldump -uroot -p glpidb > /tmp/glpidb.sql.BAK
(attention à l'option -p pour le mot de passe de l'utilisateur root de mysql... si vous n'en avez pas défini, ne mettez pas l'option !)... ça donnerait ça :
mysqldump -uroot glpidb > /tmp/glpidb.sql.BAK
2) La compresser pour facilier l'envoi.
Deux méthodes : Personnellement je préfère zip à tar.gz ... mais chacun son choix.apt install zip -y
cd /tmp
zip glpidb.sql.BAK.zip glpidb.sql.BAK
3) Envoyer la backup SQL sur le serveur DESTINATION
(là encore, beaucoup d'options... scp, sftp etc... pour changer un peu, je vais utiliser sftp.
Remplacez le port 22 par un autre si vous l'avez changé sur DESTINATION).
Je vais envoyer le fichier dans le répertoire /tmp sur le serveur DESTINATIONsftp -oPort=22 adminweb@IP-SERVEUR-DESTINATION
sftp> put /tmp/glpidb.sql.BAK.zip /tmp/
sftp> exit
Sur le Serveur DESTINATION :(Passez en root pour commencer)
su
Ci-dessous la procédure manuelle si vous n'utilisez pas le script global-DEB3 pour réinstaller GLPI :
1) Installer mariadb, apache, php et unzipapt install mariadb-server apache2 unzip php php-curl php-gd php-json php-mbstring php-ldap php-zip php-bz2 php-mysql php-xml php-intl libapache2-mod-php -y
systemctl enable apache2
mysql_secure_installation
attention avec le mot de passe root pour mysql.. Si vous en définissez un, alors il faudra mettre l'option -p dans les commandes suivantes (ici je n'en mets pas, pour l'instant)
2) Créer une base SQL pour accueillir notre backup
(attention, le nom de la base SQL doit être RIGOUREUSEMENT IDENTIQUE à celui de la base sur le serveur SOURCE)mysqladmin -uroot create glpidb
3) Créer l'utilisateur privilégié sur cette base
(attention, les identifiants de l'utilisateur doivent être RIGOUREUSEMENT IDENTIQUES à ceux de l'utilisateur privilégié sur la base SQL glpidb du serveur SOURCE)mysql -uroot -e"GRANT ALL ON glpidb.* TO 'adminglpi'@localhost IDENTIFIED BY 'P@ssw0rd'"
4) Installer GLPI :
wget https://github.com/glpi-project/glpi/releases/download/10.0.4/glpi-10.0.4.tgz -P /tmp
cd /tmp
tar xvzf glpi-10.0.4.tgz
rm /var/www/html/index.html
mv glpi/* /var/www/html/
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
systemctl start apache2
Sur le PC CLIENT :
1) Utiliser le navigateur internet pour vous connecter au serveur DESTINATION :http://IP-DESTINATION
GLPI apparaît. Procédez à une installation, comme d'habitude. Initialiez GLPI avec sa base SQL.
Une fois arrivé sur l'écran d'identification utilisateur, identifiez-vous en glpi/glpi puis retournez sur le serveur DESTINATIONSur le Serveur DESTINATION :
1) Décompresser et importez la backup
cd /tmp
apt install unzip -y
unzip glpidb.sql.BAK.zip
cat glpidb.sql.BAK | mysql -uroot glpidb
Voilà, c'est terminé.
votre commentaire -
Par majekla le 13 Janvier 2023 à 00:14
- Une fois votre site web dûment installé et configuré (avec libapache2-mod-evasive),
- Une fois la correspondance entre le nom du site et l'IP du serveur faite dans le fichier /etc/hosts (du serveur),
- Une fois la configuration d'iptables (ou d'nftables) dûment effectuée,
- Une fois fail2ban dûment configuré (utilisez le script général debian !... paramétrer fail2ban contre les DDoS avec apache est particulièrement casse-pied sur debian)Il est temps de tester la résistance à une attaque DDoS !
Utilisez la commande suivante directement depuis votre serveur web :ab -n 1000 -c 20 https://VOTRE-SITE-WEB:PORT/
Si vous souhaitez simuler une vraie attaque, depuis une autre machine, vous pouvez installer bon nombre de logiciels pour cela !
J'utilise ddosify sur FreeBSD, mais il est peu courrant sur Linux.
Il est néanmoins présent sur Github pour Linux et peut être installé facilement sur Debian ou Fedora.
https://github.com/ddosify/ddosifyVoici comment l'installer sur Debian : (passez en root)
apt install wget -y
wget -qO ddosify.deb https://github.com/ddosify/ddosify/releases/latest/download/ddosify_amd64.deb
apt install -y ./ddosify.deb
rm -rf ddosify.deb
Voici la syntaxe pour attaquer votre serveur :
ddosify -t https://VOTRE-SITE-WEB:PORT -n 1000
(n'oubliez pas de faire un enregistrement dans votre fichier /etc/hosts sur votre client qui attaque.. pour qu'il trouve la correspondance entre l'URL indiquée et l'IP du serveur web !)
-t pour indiquer l'URL
-n pour indiquer le nombre de requête à lancer à l'URLVérifier si vous êtes banni :
fail2ban-client banned
Vous débannir :
fail2ban-client unban --all
votre commentaire -
Par majekla le 11 Janvier 2023 à 17:49
On a le choix entre le nouveau nftables (installé par défaut) et iptables.. je préfère le vioc iptables, j'ai pas encore la motivation pour apprendre une nouvelle surcouche de pare-feu en commandes, d'autant plus que c'est du debian, j'en vomis d'avance !
Dans le pire des cas, on peut toujours installer shorewall via l'article sur le blog, c'est de très loin la meilleure surcouche !!!Pour toute la suite, on se met en root !
On commence par désinstaller nftables puis installer iptables :apt remove --auto-remove nftables -y
apt purge nftables -y
apt update
apt install iptables -y
iptables est à présent installé et activé, mais il est réglé sur ACCEPT dans tous les sens et sur toutes les interfaces. On va supposer ici que votre serveur a 2 interfaces réseau (pour l'exemple)
Il faut donc le configurer afin de restreindre le périmètre.
D'abord, 2 règles de départ quasi universelles : autoriser le trafic sur l'interface de bouclage puis les connections relatives et établies (quelle que soit l'interface pour cette seconde).iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
On va ensuite commencer à paramétrer les règles demandées en fonction des interfaces.
- sur l'interface extérieure (enp0s3) : autoriser les flux entrants HTTP et HTTPS uniquementiptables -A INPUT -i enp0s3 -p tcp --dport 5501 -j ACCEPT
iptables -A INPUT -i enp0s3 -p tcp --dport 5502 -j ACCEPT
- sur l'interface interne (enp0s8) : autoriser les flux entrants HTTP, HTTPS, FTPS et SSH uniquement.
Attention car les ports sont aléatoires lors des transferts de fichiers en FTPS, nous allons donc définir le mode de transfert actif dans filezilla et décider d'une étendue de ports spécifiques à ouvrir sur notre pare-feu (6000 à 6010).
Ainsi, Filezilla va "imposer" des ports précis, qui seront ouverts sur le pare-feu.
Il faut donc également configurer FileZilla et le faire passer du mode passif au mode actif :
Dans le client, sur FileZilla, Aller dans Edition, Préférences, Connexion, FTP (activez le mode actif), Mode actif (activez Limiter les ports locaux utilisés et inscrivez des ports 6000 à 6010)iptables -A INPUT -i enp0s8 -p tcp --dport 5501 -j ACCEPT
iptables -A INPUT -i enp0s8 -p tcp --dport 5502 -j ACCEPT
iptables -A INPUT -i enp0s8 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i enp0s8 -p tcp --dport 6000:6010 -j ACCEPT
iptables -A INPUT -i enp0s8 -p tcp --dport 52333 -j ACCEPT
A présent, il faut refermer le pare-feu et bloquer toute autre accès, quelle que soit l'interface :
iptables -P INPUT DROP
iptables -P FORWARD DROP
Enfin autoriser tous les flux sortants de notre serveur :
iptables -P OUTPUT ACCEPT
A présent, il nous faut rendre nos règles immuables (car oui, en l'état actuel, si on redémarre, il y a tout à refaire).
apt install iptables-persistent -y
Evidemment, choisir de sauvegarder les règles actuelles pour IPv4 (/etc/iptables/rules.v4).. !
- Pour voir toutes nos règles :iptables -L -v
- Pour supprimer toutes les règles iptables entrées :
iptables -P INPUT ACCEPT
iptables -F
iptables -X
----------------------------------------------------------------------------
D'autres exemples :Voir toutes les règles
iptables -L
Pour DROPer le port 55555 en entrée, quelle que soit l'interface
iptables -A INPUT -p tcp --dport 55555 -j DROPExample de script
vi redir.sh
#!/bin/bash
# tout ce qui ira à destination du port 23456 sera rerouté vers 10.0.1.8 sur le port 44444
sudo iptables -t nat -A PREROUTING -p tcp --dport 23456 -j DNAT --to-destination 10.0.1.8:44444
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
votre commentaire -
Par majekla le 11 Janvier 2023 à 09:38
Vous avez créé votre demande de signature de certificat SSL, et vous ne vous souvenez plus des informations que vous avez entrées lors de la création.. Pas de soucis :
openssl req -in votredemande.csr -noout -text | less
votre commentaire -
Par majekla le 11 Janvier 2023 à 09:31
En plus de permettre l'automatisation horaire des tâches, Cron permet aussi d'exécutez des commandes ou des scripts au démarrage dxe votre serveur... Il existe, bien entendu, d'autres méthodes pour exécuter un script au démarrage, mais je trouve que cron est la façon la plus simple. (sinon, allez voir du côté de systemd...)
Pour cela, rien de plus simple.
Rendez-vous dans crontab et procédez comme suit :crontab -e
Choisissez votre éditeur de texte (nano, vi)
Lorsque le fichier cron s'ouvre, ajouter la ligne suivante à la fin :@reboot la commande ou le script que vous souhaitez voir executer au démarrage
@reboot une seconde commande...Redémarrez Cron :
service cron restart
Voilà !
C'est terminé.
votre commentaire -
Par majekla le 10 Janvier 2023 à 17:43
Nous connaissons tous les groupes de sécurité linux pour octroyer ou non un accès à certains dossiers à des utilisateurs.
Et pour certains, nous savons la galère que ça peut vite devenir lorsque le nombre d'utilisateurs croît ou que le nombre de divergences de permissions au sein d'un même répertoire grandit.
Comment faire, lorsque nos utilisateurs (connectés via un service FTP par exemple) sont chrootés dans leur répertoire personnel, pour leur donner accès au DocumentRoot d'un site web (par exemple) ?
A moins de chrooter tous les utilisateurs directement dans /var/www et de jouer des groupes pour autoriser ou non l'accès à certains dossiers du site en fonction des niveaux de privilèges des utilisateurs, on peut utiliser autre chose.
Il existe une solution simple à mettre en oeuvre : bindfs
Le paquet est présent dans le dépôt debian.apt install bindfs -y
Je vous incite à consulter la documentation de bindfs, je ne montre ici qu'un exemple simple.
Bindfs va créer un miroir du dossier cible choisi, à l'emplacement de votre choix, et va vous permettre de créer des permissions différentes sur le dossier miroir de celles du dossier cible !
Ainsi, prenons l'exemple d'un développeur, à qui on va lier le DocumentRoot d'un site-à-la-con directement dans son dossier personnel, en lui octroyant les droits de lecture/écriture/exécution sur les fichiers à l'intérieur alors que l'on a rien touché au DocumentRoot, auquel il n'a normalement pas accès.
On commence par créer le dossier miroir :mkdir /home/developpeur/site
On fait le lien ensuite :
bindfs -u developpeur -p 0700 /var/www/site-à-la-con /home/developpeur/site
Nous avons ici octroyé à l'utilisateur developpeur (-u developpeur) tous les droits - lecture/écriture/exécution, ce qui n'est pas forcément le mieux, c'est pour l'exemple !) - (-p 0700) sur le contenu du site-à-la-con qui va se retrouver lié dans le dossier site de son espace personnel.
Il pourra donc effectuer les modifications qu'il veut sur le contenu du dossier, instantanément mis-à-jour avec le dossier cible, sans sortir de son dossier utilisateur !
votre commentaire -
Par majekla le 9 Janvier 2023 à 11:05
Même topic que sur Apache mais avec Nginx.
On peut faire une redirection générale des requêtes http vers https pour tous les sites.
(Sans changer les ports http et https dans un premier temps)
On crée un vhost avec ce qui suit :server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}Et on relance nginx
service nginx restart
------------------------------------------------------------------------------------------------------------------------------------------------------
Pour effectuer une redirection spécifique sur un vhost en particulier (classique HTTP vers HTTPS sans changement des ports 80 et 443), il faut soit créer un vhost,soit rajouter l'encart suivant dans le fichier du vhost concerné :server {
listen IP-SERVEUR:PORTHTTP;
server_name NOM-DU-SITE;
return 301 https://$host$request_uri;
}Et on relance nginx
service nginx restart
Le problème se pose lorsque les ports 80 et 443 ont été changé :
(imaginons, le port http 80 -> 5501 et le port https 443 -> 5502)server {
listen IP-SERVEUR:5501;
server_name NOM-DU-SITE;
return 301 https://NOM-DU-SITE:5502;
}Et on relance nginx
service nginx restart
votre commentaire -
Par majekla le 6 Janvier 2023 à 11:37
Si vous avez décider d'utiliser d'autres ports que les ports 80 (http) et 443 (https) pour vos sites, alors les vous devez remplacer les ports d'écoute par défaut d'Apache, par ceux que vous allez utiliser.
Par défaut, Apache n'écoute que les ports 80 et 443.
Vous devez donc aller modifier le fichier /etc/apache2/ports.conf et remplacer les ports 80 et 443 par ceux de votre choix !
Puis relancer apache.apachectl graceful
votre commentaire -
Par majekla le 6 Janvier 2023 à 11:30
Facile !
Il y a tellement de façon de faire qu'on s'y perdrait...
- avec la directive Redirect
- avec un rewrite module
- avec une directive .htaccess
- avec un ProxyPass...
On va faire au plus simple avec la directive Redirect, (même si savoir faire un proxypass n'est pas superflu) !
Première chose, vous devez avoir un site en HTTPS fonctionnel ! (évidemment).
Donc vous devez déjà avoir un vhost SSL pour votre site, avec certificat signé par une autorité distante (ou autosigné si vous faîtes juste une maquette)
(rappel : le script global vous permet de le faire automatiquement !)
Pour mettre en place une redirection HTTP vers HTTPS, il faut donc créer un nouveau vhost (ou utiliser le vhost SSL de votre site et rajouter l'encart suivant avant ou après l'encart de votre site SSL).<VirtualHost IP:PORTHTTP>
ServerName NOM-DU-SITE
Redirect permanent / https://NOM-DU-SITE:PORTHTTPS/
</VirtualHost>A vous de remplacer l'IP:PORTHTTP selon votre configuration
Si vous joignez votre site sur le socket 192.168.1.200:80 (en http), alors mettez ça !
Si vous joignez votre site sur le socket 150.0.0.200:8081 (en http), alors mettez ça !
Ne laissez évidemment pas IP:PORTHTTP !
Autre point FONDAMENTAL dans la directive Redirect... Vous devez préciser le port HTTPS si vous utilisez un autre que le 443 !
ET SURTOUT, N'OUBLIEZ PAS LE / A LA FIN DU SOCKET !!! SINON CA NE FONCTIONNERA PAS !!
Voilà, c'est aussi simple.
Passons maintenant aux ports d'écoutes d'Apache.
Si vous avez décidé d'utiliser d'autres ports que les ports 80 (http) et 443 (https), alors les directives indiquées ci-dessus dans les vhosts ne suffiront pas, puisqu'Apache n'écoute que les ports 80 et 443 par défaut.
Si vous précisez 8081 ou autre, apache n'écoutera pas ce port à moins de faire la modification suivante :
Vous devez donc aller modifier le fichier /etc/apache2/ports.conf et remplacer les ports 80 et 443 par ceux de votre choix !
Puis relancer apache.
votre commentaire -
Par majekla le 16 Décembre 2022 à 16:05
Là encore, pourquoi faire simple quand on peut faire compliqué :
comprenez aussi que le lien du dépôt ci-dessous sera probablement caduque quand vous lirez cet article..
Allez récupérer le lien le plus actuel sur la page suivante : https://dev.mysql.com/downloads/repo/apt/apt install wget -y
wget https://repo.mysql.com/mysql-apt-config_0.8.24-1_all.deb
apt install ./mysql-apt-config_*_.deb -y
apt update
apt install mysql-server -y
systemctl enable mysql
mysql_secure_installation
votre commentaire -
Par majekla le 16 Décembre 2022 à 15:58
Comme toujours avec Debian, pourquoi faire simple quand on peut faire compliqué :
apt install lsb-release apt-transport-https ca-certificates wget -y
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
apt update
apt install apache2 libapache2-mod-php8.0 php8.0 -y
systemctl enable apache2
votre commentaire -
Par majekla le 21 Novembre 2022 à 20:42
La Procédure d'installation se déroule en 2 parties :
- celle du plugin, pour le serveur GLPI
- celle des agents, installés sur les différents terminauxPour installer le plugin FusionInventory sur GLPI, vous devez déjà avoir installé GLPI (voir Installer GLPI).
Sur ce tuto, on va installer la dernière version de FusionInventory (la 10.0.3) qui n'est compatible qu'avec la version 10.0.3 de GLPI.
Autrement dit, vous devez VRAIMENT avoir suivi le tuto ci-dessus et avoir installé GLPI 10.0.3 (ce que le script vous propose d'ailleurs de faire, ainsi que de télécharger FusionInventory !).-------------------------------------------------------------------------------------------
INSTALLATION DU PLUGIN FUSIONINVENTORY SUR GLPIEvidemment, vous aurez pris soin de faire une sauvegarde de votre base SQL glpi avant !!
Si vous avez exécuté le script d'installation de GLPI avec FusionInventory, alors vous pouvez passer l'étape 1)
1) Téléchargez FusionInventory
Sur votre serveur Debian GLPI, passer en rootsu -
Puis tapez les commandes suivantes :
apt update
apt install unzip -y
Rendez-vous ensuite dans votre dossier glpi sur le serveur.
Nous avions choisi dans le tuto d'installation de glpi de placer tous les fichiers de glpi dans le vhost par défaut d'apache. Adaptez la suite en fonction de votre DocumentRoot glpi.cd /var/www/html/plugins
wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi10.0.3%2B1.0/fusioninventory-10.0.3+1.0.zip
unzip fusioninventory-10.0.3+1.0.zip
rm fusioninventory-10.0.3+1.0.zip
chown -R www-data /var/www/html/plugins
2) Faire l'installation du plugin via l'interface web de GLPI,
connectez-vous en tant qu'utilisateur "glpi"
Configuration, Plugins, descendez tout en bas et cochez "FusionInventory",
cliquez sur l'icône de dossier tout à droite (avec un +) pour installer.
Une fois installé, une notification vous propose d'activer. Faîtes-le.
4) Réglez le problème "Cron"
Sur le serveur GLPI, toujours en root :echo '*/1 * * * * /usr/bin/php7.4 /var/www/html/glpi/front/cron.php &>/dev/null' >> /etc/crontab
service cron restart
Retourner sur l'interface web de glpi, Configuration, Actions automatiques, cherchez et cliquez sur "TaskScheduler" (en page 3), descendez en bas de la page et cliquez sur Exécuter.
Voilà, le problème Cron est résolu.-------------------------------------------------------------------------------------------
INSTALLATION D'UN AGENT SUR UN TERMINAL WINDOWS1) Télécharger l'agent :
https://github.com/fusioninventory/fusioninventory-agent/releases
(choisir l'installeur windows avec l'architecture correspondante)2) Installer l'agent :
Pour l'installer, clic-droit sur le fichier télécharger, exécutez en tant qu'administrateur,
Type d'installation "Complète" (et non par défaut)
Mode Serveurs : http://IP-SERVEUR-GLPI/plugins/fusioninventory
Ne pas cocher "installation rapide"
Passez SSL et Options Proxy pour cette première installation (à moins que vous ne l'ayez fait à côté).
Mode d'Exécution comme un Service Windows,
Laissez les Options du Serveur HTTP intégré par défaut
Options Diverses, cocher (en plus du raccourci) "Lancer un inventaire" et "Rechercher les machines virtuelles dans les dossiers personnels".
Laissez tout le reste par défaut.
Votre machine va remonter sur le GLPI après une petite minute.
On peut alors la voir dans Administration, FusionInventory, Agent.
votre commentaire -
Par majekla le 4 Juillet 2022 à 18:11
Sur Debian, la configuration réseau se fait dans le fichier /etc/network/interfaces :
Il est faut être root (ou utiliser sudo si vous êtes autorisé)su -
nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# exemple de configuration statique sur l'interface enp0s3 :
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.1.25
netmask 255.255.255.0
gateway 192.168.1.254
# exemple de configuration dynamique sur l'interface eth0
allow-hotplug eth0
iface eth0 inet dhcpLa configuration des serveurs DNS peut-être faîte dans le fichier ci-dessus, mais se fait aussi dans un autre fichier : /etc/resolv.conf
nano /etc/resolv.conf
# pour CloudFlare :
nameserver 1.1.1.1
nameserver 1.0.0.1
2 commentaires -
Par majekla le 2 Juin 2022 à 16:12
Mise-à-jour du mardi 23 janvier 2023 à 12h30
Amélioration du script d'installation de wordpress en https sur le vhost par défautMise-à-jour du vendredi 13 janvier 2023 à 14h45
Amélioration du script vsftpMise-à-jour du jeudi 12 janvier 2023 à 23h40
Ajout de la configuration automatique de fail2ban, service par service, avec filtre DDoS pour apacheMise-à-jour du jeudi 12 janvier 2023 à 12h15
nombreuses modifications dans les vhost apache et nginx, ajout des redirections de ports...
Mise-à-jour du jeudi 12 janvier 2023 à 10h
Ajout de la configuration automatique d'iptablesMise-à-jour du vendredi 6 janvier 2023 à 19h
Ajout de la configuration automatique d'un site en https avec nginxMise-à-jour du lundi 21 novembre 2022 à 14h
modification des paramètres php pour le script glpi, ajout de fusioninventory 10.0.3Mise-à-jour du mercredi 03 novembre 2022 à 14h35
Passage de GLPI à la version 10.0.4 et ajout de la possibilité d'installer directement sur le vhost par défautMise-à-jour du mercredi 08 juin à 10h
Correction de 2 erreurs, partie SSH et Création d'utilisateur.
Ajout de AllowUsers dans SSHMise-à-jour du mardi 07 juin à 14h50
Ajout de la génération de clé privée et demande de signature dans le menu 7, isolé de la création d'un vhostMise-à-jour du lundi 06 juin à 00:20
Correction d'une condition dans l'ajout de droits à un utilisateurMise-à-jour du dimanche 05 juin à 12:05
Correction d'une erreur dans le menu [1], la variable du case n'était pas la bonneMise-à-jour du samedi 04 juin à 14h :40
Le menu [4] permet d'envoyer la clef publique du serveur à un autre serveur via ssh-copy-id, avec choix du port du serveur distant, de l'utilisateur et du chemin de la clef publique à envoyer.
Le menu [8] comporte désormais la possibilité de (re)créer une partition unique (ext4 ou ntfs) sur un disque.
(je dois dire que manipuler fdisk pour créer une table ntfs lorsqu'une partition ext4 a déjà été créée a été un petit casse-tête dans le script).Mise-à-jour du vendredi 03 juin à 22h30 :
Le menu [1] comporte désormais :
- un sous-menu pour configurer DNS, DHCP/static
Le menu [9] comporte désormais :
- l'installation d'un serveur FTP, avec/sans SSL et avec/sans connexion anonyme
- l'installation du serveur de mail Postfix
- l'installation de webmin
Le menu [4] comporte désormais
- un sous-menu pour la configuration du pare-feu, permettant de rajouter/enlever des règles, activer/désactiver le pare-feu mis en place
Le menu principal a aussi une entrée pour quitter le scriptMise-à-jour du vendredi 21 juillet à 09:30
Installation de webmin sur Debian 12Mise-à-jour du samedi 29 juillet à 09:30
Passage à GLPI 10.0.9
Il semblerait qu'il y ait un problème avec un paquet mis à jour dans le dépôt debian depuis 2 jours.. des bugs d'affichage surviennent.. à surveiller.
VsFTPd :
Réparation de l'installation d'un serveur pour anonymes, avec autorisation ou non d'écrire dans le répertoire.Mise-à-jour du vendredi 4 août à 09:30
Problème résolu pour GLPI.
Problème résolu pour VsFTPd et le fait de permettre aux anonymes d'écrire, créer des dossiers et uploaderCe script vous permet de configurer :
[1] - Réseau"
[2] - Nom d'hôte, FQDN"
[3] - Mettre à jour le système"
[4] - Sécuriser le serveur"
[5] - Utilisateurs, droits et propriété"
[6] - Installer/Désinstaller un programme"
[7] - Site internet/intranet - SSL"
[8] - Partitionnement"
[9] - Programmes divers"Je rappelle qu'il NE FAUT PAS exécuter les scripts en étant connecté au serveur depuis un client via SSH !!
Vous devez être DIRECTEMENT SUR LE SERVEUR pour exécuter ces scripts.
PAS DE CONNEXION SSH !!
Beaucoup d'erreurs vont se produire autrement !
Et vous DEVEZ ETRE ROOT !Télécharger « global-deb13.sh »
su -
wget https://lstu.fr/global-deb13 -P /tmp
chmod 740 /tmp/global-deb13
cd /tmp
./global-deb13
votre commentaire -
Par majekla le 1 Juin 2022 à 14:35
Je rappelle qu'il NE FAUT PAS exécuter les scripts en étant connecté au serveur depuis un client via SSH !!
Vous devez être DIRECTEMENT SUR LE SERVEUR pour exécuter ces scripts.
PAS DE CONNEXION SSH !!
Beaucoup d'erreurs vont se produire autrement !
Et vous DEVEZ ETRE ROOT !Ce script vous permet de créer un site wordpress sur un vhost perso ou d'utiliser le vhost par défaut d'Apache, d'activer SSL dessus (clé privée perso ou générée automatiquement, certificat auto-signé ou signé par une autorité distante, création d'une demande de signature par une autorité distante à partir d'une clé privée générée automatiquement ou importée manuellement, et intégration du certificat signé par une autorité distante à partir de la clé privée automatiquement ou importée manuellement).
Télécharger « wordpressSSL-DEB.sh »
apt install wget -y
wget http://ekladata.com/enwOBmUp6VddLpzK_KX76ZHVzN0/wordpressSSL-DEB.sh -P /tmp
chmod 740 /tmp/wordpressSSL-DEB.sh
./tmp/wordpressSSL-DEB.sh
votre commentaire -
Par majekla le 1 Juin 2022 à 13:45
Je rappelle qu'il NE FAUT PAS exécuter les scripts en étant connecté au serveur depuis un client via SSH !!
Vous devez être DIRECTEMENT SUR LE SERVEUR pour exécuter ces scripts.
PAS DE CONNEXION SSH !!
Beaucoup d'erreurs vont se produire autrement !
Et vous DEVEZ ETRE ROOT !Ce script vous permet de créer un vhost ou d'utiliser le vhost par défaut d'Apache, d'activer SSL dessus (clé privée perso ou générée automatiquement, certificat auto-signé ou signé par une autorité distante, création d'une demande de signature par une autorité distante à partir d'une clé privée générée automatiquement ou importée manuellement, et intégration du certificat signé par une autorité distante à partir de la clé privée automatiquement ou importée manuellement).
Télécharger « vhostSSL-DEB.sh »
apt install wget -y
wget http://ekladata.com/-iOy3M_-RVKau9b0lbi9HoNBbY0/vhostSSL-DEB.sh -P /tmp
chmod 740 /tmp/vhostSSL-DEB.sh
./tmp/vhostSSL-DEB.sh
votre commentaire -
Par majekla le 30 Mai 2022 à 11:48
L'objectif est de configurer un site intranet (avec vhost) sur apache, en utilisant ssl.
SSL exige qu'un certificat soit délivré par une autorité de certification.
Puisqu'il s'agît d'un site intranet, accessible uniquement sur le réseau de l'entreprise, plutôt que de nous adresser à une autorité de certification sur internet, nous allons nous-même créer notre propre autorité de certification pour nous délivrer un certificat à nous-même !Etape 1 : s'identifier en root, installer apache et openssl, activer ssl.
apt update && apt upgrade -y
apt install apache2 -y
systemctl start apache2 && systemctl enable apache2
a2enmod ssl
Etape 2 : Clé privée et demande de signaturemkdir /etc/apache2/ssl
cd /etc/apache2/ssl
1) Créer la clé privée pour apache :
openssl genrsa -aes256 4096 > cleprivapache.key
2) Créer un certificat normal, qui servira de fichier de demande de signature à notre autorité :openssl req -new -key cleprivapache.key > demandesignature.csr
Nous allons à présent envoyer notre demandesignature.csr au serveur windows (ou à une authorité sur internet) afin d'obtenir un certificat signé !
Ici, je montre l'exemple d'un serveur windows qui va se charger de certifier.Par exemple, depuis notre serveur Windows, nous allons récupérer la demandesignature.csr sur le serveur web :
dans un invité de commandes :scp root@IP-SERVEUR-WEB:/etc/apache2/ssl/demandesignature.csr C:\chemin\ou\télécharger\votre\clef
Ensuite, sur le serveur windows,
Ouvrir PowerShell :
positionnez-vous dans l'emplacement de demandesignature.csr (il était dans E:\ chez nous)cd E:\
certreq -attrib "CertificateTemplate:WebServer"
Une fenêtre s'ouvre, choisir demandesignature.csr (il est nécessaire de choisir "Tous les fichiers" en bas à droite pour voir le fichier s'afficher).
Puis, choisir un emplacement pour enregistrer le certificat (le nommer certifapache.crt).
Ensuite, renvoyez votre certifapache.crt sur votre serveur web :scp E:\certifapache.crt root@IP-SERVEUR:/etc/apache2/ssl
Nous aurons besoin des 2 fichiers suivants pour notre vhost :
- certifapache.crt (le certificat autosigné)
- cleprivapache.key (clé privée pour apache)Dernière étape très importante, modifier les permissions de vos clefs et certificats :
(à n'effectuer qu'après avoir tout généré !)
chmod -R 600 /etc/apache2/ssl
Etape 4 : créer (ou copier s'il est donné) le dossier du site (jesuissuper)mkdir /var/www/jesuissuper
vi /var/www/jesuissuper/index.html
Etape 5 : le vhost.cd /etc/apache2/sites-available/
cp default-ssl.conf defaul-ssl.conf.BAK
mv default-ssl.conf jesuissuper.conf
vi jesuissuper.conf
# On édite le fichier, avec au moins les informations (dé-commentées) suivantes :
<VirtualHost _default_:443>
ServerName jesuissuper
DocumentRoot /var/www/jesuissuper
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/certifapache.crt
SSLCertificateKeyFile /etc/apache2/ssl/clefprivapache.key
</VirtualHost>On enregistre et on quitte
Etape 6 : activer la configuration du vhost
a2ensite jesuissuper.conf
(le nom des sites possibles s'affiche), tapper jesuissuper
Etape 7 : redémarrage d'apache2
apachectl graceful
(ou systemctl restart apache2)
Etape 8 : l'enregistrement DNS.
Faîtes un enregistrement DNS sur votre hôte.cas 1 : le PC est sur Linux :
vi /etc/hosts
IP-DU-SERVEUR-WEB jesuissuper
cas 2 : le PC est sous windows.
modifier le fichier hosts (cliquez ici pour accéder à la procédure), y ajouter la même ligne qu'au-dessus
Etape 9 : Importer le certificat d'autorité sur votre navigateur Firefox : ca.crt sur votre PC
(via scp ou winscp)
Lancez Firefox, paramètres, cherchez "certificats", affichez les certificats, onglet Autorités, Importer
votre commentaire -
Par majekla le 24 Mai 2022 à 15:32
L'objectif est de configurer un site intranet (avec vhost) sur apache, en utilisant ssl.
SSL exige qu'un certificat soit délivré par une autorité de certification.
Puisqu'il s'agît d'un site intranet, accessible uniquement sur le réseau de l'entreprise, plutôt que de nous adresser à une autorité de certification sur internet, nous allons nous-même créer notre propre autorité de certification pour nous délivrer un certificat à nous-même !Etape 1 : s'identifier en root, installer apache et openssl, activer ssl.
apt update && apt upgrade -y
apt install apache2 -y
systemctl start apache2 && systemctl enable apache2
a2enmod ssl
Etape 2 : Créer notre propre Autorité de Certification (ca)
mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
openssl genrsa 4096 > ca.key
openssl req -new -x509 -days 365 -nodes -key ca.key > ca.crt
Etape 3 : Créer le certificat auto-signé
1) Créer la clé privée pour apache :
Il y a 2 façons de faire. Soit vous stipulez un mot de passe lors de la création (ce qui vous posera problème dans certaines applications. Soit vous n'en créez pas :
- Avec mot de passe :openssl genrsa -aes256 4096 > cleprivapache.key
-(ou) Sans mot de passe (je vous suggère de mettre sans mot de passe pour la suite du tuto) :
openssl genrsa 4096 > cleprivapache.key
2) Créer un certificat normal, qui servira de fichier de demande de signature à notre autorité :
openssl req -new -key cleprivapache.key > demandesignature.csr
3) Faire signer notre demande de signature par notre propre autorité de certification (ca)
openssl x509 -req -in demandesignature.csr -out certifapache.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 365
Nous aurons besoin des 2 fichiers suivants pour notre vhost :
- certifapache.crt (le certificat autosigné)
- cleprivapache.key (clé privée pour apache)Dernière étape très importante, modifier les permissions de vos clefs et certificats :
(à n'effectuer qu'après avoir tout généré !)chmod -R 600 /etc/apache2/ssl
Etape 4 : créer (ou copier s'il est donné) le dossier du site (jesuissuper)
mkdir /var/www/jesuissuper
vi /var/www/jesuissuper/index.html
Etape 5 : le vhost.
cd /etc/apache2/sites-available/
cp default-ssl.conf defaul-ssl.conf.BAK
mv default-ssl.conf jesuissuper.conf
vi jesuissuper.conf
# On édite le fichier, avec au moins les informations (dé-commentées) suivantes :
<VirtualHost _default_:443>
ServerName jesuissuper
DocumentRoot /var/www/jesuissuper
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/certifapache.crt
SSLCertificateKeyFile /etc/apache2/ssl/cleprivapache.key
</VirtualHost>On enregistre et on quitte
Etape 6 : activer la configuration du vhost
a2ensite jesuissuper.conf
(le nom des sites possibles s'affiche), tapper jesuissuper
Etape 7 : redémarrage d'apache2
apachectl graceful
(ou systemctl restart apache2)
Etape 8 : l'enregistrement DNS.
Faîtes un enregistrement DNS sur votre hôte.cas 1 : le PC est sur Linux :
vi /etc/hosts
IP-DU-SERVEUR-WEB jesuissuper
cas 2 : le PC est sous windows.
modifier le fichier hosts (cliquez ici pour accéder à la procédure), y ajouter la même ligne qu'au-dessus
Etape 9 : Importer le certificat d'autorité sur votre navigateur Firefox : ca.crt sur votre PC
(via scp ou winscp)
Lancez Firefox, paramètres, cherchez "certificats", affichez les certificats, onglet Autorités, Importer
votre commentaire -
Par majekla le 19 Mai 2022 à 14:01
Installer Shorewall
loguez-vous en root
apt install shorewall -y
Nous devons à présent configurer 3 fichiers :1) d'abord les zones que l'on va utiliser dans les règles :
echo "net ipv4" >> /etc/shorewall/zones
echo "fw firewall" >> /etc/shorewall/zones
2) la carte réseau qui sera connectée à l'interface internet (évidemment, changez le nom de votre interface si ce n'est pas eth0)
echo "net eth0 detect" >> /etc/shorewall/interfaces
3) les règles de pare-feu des zones :
echo "fw net ACCEPT" >> /etc/shorewall/policy
echo "net all DROP info" >> /etc/shorewall/policy
echo "all all REJECT info" >> /etc/shorewall/policy
4) Configurer les règles de pare-feu :
echo "ACCEPT all fw tcp 80" >> /etc/shorewall/rules
echo "ACCEPT all fw tcp 443" >> /etc/shorewall/rules
echo "ACCEPT all fw tcp 22" >> /etc/shorewall/rules5) Démarrer le pare-feu
systemctl start shorewall
systemctl enable shorewall
votre commentaire -
Par majekla le 19 Mai 2022 à 11:31
apt install mailutils
mail -s "Ceci est l'objet de l'email" email@destinaire.truc cc : indiquez un mail de copier, puis tappez entrer Inscrivez à présent le contenu de votre mail
Tappez CTRL+D pour envoyer votre message
Autre méthode pour envoyer tout le contenu d'un fichier texte :
mail -s "Ceci est l'objet de l'email" email@destinataire.truc << cat fichier.txt
Envoyer à plusieurs destinataires en même temps :
mail -s "Ceci est l'objet..." email@destinataire1.truc,email@destinataire2.truc
votre commentaire -
Par majekla le 4 Mai 2022 à 14:33
2 serveurs Debian.
A joue le rôle de client et adresse à B (le serveur de Forward Proxy) ses requêtes web et ftp, sur le port 8080
Configuration de A :vi /etc/profile.d/proxy.sh # inscrire et modifier export http_proxy="http://IP-DE-B:8080/" export https_proxy="https://IP-DE-B:8080/" export ftp_proxy="ftp://IP-DE-B:8080:/" export socks_proxy="https://IP-DE-B:8080/" export no_proxy="127.0.0.1,localhost"
Pour configurer le gestionnaire de paquets APT afin qu'il passe lui aussi par le forward proxy :vi /etc/apt/apt.conf.d/80proxy # inscrire et modifier Acquire::http::proxy "http://IP-DE-B:8080/"; Acquire::https:proxy "https://IP-DE-B:8080/"; Acquire::ftp::proxy "ftp://IP-DE-B:8080/";
Pour ne configurer que wget à faire des requêtes vers le Forward Proxy :
vi /etc/wgetrc #inscrire et modifier le port au besoin use_proxy=yes http_proxy=127.0.0.1:8080 https_proxy=127.0.0.1:8080
Faîtes un reboot
Pour tester :env | grep -i proxy
Pour la configuration de B, voir l'article concerné
votre commentaire -
Par majekla le 4 Mai 2022 à 11:52
Comment configurer un serveur Nginx (SRV-PROXY), afin qu'il agisse comme proxy pour des clients dans son LAN ?
Les clients vont adresser leurs requêtes http et https au proxy sur le port 8080, le proxy doit adresser toutes leurs requêtes en https
sur SRV-PROXY :apt install nginx -y
systemctl start nginx
systemctl enable nginx
cd /etc/nginx/sites-enabled
cp default forward
vi forward # copier la configuration suivante : server { listen 8080; location / { resolver 8.8.8.8; proxy_pass https://$http_host$uri$is_args$args; } } # ESC : wq
systemctl restart nginx
Voilà, le forward proxy est en place
votre commentaire -
Par majekla le 28 Avril 2022 à 13:47
loguez-vous en root
Notre disque rajouté est sur /dev/sdb. C'est lui que nous voulons partitionner et formater
En cas de doute, regardez les disques présents sur votre système :fdisk -l
créer un point de montage (genre /disksup)mkdir /disksup
Lancez fdisk pour /dev/sdb :fdisk /dev/sdb
Vous pouvez afficher les options possibles en appuyant sur m :m
Pour formater votre volume, lancez les commandes suivantes :n
p
laissez le reste par défaut
une fois les paramètres terminés, n'oubliez pas la touchew
pour formater en ext4mkfs.ext4 /dev/sdb1
pour monter le disque :mount /dev/sdb1 /disksup
1 commentaire
Suivre le flux RSS des articles de cette rubrique
Suivre le flux RSS des commentaires de cette rubrique