User Tools

Site Tools


topic:chroot_sftp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
topic:chroot_sftp [2017/08/03 13:22] – created ktopic:chroot_sftp [2021/08/12 08:35] (current) – external edit 127.0.0.1
Line 1: Line 1:
-===== Связка chroot + sftp =====+===== Настройка связки chroot + sftp =====
 Связку chroot + sftp применяют когда необходимо "запереть" пользователя в определенной папке.  Как правило такие задачи возникают на серверах с хостингом. Связку chroot + sftp применяют когда необходимо "запереть" пользователя в определенной папке.  Как правило такие задачи возникают на серверах с хостингом.
  
Line 8: Line 8:
 ==== Настройка ==== ==== Настройка ====
  
-Определяем место где будут лежать сайты пользователей, создаем необходимые папки.+**1. Создание директорий** \\ 
 +Определяем место где будут лежать сайты пользователей, создаем необходимые директории.
   * **user1** \\ <code>   * **user1** \\ <code>
 # mkdir -p /var/www/user1/mysite # mkdir -p /var/www/user1/mysite
Line 19: Line 20:
 </code> </code>
  
-user1 и user2 не должны подниматься выше /var/www/user1 и /var/www/user2 соответственно. user3 не должен подниматься выше /mnt/sdc1/project.+Пользователи user1 и user2 не должны подниматься выше /var/www/user1 и /var/www/user2 соответственно. \\ Пользователь user3 не должен подниматься выше /mnt/sdc1/project.
  
-2. Создаем группу sftp_only (скорее всего она уже есть) для пользователей user1 и user2.+ 
 +**2. Создание групп пользователей** \\ 
 +Создаем группу sftp_only (скорее всего она уже есть) для пользователей user1 и user2.\\
 Создаем группу sftp_user3 для пользователя user3. Создаем группу sftp_user3 для пользователя user3.
  
 +<code>
 # groupadd sftp_only # groupadd sftp_only
 # groupadd sftp_user3 # groupadd sftp_user3
 +</code>
  
-3. Создаем пользователя, задаем ему домашнюю директорию, шелл и добавляем его в группу.+**3. Создание пользователей** \\ 
 +Создаем пользователя, задаем ему домашнюю директорию, шелл и добавляем его в группу.
  
 +<code>
 # useradd -d /var/www/user1/mysite -s /sbin/nologin -G sftp_only user1 # useradd -d /var/www/user1/mysite -s /sbin/nologin -G sftp_only user1
 # useradd -d /var/www/user2/mysite -s /sbin/nologin -G sftp_only user2 # useradd -d /var/www/user2/mysite -s /sbin/nologin -G sftp_only user2
 # useradd -d /mnt/sdc1/project -s /sbin/nologin -G sftp_user3 user3 # useradd -d /mnt/sdc1/project -s /sbin/nologin -G sftp_user3 user3
 +</code>
  
-Командой passwd задаем пользователям пароли.+Командой passwd задаем пользователям пароли.\\
 В файлах /etc/group и /etc/passwd проверяем, что пользователи создались правильно. В файлах /etc/group и /etc/passwd проверяем, что пользователи создались правильно.
  
-4. Вносим изменения в конфигурацию sshd (файл /etc/ssh/sshd_config). 
  
-Коментируем строчку+**4. Правим sshd_config**\\ 
 +Вносим изменения в конфигурацию sshd, файл /etc/ssh/sshd_config.\\ 
 +Коментируем строПри написании заметки использовались материалы:чку 
 +<code>
 #Subsystem      sftp    /usr/libexec/openssh/sftp-server #Subsystem      sftp    /usr/libexec/openssh/sftp-server
 +</code>
  
 И под ней добавляем новую строчку И под ней добавляем новую строчку
 +<code>
 Subsystem       sftp    internal-sftp Subsystem       sftp    internal-sftp
 +</code>
  
 Определяем пользователей и ip адреса с которых на сервер можно зайти по ssh. Определяем пользователей и ip адреса с которых на сервер можно зайти по ssh.
 +<code>
 AllowUsers root@1.1.1.1 user1@2.2.2.2,3.3.3.3 user2@4.4.4.*,4.4.5.0/24 user3 AllowUsers root@1.1.1.1 user1@2.2.2.2,3.3.3.3 user2@4.4.4.*,4.4.5.0/24 user3
 +</code>
 +<wrap lo>**AllowUsers root** - разрешать root по ssh конечно грешновато=)</wrap> 
  
-##AllowUsers root - очень и очень..  нет, просто супертурбо очень плохо=) +В конец файла добавляем для групп sftp_only и sftp_user3. 
- +<code>
-В конец файла добавляем для группы sftp_only +
 Match Group sftp_only Match Group sftp_only
     ChrootDirectory /var/www/%u     ChrootDirectory /var/www/%u
Line 57: Line 71:
     AllowTcpForwarding no     AllowTcpForwarding no
  
-И для группы sftp_user3 +Match Group sftp_user3
- +
-Match Group sftp_only+
     ChrootDirectory /mnt/sdc1/project     ChrootDirectory /mnt/sdc1/project
     ForceCommand internal-sftp     ForceCommand internal-sftp
     X11Forwarding no     X11Forwarding no
     AllowTcpForwarding no     AllowTcpForwarding no
 +</code>
  
-Сохраняем файл и перезапускаем sshd+Сохраняем /etc/ssh/sshd_config и перезапускаем sshd.
- +
-5. Выставляем права на папки+
  
-Папки /var/www/user1, /var/www/user2 и  /var/www/user2 и /mnt/sdc1/project должны принадлежать пользователю и группе root.  +**5. Выставляем права на директории**\\ 
-Папка /var/www/user1/mysite должна принадлежать пользователю и группе user1, а /var/www/user2/mysite должна принадлежать user2. +Директории **/var/www/user1****/var/www/user2** и **/mnt/sdc1/project** должны принадлежать пользователю и группе **root**\\ 
 +Директори **/var/www/user1/mysite** должна принадлежать пользователю и группе **user1**, а **/var/www/user2/mysite** должна принадлежать **user2**
  
 После этого все должно работать. После этого все должно работать.
  
----+----
  
-При написании заметки использовались материалы: +==== Полезные ссылки ==== 
-http://kb.skullboxx.net//?q=node/546+  * [[http://kb.skullboxx.net//?q=node/546]]
  
 +{{tag>linux}}
topic/chroot_sftp.1501755769.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki