add: oldiers articles about security on Linux

master
HUC Stéphane 2020-10-09 17:52:30 +02:00
parent bcbd5f29a6
commit 15e265a81d
Signed by: hucste
GPG Key ID: C4ED64222D9B037F
15 changed files with 918 additions and 9 deletions

View File

@ -326,13 +326,20 @@ title = "Stéphane HUC :: IT Log"
pre = ""
url = "/sec/GPG"
weight = 42
[[languages.fr.menu.main]]
identifier = "linux"
name = "Linux"
parent = "sec"
pre = "<img alt=\"Logo Android\" src=\"/svg/Tux.svg\" width=\"24\">"
url = "/sec/Linux"
weight = 43
[[languages.fr.menu.main]]
identifier = "ssh"
name = "SSH"
parent = "sec"
pre = ""
url = "/sec/SSH"
weight = 43
weight = 44
#[[languages.fr.menu.main]]
# identifier = "secsys"
# name = "Sécurité :: Système"

View File

@ -23,9 +23,19 @@ Make a donate. So simply, so easy! <br>
## Who
Actually : **none**
*But promised if you do: your name or nickname/pseudo/alias will be displayed here,
*If you do: your name or nickname/pseudo/alias will be displayed here,
with your agreement, on the date of the donation..*
### 2020
⇒ In October:
* @scorpus
## What
### 2020
* one **trappiste rochefort 10** beer: 5€
----

View File

@ -22,9 +22,20 @@ Faites un don, tout simplement. <br>
## Qui
Pour l'instant : **personne**
*Mais, promis si vous le faites, votre nom, ou pseudo sera affiché ici, avec votre
*Si vous le faites, votre nom, ou pseudo sera affiché ici, avec votre
accord, à la date du don.*
### 2020
⇒ Au mois d'Octobre :
* @scorpus
## Quoi
### 2020
* L'équivalent d'une **trappiste rochefort 10** : 5 €
----

View File

@ -0,0 +1,10 @@
---
title: "Section Sécurité GNU/Linux"
date: 2017-07-23T18:41:14+01:00
description: "Section à-propos d'articles liés à des protocoles et des usages autour de la sécurité de Linux…"
draft: false
noindex: true
tags: ['Sécurité']
---
Différents articles autour de notions de sécurité : Linux…

View File

