298 private links
5 mai 2013, sortie de la prochaine version de Debian, Debian 7 nommée "Wheezy" (toujours en rapport avec le film d'animation Toy Story, je crois que ce sont les nombreux petits bonhommes verts).
Et avec Linux Mint 15 “Olivia” pour fin mai (http://blog.linuxmint.com/?p=2299), je pense que le mois de mai sera un bon mois.
Sinon, il existe aussi Linux Mint Debian Edition, donc basé sur une Debian, et non sur une Ubuntu ; selon mon avis, LMDE est plus propre que Linux Mint, mais bon, le problème avec Debian, c'est qu'il faut attendre longtemps en général avant la mise à jour de certains paquets, et autre point, le partionnement en GPT n'est toujours pas supporté (quoique pour un petit disque de netbook, c'est du chichi de faire en GPT).
Du coup, je n'arrive pas à me décider. :-/
Overlay (une sorte de dépôts, pour la distribution Gentoo) pour Mate DE (Desktop Environnement)
Parce que je ne retrouve jamais ces commandes, voilà, je sais qu'ici, je m'en souviendrai :
free -m
sync && echo 3 > /proc/sys/vm/drop_caches
Nouvelle version du compilateur de référence dans le monde du logiciel libre.
Bonne anniversaire RMS :-) (a eu 60 ans ce 16 mars).
Wow, ça m'avait toujours intéressé ce genre de techno, mais si c'est disponible pour un si petit prix, je pense que je vais me laisser tenter :D
Dans la série "les problèmes que j'ai rencontrés, et qu'avoir la solution est bien pratique", je présente le problème du "parse new line" :
Concrètement, imaginez que vous devez, pour X ou Y raisons, "analyser" (venant de l'anglais "to parse" http://translate.google.fr/translate_t?q=to+parse) les "retours à la ligne" ("new line") pour les modifier en d'autres caractères (comme '\n', textuellement), un simple "sed 's/\n/mon_texte/g'" ne fonctionnera.
Ainsi, merci à StackOverFlow pour la réponse suivante :
sed ':a;N;$!ba;s/\n/mon_texte/g' mon_fichier.txt
Je copie simplement ici l'explication (principalement au cas où le lien meurt) :
This will read the whole file in a loop, then replaces the newline(s) with a space.
- create a label via :a
- append the current and next line to the pattern space via N
- if we are before the last line, branch to the created label $!ba ($! means not to do it on the last line (as there should be one final newline)).
- finally the substitution replaces every newline with a space on the pattern space (which is the whole file).
Il existe aussi tr :
tr '\n' ' ' < mon_fichier.txt
Mais tr ne remplace que par un SEUL caractère ... dommage.
Pour ceux qui veulent en savoir plus, un commentaire un peu plus bas explique bien mieux http://stackoverflow.com/a/7697604
Si comme moi -- j'étais jeune et insouciant … -- vous ne comprenez pas pourquoi certaines de vos règles iptables ne fonctionnent pas (celles qui n'arrivent pas à bloquer certains maudits botnets qui continuent toujours et encore de vous spammer le port SSH), voici le rappel de la règle d'or d'iptables -- et d'autres outils utilisant les ACL mêmes -- et une commande en bash pour pouvoir ban simplement et facilement une adresse IP :
La règle d'or, c'est celle-ci :
les règles sont lues de haut en bas, et dès qu'une règle correspond à aux informations du paquets, iptables redirige vers la cible. POINT.
Alors, ce n'est pas forcément clair tout de suite, mais on va détailler avec un exemple :
Disons qu'à l'heure actuelle, vous aviez cette configuration :
iptables --list --numeric --verbose (ou -L -nv)
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
5771 442K ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
771K 99M ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 DROP all -- 1.2.3.4 0.0.0.0/0
0 0 DROP all -- 8.8.8.8 0.0.0.0/0
69993 5147K fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
5765 483K ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
2107 118K ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW tcp dpt:22
432 458K ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW tcp dpt:25
51 2604 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW tcp dpt:80
0 0 REJECT all -- * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 5 packets, 820 bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-SSH (1 references)
pkts bytes target prot opt in out source destination
69914 5142K RETURN all -- 0.0.0.0/0 0.0.0.0/0
Je ne vais pas détailler ici les différentes règles, ce sont celles de base, plus fail2ban pour SSH.
Disons que vous souhaitez bloquer l'adresse IP 16.32.64.128 ; sur le web, on trouve :
iptables -A INPUT -s 16.32.64.128 -j DROP
Pour un résultat :
…
432 458K ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW tcp dpt:25
51 2604 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW tcp dpt:80
0 0 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
0 0 DROP all -- 16.32.64.128 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
…
Or, problème : si la machine derrière l'IP 16.32.64.128 tente de se connecter au service web, sur le port 80, la 9ème règle répondra donc d'abord à la requête avec la 11ème (en dernière place donc), qui, cette dernière, spécifiait de bloquer complètement tout le trafic en provenance.
Conclusion, c'est l'échec.
Pour résoudre ça, il faut donc que notre nouvelle règle se retrouve avant d'autres règles qui joueraient en sa faveur.
Cette solution existe : c'est l'option --insert (-I, --insert chain [rulenum] rule-specification), à la place de --append (-A),
avec [rulenum] qui indique le numéro de la ligne où la nouvelle règle s'écrira avant (man 8 iptables explique bien mieux que moi).
Du coup, oubliez "iptables -A INPUT -s 16.32.64.128 -j DROP", et faites place à "iptables -I INPUT 3 -s 16.32.64.128 -j DROP"
avec "3", la position de la nouvelle règle, donc juste après "771K 99M ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED". (à adapter à vos besoins bien sûr !)
Ainsi, pour se simplifier la tâche, nous pouvons donc créer cette fonction en bash pour ainsi BAN simplement une adresse ip :
function ban() {
mode=${2:-"DROP"}
iptables --table filter --insert INPUT 3 --source $1 --jump $mode
}
et ça fonctionne comme ça :
ban ip_à_ban
Simple, non ?
Bien sûr, ceux qui l'ont remarqué peuvent spécifier une deuxième option (nommée mode), qui par défaut est DROP, comme REJECT, voire ACCEPT même ; ainsi, en spécifiant ACCEPT, vous pouvez de cette façon autoriser complètement une adresse IP, la vôtre par exemple, lorsque sur un serveur distant, vous voulez ne pas être bloqué par votre firewall ;) (tout le contraire de ban ^^')
C'est magique ! :D
Ah ! Voilà une bonne nouvelle !
Moi qui souhaitait ce FS pour pouvoir l'utiliser sur mes supports amovibles, sur du multi-plateforme, et qui permet d'avoir des tailles de fichier supérieurs à 4Gio (== 2³²), voilà une bonne nouvelle :)
(Maudit Microsoft qui fait exprès de n'implémenter que ces propres FS, juste pour éviter de voir ces "utilisateurs" partir …)
Je trouve que c'est un article très intéressant sur le principe de description d'une image.
Toujours agaçant de rechercher cette information, alors je vais la mettre ici :
NOTE : Avec la version d'iptables 1.4.16.3 (en tout cas, supérieur à 1.4.12), le module "state" (par exemple dans "--match state --state <state>") devient obsolète, et est donc remplacé par le module "conntrack", donc pour équivalent, faites --match conntrack --ctstate <state> (voir iptables-extensions(8)). Ainsi, je mets donc les commandes pour la nouvelle version.
L'interface reliée au net sera notée WAN, et celle qui permet donc de relier les machines qui n'ont pas accès au net, sera appelée LAN.
--table nat --append POSTROUTING --out-interface WAN --jump MASQUERADE
--table filter --append FORWARD --in-interface WAN --out-interface LAN --match conntrack --ctstate RELATED,ESTABLISHED --jump ACCEPT
--table filter --append FORWARD --in-interface LAN --out-interface WAN --jump ACCEPT
Ah oui, et bien sûr, il faut activer le transfert de paquets :
Pour du temporaire, jusqu'au prochain reboot : echo 1 > /proc/sys/net/ipv4/ip_forward
Mais sinon, ça se passe dans /etc/sysctl.conf : net.ipv4.ip_forward = 1
(Remarquez la ressemblance entre la hiérarchie net/ipv4/ip_forward et la variable net.ipv4.ip_forward, cela peut vous donner des idées sur certaines config si vous ne trouvez pas d'infos sur le web ;))
Article de Wikipedia : https://en.wikipedia.org/wiki/Network_Address_and_Port_Translation
Autre source, utilisant les mêmes règles : https://serverfault.com/questions/431593/iptables-forwarding-between-two-interface#431607
~% mkdir temp
~% cd temp
~/temp% echo le fichier caché > .cache
~/temp% echo le fichier normal > normal
~/temp% tar -cvf ~/archive_dossier.tar .
./
./.cache
./normal
~/temp% tar -cvf ~/archive_etoile.tar *
normal
Déjà, on voit que le fichier .cache N'est PAS archivé.
~/temp% tar -tvf ~/archive_dossier.tar
drwxr-x--- thican/thican 0 2013-01-08 19:17 ./
-rw-r----- thican/thican 18 2013-01-08 19:17 ./.cache
-rw-r----- thican/thican 18 2013-01-08 19:17 ./normal
~/temp% tar -tvf ~/archive_etoile.tar
-rw-r----- thican/thican 18 2013-01-08 19:17 normal
Oui, on vient de confirmer que les fichiers cachés NE sont PAS archivés.
Mais il y a autre chose de différent : le dossier actuel.
~/temp% mkdir ~/temp_dossier
~/temp% ls -ld ~/temp_dossier
drwxr-x--- 2 thican thican 6 8 janv. 19:21 ~/temp_dossier/
~/temp% chmod o=rX ~/temp_dossier
~/temp% ls -ld ~/temp_dossier
drwxr-xr-x 2 thican thican 6 8 janv. 19:21 ~/temp_dossier/
~/temp% cd ~/temp_dossier
~/temp_dossier% tar -xvf ~/archive_dossier
./
./.cache
./normal
~/temp_dossier% ls -la
total 12
drwxr-x--- 2 thican thican 32 8 janv. 19:17 ./
drwxr-x--x 16 thican thican 4096 8 janv. 19:22 ../
-rw-r----- 1 thican thican 18 8 janv. 19:17 .cache
-rw-r----- 1 thican thican 18 8 janv. 19:17 normal
Tiens tiens, les droits sur le dossier actuels ont changés !
~/temp_dossier% mkdir ~/temp_etoile
~/temp_dossier% ls -ld ~/temp_etoile
drwxr-x--- 2 thican thican 6 8 janv. 19:23 ~/temp_etoile/
~/temp_dossier% chmod o=rX ~/temp_etoile
~/temp_dossier% ls -ld ~/temp_etoile
drwxr-xr-x 2 thican thican 6 8 janv. 19:23 ~/temp_etoile/
~/temp_dossier% cd ~/temp_etoile
~/temp_etoile% tar -xvf ~/archive_etoile.tar
normal
~/temp_etoile% ls -la
total 8
drwxr-xr-x 2 thican thican 19 8 janv. 19:24 ./
drwxr-x--x 17 thican thican 4096 8 janv. 19:24 ../
-rw-r----- 1 thican thican 18 8 janv. 19:17 normal
Et là non, les droits N'ont PAS changés.
Bref, "tar ." et "tar *" sont bels et biens différents.
Intéressant.
Quelques infos pour ma config d'OpenLDAP, j'en aurais besoin plus tard, je garde ça sous le coude.
Intéressant, si l'on souhaite configurer certains paramètres plus liés à l'hardware dans le système avec les noyaux Linux.
Des infos intéressantes sur la façon dont est gérée la SWAP sous GNU/Linux.
La Steam Box, mouais, en fait, c'est inintéressant ; tout simplement parce que le hardware, ce n'est pas le fond de commerce de Valve, et puis, la SteamBox va vite rencontrer le problème des PC, c'est à dire le hardware qui risque de ne plus être assez puissant pour faire fonctionner les derniers jeux, alors que les consoles de salon n'ont aucun soucis de ce côté.
Le seul avantage, c'est une meilleure intégration de Steam dans GNU/Linux, donc, les constructeurs vont devoir faire de meilleurs pilotes pour Linux s'ils veulent faire parti de la SteamBox. :D
Fork de udev.
Petite note :
Si vous cherchez un gestionnaire de partitions en mode texte, qui sait gérer les partitions GPT -- GUID Partition Table https://en.wikipedia.org/wiki/GUID_Partition_Table -- mais pas les partitions MBR (bien joué Camus), et que vous connaissez déjà fdisk, découvrez gdisk. :-)
Par contre, vu qu'il ne "sait" pas gérer les partitions MBR, uniquement GPT, il faut donc utiliser fdisk (ça doit être le principe du K.I.S.S, on utilise plusieurs outils plutôt que d'avoir un outil qui fait tout).
Donc, MBR → fdisk et GPT → gdisk.
J'ai tenté avec parted, mais je n'ai pas réussi à faire des partitions relatives, genre +20G pour faire une partition de 20 Gio (= 20 * (2¹⁰)³).
Convertir tout en MAJUSCULES
% echo "OhlALA, maIS c'ESt ILLisible." | sed 's/.*/\U&/'
OHLALA, MAIS C'EST ILLISIBLE.
Convertir tout en minuscules
% echo "OhlALA, maIS c'ESt ILLisible." | sed 's/.*/\L&/'
ohlala, mais c'est illisible.
Et bien sûr, ça fonctionne dans vim. ;-)
Oui, c'est le U d'UPPER case, et le L de lower case.
Je n'avais que la première, j'ai réussi à trouver en devinant :-)