(10)

KDE à la télé !!!

Un envoyé spécial du 29 Avril intéressant sur les énergies renouvelables, qui fait le constat de ce que j'étais déjà convaincu… que des charlots tous ces installateurs de panneaux solaires et d'éoliennes ! http://envoye-special.france2.fr/

Pas de mystère, on retrouve le même comportement que dans ces autres métiers genre plombier et autres artisans en bâtiment, y compris spécialistes en bilan machin truc… magouille et cie !

Prestations pourries, effectuées à l'arrache en dépit du bon sens et des contraintes techniques… et vazy que je t'enfume avec le label qualité…
Bref, des pratiques de voyous qui font monter les prix des bons artisans, car il y en a… tout le problème étant de le dégotter du premier coup.
Ha et l'argument de vente du crédit d'impôt, «voyez ma bonne dame, ça vous fait 50% de ristourne grâce à l'état providence»… pffff ben voyons, c'est plutôt une bonne occasion de gonfler les prix !!! Ce genre de mesure ne profite pas aux consommateurs, mais bien aux arnaqueurs et artisans opportunistes. L'état paiera, obligé qu'il est d'encourager de cette manière les gens à s'équiper de dangereuses hélices qui se détachent pour aller se planter dans le jardin du voisin hahaha… Alors que d'autres solutions plus efficaces existent !%%

Hum, bref, Tout ça pour noter que le spectateur attentif mais néanmoins introduit dans le milieu du GNU/Linux, aura sans doute remarqué dans le reportage titré «Découverte : Mystère et boule de gomme» que certains chirurgiens dentistes font apparemment judicieusement appel à des entreprises informatique innovantes… quand je repense à mon dentiste, qui ma raconté ses misères avec ses ordi sous Ouinedose®…

Allé, je suis gentil, voici juste l'extrait qui nous intéresse, si tu lis encore mes bêtises, suffit de mater l'ordi, avec de belles roue dentés KDE qui m'ont fait tilter, puis le tableau de bord avec sa maison «home», etc

Fail2Ban, ça marche !!

Que faire lorsqu'en matant nonchalamment ses logs apache ou mail, on aperçoit des activités suspectes et inquiétantes ?

Apr  1 03:59:06 debianbox postfix/smtpd[23214]: warning: 112.104.64.66: hostname 112-104-64-66.adsl.dynamic.seed.net.tw verification failed: Name or service not known
Apr  1 03:59:06 debianbox postfix/smtpd[23214]: connect from unknown[112.104.64.66]
Apr  1 03:59:07 debianbox postfix/smtpd[23214]: NOQUEUE: reject: RCPT from unknown[112.104.64.66] 554 5.7.1 <vbibiorm@gmail.com>: Relay access denied; from=<wendy67510@gmail.com> to=<vbibiorm@gmail.com> proto=SMTP helo=<212.198.153.217>
Apr  1 03:59:07 debianbox postfix/smtpd[23214]: lost connection after RCPT from unknown[112.104.64.66]
Apr  1 03:59:07 debianbox postfix/smtpd[23214]: disconnect from unknown[112.104.64.66]
Apr  1 04:02:27 debianbox postfix/anvil[23217]: statistics: max connection rate 1/60s for (smtp:112.104.64.66) at Apr  1 03:59:06
Apr  1 04:02:27 debianbox postfix/anvil[23217]: statistics: max connection count 1 for (smtp:112.104.64.66) at Apr  1 03:59:06
Apr  6 13:53:43 debianbox postfix/smtpd[11331]: warning: 117.93.116.180: hostname 180.116.93.117.broad.yc.js.dynamic.163data.com.cn verification failed: Name or service not known
Apr  6 13:53:43 debianbox postfix/smtpd[11331]: connect from unknown[117.93.116.180]
Apr  6 13:53:44 debianbox postfix/smtpd[11331]: lost connection after AUTH from unknown[117.93.116.180]
Apr  6 13:53:44 debianbox postfix/smtpd[11331]: disconnect from unknown[117.93.116.180]
Apr  7 17:02:13 debianbox postfix/smtpd[19164]: connect from 123-205-233-194.adsl.dynamic.seed.net.tw[123.205.233.194]
Apr  7 17:02:14 debianbox postfix/smtpd[19164]: NOQUEUE: reject: RCPT from 123-205-233-194.adsl.dynamic.seed.net.tw[123.205.233.194] 554 5.7.1 <vbibiorm@gmail.com>: Relay access denied; from=<wendy67510@gmail.com> to=<vbibiorm@gmail.com> proto=SMTP helo=<212.198.153.217>
Apr  7 17:02:14 debianbox postfix/smtpd[19164]: lost connection after RCPT from 123-205-233-194.adsl.dynamic.seed.net.tw[123.205.233.194]
Apr  7 17:02:14 debianbox postfix/smtpd[19164]: disconnect from 123-205-233-194.adsl.dynamic.seed.net.tw[123.205.233.194]
Apr  8 13:08:00 debianbox postfix/smtpd[10575]: connect from 118-166-210-124.dynamic.hinet.net[118.166.210.124]
Apr  8 13:08:00 debianbox postfix/smtpd[10575]: lost connection after CONNECT from 118-166-210-124.dynamic.hinet.net[118.166.210.124]
Apr  8 13:08:00 debianbox postfix/smtpd[10575]: disconnect from 118-166-210-124.dynamic.hinet.net[118.166.210.124]
Apr  9 22:56:46 debianbox postfix/smtpd[8262]: connect from 118-166-208-126.dynamic.hinet.net[118.166.208.126]
Apr  9 22:56:47 debianbox postfix/smtpd[8262]: NOQUEUE: reject: RCPT from 118-166-208-126.dynamic.hinet.net[118.166.208.126] 554 5.7.1 <vkihwpdh@yahoo.com.tw>: Relay access denied; from=<z2007tw@yahoo.com.tw> to=<vkihwpdh@yahoo.com.tw> proto=SMTP helo=<212.198.153.217>
Apr  9 22:56:47 debianbox postfix/smtpd[8262]: lost connection after RCPT from 118-166-208-126.dynamic.hinet.net[118.166.208.126]
Apr  9 22:56:47 debianbox postfix/smtpd[8262]: disconnect from 118-166-208-126.dynamic.hinet.net[118.166.208.126]