@ -0,0 +1,139 @@
---
date: 2017-07-27T13:47:18+02:00
description: "Comment sécuriser sa distribution GNU/Linux en utilisant dnscrypt"
draft: false
tags: ['Linux','Harden','dnscrypt']
title: "Durcir Linux : utiliser Dnscrypt"
---
## Description
{{< note danger >}}Cet article est très probablement trop ancien, pour
refléter l'actualité du logiciel **dnscrypt**. Il a été écrit en 2017, et
non mis-à-jour. {{</note>}}
Nommé **Durcir Linux : utiliser dnscrypt** est un bien grand mot… en fait, nous
n'allons pas durcir directement Linux, mais nous allons utiliser un petit
outil, bien pratique, dont le but est de chiffrer les communications DNS !
**DNSCrypt** est un outil, à l'origine développé par [OpenDNS][1], qui
maintenant a sa vie propre, au-travers du site : [dnscrypt.org][2].
Revenons en au but de ce petit outil, à savoir dauthentifier les communications
DNS, entre votre client logiciel DNS, et les serveurs DNS que vous utilisez
pour pouvoir surfer sur Internet. Il utilise des signatures cryptographiques
pour communiquer. Il interroge des serveurs DNS publics, compatible avec l'outil.
Il peut-être actif conjointement à votre serveur DNS cache local. <br>
*pour cela, je vous renvoie à la documentation officielle*
{{<note warning>}}Bien comprendre que cela ne protège pas des failles dues
à DNS. **dnscrypt authentifie le trafic DNS, avec un serveur DNS compatible**,
et ainsi empêche qu'un serveur malintentionné se fasse passer pour un serveur
authentique.
**dnscrypt n'est pas non plus un service VPN**, et n'a pas l'intention de
fournir de tels services, vous ne pouvez pas faire passer tous vos flux TCP/IP,
ni UDP, à l'intérieur… <br>
**Seules les requêtes DNS, sur les ports 53 et 443, en UDP.**
Soyez avertis aussi que les serveurs DNS compatibles peuvent très bien
journaliser votre trafic !
{{</note>}}
Il fonctionne sur les protocoles IPv4 et IPv6.
## Installation
Du côté de Debian, et assimilés, le client existe dans les dépôts officiels,
pour toutes les versions de Debian, de stable à Sid.
Du côté des \*Buntu, il existe les ppa suivants :
* celui de [Xu Zhen][20],
* ou mieux intégré, celui de [Pascal Mons][21] - *je me baserai sur ce dernier*
à vous de les ajouter, puis de les installer.
Sinon, vous attendez la future LTS [[http://packages.ubuntu.com/search?suite=xenial&amp;searchon=names&amp;keywords=dnscrypt|Xenial]],
ou vous mettez-à-jour vers [[http://packages.ubuntu.com/search?suite=wily&amp;searchon=names&amp;keywords=dnscrypt|Willy]] !
## Configuration
Le fichier de configuration principal est situé dans `/etc/default/dnscrypt-proxy`.
Vous y retrouverez différentes options faciles à comprendre !
### Network Manager
Pensez à bien modifier votre configuration dans l'outil
Network Manager, et à paramétrer votre onglet [ Paramètres IPv4 ] en modifiant :
* la méthode sur 'Adresses automatiques uniquement (DHCP)',
* puis à écrire dans le champ 'Serveurs DNS', la valeur suivante '127.0.0.2',
enregistrez !
### /etc/network/interfaces
Si vous n'utilisez pas Network Manager, modifiez directement votre fichier
`/etc/network/interfaces`, en ajouter la mention :
`dns-nameservers 127.0.0.2`
dans ce cas, pensez à redémarrer votre réseau !
{{<note info>}}Oui, c'est bien l'adresse localhost `127.0.0.2`<br>
car l'outil `dnscrypt-proxy` travaille en relation avec `dnsmasq`, qui
lui fonctionne, par défaut, sur l'adresse localhost normale.
Celui de Xu Zhen, ce sera l'adresse localhost '127.0.0.1'.
{{</note>}}
### Mise en garde
{{< note warning >}}À ce propos, si vous changez l'option liée à l'utilisateur
en changeant son nom, soit… c'est votre droit - mais pensez à supprimer
celui créé par l'installateur, et à créer le vôtre dans les mêmes conditions, tel que :
`# adduser --system --quiet --home /run/dnscrypt --shell /bin/false --group --disabled-password --disabled-login votre_user_dnscrypt`
{{</note>}}
Cela est d'ailleurs indiqué dans le fichier de configuration !
Vous êtes libre de changer aussi son répertoire maison ; pensez à vérifier
la création dudit répertoire, et à supprimer celui par défaut !
{{< note tip >}}Toutes les options que renferme le manpage lié à l'outil
sont utilisables dans le fichier de configuration : <br>
`$ man dnscrypt`
Il suffit dans ce cas d'enlever les 2 symboles `--` qui les précédent.
À ce propos, si vous avez la bonne idée d'utiliser l'option `logfile`,
telle que `logfile=/var/log/dnscypt-proxy.log` et si vous utilisez `apparmor` aussi,
il faudra changer le profil apparmor lié à l'outil, pour y ajouter la ligne suivante : <br>
`/var/log/dnscypt-proxy.log rw,`
{{</note>}}
Vous trouverez une liste des différents serveurs DNS compatibles, leurs noms,
leurs adresses IP, leurs clés d'authentification, etc…
dans le fichier `/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv`.
Vous pouvez changer ces informations dans le fichier de configuration.
---
[1]: https://www.opendns.com/about/innovations/dnscrypt/
[2]: https://dnscrypt.org
[10]: https://packages.debian.org/search?suite=sid&amp;searchon=names&amp;keywords=dnscrypt
[11]: https://packages.debian.org/search?suite=stretch&amp;searchon=names&amp;keywords=dnscrypt
[20]: https://launchpad.net/~xuzhen666/+archive/ubuntu/dnscrypt
[21]: https://launchpad.net/~anton+/+archive/ubuntu/dnscrypt
[30]: https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv

View File

@ -0,0 +1,77 @@
---
date: 2017-07-27T07:07:17+02:00
description: "Comment sécuriser sa distribution GNU/Linux en utilisant le binaire chattr"
draft: false
tags: ['Linux','Harden','chattr']
title: "Durcir Linux : Utiliser chattr"
---
## Description
Dans la continuité de mon {{< inside "sec:linux:durcir-partitionnement" "article précédent, au doux propos de durcir Linux" >}}
il est une commande intéressante à utiliser : `chattr`
**Cet outil permet de modifier les attributs de fichiers, répertoires.**
Il existe une option qui est fortement pratique : l'option `i` - *dont le
but est de rendre figé, immuable l'état d'un fichier, ou répertoire et
d'interdire toute modification ultérieure, même par l'administrateur système,
généralement nommé `root`*.
Les répertoires à protéger, tout particulièrement, sont :
* `/bin`,
* `/boot`,
* `/etc`,
* `/usr`,
* `/root`,
* `/sbin`,
* ainsi que les fichiers liés à : `/initrd`, `/lib`, `/lib64`, `/vmlinuz`
⇒ Pour protéger/figer/rendre immuable, un petit coup de commande :
`chattr -R +i /bin /boot /etc /usr /root /sbin /lib* /initrd* /vmlinuz* 2> /dev/null` <br>
`chattr -R -i /etc/adjtime /etc/blkid.tab /etc/mtab /etc/network/run /etc/udev/rules.d 2> /dev/null` <br>
{{< note info >}}La deuxième ligne est importante, car ces fichiers ne
doivent pas être figés, sinon le système ne peut s'en servir !{{</note>}}
⇒ Pour enlever l'option `i` sur lesdits répertoires et fichiers, en question,
il suffit d'écrire la commande ainsi :
`chattr -R -i /boot /usr /bin /sbin /lib* /root /vmlinuz* /initrd* /etc 2> /dev/null`
## Mise en garde
### apt, dpkg, synaptic
Ces commandes peuvent être insérées dans un script, pour vous faciliter
la vie, et mieux, aussi vous devriez les intégrer à votre script de gestion
`apt`, dont je vous parlais dans mon {{< inside "sec:linux:durcir-partitionnement" "article précédent" >}} !
Si jamais vous avez la bonne idée d'abuser de cette commande, veuillez
comprendre absolument qu'avec les outils **apt**, **dpkg**, **synaptic**, - *et très certainement,
tout outil gérant l'installation logicielle* -, il vous faudra :
* utiliser l'option `-i` ;
* utilisez l'outil d'installation logiciel,
* et veillez à remettre l'option `+i` en suivant…
Vous êtes avertis, autrement vous seriez surpris par quelques dysfonctionnements.
### Script shell
{{< file "sec-linux-chattr-script" bash "chattr-sys" >}}
Vous pouvez retrouver la dernière version de ce script sur mon [gitlab][1] !
## Documentation
### Manpage
* un coup de **manpage**, vous renseignera encore plus profondément : `$ man chattr`
---
[1]: https://framagit.org/hucste/tools/-/raw/master/Debian/chattr_sys

View File

@ -0,0 +1,77 @@
---
date: 2017-07-23T17:41:36+02:00
description: "Comment sécuriser sa distribution GNU/Linux en modifiant l'IOMMU"
draft: false
tags: ['Linux','Harden','IOMMU']
title: "Durcir Linux : Forcer l'IOMMU"
---
## Description
Mais qu'est donc l'IOMMU ? **Input/Output Memory Management Unit** <br>
*en français, **Unité de Gestion des Entrées/Sorties en Mémoire***
C'est une sorte de pare-feu matériel, pour les ports PCI, et VGA.
### Architectures concernées
* **[Intel][1]** - dont l'option **{{< abbr "VT-d" "Virtualization Technology for Directed Input/Output" >}}**
doit être activée dans le BIOS, ainsi que sa prise-en-charge dans le kernel.
* **[AMD][2]** a aussi son propre mode **AMD-V** pour ***I/O Virtualization Technology***,
ou **{{< abbr SVM "Secure Virtual Machine" >}}**, ainsi que **{{< abbr GART "Graphical Aperture Remapping Table" >}}**
pour gérer les cartes AGP, et fonctionnels avec les CPU AMD Opteron,
AMD Athlon 64, AMD Turion 64…
* **IBM** a la sienne : **Calgary PCI-X**
* **[ARM][4]** a sa propre unité appelée **{{< abbr SSMU "System Memory Management Unit" >}}**
* XenServer a sa propre fonction "**PCI passthrough**" ou l'équivalent
pour les cartes VGA, à savoir "**VGA passthrough**" ...
## Configuration
Hormis le fait de posséder l'une des architectures sus-nommées, il vous
faut avoir à minima un kernel **Linux 2.6**
activez l'option dans le BIOS de votre machine !
Vous pouvez forcer son usage, ce qui est recommandé, en éditant votre fichier
`/etc/defaut/gru` et en ajoutant l'option `iommu=force` sur la ligne `GRUB_CMDLINE_LINUX`
Mettez à jour `grub` !
## Documentation
⇒ Un très bon [document][10] a été écrit pour le {{< abbr SSTIC "Symposium sur la sécurité des technologies de l'information et des communications" >}}
en 2010, à ce propos en disant de celle-ci :
<blockquote>
Il s'agit d'un composant matériel qui agit comme un pare-feu et filtre
les accès en provenance des périphériques vers la mémoire principale. <br>
(…) est un composant matériel permettant à un système d'exploitation de
contrôler l'accès des périphériques à la mémoire principale.
</blockquote>
Ce document nommé "**Analyse de l'efficacité du service fourni par une IOMMU**"
décrit comment cette unité de gestion matérielle interagit avec le système
GNU/Linux, et comment malheureusement il est possible de la "leurrer" pour
mener des attaques réseaux, par exemple, à partir d'une interface Firewire,
mais aussi mène à réfléchir sur son bon usage.
=> Un autre [document][11] démontrant une attaque possible par le biais d'une
interface FPGA sur PCI-E.
=> Une troisième source d'informations intéressantes : Le "**[NP Linux Configuration][12]**" !
### Wikipedia
* {{< wp "List_of_IOMMU-supporting_hardware" en >}} : liste de matériels gérant IOMMU.
---
[1]: https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt
[2]: http://developer.amd.com/wordpress/media/2012/10/IOMMU-ben-yehuda.pdf
[4]: http://www.arm.com/products/system-ip/controllers/system-mmu.php
[10]: https://www.sstic.org/media/SSTIC2010/SSTIC-actes/Analyse_de_l_efficacite_du_service_fourni_par_une_/SSTIC2010-Article-Analyse_de_l_efficacite_du_service_fourni_par_une_IOMMU-lacombe_lone-sang_nicomette_deswarte.pdf
[11]: https://www.sstic.org/media/SSTIC2016/SSTIC-actes/dma_bypass_with_dma/SSTIC2016-Article-dma_bypass_with_dma-morgan_alata_averlant_nicomette.pdf
[12]: http://www.ssi.gouv.fr/uploads/2015/10/NP_Linux_Configuration.pdf

View File

@ -0,0 +1,59 @@
---
date: 2017-07-28T14:23:43+02:00
description: "Comment sécuriser sa distribution GNU/Linux en modifiant le noyau Linux"
draft: false
tags: ['Linux','Harden','noyau','modules']
title: "Durcir Linux : désactiver les modules noyau"
---
## Description
Ou, comment titrer : **Améliorons l'intégrité du noyau en désactivant la gestion des modules !**
En effet, pour améliorer l'intégrité du noyau, il est possible, même recommandé,
de désactiver la gestion des modules ; cela a pour propos d'empêcher que
quiconque ayant un accès machine puisse charger un module indésirable.
## Configuration
{{< note warning >}}
Gardez à l'esprit que si vous désactivez la gestion des modules,
cela risque de vous poser des problèmes de gestion matérielle sur une station… <br>
*Exemple : impossible d'utiliser des périphériques USB.*
Préférez utiliser cela sur un serveur.
{{<color red>}}Vous êtes prévenus !{{</color>}}
{{</note>}}
### sysctl
Le sous-système `sysctl` nous permet d'activer ou de désactiver la gestion
des modules par la variable `kernel.modules_disabled`.
* Une valeur à `0` permet la gestion des modules,
* tandis qu'une valeur à `1` désactive la gestion des modules !
De même, il est possible, bien-sûr, de le gérer à-partir du fichier `/etc/sysctl.conf`.
### Mise en garde
Votre système d'exploitation fonctionnera, certes, mais seulement en partie ! <br>
*Bref, il faut avouer : c'est assez ennuyeux, voire ennuyant*…
**L'astuce** est de configurer le fichier `/etc/rc.local` - *qui est appelé
en dernier au chargement du système, du moins sur Debian et \*Buntu* - en incluant la commande suivante :
`sysctl -w kernel.modules_disabled=1`
mais de laisser la valeur de cette variable à `0` dans le fichier de configuration
de sysctl !
Ainsi le système au démarrage chargera tous les modules nécessaires à son
bon fonctionnement, et ensuite, interdira tout autre chargement de modules
non autorisé !
---

View File

@ -0,0 +1,207 @@
---
date: 2017-07-28T12:56:04+02:00
description: "Comment sécuriser sa distribution GNU/Linux en durcissant le partitionnement"
draft: false
tags: ['Linux','Harden','partition']
title: "Durcir Linux : modifier le partitionnement"
---
## Description
Tout bon linuxien sait que le partitionnement système se gère à partir du
fichier `/etc/fstab`
Celui-ci par défaut à cette configuration - *surtout si vous avez eu la
bonne idée de partitionner un tant soit peu* - :
{{< file "sec-linux-durcir-partitionnement-fstab-default-example" sh "/etc/fstab" >}}
Modifions la configuration par défaut, qui utilise le drapeau `defaults`
concernant l'option de montage, pour être plus restrictif… <br>
*ce qui aura pour avantage de compliquer la vie si jamais votre station ou serveur étaient infectés !*
{{< note warning >}}Toutes ces modifications sont des modifications système,
donc, sont à exécuter avec des droits administrateurs !{{</note>}}
## Configuration
### /boot, /opt, /usr
Concernant le partitionnement lié à `/boot`, `/opt`, `/usr`, il est
intéressant de les monter en lecture seule et d'interdire les fichiers
périphériques nommés <span lang="en">device</span>, pour un serveur -
*sur une station, cela posera des difficultés ergonomiques indéniables*.
Ce qui donnerait à minima :
`UUID=97aabf8d-fa78-4176-b681-888370fbc186 /boot ext4 defaults,nodev,ro 0 2` <br>
`UUID=20c0ddea-2db4-4ee5-982f-71b8df26c2fb /opt ext4 defaults,nodev,ro 0 2` <br>
`UUID=d84f16a8-d107-49d7-992d-bd9e78488ffd /usr ext4 defaults,nodev,ro 0 2` <br>
{{< note tip >}}
Étant donné ce que signifie la valeur `defaults`, soit `rw,suid,dev,exec,auto,nouser,async`,
on peut donc écrire les options `defaults,nodev,ro` par `async,auto,exec,nodev,nouser,ro,suid` !
{{</note>}}
#### /boot, /opt, /usr: Mise en garde
* Mettre l'accès en lecture `ro` sur les partitionnements `/boot` et sur `/usr`
posent quelques petits soucis.
* Quant à `/opt`, pour les rares fois, où c'est vraiment nécessaire, on
verra plus bas comment permettre l'écriture, si besoin.
`/boot` : besoin d'un accès en écriture, lors du démarrage, pour l'environnement
lié à grub, et surtout du binaire `grub-editenv`… qui ne peut écrire
de fait ; résultat, il faut réécrire le fichier `/etc/fstab` avec
l'option `rw`.
Ouvrez le fichier `/etc/rc.local` - *du moins, pour Debian, \*Buntu,
et assimilés* - et écrivez dedans : <br>
`mount -f -o remount,ro /boot`
`/usr` : besoin d'un accès en écriture, lors de mises-à-jour système,
principalement !
Pour résoudre le problème, soit vous éditez le fichier `/etc/apt/apt.conf` -
*s'il existe* - soit vous créez un fichier, tel que `/etc/apt/apt.conf.d/00apt`,
et écrivez le code suivant : <br>
`DPkg::Pre-Invoke {"mount -o remount,rw /boot";"mount -o remount,rw /usr";};` <br>
`DPkg::Post-Invoke {"mount -o remount,ro /boot";"mount -f -o remount,ro /usr";};` <br>
Ainsi les gestionnaires **apt**, **dpkg** doivent remonter les partitionnements
en question en écriture avant de faire la mise-à-jour système, et de le
remettre en lecture seulement, après…
#### /boot, /opt, /usr: Informations ANSSI
Pour info, la documentation de l'ANSSI en Octobre 2015, à-propos de <a href="http://www.ssi.gouv.fr/uploads/2015/10/NP_Linux_Configuration.pdf" title="Recommandations de configuration dun système GNU/Linux">configurer Linux de manière sécurisée</a>, informe que :
* `/boot` devrait avoir les options `nosuid,nodev,noexec` - *il est même
recommandé l'usage de l'option `noauto` de manière optionnelle, car
cela sous-tend qu'il faut comprendre les incidences et la gestion
générée d'ajouter cette dernière option !*
* `/opt` devrait avoir au moins les options `nosuid,nodev`
* `/usr` devrait avoir l'option, à minima, `*nodev`
---
### /tmp
Occupons nous du partitionnement lié à `/tmp`, et déclarons l'option la
plus importante, dans ce cas `noexec`, parce que nous ne voulons pas que
n'importe qui se serve de ce répertoire pour lancer n'importe quoi :
`UUID=1a7a999d-1e26-45f7-96c0-7d381887350d /tmp ext4 defaults,nodev,noexec,nosuid 0 2`
#### /tmp: Mise en garde
Le problème principal est le même que pour les options sur les partitionnements
`/boot`, et `/usr`, en mettant l'option `noexec`, lors des mises-à-jours
systèmes ou de l'installation d'un nouveau logiciel, cela **ne pourra pas
sexécuter correctement** !
Il faut pour cela rajouter dans les invocations *pre* et *post* en
demandant de remonter le partitionnement `/tmp` avec les droits `exec`,
puis à les enlever après le traitement :
{{< file "sec-linux-durcir-partitionnement-apt.conf" sh "/etc/apt/apt.conf" >}}
#### /tmp: Informations ANSSI
La documentation ANSSI sur la configuration Linux recommande les options
`nosuid,nodev,noexec` pour la partition `/tmp`
---
### /var, /var/tmp
Et la partition `/var` ?
On peut rajouter les options `grpquota,nodev,usrquota`
`UUID=e47dcfed-0d0a-486f-8f1c-63f9e8132590 /var ext4 defaults,grpquota,nodev,usrquota 0 2`
---
{{< note danger >}}**ATTENTION, ce qui suit ne fonctionne pas avec SystemD !**{{</note>}}
Quant au répertoire `/var/tmp`, il est intéressant de le supprimer, puis
de le lier vers le répertoire ou la partition `/tmp`, qui sera ainsi bien gérée.
`rm -rf /var/tmp` <br>
`ln -s /tmp /var/tmp` <br>
{{< note tip >}}Pensez à sauvegarder les fichiers dedans, pour les restaurer
ensuite… au besoin !{{</note>}}
#### /var: Informations ANSSI
La documentation ANSSI sur la configuration Linux recommande les options
`nosuid,nodev,noexec` pour toutes les partitions `/var`, `/var/log`,
`/var/tmp`
{{< note warning >}}Attention à l'impact de l'usage de l'option `noexec`
sur la partition `/var`, qui empêchera la création de répertoires et fichiers
temporaires lors des mises-à-jours, par exemple !{{</note>}}
---
### / la partition racine
Il est de bon ton, en terme de sécurité système, d'empêcher l'usage de **dev**
pour la racine système :
`UUID=7b8b0d04-7d60-44dd-98f3-6134065a42c3 / ext4 errors=remount-ro,nodev 0 1`
### /srv
Cette partition, dont le but actuel, est de "cloisonner" des services serveurs,
tels que web, base de données, a aussi sa propre recommandation de la part
de l'ANSSI :
* l'usage des options `nosuid,nodev` et de manière optionnelle, *si vous savez gèrer*,
les options `noexec,ro`<br> *il est clair que l'option `ro` pose son lot de problèmes, ne serait-ce
que pour certains sites web qui ont besoin au moins d'un répertoire où écrire…
à moins que vous redirigez ce genre d'écritures !*
### /home
L'ANSSI recommande les options `nosuid,nodev,noexec`
{{< note warning >}}Attention, toutefois, si vous utilisez le répertoire
`~/bin` qui, *dans les distributions telles que Debian, Ubuntu, (et assimilées)*,
est inclus dans la variable d'environnement `PATH`, puisque l'option `noexec`
vous empêchera d'exécuter tout binaire, même vos personnels !{{</note>}}
### shm
**shm** est l'accronyme de *shared memory* ; en doux français : *mémoire partagée*.
Sécuriser le point de montage correspondant est intéressant, afin d'empêcher
l'attaque contre certains services par ce biais, tel que celui d'un serveur web, par exemple.
#### /run/shm
Si vous avez le répertoire `/run/shm`, configurez le fichier `/etc/fstab`, ainsi :
`tmpfs /run/shm tmpfs defaults,nodev,noexec,nosuid 0 0`
#### /dev/shm
Si vous n'avez que `/dev/shm`, qui normalement ne pointe pas vers `/run/shm`,
modifiez `/etc/fstab` en remplaçant `/run/shm`, par `/dev/shm`.
## Remount
Bon, comme vous avez certainement dû le comprendre, pour remonter dynamiquement
un partitionnement, sans avoir à redémarrer le système, on utilise la commande
suivante - ***avec les droits administrateurs, bien sûr*** - :
`mount -o remount,options /nom_partition`
Et si vous avez le droit à une erreur, telle que `/partitionnement busy`,
préférez redémarrer la machine !
---

View File

@ -0,0 +1,96 @@
#!/bin/sh
###
#
# Author: Stéphane HUC
# mail: devs@stephane-huc.net
#
# License: GNU/GPL 3
#
# Github: https://git.framasoft.org/hucste/tools
#
# Date: 2016/05/12
#
###
###
#
# Change attributes system
#
###
arg="$1"
dirname="$(dirname $(readlink -f -- "$0"))"
email_to="email@domain.tld" # write your mail, here
email_from="Admin <admin@domain.tld>"
mail=0 # if u wish mail, set to 1
HOST="$(cat /etc/hostname)"
active() {
chattr -R +i /bin /boot /chroot /etc /opt /usr /root /sbin /lib* /initrd* /vmlinuz* 2> /dev/null
chattr -R -i /etc/adjtime /etc/blkid.tab /etc/mtab /etc/network/run /etc/udev/rules.d /var/lib /var/run 2> /dev/null
printf "Chattr immutable: active\n"
}
disable() {
chattr -R -i /bin /boot /chroot /etc /opt /usr /root /sbin /lib* /initrd* /vmlinuz* 2> /dev/null
printf "Chattr immutable: disable\n"
}
send_mail() {
case "$1" in
1|on|true) mssg="ACTIVE" ;;
0|off|false) mssg="DISABLE" ;;
esac
[ "$mail" -gt 0 ] && echo "Chattr immutable: ${mssg} on $HOST" | mail -S from="${email_from}" -s "Chattr immutable ~ $HOST" "${email_to}"
sleep 1
unset mssg
}
launcher() {
case "$arg" in
1|on|true)
active;
send_mail "$arg"
;;
0|off|false)
disable;
send_mail "$arg"
;;
*)
clear
N="service ${0##*/}"
echo "Usage: $N 0|off|false to disable immutable systems..." >&2
echo "Usage: $N 1|on|true to active immutable systems..." >&2
exit 1
;;
esac
}
verify_uid() {
if [ $(id -u) -ne 0 ]; then
printf "[ \\33[1;31m %s \\33[0;39m ] %s \n" "KO" "Need to get rights admins!"
exit 1
fi
}
verify_uid
launcher

