BlogoGeek

Mon blog fourre-tout de geekeries, tuto, script, culture, ...

Aucun commentaire

Il est très facile d'écrire du texte verticalement dans LibreOffice.
Placez votre curseur où vous voulez, allez dans le menu Format, Caractère, onglet Position et cochez 90 ou 270 degré.



Pour créer une étiquette postale faites un tableau à 2 cases, écrivez l'adresse de l'expéditeur dans la case de gauche, verticalement, et l'adresse d'envoi dans celle de droite.
Pensez ensuite à éventuellement cacher les bords du tableau (menu Tableau, Propriété du tableau, onglet Bordure)
Knock, knock


Notez que si le texte vertical est dégueulasse à l'écran il sort tout à fait normalement sur l'imprimante.


Source : http://ask.libreoffice.org/en/question/3990/how-to-rotate-in-text-documents/


LibreOffice version : 4.2.4.2

1 commentaire

Introduction

Il existe une myriade de layouts différents pour écrire sur son smartphone, des plus basiques aux plus paramétrables mais il faut avouer que rien ne remplace un bon vieux clavier physique.

Si vous avez besoin d'entrer un (long) mot de passe sur une application ou envie d'écrire un SMS alors que vous êtes assi à votre PC, autant utiliser le clavier de l'ordi.

Pour faire ça sur Android il suffit de 2 applications.

Quick Keyboard Switch

Quick Keyboard Switch vous donne la possibilité d'ajouter un widget sur votre bureau qui permettra de changer de layout en une pression.
Oui, la dame est jolie, mais là n'est pas le sujet

Remote Web Desktop

Description

Cette appli installe un nouveau clavier utilisable, via le Wi-Fi, depuis un ordinateur connecté au même réseau que le téléphone.

Historique

Pendant longtemps l'appli a été disponible en version gratuite et en version payante.
La version gratuite à été renommée 3CX DroidDesktop lors d'une mise à jour mais n'est plus supportée et elle redirige vers 2X MDM - Device Management qui ne fonctionne pas de la même manière (j'y reviendrai)

Du coup je vous propose de vous tourner vers la dernière version packagée connue, la 5.9.5.
Si l'appli vous plait, pensez à l'acheter ensuite sur le playstore, ça vaut la peine.

Installation

Téléchargez et installez RWD, cela va créer un clavier appelé WiFi Keyboard.
Pressez sur le widget Quick Keyboard Switch puis sur "Configurer les modes de saisie", ça vous amène à la liste des claviers de votre téléphone, avec le nouveau WiFi Keyboard qu'il faut cocher.
Cochez WiFi Keyboard

Maintenant, lorsque vous activerez le clavier wifi, l'application Remote Web Desktop démarrera automatiquement.
C'est ce point précis qu'il manque dans 2X MDM et qui est pour moi rédhibitoire.

Description

Remote Web Desktop démarre un serveur web sur le téléphone auquel vous pouvez acceder depuis le navigateur d'un ordinateur connecté au même réseau que le téléphone.
L'adresse vous est donnée dans la barre de notification du téléphone.
Adresse à rentrer dans votre navigateur

Utilisation

Une fois que vous aurez accedé au serveur cliquez sur l'icone WiFi Keyboard. Tout ce que vous taperez dans la zone de texte apparaitra sur le téléphone (en temps réel si vous cochez "Real time mode" ou après une validation avec Enter sinon), pour autant que vous ayez donné le focus à un objet qui accepte un texte.

Ouvrez le clavier WiFi.


Tapez le texte voulu et validez avec Enter.

Lorem ipsum dolor sit ta mère !
Le texte apparaît sur le téléphone.
Notez, tout en bas du téléphone, le bandeau qui remplace le clavier et qui indique que vous avez bien choisi le clavier WiFi.

Paramétrage

Depuis l'application, sur le téléphone, vous pouvez définir le port du serveur et surtout un mot de passe à donner lors de la connexion. Utilise si vous êtes sur un grand réseau.
Paramètres de Remote Web Desktop

Bonus

Plusieurs autres fonctionnalités sont disponible via RWD, dont la deuxième plus utile à mon goût : le partage de presse-papier.
Il est possible de d'obtenir ou d'envoyer des informations au presse-papier du téléphone ou du pc, en un click.




Remote Web Desktop version : 5.9.5
Quick Keyboard Switch version : 3.2
CyanogenMod version : 11.0-InstallerXNPQ32P

3 commentaires

Si vous souhaitez créer un fichier dont le nom contient la date du jour :

touch mon_fichier_`date +%F`.txt
Notez l'utilisation des deux "apostrophes inversée" que vous pouvez écrire avec ALT+96.
Résultat : mon_fichier_2015-02-27.txt

Pour avoir l'heure en plus :
touch mon_fichier_`date +%F_%T`.txt
Résultat : mon_fichier_2015-02-27_16:00:00.txt


Source : http://www.linuxquestions.org/questions/linux-newbie-8/howto-create-a-file-based-on-date-in-bash-179045/


Debian version : 6.0.10

11 commentaires

Installation

Préparer la base de donnée MySQL
mysql -u root -p
CREATE USER ts3_user IDENTIFIED BY 'UN_BON_PASSWORD';
CREATE DATABASE teamspeak3;
GRANT ALL on teamspeak3.* to ts3_user;
FLUSH PRIVILEGES;

Créer un utilisateur dédié
su -
adduser teamspeak
su teamspeak
cd /home/teamspeak

Télécharger et deployer
cd /home/teamspeak
wget http://dl.4players.de/ts/releases/3.0.10.3/teamspeak3-server_linux-amd64-3.0.10.3.tar.gz
tar -xvzf teamspeak3-server_linux-amd64-3.0.10.3.tar.gz
mv teamspeak3-server_linux-amd64 teamspeak3
cd teamspeak3

Configurer
vi ts3db_mysql.ini
[config]
host=localhost
port=3308
username=ts3_user
password=UN_BON_PASSWORD
database=teamspeak3
socket=

vi ts3server.ini
machine_id=176.31.190.70
default_voice_port=9987
voice_ip=0.0.0.0
liscensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10021
query_ip=0.0.0.0
dbplugin=ts3db_mysql
dbpluginparameter=ts3db_mysql.ini
dbsqlpath=sql/
dbsqlcreatepath=create_mysql/
logpath=logs
logquerycommands=1

Rendre debian squeeze (6.x) compatible avec libmysqlclient15off (source)
wget http://archive.debian.org/debian/pool/main/m/mysql-dfsg-5.0/libmysqlclient15off_5.0.51a-24+lenny5_amd64.deb
mv libmysqlclient15off_5.0.51a-24+lenny5_amd64.deb libmysqlclient15off.deb
dpkg --install libmysqlclient15off.deb

1er démarrage
./ts3server_minimal_runscript.sh inifile=ts3server.ini

Notez bien le token et le password qui vous est donné dans la console.
Ce code vous sera demandé la 1ère fois que vous vous connecterez à votre serveur via un client TeamSpeak.

Si jamais vous le perdez vous pourrez le retrouver dans la base de donnée.
mysql -u ts3_user -p
select value from server_properties where ident='virtualserver_autogenerated_privilegekey';

Script de démarrage
vi /etc/init.d/teamspeak3
#!/bin/bash

TS_DIR="/home/teamspeak/teamspeak3"
TS_USER="teamspeak"
RUN_SCRIPT="ts3server_startscript.sh"
INI_FILE="ts3server.ini"

start_ts() {
		echo "Lancement du server TeamSpeak"
		sudo -u $TS_USER $TS_DIR/$RUN_SCRIPT start inifile=$TS_DIR/$INI_FILE > /dev/null &
}

stop_ts() {
		echo "Arrêt du serveur TeamSpeak"
		sudo -u $TS_USER $TS_DIR/$RUN_SCRIPT stop
}

case "$1" in
	start)
		start_ts
	;;
	stop)
		stop_ts
	;;
	restart)
		stop_ts
		sleep 2
		start_ts
	;;
	*)
		echo "Usage du script : $0 {start|stop|restart}"
	;;
