Samba sur Synology et client sur Ubuntu
Cet article a pour but d'expliquer comment configurer votre Synology en tant que serveur Samba et comment configurer votre PC Ubuntu pour accéder à ce partage.
Etape 1, activation du serveur Samba sur le Synology
Activer le service de fichier Windows pour le groupe de travail WORKGROUP : menu "Panneau de Configuration > Win/Mac/NFS"
Disposer d'un utilisateur sur le Synology.
Etape 2, configuration d'Ubuntu en tant que client Samba
Installation du package :
sudo apt-get install cifs-utils
cifs.idmap, cifs.upcall, cifscreds, getcifsacl, mount.cifs, setcifsacl
Test de la connexion au partage :
smbclient -L //IP_SYNOLOGY -U thierry
Test de création d'un point de montage
thierry@PC2:~$ mkdir ~/mnt thierry@PC2:~$ sudo mount -t cifs //IP_SYNOLOGY/PC_THIERRY ~/mnt -o username=thierry,noexec
ou sudo mount.cifs //IP_SYNOLOGY/PC_THIERRY ~/mnt -o username=thierry,noexec
Ces deux commandes demandent le mot de passe du PC (pour sudo), puis le mot de passe de votre compte sur le serveur Samba.
Sur votre PC, déclarer votre user samba avec son mot de passe afin de ne pas avoir à le fournir à chaque montage du partage
vi /etc/samba/user username=thierry password=samba_user_password
Pour des raisons de sécurité, modifier les droits de ce fichier
sudo chmod 0400 /etc/samba/user
Dans fstab, déclarer votre montage
//IP_SYNOLOGY/PC_THIERRY /home/thierry/mnt cifs credentials=/etc/samba/user,noexec 0 0
L'option noexec empêche l'exécution d'un script depuis le partage Samba.
Biblio :
https://help.ubuntu.com/community/Samba/SambaClientGuide
http://arsouyes.org/index.php?id=165
Synchroniser votre Synology avec votre PC via rsync à travers ssh avec un user autre que root ou admin
Créer un user autre que root ou admin pour faire du ssh sur votre Synology
- Via la console web du Synology, activer le service ssh : Panneau de configuration > Terminal et SNMP
=> Vous pouvez à présent vous connecter via ssh à votre Synology avec le user root.
- Via la console web du Synology, créer votre user.
- Via votre session ssh en tant que root, modifier le fichier /etc/passwd et remplacer /sbin/nologin par /bin/sh pour votre user (thierry dans mon exemple).
=> A présent ssh thierry@IP_SYNOLOGY fonctionne.
Procéder à la synchronisation via rsync sur ssh
Un exemple pour copier le répertoire data dans PC_THIERRY
rsync -azvv -e ssh /home/thierry/Bureau/data thierry@IP_SYNOLOGY:/volume1/PC_THIERRY/data
Tutorial Scapy, réaliser un graphe du chemin parcouru par traceroute
Au préalable, il faut installer tous les packages nécessaires pour faire des graphiques.
sudo apt-get install tcpdump graphviz imagemagick python-gnuplot python-crypto python-pyx
Nous allons faire un graphe du chemin pris pour atteindre www.tf1.fr en envoyant un paquet traceroute.
Avant de faire le graphe du chemin pris par traceroute, on affichera les réponses au format texte.
sudo scapy
[sudo] password for xxxxx:
WARNING: No route found for IPv6 destination :: (no default route?)
Welcome to Scapy (2.2.0)
>>> sn,unans=traceroute(["www.tf1.fr"],maxttl=10)
Begin emission:
*.*.*.*.*.Finished to send 10 packets.
*.*.*.*...
Received 20 packets, got 9 answers, remaining 1 packets
23.200.87.158:tcp80
1 192.168.1.254 11
2 5.50.10.254 11
3 62.35.253.193 11
4 89.89.101.33 11
5 212.194.171.6 11
7 62.34.0.98 11
8 23.200.87.158 SA
9 23.200.87.158 SA
10 23.200.87.158 SA
>>> sn.nsummary()
0000 IP / TCP 192.168.1.2:17239 > 23.200.87.158:http S ==> IP / ICMP 192.168.1.254 > 192.168.1.2 time-exceeded ttl-zero-during-transit / IPerror / TCPerror
0001 IP / TCP 192.168.1.2:10443 > 23.200.87.158:http S ==> IP / ICMP 62.35.253.193 > 192.168.1.2 time-exceeded ttl-zero-during-transit / IPerror / TCPerror
0002 IP / TCP 192.168.1.2:5701 > 23.200.87.158:http S ==> IP / ICMP 5.50.10.254 > 192.168.1.2 time-exceeded ttl-zero-during-transit / IPerror / TCPerror
0003 IP / TCP 192.168.1.2:16247 > 23.200.87.158:http S ==> IP / ICMP 89.89.101.33 > 192.168.1.2 time-exceeded ttl-zero-during-transit / IPerror / TCPerror
0004 IP / TCP 192.168.1.2:16605 > 23.200.87.158:http S ==> IP / ICMP 212.194.171.6 > 192.168.1.2 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding
0005 IP / TCP 192.168.1.2:56709 > 23.200.87.158:http S ==> IP / ICMP 62.34.0.98 > 192.168.1.2 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding
0006 IP / TCP 192.168.1.2:51284 > 23.200.87.158:http S ==> IP / TCP 23.200.87.158:http > 192.168.1.2:51284 SA / Padding
0007 IP / TCP 192.168.1.2:59111 > 23.200.87.158:http S ==> IP / TCP 23.200.87.158:http > 192.168.1.2:59111 SA / Padding
0008 IP / TCP 192.168.1.2:32305 > 23.200.87.158:http S ==> IP / TCP 23.200.87.158:http > 192.168.1.2:32305 SA / Padding
>>> unans.nsummary()
0000 IP / TCP 192.168.1.2:47871 > 23.200.87.158:http S
>>> sn.graph()
ce qui donne sous forme graphique :
Quelques explications :
192.168.1.254 est l'IP privée de ma box Bouygues Telecom
5.50.10.254 est donc le premier routeur de Bouygues Telecom que ma box utilise pour sortir sur Internet.
Pour TTL6, le routeur n'a pas répondu, donc on ne peut pas connaître l'IP de ce routeur (sur le graphe unk0 , et unans.nsummary().
On voit que traceroute envoie en fait des paquets TCP avec flag SYN (S) et port 80 (http) (vers www.tf1.fr (en incrémentant le TTL, et le routeur, qui ne peut transmettre ce paquet, répond par une erreur ICMP, ce qui permet de connaître l'IP du routeur.
Tutorial Scapy, écouter le réseau
Pour écouter le réseau, il faut utiliser la commande sniff.
Par exemple, nous allons écouter le réseau en filtrant sur les trames concernant www.google.fr.
Lancer sniff :
resp=sniff(filter="host www.google.fr")
Lancer un ping (un seul) vers www.google.fr : ping www.google.fr -c 1
Afficher ce que sniff a capturé :
resp.show()
ce qui donne :
0000 Ether / IP / UDP / DNS Qry "www.google.fr."
0001 Ether / IP / UDP / DNS Qry "www.google.fr."
0002 Ether / IP / UDP / DNS Qry "www.google.fr."
0003 Ether / IP / ICMP 192.168.1.2 > 173.194.40.216 echo-request 0 / Raw
0004 Ether / IP / ICMP 173.194.40.216 > 192.168.1.2 echo-reply 0 / Raw
Captcha
Technique pour contrer des robots qui demanderait la création de compte en fournissant des identifiants non valides.
Un CAPTCHA est une image représentant une série de chiffres et/ou lettres. L'utilisation de CAPTCHA permet d'empêcher des automatiques à créer des comptes abusifs sur des sites en affichant une image qu'une personne non humaine n'est pas capable d’interpréter. Le site demande en effet de décrire l'image pour pouvoir créer le compte, ce qui n'est pas à la portée d'un automate.
Un formulaire de création de compte avec CAPTCHA affiche donc le CAPCHA et demande à l'utilisateur de saisir la série de lettres/chiffres qui le compose. Le site est ainsi protégé contre la création de compte sans fondement.
Page 7 sur 8