Rien pourrait'-on se dire, «les ports sont ouverts» :(
Et pourtant il est possible de bannir pour un temps donné ces malotrus !!

«yaka» installer Fail2Ban (nécessite iptables pour NetFilter)

#apt-get install fail2ban


Vérifier le fichier de configuration : /etc/fail2ban/fail2ban.conf

      [Definition]
      loglevel = 1
      logtarget = /var/log/fail2ban.log
      socket = /var/run/fail2ban/fail2ban.sock

Et il va donc nous faire ça !! du moins c'est ce qu'on croit…

En effet des filtres sont chargés de repérer les IP des malandrins, pour ensuite les transférer à la prison.
C'est donc valable pour les filtres donnés par défaut, mais en cas d'autres activités suspectes, il va falloir créer ses propres filtres !

On crée donc un fichier «.conf» à l'emplacement prévu ! attention , ne pas utiliser de majuscules !

#vi /etc/fail2ban/filter.d/dynamicseed.conf

et on le remplit avec ça :

[Definition]
failregex = warning: <HOST>: hostname *.* verification failed
            NOQUEUE: reject: RCPT from unknown[[]<HOST>[]] *.* Relay access denied
            NOQUEUE: reject: RCPT from *.*[[]<HOST>[]] *.* Relay access denied
            connect from *.*dynamic*.*[[]<HOST>[]]
            disconnect from *.*dynamic*.*[[]<HOST>[]]
ignoreregex =

«Ça», ça tombe pas du ciel, c'est basé sur l'observation des log précédents.

Le but du jeux, c'est de copier une partie du log qui contient l'adresse IP et de la remplacer par <HOST>
Attention cependant, la syntaxe est spécifique quand l'IP est encadrée dans le log

[118.166.208.126] devient [[]<HOST>[]]

De même, si un espace est présent, il faut aussi le respecter !
La où il faut être malin, c'est qu'il faut mettre des *.* aux endroits où le texte change au fil des log.
En effet, même si le filtre fonctionne à l'instant T, il risque de ne plus rien filtrer la fois suivante, alors que la forme du log aura changé…
Donc, plus on a d'attaques, plus on peut affiner la syntaxe du filtre et petit à petit l'étau se resserre, pour que le filtre choppe à tous les coups niark!
D'autant plus qu'on peut mettre plusieurs lignes contenant l'IP…

