lundi 18 mai 2015

Échec de l'installation de Mint 17 depuis un live-PXE

Suite à ce billet, je me suis rendu compte que l'installateur plante s'il est lancé depuis un "live-PXE".
À l'origine du problème, la procédure de fabrication du fichier de configuration d'APT (gestionnaire de paquets), qui n'est pas adaptée à un "live-PXE". Néanmions, voici comment le contourner.

Solution 1 : one-shot

Une fois Mint démarré, éditer /usr/lib/ubiquity/apt-setup/apt-setup et trouver la ligne suivante :

mv $ROOT/etc/apt/sources.list.new $ROOT/etc/apt/sources.list

La remplacer par ceci :

if [ -f $ROOT/etc/apt/sources.list.new ]; then
	mv $ROOT/etc/apt/sources.list.new $ROOT/etc/apt/sources.list
fi

Attention : cette modification n'est pas enregistrée. Elle doit donc être faite à chaque redémarrage.

Solution 2 : correction permanente

Cette solution consiste à appliquer le patch ci-avant à l'image SquashFS. Pour ceci, installer les outils squashfs :

apt-get install squashfs-tools

Décompresser le squashfs de Mint :

unsquashfs casper/filesystem.squashfs

Appliquer le patch indiqué précédemment.
Recompresser le squashfs :

mksquashfs squashfs-root/ filesystem.squashfs -noappend -always-use-fragments


3... 2... 1... bootez !

lundi 10 février 2014

Rsync (avec transport SSH) sur un autre port que le 22

rsync -e 'ssh -p 42'
(Sinon j'oublie !)

lundi 21 janvier 2013

Remplacer la Freebox par un modem Alcatel Speed Touch Home

Comme avec le SOHO97, le but ici est de configurer un modem Alcatel Speed Touch Home (STH dans la suite) pour se connecter à une ligne dégroupée chez Free. Notons qu'il est nécessaire d'avoir passé le STH en Speed Touch Pro.

Avant de commencer, il faut savoir que Free utilise de l'IPoA, c'est-à-dire où IP est encapsulé directement dans ATM. L'encapsulation utilisée est VC-MUX. Or, même si le STH support l'IPoA et le VC-MUX, il ne permet pas d'utiliser les deux à la fois. Heureusement, il existe une version patchée du firmware qui remédie à ce problème. Originalement posté sur Forpage, il est devenu difficile à trouver et il figure en pièce jointe de ce billet.
Attention, deux remarques concernant ce firmware :
- il s'adresse à la version K du STH, pas la version G ;
- il fait disparaître le mode "EXPERT" du STH. Je recommande donc de conserver en passif une version qui autorise ce mode.

La première étape consiste donc à envoyer le nouveau firmware. La manière la plus simple est de passer par l'interface web du modem (http://10.0.0.138/) ; si cela échoue, il reste la méthode du telnet/FTP.

Ensuite, il faut configurer le VP/VC : sur la page "phonebook", supprimer le VP/VC 8/36 et le recréer de type "CIP".
Puis, sur la page CIP, ajouter une interface avec l'adresse IP publique et un masque de 255.255.255.0. Ajouter une connexion CIP utilisant le canal (8/36) créé précédemment, avec comme destination l'adresse IP de la passerelle Free, généralement la dernière adresse du sous-réseau (x.x.x.254)
Il convient ensuite d'ajouter la route suivante :
Destination : 0.0.0.0/0
Source : any
Passerelle : <adresse_IP_passerelle>
Le NAT doit être configuré depuis telnet :

nat enable addr=<adresse_ip_publique> type=pat


D'ailleurs, toute la configuration décrite précédemment est réalisable par telnet :

phonebook delete name=Br2
phonebook add name=cip1 addr=8*36 type=cip
cip ifadd addr=<addresse_IP_publique> netmask=255.255.255.0
cip pvcadd dest=8*36 destaddr=<adresse_IP_passerelle>
ip rtadd dst=0.0.0.0 gateway=<adresse_IP_passerelle>

mardi 28 août 2012

dns2tcp

Petit tutoriel rapide pour installer et configurer un environnement dns2tcp. Juste rapidement, le but de cet environnement est d'utiliser les requêtes DNS pour établir une connexion TCP entre un client et un serveur (très pratique quand seul le DNS est autorisé ... ).

/!\ Ce tuto par d'un VKS tout fraichement installé, mais peut être adapté à tout type d'environnement. /!\

-- Parenthèse

Je passe la configuration du système lui-même mais en profite pour rappeler que pouvoir se connecter en root sur un serveur, c'est pas top, et que laisser des clés SSH d'OVH, ben c'est pas top non plus :

bash ~# cat /etc/ssh/sshd_config
[...]
PermitRootLogin no

bash ~# rm ~/.ssh/authorized_keys2

-- Fin parenthèse

-- Pré-requis

<< un serveur accessible sur Internet (évidemment)

<< un nom de domaine (pour l'exemple : poney.net)

<< le port 53 disponible sur le serveur (si bind est installé par défaut, il faudra arréter le service ou le désinstaller, et certainement modifier la configuration dans /etc/resolv.conf)

-- Fin pré-requis

1) Déjà, un petit update du système ne fait pas de mal

bash ~# aptitude update && aptitude dist-upgrade
[...]

2) Récupérer et compiler dns2tcp