esac

Lancement automatique au démarrage de la machine
update-rc.d teamspeak3 start 99 2 .

Administration

Vous pouvez administrer votre teamspeak depuis la console Debian (voir la section Login telnet) mais pour plus de confort il existe une interface web qui répondra à la majorité de vos attentes.

cd /var/www
wget http://www.team-bielefeld.de/teamspeak_3/downloads/webinterface/ts3_webinterface_psychokiller_3.3.rar
unrar x ts3_webinterface_psychokiller_3.3.rar
mv ts3wi ts3webadmin
chown -R www-data:www-data ts3webadmin/

Licence

La version sans licence, gratuite, vous permet de créer 1 serveur et d'héberger 32 personnes au maximum.
Vous pouvez acheter différentes licences pour repousser ces limitations ou alors demander une licence NON-PROFIT.
Elle est accordée aux gens ne faisant pas d'argent avec leur site web et accueillant une communauté importante (plus de 32 personnes) régulièrement.
Pour être éligible il faut
  • Un nom de domaine
  • Un site web sur ce domaine montrant de l'activité communautaire (pour info mon simple forum phpbb hébergeant une soixantaine de personne m'a permi d'obtenir la licence)
  • Une adresse email associée à ce nom de domaine
  • Ne faire aucun profit d'aucune sorte. Même les boutons de donations vous excluent de l'offre.

Si votre demande est acceptée vous recevez la licence par email dans un fichier licensekey.dat.

Uploader ce fichier sur votre serveur puis :
sudo mv ./licensekey.dat /home/teamspeak/teamspeak3/
vi ts3server.ini
liscensepath=./licensekey.dat

/etc/init.d/teamspeak3 restart

Login telnet

Si vous voulez envoyer des commandes à teamspeak sans passer par l'interface web loggez vous avec telnet sur l'adresse ip de la machine et sur le port "query_port" défini dans ts3server.ini
telnet 176.31.190.70 10021
login serveradmin [PSW]


Sources :
Installation : http://blog.cp2i.com/post/2010/05/08/Installer-un-serveur-TeamSpeak-3-sous-Debian-Linux
Configuration : https://craym.eu/tutoriels/voip/installer_serveur_teamspeak3.html


Debian version : 6.0.10
Teamspeak version : 3.0.10.3 on Linux

Aucun commentaire

Pour renforcer la sécurité certains préconisent d'utiliser l'anti-rootkit rkhunter.

Je ne l'ai pas encore installé mais voici la procédure au cas où :

apt-get install rkhunter
vi /etc/default/rkhunter
REPORT_EMAIL="votre.mail@mail.com"
CRON_DAILY_RUN="yes"

En cas de faux-positif :
vi /etc/rkhunter.conf
ALLOWHIDDENDIR=CHEMIN_DU_SCRIPT_LEGITIME


Source : http://www.alsacreations.com/tuto/lire/622-Securite-firewall-iptables.html


Debian version : 6.0.10

5 commentaires

Sendmail, mon gestionnaire d'email est mal configuré.

Mon fichier /var/log/xconsole.log est pourri de

Feb 12 09:20:05 vps22441 sm-msp-queue[29620]: t1C601rZ029306: to=root, delay=02:20:04, xdelay=00:00:00, mailer=relay, pri=661781, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]

toutes les 20 minutes le cron essaye d'envoyer une série d'email sans succès.

Voici comment je l'ai installé.
apt-get remove exim4
apt-get remove postfix
apt-get install sendmail
vi /etc/mail/sendmail.cf

Cherchez "# SMTP daemon options" et changez le port pour 587
O DaemonPortOptions=Family=inet,  Name=MTA-v4, Port=587, Addr=127.0.0.1

