Как настроить SFTP-сервер MySecureShell на Ubuntu 18.04

В этой статье я расскажу вам, как настроить SFTP-сервер с помощью MySecureShell на Ubuntu 18.04. SFTP — безопасный способ передачи файлов с использованием зашифрованного SSH-соединения. Хотя он широко поддерживается современными FTP-клиентами, это совершенно другой протокол, чем FTP (протокол передачи файлов).

Вы можете спросить меня, почему MySecureShell вместо традиционного FTP-сервера. Вот несколько особенностей,

  • Обеспеченная передача данных с использованием SSH
  • Нет необходимости управлять сертификатами SSL
  • Простота установки и настройки
  • Ограничение полосы пропускания
  • Ограничения на файлы и папки
  • Список управления Acess с использованием IP / Username / Groups / VirtualHost
  • Ограничьте пользователей только sftp (по умолчанию доступ к оболочке отключен)
  • Усовершенствованная система регистрации

Итак, давайте начнем с установки , базовые знания FTP достаточно для понимания этого мануала

Установка

С ubuntu 15.04 и выше MySecureShell доступен в репозиториях по умолчанию. Мы используем ubuntu 18.04 для этой установки.

Просто запустите команды для установки MySecureShell.

 # apt-get install mysecureshell 

Если это невозможно, выполните следующие действия, убедитесь, что все следующие шаги выполняются как пользователь root.

 # vim /etc/apt/sources.list 

Добавьте следующие 2 строки,

 deb http://mysecureshell.free.fr/repository/index.php/ubuntu test main deb-src http://mysecureshell.free.fr/repository/index.php/ubuntu test main 

Теперь добавьте ключ gpg:

 # gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys E328F22B; gpg --export E328F22B | apt-key add
# gpg: keybox '/root/.gnupg/pubring.kbx' created
# gpg: /root/.gnupg/trustdb.gpg: trustdb created
# gpg: key 7601D76CE328F22B: public key "MySecureShell repository " imported
# gpg: Total number processed: 1
# gpg: imported: 1
OK 

После добавления репозитория вы можете начать установку

 # apt-get update
# apt-get install mysecureshell 

запустите службу:

 # systemctl start mysecureshell.service
# systemctl status mysecureshell.service 

Пример вывода:

# systemctl start mysecureshell.service
root@itsecforu:~# systemctl status mysecureshell.service
* mysecureshell.service — LSB: MySecureShell SFTP Server
Loaded: loaded (/etc/init.d/mysecureshell; generated)
Active: active (exited) since Fri 2018-05-18 01:02:17 UTC; 4min 44s ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 2322)
CGroup: /system.slice/mysecureshell.service

May 18 01:02:17 004-153 systemd[1]: Starting LSB: MySecureShell SFTP Server…
May 18 01:02:17 004-153 mysecureshell[1314]: Starting MySecureShell SFTP Server: mysecureshell is now online with restricted features
May 18 01:02:17 004-153 mysecureshell[1314]: Note: To enable all features you have to change mysecureshell binary rights to 4755
May 18 01:02:17 004-153 systemd[1]: Started LSB: MySecureShell SFTP Server.

 # systemctl status mysecureshell.service
* mysecureshell.service - LSB: MySecureShell SFTP Server
Loaded: loaded (/etc/init.d/mysecureshell; generated)
Active: active (exited) since Fri 2018-05-18 01:02:17 UTC; 50min ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 2322)
CGroup: /system.slice/mysecureshell.service

May 18 01:02:17 004-153 systemd[1]: Starting LSB: MySecureShell SFTP Server...
May 18 01:02:17 004-153 mysecureshell[1314]: Starting MySecureShell SFTP Server: mysecureshell is now online with restricted features
May 18 01:02:17 004-153 mysecureshell[1314]: Note: To enable all features you have to change mysecureshell binary rights to 4755
May 18 01:02:17 004-153 systemd[1]: Started LSB: MySecureShell SFTP Server.
# 

Используйте нижеприведенные команды, чтобы остановить и перезапустить службу mysecureshell

 # systemctl stop mysecureshell.service
# systemctl restart mysecureshell.service 

Создание пользователя SFTP для MySecureShell

Во-первых, нам нужно найти место установки MySecureShell,

 # whereis mysecureshell 

путь установки

 mysecureshell - /usr/bin/mysecureshell. 

Теперь, после проверки пути, создайте пользователя

 # useradd -m -s / usr / bin / mysecureshell testsftpuser

# passwd testsftpuser 

Как вы видите в приведенной выше команде, мы создаем пользователя и назначаем путь к местоположению mysecureshell.

Кроме того, вы можете назначить существующих пользователей для доступа и использования MySecureShell с помощью команды:

 # sudo usermod -s /usr/bin/mysecureshell testsftpuser 

Подключение пользователя

Теперь пользователь «testsftpuser» может подключиться к вашему SFTP-серверу от ваших клиентов, как показано ниже, с вашим IP-адресом вашей машины,

 # ftp testsftpuser@45.33.54.153 

IP-адрес вашей машины

 Connected to 45.33.54.153
sftp> 

Кроме того, вы можете войти на свой SFTP-сервер с помощью любых графических клиентов, таких как FileZilla, из вашей клиентской системы.

Команды MySecureShell

MySecureShell имеет следующий набор команд для администрирования вашего SFTP-сервера.

  • sftp-admin
  • sftp-kill
  • sftp-state
  • sftp-user
  • sftp-verif
  • sftp-who