View File

@ -0,0 +1,10 @@
DPkg::Pre-Invoke{
"mount -o remount,rw /boot";
"mount -o remount,exec /tmp";
"mount -o remount,rw /usr";
};
DPkg::Post-Invoke {
"mount -o remount,ro /boot";
"mount -o remount,noexec /tmp";
"mount -f -o remount,ro /usr";
};

View File

@ -0,0 +1,24 @@
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system=""> <mount point=""> <type> <options> <dump> <pass>
# / was on /dev/sdb1 during installation
UUID=7b8b0d04-7d60-44dd-98f3-6134065a42c3 / ext4 errors=remount-ro 0 1
# /boot was on /dev/sdb2 during installation
UUID=97aabf8d-fa78-4176-b681-888370fbc186 /boot ext4 defaults 0 2
# /home was on /dev/sdb8 during installation
UUID=73131a10-8549-4fe3-b769-1c24c9a9fd6e /home ext4 defaults 0 2
# /opt was on /dev/sdb6 during installation
UUID=20c0ddea-2db4-4ee5-982f-71b8df26c2fb /opt ext4 defaults 0 2
# /tmp was on /dev/sdb4 during installation
UUID=1a7a999d-1e26-45f7-96c0-7d381887350d /tmp ext4 defaults 0 2
# /usr was on /dev/sdb3 during installation
UUID=d84f16a8-d107-49d7-992d-bd9e78488ffd /usr ext4 defaults 0 2
# /var was on /dev/sdb5 during installation
UUID=e47dcfed-0d0a-486f-8f1c-63f9e8132590 /var ext4 defaults 0 2
# swap was on /dev/sdb7 during installation
#UUID=bf77db61-c7a7-4733-8e74-5f6e69a7de2e none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw,noauto 0 0