bash ~# aptitude install build-essential
bash ~$ wget http://hsc.fr/ressources/outils/dns2tcp/download/dns2tcp-0.5.2.tar.gz
bash ~$ tar xzf dns2tcp-0.5.2.tar.gz && rm dns2tcp-0.5.2.tar.gz
bash ~$ cd dns2tcp-0.5.2
bash ~$ ./configure && make
bash ~# make install

3) Configuration du DNS

<< Nouvelle entrée pour poney.net.

dnstcp  NS      dnstcp.poney.net.
dnstcp  A       @IP_Serveur

<<

4) Confiugration et lancement du service

Plusieurs mode de fonctionnement sont configurables avec dns2tcp, nous allons voir comment configurer un tunnel SSH (pour plus d'informations : http://hsc.fr/ressources/outils/dns2tcp/download/README).

bash ~# mkdir /var/dns2tcp

bash ~# cat /etc/dns2tcp.conf
# listen = 0.0.0.0
port = 53
user = nobody
domain = dnstcp.poney.net
chroot = /var/dns2tcp
key = macleavecpleindecaracteresquiveulentriendiredjizeojzeoi23E3EZDKJoczhir
ressources = ssh:127.0.0.1:22

bash ~# /usr/local/bin/dns2tcpd -f /etc/dns2tcp.conf -d 1

-- Script à appeler depuis un cron pour vérifier que le service tourne bien

bash ~# cat test_services.sh
if [ `pidof dns2tcpd` ]
then
echo "[+] dns2tcp OK"
else
echo "[-] dns2tcp KO"
echo "[-]  * kill processus (just to be sure)"
killall dns2tcpd
echo "[-]  * laucnh daemon"
/usr/local/bin/dns2tcpd -f /etc/dns2tcp.conf -d 1
echo "[+] dns2tcp OK"
fi

bash ~# crontab -l
*/1 * * * *     /bin/bash /root/test_services.sh &> /dev/null

-- Fin script

5) Configuration du client

<< Même étape que la 2) pour la compilation

bash ~$ dns2tcpc -z dnstcp.poney.net -r ssh -k macleavecpleindecaracteresquiveulentriendiredjizeojzeoi23E3EZDKJoczhir -l 4443 &
bash ~$ ssh -D 1234 -p 4443 user@localhost

L'option -D 1234 permet de créer un proxy SOCKS4/5 en local sur le port 1234, qui utilisera automatiquement la connexion SSH comme tunnel.

lundi 20 août 2012

Cntlm Authentication Proxy

Cntlm est un utilitaire permettant de s'authentifier auprès d'un proxy.

Une fois l'utilitaire installé (téléchargeable ici), il faut modifier le finir cntlm.ini :

Username	identifiant_AD
Domain		nom_domaine
Auth		mode_auth
PassNTLMv2	hash_trouvé
Proxy		ip_proxy:port_proxy
Listen		3128
SOCKS5Proxy	8010

Il est possible de remplir le fichier cntlm.ini avec votre mot de passe de domaine en clair, mais il est préférable de le laisser vide et d'utiliser cntlm pour récupérer la méthode d'authentification de votre AD ainsi que le hash de votre mot de passe. Il suffit d’exécuter la commande suivante dans le dossier de cntlm

cntlm -I -M http://test.com
Config profile  1/11... OK (HTTP code: 200)
Config profile  2/11... OK (HTTP code: 200)
Config profile  3/11... OK (HTTP code: 200)
Config profile  4/11... OK (HTTP code: 200)
Config profile  5/11... OK (HTTP code: 200)
Config profile  6/11... Credentials rejected
Config profile  7/11... Credentials rejected
Config profile  8/11... OK (HTTP code: 200)
Config profile  9/11... OK (HTTP code: 200)
Config profile 10/11... OK (HTTP code: 200)
Config profile 11/11... OK (HTTP code: 200)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      4AC6525378DF8C69CF6B6234532943AC
------------------------------------------------

