BlogoGeek

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

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.