Il faut maintenant tester ce filtre avant de l'indiquer à la prison.
Pour ce faire, on inscrit en premier le chemin du log qu'on veut filtrer et ensuite le chemin du filtre

#fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/dynamicseed.conf

Donne :

Running tests
=============

Use regex file : /etc/fail2ban/filter.d/dynamicseed.conf
Use log file   : /var/log/mail.log


Results
=======

Failregex
|- Regular expressions:
|  [1] warning: <HOST>: hostname *.* verification failed
|  [2] NOQUEUE: reject: RCPT from unknown[[]<HOST>[]] *.* Relay access denied
|  [3] NOQUEUE: reject: RCPT from *.*[[]<HOST>[]] *.* Relay access denied
|  [4] connect from *.*dynamic*.*[[]<HOST>[]]
|  [5] disconnect from *.*dynamic*.*[[]<HOST>[]]
|
`- Number of matches:
   [1] 1 match(es)
   [2] 1 match(es)
   [3] 7 match(es)
   [4] 2 match(es)
   [5] 1 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary
=======

Addresses found:
[1]
    66.11.228.136 (Thu Apr 22 10:18:43 2010)
[2]
    205.209.161.50 (Thu Apr 22 12:25:27 2010)
[3]
    123.204.200.199 (Wed Apr 21 03:38:08 2010)
    205.209.161.50 (Thu Apr 22 12:25:27 2010) (already matched)
    64.57.183.77 (Sat Apr 24 14:28:37 2010)
    64.57.183.77 (Sat Apr 24 14:28:37 2010)
    64.57.183.77 (Sat Apr 24 14:28:37 2010)
    64.57.183.77 (Sat Apr 24 14:28:38 2010)
    64.57.183.77 (Sat Apr 24 14:28:38 2010)
[4]
    123.204.200.199 (Wed Apr 21 03:38:07 2010)
    123.204.200.199 (Wed Apr 21 03:38:09 2010)
[5]
    123.204.200.199 (Wed Apr 21 03:38:09 2010) (already matched)

Date template hits:
764442 hit(s): Month Day Hour:Minute:Second
0 hit(s): Weekday Month Day Hour:Minute:Second Year
0 hit(s): Weekday Month Day Hour:Minute:Second
0 hit(s): Year/Month/Day Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/Month/Year:Hour:Minute:Second
0 hit(s): Year-Month-Day Hour:Minute:Second
0 hit(s): Day-Month-Year Hour:Minute:Second[.Millisecond]
0 hit(s): TAI64N
0 hit(s): Epoch
0 hit(s): ISO 8601

Success, the total number of match is 12

Ça marche !!! les adresses ont été trouvées

Maintenant, on va ajouter le filtre au fichier prison

#vi /etc/fail2ban/jail.conf

En ajoutant ça à la fin

[dynamicseed]

enabled = true
bantime = 3600000
filter = dynamicseed
action   = iptables[name=dynamicseed, port=smtp]
          sendmail-whois[name=dynamicseed, dest=xxxx@mondomaine.net]
logpath = /var/log/mail.log
maxretry = 1

Respectivement :

  • On active le filtre.
  • Pour une durée de 41 jours (en secondes).
  • Le nom du filtre, qui correspond au nom du fichier sans .conf. ! attention , ne pas utiliser de majuscules !
  • Les deux lignes action vont permettre d'indiquer le port et l'envoie d'un mail pour prévenir en cas d'activation de la prison.
  • Donner le chemin du fichier log à surveiller.
  • Et enfin, le nombre de fois au bout duquel on coffre le suspect.


Et pour finir on va, soit recharger les prisons :

#fail2ban-client reload

Soit redémarrer fail2ban :

#/etc/init.d/fail2ban restart

Pour vérifier que la prison fonctionne, on lance :

#fail2ban-client dynamicseed


Et Vérifier qu'il n'y ait pas d'erreur… parfois je ne sais pourquoi, certaines prisons ne se lancent pas, et il est nécessaire de relancer à nouveau le démon.

#tail -f /var/log/fail2ban.log


«yapuka» attendre… jusqu'au jour ou on reçoit un mail

Objet 	[Fail2Ban] dynamicseed: banned 205.209.161.50
De 	Fail2Ban         À 	xxxx@mondomaine.net
Date 	Jeu 11:25

Hi,

The IP 205.209.161.50 has just been banned by Fail2Ban after
1 attempts against dynamicseed. […]


On peut alors aller voir les adresses bloquées

#iptables -L
Chain fail2ban-dynamicseed (1 references)
target     prot opt source               destination
DROP       all  --  205.209.161.50       anywhere
DROP       all  --  66-11-228-136.managemyvps.com  anywhere
DROP       all  --  123-204-200-199.adsl.dynamic.seed.net.tw  anywhere
RETURN     all  --  anywhere             anywhere


Voici une version modifiée de la prison, pour pouvoir bloquer les adresse IP sur plusieurs port à la fois

[dynamicseed]

enabled = true
bantime = 3600000
filter = dynamicseed
action = iptables-multiport[name=dynamicseed, port="smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s"]
         sendmail-whois[name=dynamicseed, dest=xxxx@mondomaine.net]
logpath = /var/log/mail.log
maxretry = 1

Screencast, capturer son écran avec ffmpeg

Screencast ou capturer une vidéo de son écran est bien utile quand on veut faire des démonstrations vidéo.
Plusieurs logiciel existent, comme istanbul ou recordmydesktop qui capturent puis compressent une vidéo de l'écran directement en ogg (théora+vorbis)
Mais malgré tous les tests effectués aucun d'eux ne m'a donné satisfaction… trop d'images perdues, vidéo saccadée, résolution trop petite… etc

J'ai alors lut parlé qu'on pouvait faire la même chose avec ffmpeg, en ligne de commande donc… ahhh cette fameuse ligne de commande Ô combien puissante et pratique, qui fait si peur aux noob et nous fait passer pour des bêtes curieuses.

Seulement voila, de base, la version de ffmpeg disponible dans mon système d'exploitation ne dispose pas de ce qu'il faut pour capturer l'écran, c'est à dire x11grab.
Il faut donc compiler les source de ffmpeg avec les options nécessaire… après pas mal de tentatives infructueuses, j'ai découvert sur le Planet Ubuntu qu'il fallait des sources patchées.

j'étais tellement content de l'avoir trouvé que j'ai repris une partie de cet article ^^
http://planet.ubuntu-fr.org/post/2006/09/21/Faire-du-screencast-sous-Ubuntu

On installe les paquets nécessaires :

   $ sudo apt-get install build-essential xlibs-dev ffmpeg

On crée le répertoire nécessaire :

   $ mkdir screencap && cd screencap

On récupère le fichier de source et on l'extrait :

   $ wget http://lecoindespotes.free.fr/ubuntu/screencast/ffmpeg-0.4.9-p20051216.tar.bz2 && tar xjfv ffmpeg-0.4.9-p20051216.tar.bz2 && cd ffmpeg-0.4.9-p20051216

Il faut maintenant le patcher afin de lui permettre de faire du screen capture :

   $ wget http://lecoindespotes.free.fr/ubuntu/screencast/ffmpeg-0.4.9-p20051216.diff && patch -Np1 -i ffmpeg-0.4.9-p20051216.diff

Il ne nous reste plus qu'à compiler :

    $ ./configure --extra-ldflags=-L/usr/X11R6/lib --enable-x11grab --enable-gpl && make

Il se peut que la compilation se passe mal, vérifiez que vous ayez un executable ffmpeg, le reste du paquet ne nous intéresse pas vraiment. On obtient alors un exécutable 'ffmpeg'

Pour lancer une capture, il suffit de taper ce genre de commande :

   $ ./ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024x768 ~/test.avi

La puissance de la «ligne de commande», c'est qu'on va pouvoir customiser la capture !
Par exemple, j'ai utilisé ça :

$ ./ffmpeg -acodec pcm_s16le -vcodec mpeg4 -b 1000 -r 25 -g 300 -vd x11:0,0 -s 1280x960 ~/screencast004.avi

La capture sonore en PCM 16 bits à été ajoutée :

  • -acodec pcm_s16le

La capture vidéo est en MPEG4

  • -vcodec mpeg4

25 images/secondes sont capturées :

  • -r 25

La taille de la vidéo est adaptée à la résolution de mon écran :

  • -s 1280x960

Même commande, sans l'audio, qui m'a servit à capturer le tuto cinelerra

$ ./ffmpeg -an -vcodec mpeg4 -b 1000 -r 25 -g 300 -vd x11:0,0 -s 1280x960 ~/screencast008.avi

La commande

$ ./ffmpeg -formats

donne la liste des codecs utilisable à la capture, reste à tester et choisir ceux qui vous conviennent !

Malgré ces paramètres exigeant en ressources, la capture est parfaite, alors que les logiciels cités plus haut ont étés bien incapable de faire le 1/4 de ce qu'a réalisé cette commande ffmpeg :)

Utiliser son camescope pour relire un montage vidéo

CableVideoAudioRCAjack.pngFilmer des trucs c'est bien, les monter c'est bien mieux, mais comment visionner son montage vidéo ailleurs que sur son ordinateur, sans s'embêter à graver un DVD (encore faut-il disposer d'un lecteur de salon) ou à convertir la vidéo en Xvid ou autres formats plus ou moins exotiques imprévisibles du lecteur numérique qui s'imposera le moment venu ?

Après quelques essais, je suis parvenu à leurer mon camescope ^^

En effet, que contient une carte mémoire SD ?

  • Un dossier sd_video contenant parfois plusieurs sous dossiers prg00x.
  • Puis à l'intérieur, ce qui nous intéresse, les vidéos qu'on a filmé, sous la forme de deux fichiers, un .mod et un .moi.

- Le .mod, qui peut -être lut directement ou renommé .mpg après avoir été copié sur son disque dur, contient la vidéo au format mpeg2.
- Le .moi, s'apparente sans doute à un fichier d'index utile au moteur logiciel de la caméra, mais il ne nous sert à rien.

  • Et enfin un fichier nommé prg00x.pgi, index qui contient la liste des vidéos contenues dans le dossier.

Donc, si je peux lire ces vidéos depuis la carte SD dans la caméra (car fabriquée par elle), on peut imaginer en ajouter une autre dedans pourvu quelle soit dans le format mpeg2 compatible avec elle et nommée mov00x.mod

Mais ça ne marche pas, sans le .moi.
Si on copie un .moi d'une autre vidéo ça fonctionne, mais seulement de la durée de la vidéo à laquelle on a piqué le .moi… vous suivez toujours ?

Donc la solution que j'ai trouvé est simple :

  1. Une fois le montage fait en format mpeg2, on le renomme : mov008.mod si la carte SD contient déjà 7 autres vidéos.
  2. Le montage dure 10 min ? Et bien déclenchez un enregistrement de 10 min ou + sur la caméra.
  3. Jeter la vidéo de 10 min ou + qui vient d'être faite (le .mod donc) et gardez de movxxx.moi !!!
  4. Transférer le montage, mov008.mod sur la carte SD.
  5. Re-nommer le movxxx.moi en mov008.moi.
  6. Supprimer le fichier prg00x.pgi, il sera recréé à l'allumage de la caméra, en tenant compte de la vidéo ajoutée.

Voila, le couple de fichiers est en place, reste à remettre la carte SD dans la caméra et de tenter une lecture !

Grâce au câble vidéo fournit avec la caméra on pourra alors lire son montage via la caméra sur n'importe quel Télé disposant d'entrées Vidéo/Audio cinch (prise RCA jaune, rouge et blanche)

Viper MkII

Commandée sur starshipmodeler lundi dernier, cette jolie boîte est arrivée pile une semaine après ^^
Et quelle bonne surprise coté emballage ! Très belle illustration, devant, mais aussi derrière, alors que ce fond est à 99% des fois en carton gris. De plus, les angles sont prés-pliés permettant alors d'aplatir le carton sans l'abîmer afin de le stocker plus facilement…
dsc06798.jpg dsc06800.jpg
On aperçoit sur la tranche les images de ce qui pourrait être les prochaines maquettes éditées par Moebius, qui ne s'est pas moqué de nous, avec également une belle notice en papier glacé toute en couleur et riches d'illustrations…

Bref, j'ai jamais vu ça dans ma petite expérience de maquettiste, même FineMolds ne fait pas d'emballage aussi beau !
Coté plastique par contre on est loin de la finesse de ce dernier, à moins que ce soit l'échelle plus importante qui me fasse penser cela… J'en saurais plus une fois l'engin monté.

dsc06799.jpg dsc06802.jpg

Haut de page