sftp-admin

Эта команда позволяет удаленно управлять MySecureShell.

 # sftp-admin [ssh options] user @ hostname 

sftp-kill

Она отключит пользователя от FTP-сервера.

 # sftp-kill testsftpuser
Kill testsftpuser on PID 1961
(Press "Y" when requested) 

sftp-state

Показать статус сервера ftp

 # sftp-state 

Образец вывода

 # sftp-state
Server is up 

sftp-user

Эта команда позволяет вам создавать пользователя SFTP без указания пути, который мы делали ранее.

 # sftp-user create test 

Список пользователей SFTP

 # sftp-user list
test
testsftpser

Команда удалит пользователя test

 # sftp-user delete test 

sftp-verif

Эта команда проверяет и исправляет проблемы на сервере MySecureShell.


sftp-verif
################################################################################
MySecureShell Verification Tool
################################################################################

### Verifing file existance ###

/bin/MySecureShell [ OK ]
/bin/sftp-who [ OK ]
/bin/sftp-kill [ OK ]
/bin/sftp-state [ OK ]
/bin/sftp-admin [ OK ]
/bin/sftp-verif [ OK ]
/bin/sftp-user [ OK ]

### Verifing rights ###

Verifing file rights of /etc/ssh/sftp_config [ OK ]
Verifing file rights of /bin/sftp-who [ OK ]
Verifing file rights of /bin/sftp-verif [ OK ]
Verifing file rights of /bin/sftp-user [ OK ]
Verifing file rights of /bin/sftp-kill [ OK ]
Verifing file rights of /bin/sftp-state [ OK ]
Verifing file rights of /bin/sftp-admin [ OK ]
Verifing file rights of /bin/MySecureShell [ OK ]
<h3>Verifing rotation logs ###
Rotation logs have been found [ OK ]
### Verifing server status ###
Verifing server status (ONLINE) [ OK ]
[...]

 

sftp-who

Эта команда сообщит вам, кто в настоящее время подключен к FTP-серверу.

# sftp-who
--- 1 / 10 clients ---
Global used bandwidth : 0 bytes/s / 0 bytes/s
PID: 2207 Name: testsftpuser IP: pa39-178-9-194.pa.nsw.optusnet.com.au
Home: /home/testsftpuser
Status: idle Path: /
File:
Connected: 2018/05/18 01:30:50 [since 03mins 59s]
Speed: Download: 0 bytes/s [5.00 kbytes/s] Upload: 0 bytes/s [unlimited]
Total: Download: 924 bytes Upload: 100 bytes
#

Конфигурация

Основным конфигурационным файлом MySecureShell является / etc / ssh / sftp_config.

Вы можете настроить загрузку и загрузку полосы пропускания, пользователей chroot, максимальное количество подключений и т.д.

В файле конфигурации.

Вы можете установить эти параметры как для всех, так и для определенной группы.

 # cat /etc/ssh/sftp_config 

Теги по умолчанию

Тег по умолчанию используется, если вы хотите применить конфигурацию для всех своих пользователей


#Default rules for everybody
Default
GlobalDownload 50k #total speed download for all clients
# o -> bytes k -> kilo bytes m -> mega bytes
GlobalUpload 0 #total speed download for all clients (0 for unlimited)
Download 5k #limit speed download for each connection
Upload 0 #unlimit speed upload for each connection
StayAtHome true #limit client to his home
VirtualChroot true #fake a chroot to the home account
LimitConnection 10 #max connection for the server sftp
LimitConnectionByUser 1 #max connection for the account
LimitConnectionByIP 2 #max connection by ip for the account
Home /home/$USER #overrite home of the user but if you want you can use
# environment variable (ie: Home /home/$USER)
IdleTimeOut 5m #(in second) deconnect client is idle too long time
ResolveIP true #resolve ip to dns
LogFile /var/log/sftp-server_ftp.log
# IgnoreHidden true #treat all hidden files as if they don't exist
# DirFakeUser true #Hide real file/directory owner (just change displayed permissions)
# DirFakeGroup true #Hide real file/directory group (just change displayed permissions)
# DirFakeMode 0400 #Hide real file/directory rights (just change displayed permissions)
#Add execution right for directory if read right is set
HideNoAccess true #Hide file/directory which user has no access
# MaxOpenFilesForUser 20 #limit user to open x files on same time
# MaxWriteFilesForUser 10 #limit user to x upload on same time
# MaxReadFilesForUser 10 #limit user to x download on same time
DefaultRights 0640 0750 #Set default rights for new file and new directory
# MinimumRights 0400 0700 #Set minimum rights for files and dirs

ShowLinksAsLinks false #show links as their destinations
# ConnectionMaxLife 1d #limits connection lifetime to 1 day

# Charset "ISO-8859-15" #set charset of computer

Default

Примечание. Журналы не включены по умолчанию, вы можете определить расположение файла журнала в файле конфигурации.

gFTP Установка

Теперь давайте попробуем установку gFTP на Ubuntu 18.04, следуя нижеуказанным шагам,

 # sudo apt-get install gftp 
  • Открыть gFTP из приложений
  • Введите IP-адрес SFTP-сервера, номер порта (по умолчанию / указывается при настройке сервера), имя пользователя и пароль и используйте SSH2. Нажмите Enter для входа в систему
  • Если попытка входа в систему выполнена успешно. Мы подключаемся к SFTP с использованием gFTP

 

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *