Catégories
Linux

Debian Stretch: Upgrade PostgreSQL 9.4 to 9.6

Étape 1 : Préparation

  • Fermer toutes les applications utilisant Postgresql : odoo, dovecot, gitlab, …
  • Stopper le service Postgresql : systemctl stop postgresql

Étape2 : Mettre à jour

1
2
3
4
5
# pg_lsclusters
 
Ver Cluster Port Status Owner Data directory Log file
9.4 main 5432 down postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.6 main 5433 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

On supprime d’abord le cluster crée lors de la mise à jour

1
2
# pg_dropcluster 9.6 main --stop
Redirecting stop request to systemctl

On met à jour le cluster 9.4 en 9.6 :

1
2
3
4
5
6
7
8
# pg_upgradecluster 9.4 main
 
Stopping old cluster...
[...]
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with
 
pg_dropcluster 9.4 main

Étape 3 : Nettoyage

La liste des clusters devrait ensuite ressemble à cela :

1
2
3
4
5
# pg_lsclusters
 
Ver Cluster Port Status Owner Data directory Log file
9.4 main 5433 down postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

une fois tout d’aplomb, on peut supprimer l’ancien cluster (le 9.4)

1
2
3
4
# pg_dropcluster 9.4 main
# pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

Au finale on supprimer totalement l’ancienne version (9.4)

1
# apt-get --purge remove postgresql-9.4 postgresql-client-9.4
Catégories
Linux

Debian 6.0 Squeeze est sortie…

C’est bon, mangez en !
http://debian.org/News/2011/20110205a

En plus Debian en a profité pour modifier l’apparence de son site internet : le moins que l’on puisse dire c’est que c’est sobre et dépouillé ! Moi j’aime !

Catégories
Linux Trucs et astuces

Aspirer un site internet pour une consultation hors-ligne

Il doit certainement exister des logiciels avec possibilité de filtres et de dizaines d’autres options, mais pour la plupart des cas cette simple commande me suffit :

wget -r -k -np -T 10 -t 1 http://www.zapoyok.info

  • -r : signifie que le téléchargement sera récursif et suit les liens présent dans la page
  • -k : permet de reconstituer le site localement afin d’être consultable hors connexion : les liens sont modifié pour pointer localement
  • -np empêche de remonter dans le répertoire parent.
  • -T 10 : Time connection. Le temps max en seconde pour aspirer un lien. Quand cette option est omis, un lien difficilement accessible peut ralentir considérablement l’aspiration du site.
  • -t 1 : nombre de tentative de connexion si il y a erreur 404 (pas de lien). Ici, on veut qu’il n’y ait qu’une seule tentative de connexion afin d’accélérer le traitement d’aspiration.
Catégories
Linux Trucs et astuces

git svn clone …. et « temp file with moniker ‘svn_delta’ already in use »

Lors d’essai de cloner des dépôts SVN pour travailler dessus avec GIT, je me retrouve chaque fois avec la même erreur :
Temp file with moniker 'svn_delta' already in use at /usr/share/perl5/Git.pm line 1022. avec git 1.7.1 et Subversion 1.6.12

Après quelques recherches infructueuses une piste et une solution (à mon problème en tout cas). Dans le fichier ~/.subversion/servers j’avais la section suivante :

[global]
http-library = serf

Une simple suppression de cette ligne pour réutiliser Neon par défaut et cela marche tout de suite mieux !
Je ne sais pas vraiment le pourquoi du comment, mais si cela aide quelqu’un à son tour c’est tant mieux !

Pour en savoir plus :
http://git.661346.n2.nabble.com/git-svn-fails-to-fetch-repository-td2151475.html
http://subversion.tigris.org/issues/show_bug.cgi?id=2932

Catégories
Linux Trucs et astuces

Installer Flash sous Debian Testing « Squeeze » amd64

Suite aux nombreuses failles sur le plugin Flash, Adobe a jeté l’éponge et ne maintient plus son plugin en version 64 bits (Lire l’annonce d’Adobe.)

Il reste dès lors peu de solutions :

  • Revenir sur une distrib 32 bits
  • Installé − à l’instar de windows − le plugin en version 32 bits
  • chrooter complètement son environnement pour avoir un Firefox en 32 bits dans son environnement 64
  • Se passer de flash
  • Installer des alternatives : gnash,…

Je vais retenir l’installation du plugin en version 32 bits.
La méthode est entièrement décrite à l’adresse suivante : http://wiki.debian.org/FlashPlayer et plus particulièrement : « Installation sous Squeeze AMD64 »

Je cite :

Debian Testing ‘Squeeze’ amd64

Currently not supported by Adobe. See the announcement by Adobe and bug #586273.

However, there is a workaround:

  1. aptitude install fakeroot binutils nspluginwrapper ia32-libs
  2. Download and run this script: http://people.debian.org/~bartm/flashplugin-nonfree/ia32-libs-workaround-499043-squeeze.sh
  3. dpkg -i ia32-libs-workaround-499043_0.0.1+squeeze1_amd64.deb
  4. Install this package: http://people.debian.org/~bartm/flashplugin-nonfree/flashplugin-nonfree_10.1.53.64.1_amd64.deb

Note (21/08/2010) : Aller voir régulièrement à la page « Installation sous Squeeze AMD64 », les paquets et leur version changent de temps à autre !

An entirely different approach is to install a browser and the 32 bit plugin in an i386 chroot as described in the AMD64 HOWTO.

Catégories
Linux Trucs et astuces

Supprimer les tentatives d’accès à phpMyAdmin en utilisant fail2ban

Comme beaucoup de monde il m’arrive d’être « scanné » sur mon serveur Web pour accéder à phpMyAdmin ou en exploiter une faille.

On trouve ce genre d’info dans les mails quotidiens généré par logwatch par exemple.

--------------------- httpd Begin ------------------------ 
 
 Requests with error response codes
   […]
    404 Not Found
       /PMA/scripts/setup.php: 1 Time(s)
       /PMA2005/scripts/setup.php: 1 Time(s)
     […]
       /phpMyAdmin-2.3.0/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.1/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.2/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.3/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.4/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.5/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.6/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.7/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.8/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.3.9/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.4.0/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.4.1/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.4.2/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.4.3/scripts/setup.php: 1 Time(s)
       /phpMyAdmin-2.4.4/scripts/setup.php: 1 Time(s)
     […]
 
 ---------------------- httpd End -------------------------

Pour y remédier :

  • Ne pas l’installer !
  • N’autoriser que certaines IPs à y accéder
  • Utiliser fail2ban pour limiter et contrer l’effet des scans

Utilisation de fail2ban

J,ai trouvé un script tout fait… alors pourquoi se compliquer la vie ! Il est disponible à l’adresse suivante : http://foosel.org/blog/2008/04/banning_phpmyadmin_bots_using_fail2ban.

Je le reprend ci-dessous avec quelques adaptations :

/etc/fail2ban/filter.d/apache-phpmyadmin.conf

# Fail2Ban configuration file
# Bans bots scanning for non-existing phpMyAdmin installations on your webhost.
#
 
[Definition]
 # Option:  failregex
# Notes.:  Regexp to match often probed and not available phpmyadmin paths.
# Values:  TEXT
#
failregex = [[]client <HOST>[]] File does not exist: .*(PMA|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|mydb|db|pmadb|phpmyadmin1|myadmin2)
 
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Activer le filtre dans le fichier de configuration : /etc/fail2ban/jail.conf :

[apache-phpmyadmin]
enabled  = true
port     = http,https
filter   = apache-phpmyadmin
logpath  = /var/log/apache/error.log
maxretry = 3
Catégories
Linux MySQL Programmation Trucs et astuces

Utilisation de mysqlsniffer

But et utilité :

Pour pouvoir − en temps réel − visualiser et analyser et/ou capturer les requêtes effectuées sur un serveur ce petit logiciel est quasiment indispensable.
Il permet d’afficher en détails les requêtes effectuées, les résultats de ces dernières,…

Il est disponible sur le site : http://hackmysql.com/mysqlsniffer

Installation :

Sous Debian, il faut au préalable installer libpcap-dev : aptitude install libpcap-dev.
Puis :

  1. mkdir mysqlsniffer
  2. cd mysqlsniffer
  3. wget http://hackmysql.com/code/mysqlsniffer.tgz
  4. tar zxvf mysqlsniffer.tgz
  5. gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c

Utilisation :

Attention ! La connexion à « écouter » doit se faire en TCP, il faut mettre 127.0.0.1 au lieu de localhost dans la configuration du client pour avoir un résultat !

Ensuite il suffit de lancer la commande mysqlsniffer et de lire le résultat dans la console ou le stocker dans un fichier pour une analyse ultérieure.

Exemple de dump :

Une simple requête (SELECT) qui récupère des préférences :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
127.0.0.1.47254 > server: ID 0 len 26 COM_QUERY: SELECT * FROM preferences
server > 127.0.0.1.47254: ID 1 len 1 6 FIELDS
        ID 2 len 76 FIELD: preferences.categorie <TYPE var string (509) SIZE 50>
        ID 3 len 66 FIELD: preferences.type <TYPE var string (509) SIZE 50>
        ID 4 len 62 FIELD: preferences.id <TYPE var string (1021) SIZE 255>
        ID 5 len 82 FIELD: preferences.defaultvalue <TYPE BLOB (4604) SIZE 65535>
        ID 6 len 68 FIELD: preferences.label <TYPE var string (509) SIZE 255>
        ID 7 len 80 FIELD: preferences.description <TYPE BLOB (4604) SIZE 65535>
        ID 8 len 5 END <warnings 0>
        ID 9 len 119 || diagnostic | text | departement_favori | 57 | Département par défaut | Doit être un des départements français (format numérique) ||
        ID 10 len 49 || synchro | text | login | XXX | Votre compte utilisateur |  ||
        ID 11 len 61 || divers | text | nb_clients_par_page | 30 | Nombre de clients listés |  || 
        ID 12 len 61 || divers | text | nb_projets_par_page | 30 | Nombre de projets listés |  ||
        ID 13 len 48 || synchro | String | password | XXX | Votre mot de passe |  ||
        ID 14 len 66 || diagnostic | text | rapport_pcs_2_m3 | 10.6 | Taux de conversion PCS->M3 |  ||
        ID 15 len 60 || synchro | text | sapid | xxx | Votre identifiant de compte (SAPID) |  ||
        ID 16 len 5 END <warnings 0>

Une autre façon de récupérer toutes les requêtes exécutées sur le serveur en écoute : TCPDUMP

Cette méthode ne permet pas de récupérer les infos complètes

1
2
3
4
5
6
7
8
9
tcpdump -i lo -s 0 -l -w - dst port 3306 | strings | perl -e '
while(&lt;&gt;) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|SHOW)/i) {
if (defined $q) { print "$q\n"; }
$q=$_;
} else {
$_ =~ s/^[ \t]+//; $q.=" $_";
}
}'

On peut trouver de nombreux autres outils pour MYSQL sur le site : http://hackmysql.com/tools avec notamment mysqlreport

Catégories
Linux

Orange et blocage du port 25 (smtp) pour éviter les serveurs de mails zombie

Comme on peut le remarquer depuis le début de l’été, Orange bloque les autres serveurs SMTP que le leur en sortie [1]. Résultat : obligation d’utiliser smtp.orange.fr et pas moyen d’utiliser son propre serveur SMTP.

Moyen souvent trouvé sur Internet : changer le port de votre serveur SMTP perso, c’est possible mais bon !

Ce que je vous propose c’est d’adapter Postfix pour faire transiter tous les mails sortants de votre machine par le serveur smtp d’Orange. Ainsi tout le monde est content :

  • Moi : je peux continuer à utiliser mon serveur local pour envoyer mes mails
  • Orange : mes mails passent par chez eu. de toute façon à un moment ou à un autre mes mails passent par leurs tuyaux.

La méthode sous Postfix est vraiment simpliste :

/etc/postfix/main.cf

relayhost = smtp.orange.fr
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =

/etc/postfix/sasl_passwd

smtp.orange.fr <votre login>:<votre mot de passe>

On finalise en générant le sasl_passwd.db avec la commande : postmap /etc/postfix/sasl_passwd

[1] http://www.pcinpact.com/actu/news/37290-Orange-port-25-blocage-spams-pc-zombies.htm

Catégories
Linux

Compilation du noyau à la sauce Debian

fakeroot make-kpkg clean
fakeroot make-kpkg --revision nom_de_la_machine_cible.numéro_de_version kernel_image
fakeroot make-kpkg --added_modules=truc --added_patches=bordel --revision 0 linux-h.y.u

puis un simple :

sudo dpkg -i kernel-image-2.6.X_nom_de_la_machine_cible.numéro_de_version_amd64.deb

Quelques liens :

Catégories
Linux

Postfix – Amavis – Clamav

Quelques liens +/- utiles pour l’installation, la configuration et la sécurisation du trio Postfix/Amavis/Clamav

Mise en place d’un système de messagerie multidomaine avec postfix

Permettre à Postfix de faire du RelayHost avec Orange.fr

  • Mise en place du fichier contenant le login /mot de passe pour le smtp.orange.fr. Pour cela on crée le fichier /etc/postfix/sasl_passwd de la manière suivante :mail.ispserver.com username:password
  • Comme le fichier contient le mot de passe en clair, on s’arrange pour qu’il ne soit pas lisible par tous : chown root:root /etc/postfix/sasl_passwd chmod 600 /etc/postfix/sasl_passwd
  • postmap /etc/postfix/sasl_passwd
  • Finalement on indique à Postfix dans le fichier /etc/postfix/main.cf de relayer les mails par le relais ainsi préparé : relayhost = mail.ispserver.com smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options =