View File

@ -53,7 +53,7 @@ other = "Go to the Index : "
other = "Internal link to the article: "
[manageLang]
other = "Internationalization: "
other = "This site is multilanguage: "
[manpageTitle]
other = "OpenBSD Manual Page Server for: "

View File

@ -53,7 +53,7 @@ other = "Aller à l'index de la catégorie : "
other = "Lien interne vers l'article : "
[manageLang]
other = "Gestion multilangue : "
other = "Ce site est multilangue : "
[manpageTitle]
other = "Page du Manuel OpenBSD pour : "

182
static/svg/Tux.svg Normal file
View File

@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="500pt" height="600pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/">
<defs>
<linearGradient id="linearGradient172">
<stop style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" offset="0" id="stop173"/>
<stop style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" offset="1" id="stop174"/>
</linearGradient>
<linearGradient id="linearGradient167">
<stop style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" offset="0" id="stop168"/>
<stop style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" offset="1" id="stop169"/>
</linearGradient>
<linearGradient id="linearGradient162">
<stop style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" offset="0" id="stop163"/>
<stop style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" offset="1" id="stop164"/>
</linearGradient>
<linearGradient id="linearGradient153">
<stop style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" offset="0" id="stop154"/>
<stop style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" offset="1" id="stop155"/></linearGradient>
<linearGradient id="linearGradient138">
<stop style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" offset="0" id="stop139"/>
<stop style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" offset="1" id="stop140"/>
</linearGradient>
<linearGradient xlink:href="#linearGradient138" id="linearGradient141" x1="0.47424799" y1="0.020191999" x2="0.417539" y2="0.90125799" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient142" x1="0.55880702" y1="0.031192999" x2="0.553922" y2="0.94531101" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient143" x1="0.46557701" y1="0.028819799" x2="0.41365999" y2="0.93366498" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient144" x1="0.70346397" y1="0.059404202" x2="0.64553201" y2="0.94063401" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient145" x1="0.46741399" y1="-0.036155298" x2="0.86741799" y2="0.75857902" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient146" x1="0.57152498" y1="0.023441499" x2="0.57143003" y2="0.71875" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient147" x1="0.5" y1="0.0234362" x2="0.5" y2="0.8125" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient148" x1="0.50799799" y1="0.37435901" x2="0.51599997" y2="0.92820501" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient138" id="linearGradient149" x1="0.5" y1="0.131707" x2="0.50400001" y2="0.94634098" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient150" x1="-0.30509499" y1="0.099496603" x2="0.156323" y2="0.94191301" gradientUnits="objectBoundingBox" gradientTransform="matrix(-0.928523, 0.283938, 0.435332, 0.943857, -1.91327e-07, 5.49908e-08)"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient151" x1="0.433979" y1="0.022184599" x2="0.487055" y2="1.02569" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient152" x1="0.5" y1="0.89842999" x2="0.5" y2="0.40625" gradientUnits="objectBoundingBox" spreadMethod="reflect"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient156" x1="0.43568701" y1="0.98882002" x2="0.453989" y2="0.23093501" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient157" x1="0.49180499" y1="1.15284" x2="0.49482101" y2="0.41252401" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient158" x1="0.51730198" y1="0.85418499" x2="0.49843901" y2="0.136172" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient159" x1="0.46201" y1="0.87917101" x2="0.49215299" y2="0.096282303" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient162" id="linearGradient161" x1="0.50086302" y1="0.34872901" x2="0.41209599" y2="0.98558098" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient162" id="linearGradient165" x1="0.60399801" y1="0.51020199" x2="0.46399999" y2="0.98367399" gradientUnits="objectBoundingBox"/>
<linearGradient xlink:href="#linearGradient162" id="linearGradient166" x1="0.50000501" y1="0.191616" x2="0.50800002" y2="0.97005898" gradientUnits="objectBoundingBox"/>
<radialGradient xlink:href="#linearGradient172" id="radialGradient171" cx="0.5" cy="0.5" fx="0.5" fy="0.5" r="0.5" gradientUnits="objectBoundingBox"/>
<radialGradient xlink:href="#linearGradient172" id="radialGradient176"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient178" x1="0.94027299" y1="1.2934099" x2="0.19452" y2="-0.675295" gradientUnits="objectBoundingBox"/>
<radialGradient xlink:href="#linearGradient172" id="radialGradient1399" gradientTransform="scale(1.04523, 0.956725)" cx="446.77762" cy="1219.4125" fx="446.77762" fy="1219.4125" r="195.07191" gradientUnits="userSpaceOnUse"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient1401" gradientUnits="userSpaceOnUse" x1="400.57785" y1="369.53015" x2="400.84448" y2="304.07886" gradientTransform="scale(0.575262, 1.73834)"/>
<linearGradient xlink:href="#linearGradient138" id="linearGradient1403" gradientUnits="userSpaceOnUse" x1="303.01761" y1="237.93179" x2="297.0856" y2="330.09561" gradientTransform="scale(1.11607, 0.896001)"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient1405" gradientUnits="userSpaceOnUse" gradientTransform="scale(0.816497, 1.22474)" x1="378.93771" y1="278.60202" x2="380.27319" y2="243.91606"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient1407" gradientUnits="userSpaceOnUse" x1="381.38742" y1="277.495" x2="380.5517" y2="245.68338" gradientTransform="scale(0.816497, 1.22474)"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1409" gradientUnits="userSpaceOnUse" gradientTransform="scale(0.816497, 1.22474)" x1="379.09573" y1="240.92712" x2="376.79556" y2="281.01636"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1411" gradientUnits="userSpaceOnUse" x1="389.63535" y1="242.28218" x2="387.06866" y2="281.32513" gradientTransform="scale(0.816497, 1.22474)"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient1413" gradientUnits="userSpaceOnUse" spreadMethod="reflect" x1="437.57941" y1="528.87177" x2="437.57941" y2="394.10361" gradientTransform="scale(0.812855, 1.23023)"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient1415" gradientUnits="userSpaceOnUse" x1="375.17325" y1="419.78485" x2="377.48541" y2="324.03815" gradientTransform="scale(0.649784, 1.53897)"/>
<linearGradient xlink:href="#linearGradient138" id="linearGradient1417" gradientUnits="userSpaceOnUse" x1="320.75104" y1="498.17776" x2="321.32224" y2="614.50439" gradientTransform="scale(1.0748, 0.930408)"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1419" gradientUnits="userSpaceOnUse" x1="322.48257" y1="435.26761" x2="323.2514" y2="488.48251" gradientTransform="scale(1.077, 0.928504)"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1421" gradientUnits="userSpaceOnUse" x1="411.2215" y1="242.94365" x2="411.2215" y2="331.44858" gradientTransform="scale(0.571707, 1.74915)"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1423" gradientUnits="userSpaceOnUse" x1="867.34546" y1="234.73897" x2="867.33453" y2="314.83911" gradientTransform="scale(0.572667, 1.74621)"/>
<linearGradient xlink:href="#linearGradient162" id="linearGradient1425" gradientUnits="userSpaceOnUse" x1="236.25362" y1="657.11133" x2="212.5099" y2="737.41229" gradientTransform="scale(1.01151, 0.988617)"/>
<linearGradient xlink:href="#linearGradient153" id="linearGradient1427" gradientUnits="userSpaceOnUse" x1="381.56607" y1="655.73102" x2="279.64313" y2="386.66583" gradientTransform="scale(1.0655, 0.938527)"/>
<linearGradient xlink:href="#linearGradient162" id="linearGradient1429" gradientUnits="userSpaceOnUse" x1="218.11714" y1="630.30475" x2="203.12654" y2="737.8537" gradientTransform="scale(1.00985, 0.990245)"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1431" gradientUnits="userSpaceOnUse" gradientTransform="scale(1.00772, 0.992335)" x1="117.88966" y1="587.23602" x2="182.24524" y2="704.73077"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1433" gradientUnits="userSpaceOnUse" x1="223.10072" y1="570.41809" x2="230.53499" y2="710.97723" gradientTransform="scale(0.999504, 1.0005)"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1435" gradientUnits="userSpaceOnUse" x1="316.93988" y1="474.01779" x2="371.60889" y2="582.63507" gradientTransform="scale(1.0655, 0.938527)"/>
<linearGradient xlink:href="#linearGradient162" id="linearGradient1437" gradientUnits="userSpaceOnUse" x1="284.68652" y1="410.46326" x2="285.45923" y2="485.69934" gradientTransform="scale(1.21868, 0.820557)"/>
<linearGradient xlink:href="#linearGradient167" id="linearGradient1439" gradientUnits="userSpaceOnUse" x1="288.82358" y1="398.85422" x2="288.37628" y2="482.55939" gradientTransform="scale(1.22194, 0.81837)"/>
</defs>
<g id="g1369" transform="translate(-310.752, -64.2527)">
<path transform="matrix(1.4177, 0, 0, 0.414745, -38.7944, 222.194)" d="M 670.88202 1166.6423 A 203.89551 186.63016 0 1 1 263.091,1166.6423 A 203.89551 186.63016 0 1 1 670.88202 1166.6423 z" id="path175" style="fill: url(#radialGradient1399) rgb(0, 0, 0); stroke: none; stroke-width: 1pt; stroke-linecap: butt; stroke-linejoin: miter;"/>
<path transform="matrix(1.25, 0, 0, 1.25, 185.454, -167.505)" id="path106" d="M 223.627,632.24 C 201.239,600.017 196.873,495.256 249.114,430.81 C 275,399.892 281.604,378.345 283.645,349.417 C 285.034,316.438 260.32,217.975 353.528,210.473 C 447.934,202.941 442.864,296.133 442.321,345.448 C 441.87,387.088 472.895,410.689 494.117,443.143 C 533.396,502.773 530.074,605.443 486.718,661.015 C 431.801,730.583 384.765,700.413 353.528,702.945 C 295.035,706.147 293.101,737.336 223.627,632.24 z " style="fill: rgb(0, 0, 0); stroke: none; stroke-width: 1.25;"/>
<path transform="matrix(-1.67739, -0.0224516, -0.0211236, 1.4709, 1173.58, -293.017)" id="path113" d="M 246.571,470.864 C 234.332,483.36 202.175,539.956 251.44,576.224 C 268.809,588.857 235.063,635.719 219.435,612.532 C 191.865,570.914 210.604,505.591 227.75,482.344 C 239.402,465.857 256.98,459.668 246.571,470.864 z " style="fill: url(#linearGradient1401) rgb(0, 0, 0); stroke: none; stroke-width: 0.994649;"/>
<path transform="matrix(-1.67755, 0, 0, 1.52374, 1174.62, -318.082)" id="path111" d="M 256.513,459.837 C 236.598,477.554 200.337,539.928 253.225,580.443 C 270.595,593.075 237.832,632.906 219.435,612.532 C 155.472,541.712 221.104,460.278 243.697,432.282 C 263.889,407.935 281.775,438.034 256.513,459.837 z " style="fill: rgb(0, 0, 0); stroke: rgb(0, 0, 0); stroke-width: 0.977298;"/>
<path transform="matrix(1.26626, -0.0713667, -0.0459795, 1.19574, 202.143, -125.761)" d="M 399.56879 258.15753 A 58.37323 46.863022 0 1 1 282.82233,258.15753 A 58.37323 46.863022 0 1 1 399.56879 258.15753 z" id="path114" style="fill: url(#linearGradient1403) rgb(0, 0, 0); stroke: none; stroke-width: 1.26499;"/>
<path transform="matrix(1.30445, -0.0755326, 0.0771251, 1.34257, 144.757, -177.617)" d="M 328.86324 320.64151 A 18.087479 27.131195 0 1 1 292.68828,320.64151 A 18.087479 27.131195 0 1 1 328.86324 320.64151 z" id="path115" style="fill: url(#linearGradient1405) rgb(0, 0, 0); stroke: none; stroke-width: 1.17873;"/>
<path transform="matrix(-1.81082, 0.0495107, 0.0317324, 1.55333, 1207.46, -284.777)" d="M 328.86324 320.64151 A 18.087479 27.131195 0 1 1 292.68828,320.64151 A 18.087479 27.131195 0 1 1 328.86324 320.64151 z" id="path116" style="fill: url(#linearGradient1407) rgb(0, 0, 0); stroke: none; stroke-width: 0.931385;"/>
<path transform="matrix(-0.823196, -0.00176123, -0.0182321, 0.852662, 913.674, -37.9902)" d="M 328.86324 320.64151 A 18.087479 27.131195 0 1 1 292.68828,320.64151 A 18.087479 27.131195 0 1 1 328.86324 320.64151 z" id="path117" style="fill: rgb(0, 0, 0); stroke: none; stroke-width: 1.86496;"/>
<path transform="matrix(0.59438, -0.0722959, 0.0688176, 0.705838, 367.448, 32.4186)" d="M 328.86324 320.64151 A 18.087479 27.131195 0 1 1 292.68828,320.64151 A 18.087479 27.131195 0 1 1 328.86324 320.64151 z" id="path118" style="fill: rgb(0, 0, 0); stroke: none; stroke-width: 2.39815;"/>
<path transform="matrix(-0.480323, -0.036454, -0.0467935, 0.475606, 813.496, 87.0124)" d="M 328.86324 320.64151 A 18.087479 27.131195 0 1 1 292.68828,320.64151 A 18.087479 27.131195 0 1 1 328.86324 320.64151 z" id="path121" style="fill: url(#linearGradient1409) rgb(0, 0, 0); stroke: none; stroke-width: 3.19161;"/>
<path transform="matrix(0.35691, -0.0408211, 0.0413232, 0.398544, 449.334, 114.991)" d="M 328.86324 320.64151 A 18.087479 27.131195 0 1 1 292.68828,320.64151 A 18.087479 27.131195 0 1 1 328.86324 320.64151 z" id="path122" style="fill: url(#linearGradient1411) rgb(0, 0, 0); stroke: none; stroke-width: 4.12026;"/>
<path transform="matrix(1.25, 0, 0, 1.25, 185.454, -168.23)" id="path128" d="M 258.702,495.425 C 271.538,466.322 298.816,415.199 299.397,375.667 C 299.397,344.225 393.576,336.716 401.134,368.109 C 408.692,399.502 427.875,446.592 440.084,469.265 C 452.292,491.937 487.893,563.96 449.968,626.811 C 415.811,682.455 312.243,726.477 256.958,619.254 C 238.355,582.047 241.673,535.939 258.702,495.425 z " style="fill: url(#linearGradient1413) rgb(0, 0, 0); stroke: none; stroke-width: 1.25;"/>
<path transform="matrix(1.38936, -0.111074, 0.102211, 1.30214, 108.413, -165.938)" id="path112" d="M 242.905,473.815 C 231.642,492.782 207.405,543.124 255.042,575.862 C 306.353,610.682 301.515,672.924 239.435,637.817 C 182.658,606.028 216.59,500.039 234.925,475.551 C 247.032,458.337 264.822,437.52 242.905,473.815 z " style="fill: url(#linearGradient1415) rgb(0, 0, 0); stroke: none; stroke-width: 1.15804;"/>
<path transform="matrix(1.25, 0, 0, 1.25, 185.454, -167.505)" id="path109" d="M 256.513,449.72 C 239.048,478.228 197.136,545.533 253.225,580.443 C 328.794,626.798 307.398,673.154 238.426,631.417 C 141.317,573.153 226.601,455.801 265.557,411.079 C 310.001,360.879 274.111,420.166 256.513,449.72 z " style="fill: rgb(0, 0, 0); stroke: rgb(0, 0, 0); stroke-width: 1.25;"/>
<path id="path125" d="M 421.481,504.727 C 421.481,537.139 392.209,579.243 341.953,578.865 C 290.125,579.32 268.004,537.139 268.004,504.727 C 268.004,472.315 302.383,446.01 344.743,446.01 C 387.102,446.01 421.481,472.315 421.481,504.727 z " style="font-size: 12px; fill: url(#linearGradient1417) rgb(0, 0, 0); stroke: none; stroke-width: 1.23705; stroke-dasharray: none;" transform="matrix(1.30209, 0, 0, 1.22525, 170.042, -153.557)"/>
<path id="path127" d="M 398.227,412.292 C 397.615,450.864 375.047,459.963 346.487,459.963 C 317.926,459.963 297.195,454.269 294.746,412.292 C 294.746,385.978 317.926,370.75 346.487,370.75 C 375.047,370.75 398.227,385.978 398.227,412.292 z " style="font-size: 12px; fill: url(#linearGradient1419) rgb(0, 0, 0); stroke: none; stroke-width: 1.38846; stroke-dasharray: none;" transform="matrix(1.1868, 0, 0, 1.06708, 210.623, -100.078)"/>
<path transform="matrix(1.25, 0, 0, 1.25, 185.454, -167.505)" id="path129" d="M 234.285,456.475 C 252.001,429.479 289.3,388.111 241.262,462.288 C 202.311,523.331 226.859,562.561 239.518,573.327 C 276.045,605.889 274.484,627.676 245.913,610.533 C 184.288,573.907 197.078,512.285 234.285,456.475 z " style="fill: url(#linearGradient1421) rgb(0, 0, 0); stroke: none; stroke-width: 1.25;"/>
<path transform="matrix(1.25, 0, 0, 1.25, 185.454, -167.505)" id="path131" d="M 490.662,467.52 C 475.343,435.819 426.528,355.618 492.988,448.917 C 553.449,533.214 511.01,591.93 503.452,597.744 C 495.895,603.557 470.315,615.184 477.873,594.837 C 485.43,574.49 523.107,535.864 490.662,467.52 z " style="fill: url(#linearGradient1423) rgb(0, 0, 0); stroke: none; stroke-width: 1.25;"/>
<path transform="matrix(1.25, 0, 0, 1.25, 185.454, -167.505)" id="path132" d="M 220.915,716.921 C 180.473,695.505 121.663,721.045 143.013,662.855 C 147.289,649.617 136.638,629.847 143.594,616.929 C 151.733,601.231 169.174,604.72 179.639,594.255 C 189.957,583.364 196.498,564.606 215.683,567.513 C 234.867,570.42 247.628,593.974 261.027,622.742 C 270.91,643.38 305.968,672.406 303.677,695.5 C 300.981,731 260.65,737.69 220.915,716.921 z " style="fill: url(#linearGradient1425) rgb(0, 0, 0); stroke: rgb(230, 140, 63); stroke-width: 6.25;"/>
<path id="path177" d="M 415.072,495.764 C 412.065,520.67 379.259,572.391 345.554,577.298 C 311.294,582.634 279.122,543.238 271.407,506.184 C 261.518,464.978 293.994,448.584 343.345,449.557 C 396.646,451.211 417.466,463.448 415.072,495.764 z " style="font-size: 12px; fill: url(#linearGradient1427) rgb(0, 0, 0); stroke: none; stroke-width: 2.8551; stroke-dasharray: none;" transform="matrix(0.598206, 0.268584, -0.239623, 0.617213, 700.568, 140.464)"/>
<path transform="matrix(-1.1685, 0.423145, 0.475283, 1.16478, 728.343, -213.821)" id="path133" d="M 220.274,718.402 C 178.947,694.812 120.38,724.007 143.013,662.855 C 147.749,649.787 136.417,629.303 143.373,616.385 C 151.512,600.687 169.174,604.72 179.639,594.255 C 189.957,583.364 198.466,566.387 217.651,569.294 C 236.835,572.201 247.628,593.974 261.027,622.742 C 270.91,643.38 304.442,671.713 302.151,694.807 C 299.455,730.307 259.427,740.278 220.274,718.402 z " style="fill: url(#linearGradient1429) rgb(0, 0, 0); stroke: rgb(230, 140, 63); stroke-width: 6.25068;"/>
<path transform="matrix(-0.945096, 0.343745, 0.424076, 0.956058, 714.328, -64.342)" id="path134" d="M 216.482,675.68 C 129.951,618.177 169.174,604.72 179.639,594.255 C 189.957,583.364 198.466,566.387 217.651,569.294 C 236.835,572.201 247.628,593.974 261.027,622.742 C 270.91,643.38 304.087,671.66 302.151,694.807 C 299.535,721.917 253.961,700.294 216.482,675.68 z " style="fill: url(#linearGradient1431) rgb(0, 0, 0); stroke: none; stroke-width: 1.52532;"/>
<path transform="matrix(1.00431, -0.052286, -0.0174, 1.04575, 244.191, -28.4653)" id="path135" d="M 216.506,677.071 C 129.975,619.568 169.709,603.501 182.56,595.791 C 197.959,585.849 197.718,564.96 216.903,567.867 C 236.087,570.774 247.628,593.974 261.027,622.742 C 270.91,643.38 304.087,671.66 302.151,694.807 C 299.535,721.917 253.985,701.685 216.506,677.071 z " style="fill: url(#linearGradient1433) rgb(0, 0, 0); stroke: none; stroke-width: 1.52532;"/>
<path id="path136" d="M 415.072,495.764 C 412.065,520.67 379.259,572.391 345.554,577.298 C 311.294,582.634 279.122,543.238 271.407,506.184 C 261.518,464.978 293.994,448.584 343.345,449.557 C 396.646,451.211 417.466,463.448 415.072,495.764 z " style="font-size: 12px; fill: rgb(0, 0, 0); stroke: none; stroke-width: 2.8551;" transform="matrix(0.515584, 0.215259, -0.206526, 0.49467, 713.3, 222.559)"/>
<path id="path137" d="M 415.072,495.764 C 412.065,520.67 379.259,572.391 345.554,577.298 C 311.294,582.634 279.122,543.238 271.407,506.184 C 261.518,464.978 293.994,448.584 343.345,449.557 C 396.646,451.211 417.466,463.448 415.072,495.764 z " style="font-size: 12px; fill: url(#linearGradient1435) rgb(0, 0, 0); stroke: none; stroke-width: 2.8551;" transform="matrix(0.351231, 0.149463, -0.128856, 0.343469, 724.522, 318.291)"/>
<path transform="matrix(1.25, 0, 0, 1.25, 185.454, -167.505)" id="path119" d="M 309.954,338.729 C 317.101,331.959 334.765,311.663 367.915,332.974 C 374.077,336.984 379.077,337.351 390.936,342.429 C 414.662,352.178 403.318,375.688 378.192,383.537 C 367.434,387.026 357.656,400.093 338.063,398.976 C 321.329,397.999 316.944,387.102 306.665,381.07 C 288.396,370.759 285.7,356.816 295.565,349.417 C 305.431,342.018 309.29,339.358 309.954,338.729 z " style="fill: url(#linearGradient1437) rgb(0, 0, 0); stroke: rgb(230, 140, 63); stroke-width: 3.75;"/>
<path transform="matrix(1.25, 0, 0, 1.25, 185.454, -167.505)" id="path120" d="M 391.251,357.645 C 381.368,358.226 359.858,379.736 337.185,379.736 C 314.512,379.736 301.141,358.807 297.653,358.807" style="fill: none; stroke: rgb(230, 140, 63); stroke-width: 2.5;"/>
<path transform="matrix(0.627885, 0, 0, 0.595666, 392.366, 51.8173)" id="path123" d="M 309.954,338.729 C 317.101,331.959 339.645,313.381 369.542,332.401 C 375.841,336.167 382.346,340.266 392.02,345.865 C 411.182,357.613 401.691,374.543 378.734,385.255 C 368.316,389.75 351.141,399.67 338.063,398.976 C 323.53,397.568 314.128,387.577 304.496,381.07 C 286.826,368.767 287.899,358.833 296.107,350.562 C 302.312,344.883 309.29,339.358 309.954,338.729 z " style="fill: url(#linearGradient1439) rgb(0, 0, 0); stroke: none;"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB