[Help] Connexion SFTP / SSH Debian wheezy

Fermé
bigbrownies1 Messages postés 5 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 14 mai 2015 - Modifié par bigbrownies1 le 14/05/2015 à 00:03
bigbrownies1 Messages postés 5 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 14 mai 2015 - 14 mai 2015 à 23:28
Bonjour,

Je me présente, je m'appele jean et je suis étudiant en électronique. Je "découvre" actuellement Linux sous son visage programmation, installation de packet.
J'aimerais vous présenter ce que j'essaie de faire pour mieux vous situer dans la problématique.
Je cherche actuellement à faire un serveur avec accès à distance.
Ce serveur possèdera 3 site donc 3 sftp de developpement + acces terminal.
Chaque sftp (siteclient, sitetech, centralepi) sera lié à un groupe et non un utilisateur.
J'ai choisis SFTP pour la sécurité et l'accès au terminal.
Je me suis inspiré de ce Tuto : http://www.kitpages.fr/fr/cms/193/installer-un-sftp-avec-chroot-sur-debian
et du man de sshd_config : http://www.delafond.org/traducmanfr/man/man5/ssh_config.5.html
L'arborescence de mon serveur est la suivante :
/home
------/pi
------/sftp
-----------/siteclient
--------------------/public_html
--------------------/siteclient-sftp
-----------/sitetech
--------------------/public_html
--------------------/sitetech-sftp
-----------/centralepi
--------------------/public_html
--------------------/centralepi-sftp


J'ai donc mondifié mon fichier /etc/ssh/sshd_config dans cette optique :
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication yes

X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

Match Group siteclient
        ChrootDirectory /home/sftp/siteclient
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no

Match Group sitetech
        ChrootDirectory /home/sftp/sitetech
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no



Voila mon fichier /etc/passwd :
tech0:x:1001:1004::/home:/bin/false

Il me semble qu'il faille changer le /bin/false pour avoir accès au terminal.

Voila mon fichier /etc/group :
siteclient:x:1004:tech0
sitetech:x:1006:tech0


Voila l'appartenance et les droits sur les dossiers de mon arborescence :
ls -ld /home
drwxrwxrwx 5 root root 4096 May 13 15:13 /home
ls -ld /home/sftp
drwxr-xr-x 5 root root 4096 May 13 15:13 /home/sftp
ls -ld /home/sftp/siteclient
drwxr-xr-x 4 root root 4096 May 13 12:24 /home/sftp/siteclient
ls -ld /home/sftp/siteclient/public_html
drwxrwxr-x 2 tech0 siteclient 4096 May 13 12:24 /home/sftp/siteclient/public_html


Je suis aller voir les log /var/log/auth.log :
May 13 12:33:42 raspberrypi sshd[5278]: Failed password for root from 222.186.160.49 port 34321 ssh2
May 13 12:33:44 raspberrypi sshd[5278]: Failed password for root from 222.186.160.49 port 34321 ssh2
May 13 12:33:47 raspberrypi sshd[5278]: Failed password for root from 222.186.160.49 port 34321 ssh2
May 13 12:33:47 raspberrypi sshd[5278]: Received disconnect from 222.186.160.49: 11:  [preauth]

Est ce un robot qui essaie de se co à mon serveur ? parceque j'ai peut être plus de 100lignes comme ça. Puis je bannir une ip qui essaie de faire autant de connexion sur root ? et j'ai remarqué que de temps à autre l'ip change.
Sinon voici les logs interessant pour mon problème.
May 13 17:32:04 raspberrypi sshd[7260]: User tech0 not allowed because account is locked
May 13 17:32:04 raspberrypi sshd[7260]: input_userauth_request: invalid user tech0 [preauth]
May 13 17:32:04 raspberrypi sshd[7260]: error: Could not get shadow information for NOUSER
May 13 17:32:04 raspberrypi sshd[7260]: Failed password for invalid user tech0 from 192.168.1.63 port 52757 ssh2
May 13 17:32:04 raspberrypi sshd[7260]: Received disconnect from 192.168.1.63: 13: Unable to authenticate [preauth]


Voilà, si vous avez besoin de plus d'informations, je vous envoie ça.
J'éditerais sans aucun doute pour rajouter ce que j'ai fais de mon coté.

EDIT: Voilà ce que donne une tentative de connexion en local sur mon serveur en ligne de commande :
pi@raspberrypi:~$ ssh tech0@192.168.1.69
tech0@192.168.1.69's password:
Permission denied, please try again.
tech0@192.168.1.69's password:

pi@raspberrypi:~$ sftp tech0@192.168.1.69
tech0@192.168.1.69's password:
Permission denied, please try again.
tech0@192.168.1.69's password:


Amicalement, bigbrownies1

2 réponses

bigbrownies1 Messages postés 5 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 14 mai 2015
14 mai 2015 à 10:42
Je suis aller voir également pour une gestion plus souple vers pam-mysql :
Si j'ai bien compris, le .conf désigne le chemin de vers ma table d'user.
# Sample configuration file for pam-mysql
users.host              = localhost
users.database          = mysql
users.db_user           = root
users.db_passwd         = YOUDIDN'TSETONEDIDYOU?
#users.where_clause     = (host)
users.table             = user
#users.update_table     = (update_table)
users.user_column       = User
users.password_column   = Password
#users.status_column    = (statcolumn)
users.password_crypt    = 2
#users.use_323_password = (use_323_passwd)
#users.use_md5          = yes
#users.where_clause     = (where)
#users.disconnect_every_operation       = (disconnect_every_op) *1
#verbose                = (verbose)
#log.enabled            = (sqllog)
#log.table              = (logtable)
#log.message_column     = (logmsgcolumn)
#log.pid_column         = (logpidcolumn)
#log.user_column        = (logusercolumn)
#log.host_column        = (loghostcolumn)
#log.rhost_column       = (logrhostcolumn) *2
#log.time_column        = (logtimecolumn)

Si je rempli correctement cette page de config, il ira chercher les users dans la base de donné ?
0
bigbrownies1 Messages postés 5 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 14 mai 2015
14 mai 2015 à 19:13
Le problème provient de ma manière de faire mon chroot :
#Match Group siteclient
 #       ChrootDirectory /home/sftp/siteclient
 #       ForceCommand internal-sftp
 #       AllowTcpForwarding no
#       X11Forwarding no

#Match Group sitetech
 #       ChrootDirectory /home/sftp/sitetech
 #       ForceCommand internal-sftp
 #       AllowTcpForwarding no
 #       X11Forwarding no


En metant en commentaire ça, j'arrive à me co avec mon utilisateur.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
14 mai 2015 à 19:35
Salut,

M'est d'avis qu'il ne peut y avoir qu'une seule directive
 ChrootDirectory /home/...
dans le fichier, d'où dans ton 1er lien le "%u"
ChrootDirectory /home/%u
et la création d'un groupe
addgroup sftp_chroot
contenant les users ;-\

A toi d'adapter tes users en fonction du
ChrootDirectory /home/sftp/%u
0
bigbrownies1 Messages postés 5 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 14 mai 2015 > zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021
Modifié par bigbrownies1 le 14/05/2015 à 22:20
m'est il possible de faire un lien symbolique entre tous les dossiers de chaque user et /home/sftp/siteclient pour qu'au final, les users voient le dossier /home/sftp/siteclient comme leur dossier ?
0
bigbrownies1 Messages postés 5 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 14 mai 2015
14 mai 2015 à 23:28
Voila, j'ai suivis ce que tu m'a dit.
Voilà le changement :
Match Group siteclient
        ChrootDirectory /home/users/%u/siteclient
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no

Match Group sitetech
        ChrootDirectory /home/users/%u/sitetech
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no


voilà ma nouvelle arborescence :
/home
   |-----/pi
   |-----/sftp
   |        |-----/siteclient
   |        |        |-------/public_html
   |        |-----/sitetech
   |                 |-------/public_html
   |-----/users
            |-----/tech0
            |        |-------/siteclient
            |        |-------/sitetech
            |-----/user2
                     |-------/siteclient


Ensuite j'ai créé les liens symboliques entre chaque dossier :
sudo ln -s /home/sftp/siteclient /home/users/tech0

j'obtiens bien mon dossier /siteclient qui pointe vers /home/sftp/siteclient.

Par contre ça ne fonctionne toujours pas.
Je n'ai pas accès au sftp avec mon utilisateur.
0