/etc/init.d/sendmail restart

Le cron responsable : /etc/cron.d/sendmail
La configuration de sendmail qui doit merder : /etc/mail/sendmail.conf

Supprimer les mails en attente :
su -
rm /var/spool/mqueue/*
rm /var/spool/mqueue-client/*

Je ne vais pas investiguer plus car je pense passer à postfix de toute façon.


Versions
Debian : 6.0.10 (squeeze)

Aucun commentaire

Préambule

Ce billet fait suite à celui sur la sécurisation de votre VPS que je vous conseille de lire avant d'attaquer celui-ci.

Tout d'abord je tiens à faire remarquer que depuis que j'ai reconfiguré SSH sur mon serveur je n'ai plus vu aucune tentative d'intrusion dans mes logs. Je suppose que c'est dû au changement du port par défaut car les bots n'essayaient pas de se logger en root et j'avais déjà le Protocol 2.

Mais ce n'est pas une raison pour ne pas s'en protéger quand même puisqu'il est assez facile de trouver sur quel port tourne SSH.

Quel problème va-t-on régler ?

Nous allons en régler 2 en fait.

Tentative de connection en SSH

Vérifiez si on tente de pénétrer chez vous
grep "Failed password for" /var/log/xconsole.log

Si vous obtenez de nombreuses entrées de ce type c'est qu'on essaye de vous brute-forcer
Jan 14 11:21:31 vps12345 sshd[4050]: Failed password for mike from 212.123.45.67 port 22 ssh2

Utilisation de votre VPS comme arme de DDoS

grep "query \(cache\)" /var/log/xconsole.log

Si vous lisez
13-Feb-2015 09:33:44.744 client 195.238.25.109#4239: query (cache) 'pumbaa.ch/A/IN' denied
13-Feb-2015 09:34:43.325 client 88.174.87.40#30898: query (cache) 'WWW.PUMBAa.CH/A/IN' denied
13-Feb-2015 09:34:43.328 client 88.174.87.40#20394: query (cache) 'wWW.PuMbaA.cH/AAAA/IN' denied
13-Feb-2015 09:34:43.479 client 88.174.87.40#60023: query (cache) 'Www.pUmbaA.CH/A/IN' denied
13-Feb-2015 09:40:26.027 client 195.36.152.180#27437: query (cache) 'www.pumbaa.ch/A/IN' denied

vous allez peut-être vous dire "denied ? Chouette ! Il a essayé de rentrer mais il n'a pas réussi, c'est tout bon."
Vraiment ?
FAUX !

En fait vous participez probablement à une attaque DDoS à votre insu.
Un attaquant va envoyer un petit paquet à votre serveur en usurpant l'adresse IP de sa cible. Sa requête étant illégitime (c'est fait exprès) votre serveur la refuse et lui renvoie un gros paquet de donnée expliquant qu'il ne l'accepte pas.
Mais en fait vous renvoyez la réponse à la victime qui se voit assailli de toute part par des paquets identiques, mettant son infrastructure à genoux.

Si vous ne voulez pas faire partie d'un réseau de crime organisé (ouais, carrément ^^) il faut totalement ignorer ces paquets.

Pour notre exemple on va déporter ces logs dans un autre fichier.
Ce n'est pas obligatoire, mais c'est pour la beauté du geste.
mkdir /var/log/named
chmod a+w /var/log/named
vi /etc/bind/named.conf.local
logging {
	channel security_file {
		file "/var/log/named/security.log" versions 3 size 30m;
		severity dynamic;
		print-time yes;
	};
	category security {
		security_file;
	};
};
Notez que mettre un fichier de log en a+w n'est pas recommandé, je reviendrai sur ce point un autre jour.

/etc/init.d/bind9 restart

Fail2Ban

Commençons par bannir les IP des attaquants avant de passer à la résolution propre du problème.
Le rôle de Fail2Ban est de scanner des fichiers de logs, de repérer des anomalies et d'ajouter des règles iptables pour bannir les malotrus.
Si vous suivez bien, vous remarquerez qu'on les bannit après qu'ils aient commis leur méfaits. Dans le cas d'une tentative d'intrusion SSH ce n'est pas trop grave (tant que vous avez des mots de passe très forts), mais dans celui de l'attaque DDoS c'est un peu inutile, vu que la requête de refus aura déjà été émise.
On va quand même le faire, pour le sport.

Installation simple

apt-get install fail2ban

et c'est tout.

Installation compliquée

Vous pouvez télécharger la toute dernière version, la compiler et l'installer vous-même.

cd /tmp
wget https://github.com/fail2ban/fail2ban/archive/master.zip
unzip master.zip
cd fail2ban-master
./setup.py install
cd files
cp debian-initd /etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban
update-rc.d fail2ban defaults

Nous allons maintenant intégrer fail2ban dans le logrotate
vi /etc/logrotate.d/fail2ban
/var/log/fail2ban.log {
	weekly
	rotate 7
	missingok
	compress
	postrotate
	  /usr/local/bin/fail2ban-client set logtarget /var/log/fail2ban.log >/dev/null
	endscript
}

Utilisation

Fail2Ban installe en fait un client ( /usr/local/bin/fail2ban-client ) et un serveur ( /usr/local/bin/fail2ban-server ).
En temps normal vous n'aurez jamais besoin de démarrer le serveur, le client s'en occupera pour vous.
Pour démarrer :
fail2ban-client start

Vous pouvez demander à fail2ban d'executer des commandes de la manière suivante
fail2ban-client COMMAND

Par exemple
fail2ban-client status named-tcp

ou alors vous pouvez ouvrir l'interface interactive et taper les commandes plus directement
fail2ban-client -i

Jails

Fail2Ban est installé et démarré, mais en l'état il ne fait rien ! Il faut définir des jails (ça veut dire prisons dans la langue de Wentworth Miller).
Ces prisons sont constituées de plusieurs éléments dont les principaux sont :
  • Le fichier de log a analyser en temps réel
  • La règle (ou filtre), une expression régulière qui va lever une alerte. Fail2Ban s'installe avec un tas de règles toutes faite dispo dans /etc/fail2ban/filter.d/
  • Le nombre de tentatives autorisées avant d'effectuer une action
  • L'action a effectuer (bannir l'ip, s'envoyer un email, ...). Fail2Ban s'installe avec un tas d'action dispo dans /etc/fail2ban/action.d/

Nous allons créer 3 prisons : 1 pour ceux qui tentent de se connecter en SSH et 2 pour les robots DDoSeur.

Vous pouvez éditer le fichier /etc/fail2ban/jail.conf mais la pratique recommandée est de ne toucher à aucun fichier .conf et de créer des .local à la place.
vi /etc/fail2ban/jail.local
##########
# CONFIG #
##########
[DEFAULT]
destemail = votre.mail@mail.com
sender = root@pumbaa.ch
bantime  = 30
ignoreip = 123.123.123.123
Dans la partie default vous allez spécifier les règles globales, que vous pouvez raffiner au cas par cas dans chaque prison si besoin.
Vous voyez ici :
  • L'adresse à laquelle envoyer un email lors d'un ban
  • L'adresse d’expédition, mettez ce que vous voulez...
  • La durée d'un bannissement en secondes. Pour vos test mettez une valeur très courte pour éviter les déconvenues lorsque vous vous auto-bannirez.
  • Les adresses IP (séparées par des espaces si vous voulez en mettre plusieurs) qui ne doivent jamais être bannies. Si vous avez une connexion internet avec IP fixe d'où vous vous loggez, entrez la ici.

###########
#  JAILS  #
###########

# SSH IPTABLES
[ssh]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=1234, protocol=tcp]
           mail-whois[name=SSH, dest=votre.mail@mail.com]
logpath  = /var/log/auth.log
maxretry = 2
  • enabled : Vous pouvez désactiver un filtre sans tout mettre en commentaire simplement en passant la valeur à false.
  • filter : correspond aux filtres présents dans /etc/fail2ban/filter.d/sshd.conf
  • action (iptables) : va bannir l'ip. Vous pouvez voir la commande précise dans /etc/fail2ban/action.d/iptables.conf
  • action (mail-whois) : va vous envoyer un email. Vous pouvez voir la commande précise dans /etc/fail2ban/action.d/mail-whois.conf

Et maintenant les 2 prisons contre les DDoSeur (une pour TCP, une pour UDP)
# NAMED UDP
[named-udp]
enabled  = true
filter   = named-refused
port     = domain,953
protocol = udp
action   = iptables[name=NAMED, port=domain, protocol=udp]
logpath  = /var/log/named/security.log
maxretry = 1

# NAMED TCP
[named-tcp]
enabled  = true
filter   = named-refused
port     = domain,953
protocol = tcp
action   = iptables[name=NAMED, port=domain, protocol=tcp]
logpath  = /var/log/named/security.log
maxretry = 1

Vous n'avez plus qu'à redémarrer le service et vérifier qu'il fonctionne.
fail2ban-client reload
fail2ban-client status
fail2ban-client status ssh
fail2ban-client status named-tcp
fail2ban-client status named-udp

Pour dé-bannir une IP manuellement :
fail2ban-client set <JAIL> unbanip <IP>

Vous pouvez maintenant essayer de vous bannir vous-même en entrant des login/password bidons. Notez que si vous testez toujours avec le même login fail2ban ne va pas prendre de mesure car le log généré dans ce cas ressemble à
Feb 13 14:15:28 vpsXXXXX sshd[3022]: Failed password for invalid user pumm from 212.123.45.67 port 1234 ssh2
Feb 13 14:15:39 vpsXXXXX sshd[3022]: PAM 4 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=212.123.45.67.fix.access.vtx.ch

Il faut aussi supprimer la ligne "ignoreip" du fichier /etc/fail2ban/jail.local pour ces tests.

Quand vous serez satisfait remettez l'ignoreip et fixez un bantime plus haut, de l'ordre de la journée : 86400 voire plus.

Ignorer les paquets frauduleux

Maintenant que les prisons sont en place on va faire en sorte de ne pas les utiliser.
C'est dur la vie d'un bidouilleur :)

vi /etc/bind/named.conf.options
	allow-query { any; };
	allow-query-cache { 127.0.0.1/8; };
	recursion no;
	allow-recursion { 127.0.0.1/8; };
	additional-from-cache no;

La ligne qui nous intéresse particulièrement est "additional-from-cache no;".

/etc/init.d/bind9 restart

Normalement maintenant votre fichier de log /var/log/named/security.log devrait rester muet.


Sources :
http://www.fail2ban.org/wiki/index.php/MANUAL_0_8
https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-centos-6
https://www.debian-administration.org/article/623/Blocking_a_DNS_DDOS_using_the_fail2ban_package


Debian version : 6.0.10
fail2ban version : 0.9.1.dev

Aucun commentaire

grep -Rins --color -A 5 -B 5 "pumbaa" .

Un résultat tout de suite plus lisible

-R : Recursif
-i : insensible à la casse
-n : numéro de ligne (ici en vert)
-s : n'affiche pas les messages d'erreur (du style "Permission denied")
--color : explicite, non ?
-A 5 : Affiche le contenu des 5 lignes d'avant
-B 5 : Affiche le contenu des 5 lignes d'après

EDIT : un alias

vi ~/.bashrc
 mygrep(){
         grep -Rins --color -A 5 -B 5 $1 .
}

Attention, ajouter une fonction dans le .bashrc n'est pas recommandé !


Source : http://doc.ubuntu-fr.org/alias


Debian version : 6.0.10

2 commentaires

Autant c'est facile d'installer Cyanogen sur un appareil officiellement supporté par le mod, autant pour les autres c'est tout de suite plus galère.

Voici les étapes pour y arriver :

Installer CyanogenMod 11

1) Télécharger CyanogenMod 11

C'est la nouvelle ROM qui nous intéresse.
La version que j'ai utilisé est celle-ci : cm-11-20141101-UNOFFICIAL-v2wifixx.zip mais il en existe d'autres plus récentes.
Ce qui importe est que le nom de l'archive doit contenir "v2wifixx".

2) Télécharger les Google Apps (optionnel)

lien officiel, miroir
Depuis quelque temps Cyanogen n'a plus le droit d'inclure les applications google (gmail, playstore, calendrier, ...) dans leur rom, il faut donc les télécharger ailleurs.
Il existe plusieurs packs, du plus light au plus complet.
Je vous conseille personnellement de prendre le plus light (pico) qui inclut le playstore et de télécharger les autres depuis là.

3) Télécharger OpenRecovery de TWRP

lien officiel, miroir
C'est un BIOS qui va nous permettre de faire un backup de la tablette et d'installer la nouvelle ROM.

4) Télécharger un Root et Odin

lien officiel, miroir
Pour booter facilement sur TWRP on peut installer l'appli depuis le playstore, mais elle a besoin des accès root.
Ce lien fourni un zip qui contient aussi Odin 3.07 qu'on va utiliser après.

5) Pré-installer la ROM et les Apps

La ROM et les Google Apps seront installées depuis OpenRecovery, il faut donc qu'ils soient disponibles dans la mémoire interne de l'appareil.
Copier les 2 zip (ne pas les extraire !) où vous voulez sur la tablette, le plus simple étant à la racine.
  • Copier CyanogenMod : cm-11-20141101-UNOFFICIAL-v2wifixx.zip
  • Copier les Google Apps : pa_gapps-modular-pico-4.4.4-20141019-signed.zip

6) Activer le débuggage USB

  • Aller dans Paramètres, Général, A propos
  • Taper 7x sur Numéro de version
  • Aller dans le menu qui vient d'apparaître : Option de développement
  • Cocher Débogage USB

7) Rooter l'appareil

  • Éteindre la tablette
  • Booter en mode recovery (power, home, volume down)
  • Lancer Odin sur le PC
  • Brancher la tablette sur le PC par USB
  • Choisir CF-Auto-Root-v2wifi-v2wifixx-smt900.tar.md5 depuis le bouton PDA
  • Start

8) Installer TWRP


9) Installer TWRP recovery mode

  • Éteindre la tablette
  • Booter en mode recovery (power, home, volume down)
  • Lancer Odin sur le PC
  • Brancher la tablette sur le PC par USB
  • Choisir openrecovery-twrp-2.8.0.0-v2wifixx.img.tar en cliquant sur PDA
  • Start

10) Redémarrer sur le nouveau recovery

  • Lancer TWRP (Ne pas installer BusyBox si il propose)
  • Reboot to recovery
Vous allez arriver sur un espèce de BIOS qui fait peur, intitulé TWRP

11) Faire un backup du système actuel et des data (optionnel mais chaudement recommandé)

  • Bouton Backup
  • Choisir un nom
  • Swipe pour valider

12) Tout effacer

  • Bouton Wipe
  • Swipe pour valider

13) Installer la ROM et les Google Apps

  • Bouton Install
  • Choisir cm-11-20141101-UNOFFICIAL-v2wifixx.zip
  • Swipe pour valider
  • Choisir pa_gapps-modular-pico-4.4.4-20141019-signed.zip
  • Swipe pour valider

14) Reboot System

  • Rebooter

Ré-installer la Stock ROM (ROM de base)

Si vous souhaitez revenir à la ROM de base :
lien officiel, miroir
  • Éteindre la tablette
  • Booter en mode recovery (power, home, volume down)
  • Lancer Odin sur le PC
  • Brancher la tablette sur le PC par USB
  • Choisir T900XXUANB5_T900AUTANB3_AUT.zip depuis le bouton PDA
  • Start

Divers

1) Si besoin de rebooter en recovery sans TWRP

  • Ouvrir un terminal
  • su
  • reboot recovery
"su" va demander les accès root, il faut les lui accorder


Source 1 : http://www.android.gs/install-unofficial-cyanogenmod-11-android-4-4-2-alpha-rom-for-samsung-galaxy-s4-i9500/
Source 2 : http://androidcentral.us/2014/05/root-galaxy-tab-pro-12-2-sm-t900/
Source 3 : http://forum.xda-developers.com/galaxy-tab-pro-12-10-8/development/cyanogenmod-tab-pro-12-2-sm-t900-t2914975
Source 4 : http://androidcentral.us/2014/05/root-galaxy-tab-pro-12-2-sm-t900/


Tablette : Samsung Galaxy Tab Pro 12.2
CyanogenMod : cm-11-20141101-UNOFFICIAL-v2wifixx
Odin : 3.07
Stock ROM : T900XXUANB5_T900AUTANB3_AUT

2 commentaires

Dans le dernier billet je vous parlais du logiciel KeePass qui permet de stocker vos mots de passe de manière sécurisée.

Présentation

Je ne vais pas vous faire un cours complet et détaillé sur la sécurité, il en existe bien assez ailleurs sur le net, mais je vais tout de même citer les points importants et faciles à mettre en place.

  • Utiliser des mots de passe différents pour chaque site
  • Des mots de passes longs
  • Des mots de passe forts
  • Ne vous authentifiez pas à vos comptes lorsque vous surfez sur un wifi ouvert (voire sur n'importe quel réseau wifi ne vous appartenant pas)

Pour les trois premiers points le logiciel KeePass va vous aider.
Il s'agit d'un coffre-fort numérique, une petite base de donnée cryptée qui va stocker tous vos mots de passe, vous demandant de n'en retenir qu'un seul.

Utilisation

Lancez l'exécutable, créez une nouvelle base (File, New) et choisissez un Master Password. Choisissez-le bien car ça va être le seul dont il faudra vous souvenir.
Vous pouvez aussi choisir de verrouiller l'accès grâce à un fichier quelconque. Je n'ai jamais testé cette option et je ne sais pas si elle est bien intégrée aux autres versions (voir plus bas).
Laissez les paramètres de la base de donnée par défaut, par contre je vous conseille d'aller modifier quelques options (Tools, Options, onglet Security)

  • Cochez "Lock workspace after KeePass inactvity" pour que le programme verrouille automatiquement la base après un certains temps. Si vous utilisez ce programme au travail par exemple, choisissez un temps assez court, dans les 5 minutes.
  • Cochez "Clipbaord auto-clear time" pour effacer le contenu du presse-papier après un certains temps (environ 1 minute). Vous verrez pourquoi un peu plus bas.

Chaque nouvelle base de donnée est créé avec des catégories par défaut (General, Windows, Network, ...) et deux entrées d'exemple.
Base de donnée vierge

La description de chaque colonne est assez clair mais je voudrais vous faire remarquer que double-cliquer sur une entrée donnera des résultats différents tout dépend dans quelle colonne vous cliquez.

  • Double-cliquer sur le Title ouvrira l'entrée pour une modification.
  • Par contre si vous double-cliquez sur le User Name, celui-ci sera copié dans le presse-papier. Vous n'avez plus qu'à le coller dans le champ username du site web (ou autre) sur lequel vous souhaitez vous connecter.
  • Idem avec un double-clic sur le Password (d'où l'utilité de vider le presse-papier régulièrement, pour ne pas le coller par erreur dans une fenêtre de chat, par exemple).
  • Pour finir, double-cliquer sur l'URL ouvrira celle-ci. Si il s'agit réellement d'une URL ça ouvrira la page dans votre navigateur par défaut, mais si il s'agit d'un programme KeePass tentera de le démarrer.

Lancer TeamViewer depuis KeePass
Par exemple pour ouvrir une session Putty : cmd://"C:\Program Files (x86)\PuTTY\putty.exe" -ssh {USERNAME}@domain.com -pw {PASSWORD} -P 22
Ou TeamViewer : cmd://"C:\Program Files (x86)\TeamViewer\Version9\TeamViewer.exe" -i {USERNAME} --Password {PASSWORD}
Les champs {USERNAME} et {PASSWORD} seront remplacés, à la volée, par les valeurs enregistrées dans KeePass.

Le générateur de mots de passe

Lorsque vous créez une nouvelle entrée tous les champs sont vierges, à l’exception du mot de passe qui est déjà généré aléatoirement.
Vous pouvez le définir manuellement mais une bonne pratique serait d'utiliser le générateur intégré. Vous pouvez même le paramétrer pour définir différentes forces de mots de passe en passant par le menu Tools, Generate password.
Générateur de mots de passe

En cliquant sur la petite disquette vous pourrez choisir le nom du nouveau template.

Téléchargement

Le développeur ne propose son logiciel en exécutable que sur Windows.
Mais étant open-source de très nombreuses versions sont disponibles un peu partout et même listées sur la page officielle.
Voici celles que j'utilise et qui sont donc fonctionnelles (en tout cas en ouverture de la base, je n'ai jamais testé l'enregistrement de nouveaux mots de passe depuis une autre version que celle pour Windows)

Windows (XP, 7, ...) : http://keepass.info/download.html
Mac OS : http://keepassx.sourceforge.net/
Android : https://play.google.com/store/apps/details?id=com.android.keepass
iPhone, iPad : https://itunes.apple.com/app/id451661808
Windows phone : http://www.windowsphone.com/en-us/store/app/7pass-free/7ab58ba1-f035-e011-854c-00237de2db9e

2 commentaires

Il y a quelque temps j'ai constaté des tentatives d'intrusion sur mon serveur, venant de chine, russie, thaïlande, ...
Mon VPS ne contenant rien de bien folichon je n'ai eu affaire qu'à des robots assez basiques, cherchant probablement à enrichir une armée de zombies spammeur ou DDoSeur.
Ils se sont donc cassé les dents sur mes défenses rudimentaires.

Comment les détecter ?

Chaque tentative de connexion SSH est consignée dans le fichier /var/log/xconsole.log

less /var/log/xconsole.log

Jan 14 11:21:31 vps12345 sshd[4050]: Failed password for mike from 212.123.45.67 port 22 ssh2
Un utilisateur dont l'adresse IP publique est 212.123.45.67 a essayé de se connecter en SSH à mon VPS sur le port 22 avec le nom d'utilisateur 'mike' mais a échoué.

Jan 14 11:22:02 vps12345 sshd[4050]: Accepted password for pumbaa from 212.123.45.67 port 1234 ssh2
Jan 14 11:22:02 vps12345 sshd[4050]: pam_unix(sshd:session): session opened for user pumbaa by (uid=0)
Nom d'utilisateur, port et mot de passe correct.

Donc quand vous avez votre fichier de log pourri par des milliers de "Failed password for XXX" c'est qu'on tente de pénétrer chez vous.

Comment les empêcher d'entrer ?

Mot de passe

Avoir des mots de passe très fort, surtout celui de 'root'.
Et quand je dis très fort je pense à minimum 20 caractères.
Comme ça devient dur à retenir (surtout si vous mettez des caractères spéciaux dedans, comme c'est recommandé) je vous conseil le très bon logiciel KeePass qui se souviendra pour vous de tous vos mots de passe. Je ferai probablement un billet là-dessus un jour.

su - #Pour passer en root
passwd

Configuration du SSH

vi /etc/ssh/sshd_config

Changer le port
Port 1234

Interdire la connexion en SSH à l'utilisateur 'root'
PermitRootLogin no

Maintenant le seul moyen de se connecter en 'root' est de se connecter avec un autre compte puis de lancer la commande
su -

Vérifier la version du protocole utilisée
Protocol 2

Redémarrer SSH
/etc/init.d/ssh restart

/!\ ATTENTION /!\
Ne fermez pas le terminal à ce moment. Ouvrez-en un nouveau et vérifiez que vous arrivez bien à vous connecter avec votre utilisateur habituel.
Souvenez-vous que le port à changé et que 'root' ne peut plus se connecter.

La suite

Les robots ne pourront - probablement - pas rentrer sur votre serveur mais ça ne va pas les empêcher d'essayer en boucle.
Pour les bannir définitivement l'utilisation de Fail2ban semble être intéressante.
Ça sera l'objet d'un prochain billet, quand je l'aurai installé chez moi.


Source : http://forum.ovh.com/showthread.php?102599-Attaque-SSH-sur-mon-VPS


Debian version : 6.0.10

Aucun commentaire

Vous commencez à être limite en espace libre sur votre disque dur ?
Il y a peut-être des fichiers volumineux inutiles qui prennent de la place.

Voyons déjà la place qu'il reste :

df -h

cela affiche la taille de vos HDD, la place occupée, la libre, etc.
L'option -h affiche des tailles lisibles par les humains, donc en kilo, mega, giga, etc...

Seek...

Il y a probablement des outils plus adaptés pour afficher visuellement les fichiers qui prennent de la place mais voilà ma méthode pour identifier les fichiers volumineux.

J'ai fait un alias permanent que j'ai appelé "lx" et qui va, récursivement, afficher la liste des fichiers et dossiers du chemin courrant avec leur taille totale.
cd ~
vi .bashrc

Ajouter tout à la fin
alias lx='for folder in $(ls -A) ; do du -hs "$folder" ; done ; du -hs'



... and destroy !

Si après la suppression d'un fichier volumineux la place libre n'a pas changé c'est qu'il est encore utilisé par un processus.
Cela m'est arrivé une fois avec un fichier de log. Un "ls" montrait qu'il était supprimé (il n'était pas listé) mais il prennait toujours de la place sur mon disque dur.

lsof -n | grep NOM_DU_FICHIER_SUPPRIME
Si une ligne apparait c'est qu'un processus utilise le fichier, il faut tuer ce processus.

Dans le cas d'un fichier de log utilisé par syslogd :
kill -SIGHUP `cat /var/run/syslogd.pid`

Bonus

Pour cet exemple j'ai voulu créer un fichier de 500 Mio rapidement.
Le moyen le plus simple est celui-ci :
dd if=/dev/zero of=fichier.txt bs=1024 count=512000

cela va créer un fichier nommé fichier.txt de 512'000 blocs de 1 kio remplis de zéro, soit 500 Mio.
Il est possible de le remplire avec des données aléatoire en changeant /dev/zero par /dev/urandom


Source : http://www.linuxquestions.org/questions/linux-general-1/cmdline-howto-know-size-of-folder-recursive-569884/


Debian version : 6.0.10

Aucun commentaire

"vi" ne fait pas - à ma connaissance - de coloration syntaxique, au contraire de "vim", si on lui demande gentiment.
EDIT : En fait si, "vi" et "vim" colorent la syntaxe de la même manière, avec la même manip'.

vi /etc/vim/vimrc

décommentez
syntax on

Pour tester :
vi /etc/vim/vimrc
Plein de jolies couleurs.


Source : https://wiki.debian.org/vim


Debian version : 6.0.10

2 commentaires

Vous louez un serveur Debian situé sur un autre continent et il affiche l'heure locale ?
Mais non, il n'est pas 2h du mat' !

Pas de problème, lancez la commande suivante

dpkg-reconfigure tzdata
choisissez dans la liste le continent et la ville où vous vous trouvez, validez, enjoyez.

Mieux !


Debian version : 6.0.10

4 commentaires

Il est puissant le shell de Debian, mais alors qu'est-ce qu'il est moche !
Et au delà de ces considération bassement esthétique il est surtout illisible. QUI a eu l'idée de mettre le texte en bleu foncé sur fond noir ? Blu-ray Charles ? (Bon sang, j'suis content de ma blague !!!)

Franchement, vous distinguez les noms des dossier ?
Il est temps de changer ça.

Fichiers / Dossiers

Rendez-vous dans votre home et exportez les couleurs actuelles du shell dans un fichier que vous allez modifier.

cd ~
dircolors -p > .dircolorsrc
vi .dircolorsrc

Recherchez la ligne

DIR 01;34 # directory

et remplacez le 34 (bleu foncé) par 33 (jaune).

Il vous reste à modifier le fichier .bashrc pour que le shell prenne en compte ce nouveau fichier de couleurs

vi .bashrc

Supprimez la ligne

test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"

et remplacez-la par

eval "`dircolors -b ~/.dircolorsrc`"

Ça donne

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b ~/.dircolorsrc`"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

#alias grep='grep --color=auto'
#alias fgrep='fgrep --color=auto'
#alias egrep='egrep --color=auto'
fi

Déloggez-vous, reloggez-vous et bim
Ça devient lisible

Prompt

Vous pouvez encore personnaliser votre interface en changeant les couleurs de la ligne de prompt.

vi .bashrc

Supprimez la ligne (dans le "else")

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

et remplacez-la par

PS1="\[\e[00;37m\]\u\[\e[0m\]\[\e[00;37m\]@\H \[\e[0m\]\[\e[00;33m\]\t\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;32m\]:\w\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;35m\]\\$\[\e[0m\]\[\e[00;37m\] \[\e[0m\]"

Ça donne

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1="\[\e[00;37m\]\u\[\e[0m\]\[\e[00;37m\]@\H \[\e[0m\]\[\e[00;33m\]\t\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;32m\]:\w\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;35m\]\\$\[\e[0m\]\[\e[00;37m\] \[\e[0m\]"
fi
unset color_prompt force_color_prompt

Pareil : déloggez-vous, reloggez-vous et voilà
Ça devient lisible

J'ai ajouté l'heure en jaune, le chemin courant est en vert et le signe $ en magenta.

Niveau artistique on repassera, c'est sur, mais au moins maintenant je ne m'esquinte plus les yeux à chaque ligne.

Un grand pouvoir implique de grandes responsabilités

Comme il m'arrive parfois de devoir passer sur le compte root j'ai fait en sorte que ça soit bien visible, pour me rappeler de ne pas taper mes commandes à la légère.

vi .bashrc
PS1="\[\e[00;31m\]\u\[\e[0m\]\[\e[00;37m\]@\H \[\e[0m\]\[\e[00;33m\]\t\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;32m\]:\w\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;35m\]\\$\[\e[0m\]\[\e[00;37m\] \[\e[0m\]"

Le nom de l'utilisateur (root) est maintenant affiché en rouge

C'est un gag, ne tapez pas cette commande !


Bonus
Terminal en couleur avec Putty et SuperPutty


Source manip' : http://wiki.linuxwall.info/doku.php/en:ressources:astuces:lscolor
Source couleurs : http://bashrcgenerator.com


Debian version : 6.0.10

2 commentaires

Si vous en avez marre de vous relogger toutes les 20 minutes à vos services web, augmentez la durée des sessions PHP.

vi /usr/lib/php5/maxlifetime
max=259200

N'oubliez pas de redémarrer Apache
/etc/init.d/apache2 restart

Cela va écraser la valeur session.gc_maxlifetime de /etc/php5/apache2/php.ini


Source 1 : http://ademcan.net/index.php?d=2013/05/26/09/12/42-longer-php-sessions-in-ubuntu
Source 2 : http://forum.ovh.com/archive/index.php/t-20521.html


Debian version : 6.0.10
Apache version : 2.2.16
PHP version : 5.3.3-7+squeeze19

Aucun commentaire

Quoi de plus légitime pour démarrer ce blog que de créer un tuto sur... comment installer un blog ? :)
Il me fallait quelque chose de simple et léger, facile à installer et à utiliser, histoire de pouvoir me concentrer sur le contenu plus que sur le design et la personnalisation.
Je me suis donc tourné vers BlogoText, du hollandais volant.

Installation

Commencez par télécharger et déployer l'archive
cd /var/www
wget http://lehollandaisvolant.net/blogotext/blogotext.zip
unzip blogotext.zip
chown -R www-data:www-data blogotext # Change le propriétaire de tous les fichiers

Créez une base de donnée (je reviendrai sur l'installation de MySQL dans un autre billet).
J'ai opté pour MySQL mais SQLite est aussi disponible.
mysql -u root -p
create user BLOGOTEXT_USER identified by 'UN_BON_PASSWORD';
create database BLOGOTEXT_DB;
grant all on BLOGOTEXT_DB.* to BLOGOTEXT_USER;

Et c'est tout !
Rendez-vous sur http://votre_site/blogotext, choisissez une paire de login/password, renseignez les champs MySQL défini plus haut et vous serez prêt à publier votre 1er billet.

Allons plus loin

Vous pouvez néanmoins paramétrer un peu votre installation.
Commencez par renforcer la sécurité en changeant le chemin d'administration (comme c'est indiqué dans le billet créé automatiquement à l'installation) et le sel.
mv ./admin/ ./NOM_DE_DOSSIER_ADMIN/ # Renomme le dossier admin
rm config/user.php # Supprime le fichier de configuration pour forcer la création d'un nouveau sel.
vi ./inc/conf.php
$GLOBALS['salt']= 'UN_BON_SEL';
$GLOBALS['dossier_admin'] = 'NOM_DE_DOSSIER_ADMIN';

Et vous pouvez aussi augmenter la tailler des fichiers maximale que vous pourrez téléverser uploader sur votre blog.
Attention : ceci modifie un fichier de configuration d'apache, cela impactera tous vos sites si vous en avez plusieurs.
vi /etc/php5/apache2/php.ini
upload_max_filesize = 20M
/etc/init.d/apache2 restart

C'est fini ?

Oui, mais je ferai un deuxième billet avec les modifications que j'ai apporté au code afin de correspondre à mes besoins (légère modification du thème, ajout d'une balise [file] (celle qui vous agresse les yeux avec le texte en jaune sur fond bleu =D), debug, ...


Debian version : 6.0.10
Apache version : 2.2.16
MySQL version : 5.1.73-1
BlogoText version : 2.1.0.0

8 commentaires

Bonjour et bienvenue à tous.
Ce blog n'a pas pour vocation de devenir le plus populaire du web ni même de détrôner qui que ce soit.

Au contraire, il va surtout me servir à regrouper les quelques astuces ou bouts de code que je déniche au gré de mes pérégrinations sur le net, souvent à grand renfort de sueur et de jurons.

Comme je ne suis pas (que) un gros égoïste je publierai de temps en temps des tutoriaux plus complet sur des sujets divers, sans garantie de régularité.

Normalement la majorité des astuces que je vais poster ici vont toucher à Debian, ma première distro GNU/Linux que j'ai découvert en me jetant allègrement dans le bain il y a 5-6 ans.
Il parait que c'est la meilleur manière d'apprendre mais ça file aussi facilement des mauvaises habitudes, donc ne prenez pas ce que j'écris pour argent comptant !
Il peut y avoir des erreurs, des approximations ou même des bad practices.
Si vous en voyez n'hésitez pas à le dire en commentaire. Si je peux apprendre quelques ficelles ici j'en serai le premier ravi.

Un petit mot sur moi, parce qu'il parait que ça se fait :
Je suis ingénieur en informatique, spécialisé en Java, j'habite à Lausanne et j'arrive gentiment sur mes 30 ans.