Il existe peu de client FTP gérant SSL sous Linux.
lftp en fait partie.
Voici un exemple d'utilisation du SSL avec ce dernier:
[binarym@gco]:~% lftp
lftp :~> set ftp:ssl-force on
lftp :~> open -u binarym ftp.yanluo.net
Password:
lftp binarym@ftp.yanluo.net:~> ls
`ls' at 0 [FEAT negotiation...]
Voila! Facile non ?
Je pense que cela peut s'appliquer à d'autres modèles de laptop.
J'ai à plusieurs reprises testé de faire fonctionner la mise en vieille de mon portable via l'ACPI en vain.
Et ce soir, je regardai avec attention le fichier /usr/src/linux/Documentation/kernel-parameters.txt quand j'ai vu ça:
acpi_sleep=[HW,ACPI] Sleep options
Format: { s3_bios, s3_mode }
See Documentation/power/video.txt
J'ai testé le paramètre:
acpi_sleep=s3_bios
et la Ô joie ! Ca marche, ça se met en veille et se réveille nickel !
Précisions:
Mon noyau est un 2.6.10 et est patché -lenb.
J'ai du mettre à jour le driver pour mon chipset wireless (ipw2100) à la version 1.0-5 (problème lors du réveil fixé à la version 1.0-3).
Je me demandais quel port ouvrir pour mldonkey quand une idée à surgit dans ma tête !
Les ports à ouvrir sont ceux sur lesquels il écoute pardi !
Voici ce que cela donne chez moi:
[root@mass]:~# netstat -lpn |grep mlnet
tcp 0 0 0.0.0.0:4000 0.0.0.0:* LISTEN 15402/mlnet
tcp 0 0 0.0.0.0:4001 0.0.0.0:* LISTEN 15402/mlnet
tcp 0 0 0.0.0.0:6881 0.0.0.0:* LISTEN 15402/mlnet
tcp 0 0 0.0.0.0:4002 0.0.0.0:* LISTEN 15402/mlnet
tcp 0 0 0.0.0.0:6882 0.0.0.0:* LISTEN 15402/mlnet
tcp 0 0 0.0.0.0:16934 0.0.0.0:* LISTEN 15402/mlnet
tcp 0 0 0.0.0.0:4080 0.0.0.0:* LISTEN 15402/mlnet
tcp 0 0 0.0.0.0:4662 0.0.0.0:* LISTEN 15402/mlnet
udp 0 0 0.0.0.0:32782 0.0.0.0:* 15402/mlnet
udp 0 0 0.0.0.0:16934 0.0.0.0:* 15402/mlnet
udp 0 0 0.0.0.0:5293 0.0.0.0:* 15402/mlnet
udp 0 0 0.0.0.0:4666 0.0.0.0:* 15402/mlnet
Une commande bien utile quand la queue de postfix est pleine de MAILER-DAEMON ou autres est la commande postsuper.
Cette commande permet de en autre de supprimer un mail de la queue avec la syntaxe:
postsuper -d id_du_mail
l'id étant une chaine de la forme 9C71D1EF6DB.
Bon, le tips doit trainer un peu partout sur le net, mais peu importe.
Si d'aventure vous êtes confronté à un réseau pas sympa où le seule moyen de sortir sur le net est un proxy Squid mais que toutefois celui ci accepte la méthode HTTP Connect pr le SSL, alors voici la solution pour sortir tout de même en ssh:
1/ Prérequis:
- Une machine sous linux disposant d'une ip publique.
- Une machine sous linux au boulot.
2/ Méthode:
- Sur la machine qui dispose d'une ip publique, rajouté cette règle iptables:
iptables -t nat -A PREROUTING -s ip_de_sortie_du_boulot -p tcp --dport 443 -j REDIRECT --to 22
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- Installer corkscrew sur la machine du boulot (ici)
- Pour finir, toujours sur la machine du boulot, rajouter les lignes suivantes dans le /etc/ssh/ssh_config ou le ~/.ssh/config
Host la_machine_avec_ip_publique
ProxyCommand corkscrew ip_proxy port_proxy ip_machine_publique port_machine_publique (ici 443)
Et voilà, y a plus qu'à lancer une petit
ssh la_machine_avec_ip_publique
et c'est gagné :)
Toi aussi tu n'as aucune confiance en personne, et dès que tu t'éloignes de ta machine de plus de 2m tu la lockes ?
Tu utilises screen et tu le lockes aussi au cas ou xlock se vautrerait comme une merde ?
Et bien voilà le "tip of the day".
Rajoute la ligne suivante dans ton ~/.screenrc:
idle 120 lockscreen
Et voilà, au bout de deux minutes d'inactivité, ton screen se lockera tout seul comme un grand !
Bon, aujourd'hui, tip rapide sur SSH, qui fait suite à ma lecture assidue de la page de man pour le précédent tip sur Squid.
Donc, assez peu de gens utilisent les possibilités magiques du ~/.ssh/config, par meconnaissance des possibilités qu'il offre.
Exemple typique, le login que vous utilisez sur votre machine de travail est rob, mais votre login sur le serveur en prod est robert, ce qui vous oblige à chaque fois à taper:
ssh rober@prod
Relou au possible n'est ce pas ?
C'est la qu'intervient le .ssh/config:
Host prod
User robert
Et plop, c'est réglé !
Donc au menu des directives 'achement utiles:
- Compression: active la compression
- IdentityFile: permet de préciser la clef publique utilisée pour se connecter
- LocalForward, RemoteForward: met en place des redirections de port ala ssh -L
- Port: Permet de changer le port destination.
Fini donc les
ssh -i pouet.key -L 10143:mail:143 -p 2222 rober@prod
Et à vous le
ssh prod
Qui fait tout bien tout seul !
Donc, extrait d'une conversation IRC:
03/11/2005 17:25 < jm> dites ya un moyen d'executer deux programmes en envoyant la sortie de l'un sur l'entrée de l'autre, et la sortie du second sur l'entrée du premier ?
03/11/2005 17:26 < jm> exemple : plop | pwet | plop
03/11/2005 17:26 < jm> où plop ne serait qu'un seul et meme programme
03/11/2005 17:27 < binarym> hmmm
03/11/2005 17:27 < binarym> pipe unix ?
03/11/2005 17:28 < jm> c'est faisable ?
03/11/2005 17:28 < binarym> bah ouai
03/11/2005 17:28 < binarym> mkfifo plop
03/11/2005 17:28 < binarym> enfin
03/11/2005 17:28 < binarym> pr pas s'embrouiller
03/11/2005 17:28 < binarym> on va fire mkfifo fifo
03/11/2005 17:29 < binarym> cat fifo | plop | pwet > fifo
03/11/2005 17:29 < binarym> y a pas de raison que ça marche po à priori
03/11/2005 17:29 < jm> ah ok c nickel ca :)
03/11/2005 17:29 < binarym> jm: t'es en train de perdre mon ptit jm j'ai l'impression
03/11/2005 17:30 < jm> ^^
03/11/2005 17:30 < binarym> et si tu veux en plus garder une trace de ce qui est passé ds ton fifo
03/11/2005 17:30 < binarym> cat fifo | plop | pwet |tee log > fifo
Tu es admin, et tu n'aimes pas un de tes collègues ?
Soit donc *méchant* et *sale* (comme tout bon admin qui se respecte):
iptables -I FORWARD 1 -p tcp --(d|s)port le port -(s|d) la machine -m limit --limit 30/m -j ACCEPT
iptables -I FORWARD 2 -p tcp --(d|s)port le port -(s|d) la machine -j DROP
A adapter selon vos besoins ... en gros, netfilter laisser passer 30 paquets par minutes puis arrêtera tout bonnement. L'emploi du -j DROP permet de provoquer un lag conséquent. Un -j REJECT quant à lui coupera la connexion, plus violent et voyant donc.
Qemu est un émulateur de machine bien pratique pour les tests en tout genre.
Si l'on veut modifier le contenu de ces images off-line (sans démarrer le système dans Qemu), instinctivement, on aura tendance à taper:
[root@gc]:/home/gco/Site/Qemu# mount -o loop qemu-hdd /mnt/loop
ioctl: LOOP_CLR_FD: Device or resource busy
mount: you must specify the filesystem type
Et oui, c'est logique ! Car Qemu utilise des images de disques:
[root@gc]:/home/gco/Site/Qemu# file qemu-hdd
qemu-hdd: x86 boot sector, code offset 0x48
Une recherche rapide sur internet nous donne une solution:
mount -o loop,offset=32256 /mnt/loop
Parfait, cela fonctionne très bien ! Mais nous n'avons accès de cette façon qu'à la première partition :(
Pour avoir accès au autres partitions, c'est très simple, demonstration:
[root@gc]:/home/gco/Site/Qemu# fdisk qemu-hdd
You must set cylinders.
You can do this from the extra functions menu.
Command (m for help): u
Changing display/entry units to cylinders
Command (m for help): p
Disk qemu-hdd: 0 MB, 0 bytes
32 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
qemu-hdd1 * 63 66527 33232+ 83 Linux
qemu-hdd2 66528 1090655 512064 83 Linux
qemu-hdd3 1090656 1999871 454608 83 Linux
Nous savons que la première partition est à l'offset 32256 pour mount et à 63 pour fdisk (et effectivement 32256/63 nous donne 512 comme indiqué par fdisk).
Nous n'avons donc qu'à multiplier la valeur du start de fdisk par 512 pour tomber sur la partition qui nous intéresse...
Soit dans le cas présent, pour monter la seconde partition:
[gco@gc]:~% bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
66528*512
34062336
[root@gc]:/home/gco/Site/Qemu# mount -o loop,offset=34062336 qemu-hdd /mnt/loop
[root@gc]:/home/gco/Site/Qemu# ls /mnt/loop
bin boot dev etc fcskoptions home initrd lib lost+found mnt opt proc root sbin tmp usr var
Nul besoin de configuration compliqué pour se connecter en ssh à B en passant via A
ssh -tt useAr@A "ssh -tt userB@B"
Evidemment, si les clefs sont installées sur les bécanes ça marchent mieux.