Il suffit alors de rajouter les 2 lignes dans le fichier cntlm.ini.

On peut ensuite configurer Putty pour utiliser cntlm :
Dans l'onglet Connexion/proxy :
proxy type : SOCKS 5
proxy hostname : 127.0.0.1
port : 8010

jeudi 2 août 2012

Linux Mint Live en PXE par NFS

Il est possible, très simplement, de démarrer la distribution Linux Mint depuis un serveur PXE. Cette façon de faire peut être adaptée à d'autres distributions, elle est d'ailleurs inspirée de celle d'Ubuntu (d'où est tirée Mint).

mount -o loop linuxmint-13-mate-dvd-64bit.iso /media/imagecd
mkdir /tftpboot/mint
cp -r /media/imagecd/casper /tftpboot/mint/
umount /media/imagecd
  • Rendre ce répertoire accessible en NFS. Pour cela, installer le serveur NFS et ajouter une ligne d'export au fichier /etc/exports :
apt-get install nfs-kernel-server
echo '/tftpboot/mint *(ro,no_root_squash,no_subtree_check,async)' >> /etc/exports
/etc/init.d/nfs-kernel-server restart
  • Ajouter une entrée dans le fichier <racine TFTP>/pxelinux.cfg/default. Pour ma part j'ai aussi passé l'OS en français :
LABEL mint
     MENU LABEL Mint Live (NFS)
     KERNEL mint/casper/vmlinuz
     APPEND initrd=mint/casper/initrd.lz boot=casper netboot=nfs nfsroot=192.168.1.1:/tftpboot/mint locale=fr_FR keymap=fr console-setup/layoutcode=fr



Mise à jour (21/11/2012) : le réseau fonctionne sous Linux Mint 13, mais plus sous Mint 14. Il faut alors redemander une IP :

sudo dhclient eth0

vendredi 13 avril 2012

Remplacer la Freebox par un routeur Cisco SOHO 97

Voici une configuration possible du Cisco SOHO97 pour se connecter sur une ligne ADSL Free en dégroupage total (donc en IPoA). On y voit la configuration de l'encapsulation des VP/VC 8/36, l'adressage fixe (le DHCP ne fonctionne qu'avec certaines versions d'IOS) et le NAT. On peut aussi ajouter des redirectiosn de ports.

Attention toutefois, le SOHO97 ne fait pas d'ADSL2+, seulement de l'ADSL. Sur une ligne de piètre qualité (2,5 km), je perds environ 26 % de débit en download, 14 % en upload et 20 ms de ping, ce qui est énorme.

interface Ethernet0
 ip address 192.168.1.254 255.255.255.0
 ip nat inside
 hold-queue 100 out
!
interface ATM0
 no ip address
 no atm ilmi-keepalive
 no atm address-registration
 no atm ilmi-enable
 dsl operating-mode auto
!
interface ATM0.1 point-to-point
 ip address <adresse_ip_publique> 255.255.255.0
 ip nat outside
 pvc 8/36
  encapsulation aal5mux ip
 !
!
ip nat inside source list 1 interface ATM0.1 overload
ip classless
ip route 0.0.0.0 0.0.0.0 ATM0.1
ip http server
no ip http secure-server
!
access-list 1 permit 192.168.1.0 0.0.0.255

Débit montant : 107,6 ko/s avec la Freebox ; 92,7 ko/s avec le SOHO97. (envoi en FTP de 32768.rnd vers un FTP Free)
Débit descendant : 380 ko/s avec la Freebox ; 281 ko/s avec le SOHO97. (wget http://test-debit.free.fr/32768.rnd)
Ping : 20,4 ms avec la Freebox, 39,6 ms avec le SOHO97. (ping -f <ip_passerelle> pendant une minute)

vendredi 20 janvier 2012

Ouvrir une session sous Windows 7 sans mot de passe

Le saviez-vous ? Il est possible de créer un compte administrateur sur Windows 7, sans avoir à ouvrir de session (donc sans connaître le mot de passe admin).
En effet sur l'écran d'ouverture de session figure un bouton "Options d'ergonomie" qui démarre %windir%\system32\utilman.exe en administrateur. Il suffit donc, depuis un liveCD, de remplacer cet exécutable par cmd.exe puis redémarrer, pour qu'un clic sur le bouton "Options d'ergonomie" démarre une invite de commande à partir de laquelle on peut exécuter une MMC pour aller créer un deuxième compte administrateur.

mercredi 5 janvier 2011

Passerelle vers un réseau Tor

Le but de ce billet est de créer une passerelle qui sort directement sur le réseau Tor.
A quoi cela peut bien servir ? Par exemple en changeant la route par défaut d'un client lui permettre d'être anonyme sur la toile (attention aux données sensibles qui transitent dans le réseau Tor tout de même), ou encore fournir une passerelle, potentiellement ouverte, vers internet sans être reconnu comme IP source des paquets sortants.

Tor est un réseau d'ordinateurs (volontairement) zombies qui permet de faire du multi-proxy.

Installer Tor

La première étape est l'installation de Tor sur un serveur:
# apt-get install tor
... et ben voilà, première étape terminée ;)
| Comme toujours, il est possible d'installer Tor à partir de ses sources afin d'avoir la dernière version:
$ wget http://www.torproject.org/dist/tor-0.2.1.28.tar.gz
$ tar xzf tor-0.2.1.28.tar.gz && rm tor-0.2.1.28.tar.gz
$ cd tor-0.2.1.28
$ ./configure
$ make
$ su -c 'make install'

|| Requirements:
# apt-get install build-essential
# apt-get install libevent-dev
# apt-get install libssl-dev

Configuration de Tor

(Rappel: on ne souhaite pas dans ce billet configurer Tor comme relais, mais simplement comme point d'entrée dans le réseau Tor)

Emplacement: /etc/tor/torrc ou /urs/local/etc/tor/torrc

RunAsDaemon 1
# Port et adresse d'écoute du démon Tor(relai)

# ORPort 9001
# ORListenAddress 127.0.0.1
# Port et adresse d'écoute pour les requêtes DNS
DNSPort 53
# Port et adresse d'écoute pour Tor en mode proxy transparent
TransPort 8118
TransListenAddress 0.0.0.0

A présent, vous pouvez lancer Tor:
# invoke-rc.d tor start
ou
# tor

Configuration IP forward

Un simple echo 1 > /proc/sys/net/ipv4/ip_forward suffit, il est également possible d'éditer le fichier /etc/sysctl.conf afin d'activer l'IP forward systématiquement:

net.ipv4.ip_forward=1

Configuration netfilter/iptables

Afin de concentrer tout le trafic entrant vers le proxy transparent local, on configure quelques règles iptables simples:
iptables -F -t nat
iptables -F
iptables -X
## Règles locales
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 8118
iptables -t nat -A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
## Règles extérieures
iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 8118
iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 53

Vous pouvez tester si le proxy fonctionne en local simplement en vous rendant sur www.whatismyip.org (et vérifier que ce n'est pas votre IP) ou:
$ GET whatismyip.org
ou
$ w3m whatismyip.org
Le même test est réalisable à partir d'un client extérieur après lui avoir modifié sa route par défaut.

Configuration annexe

Si vous voulez que l'ensemble du trafic d'un hôte passe systématiquement dans le réseau Tor, il suffit de configurer le serveur DHCP en rajoutant une entrée host. Par exemple pour dhcpd, on peut rajouter l'entrée suivante dans le fichier /etc/dhcp3/dhcpd.conf

host monHote{
fixed-address A.B.C.D;
hardware ethernet XX:XX:XX:XX:XX:XX;
option routers {adresse IP du serveur Tor}
}

Mise à jour: Commande socat:
socat -d -d TCP4-LISTEN:8118,fork,reuseaddr TCP4:<address_ip>:8118

mardi 14 décembre 2010

John the ripper en multicore

John The Ripper fait parti des meilleurs crackers de mot de passe, de part sa puissance et sa connaissance de nombreux algorithmes. Cependant, sa version officielle ne permet pas son exécution sur plusieurs core. Heureusement, une implémentation de JTR utilisant OpenMPI existe pour palier à ce problème.

Lire la suite...

mardi 7 décembre 2010

Subsonic : serveur de Streaming audio

1) Installer Java

# sudo apt-get install openjdk-6-jre

2)Télécharger le paquet

# sudo wget http://downloads.sourceforge.net/project/subsonic/subsonic/4.2/subsonic-4.2.deb

3) Installer le paquet

# sudo dpkg -i subsonic-x.x.deb

4) Installation des transcoders

# sudo aptitude install lame flac faad vorbis-tools ffmpeg

5) Configuration

# sudo vi /etc/default/subsonic
# sudo service subsonic restart

6) Accès

http://adresse_ip:4040

7) Voir les logs

# sudo tail -100f /var/subsonic