!Привіт, друзі! Сьогодні я пропоную вам альтернативу використанню FTP-сервера для безпечної передачі файлів. Вже колега KZKG ^ Гаара опублікував один на основі пакету джейлкіт. Той, який ми розробимо, базується на пакетах, які у нас є більше під рукою у нашому сховищі.
Побачимо:
- Введіть обов’язково
- Як нам налаштувати Openssh-сервер?
- Як ми створюємо користувачів?
- Як ми модифікуємо домашні каталоги, щоб клітка працювала?
Введіть обов’язково
Нам часто потрібні файли для копіювання з віддалених комп’ютерів на нашу машину. Багато хто запитував мене про це. Як встановити FTP? Як встановити SAMBA? Що ж, переходимо від простого до складного. З самого початку, чому ускладнювати себе, якщо ми маємо OpenSSH-сервер встановлений?. А якщо у нас його немає, простою командою:
aptitude встановити openssh-сервер
Тепер у нас це є!, І тоді ми зможемо безпечно передавати файли за допомогою протоколу SFTP (Secure File Transfer Protocol), який використовує SSH (Secure Shell) для шифрування.
За замовчуванням користувачі з дозволом розпочати віддалений сеанс через ssh user @ моя команда, вони зможуть побачити майже всі файли, що зберігаються в нашій системі, що може не сподобатися нам, або що з міркувань безпеки ми не повинні цього дозволяти.
Ця стаття допоможе нам налаштувати OpenSSH-сервер щоб користувачі, яких ми хочемо, мали доступ до їх особистого каталогу / home / user. Ми уточнюємо, що, За допомогою цього методу заявлені користувачі не зможуть запустити віддалений сеанс через консоль ssh або через PuTTy. Вони зможуть переносити файли лише у свій персональний каталог на нашому комп’ютері чи сервері.
Описаний тут спосіб діє для версій Debian 5 (Lenny) або новішої та для версій Ubuntu 9.04 або новіших. Версія пакета SSH для Hardy або Ubuntu 8.04 дуже застаріла і не підтримує конфігурацію, яку ми опишемо нижче.
Як нам налаштувати Openssh-сервер?
Як користувач корінь редагуємо файл / etc / ssh / sshd_config за допомогою будь-якого простого текстового редактора. Ми рекомендуємо використовувати нано у консольному режимі.
nano / etc / ssh / sshd_config
Ми хочемо, щоб був присутній такий рядок:
Підсистема sftp
У Lenny and Squeeze є:
Підсистема sftp / usr / lib / openssh / sftp-server
Якщо він не існує, ми додаємо в кінці файлу:
Підсистема sftp internal-sftp
Продовжуємо редагування файлу sshd_config і додаємо в кінці:
Збіг групи group-sftp ChrootDirectory% h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Ми зберігаємо зміни та перезапускаємо послугу:
/etc/init.d/ssh перезапустити
Як ми створюємо користувачів?
Спочатку ми створюємо «група»Що ми заявляємо в sshd_config. Будьте обережні з іменем, яке ми вибрали раніше, воно не буде таким, що воно вже існує і є групою, що належить Системі. Якщо ми не хочемо обмежувати існуючих користувачів у нашій системі, ми повинні створити нових користувачів, щоб вони могли передавати файли. Щоб клітка працювала, ми також повинні зробити їх членами відповідної групи.
addgroup group-sftp adduser user1 adduser user2 [----] usermod -G group-sftp user1 usermod -G group-sftp user2
Щоб перевірити створення групи та користувачів, ми можемо зробити:
менше / etc / password менше / etc / group ls -l / home
І повинні з’явитися користувачі користувач1 y користувач2а також групи group-sftp і ті, що відповідають створеним користувачам. Крім того, при переліку каталогу / Головна, з’являться домашні каталоги кожного створеного користувача.
Як ми модифікуємо домашні каталоги, щоб клітка працювала ефективно?
Ми повинні підвищити захист особистих папок кожного створеного користувача, щоб вони не могли створювати додаткові папки в своєму особистому каталозі та з дозволами на запис там, де ми хочемо (а не там, де вони хочуть) 🙂:
chown root: root / home / user1 / home / user2 chmod 755 / home / user1 / home / user2 cd / home / user1 mkdir documents html_public chown user1: user1 * cd / home / user2 mkdir documents html_public chown user2: user2 *
Користувачі, що належать до групи group-sftp, відтепер вони зможуть входити зі своїми іменами та паролями лише за допомогою SFTP, і вони зможуть передавати файли в та з каталогів, розташованих під їх особистою папкою та створених нами, але вони не будуть бачити решту нашої файлової системи.
Для передачі файлів і папок ми можемо використовувати Nautilus, Konqueror, WinSCP, FileZilla та інші, що підтримують протокол SFTP. У випадку з Konqueror ми повинні використовувати fish: // user @ remotecomputer.
Ми сподіваємось, що ця стаття буде корисна на практиці!
До наступної пригоди, друзі!
Хороша стаття. Дуже безпечний спосіб обміну файлами. Велике спасибі за пояснення. 🙂
Відмінно
І чи не зручніше користуватися sshfs?
Для нашої команди віддалена папка буде виглядати як ще одна папка з однаковими характеристиками.
Привіт Федеріко, як завжди відмінна стаття. Я дуже рада, що зараз можу читати ваші дописи з Інтернету.
Обійми,
як
Як щодо Якобо, жоден Федеріко прямо не погоджується. Гей, коли ти більше не повертаєшся в ubuntu, ти фарбуєш людину в зелений колір і повністю використовуєш Обійми. 😉
Ви робите чудові внески, продовжуйте продовжувати 😀
Дякуємо тисячі крон ^ Гаара та Дякуємо ВСІМ за ваш відгук
Чи може користувач потрапити в клітку в іншу папку, крім / home / user /… ..?
Що я хочу, це встановити користувача в папку / media / hdd /…
Мені потрібно зробити це таким чином, оскільки сервер - Raspberry Pi з Raspbian, і він має папку / home /… / на SD-карті, яка швидко заповниться.
Я пробував це кількома способами, і результат у клієнті - це завжди «Зламана труба», а результат у серйозному сервері: погане володіння або режими для компоненту каталогу chroot «/ media / HDD /»
Щиро дякую усім
Я думаю, вам доведеться повідомити системі, що домашньою папкою цього користувача є / home / HDD, доки цей розділ має власний формат Linux, тобто ext4; ext3; тощо Наприклад, якщо користувач jae -коротко - ви повинні виконати щось на зразок цього:
: ~ # usermod –move-home –home / home / HDD jae
Також див. Man usermod. Ура
У мене проблема, або у мене є послуга в Amazon з громадським другом, і мені потрібно ввести через sftp, щоб розмістити або видалити файли.
Я робив це раніше, і все добре, але сьогодні він зробив зі мною щось, чого зі мною не траплялося
Усередині ami є низка папок, і одна з них - це веб-портал для неволі (сторінка для моїх користувачів), виявляється, що там я роблю рекламу та рекламу для своїх користувачів, і я постійно вношу зміни та завантажую їх через sftp (з winscp права доступу та кореневий прохід
Я дав chmod 777 для дозволів на запис, і все пройшло добре
але сьогодні при оновленні Інтернету та завантаженні index.html та інших його файлів він дав мені імена, але у мене не залишилося байтів, тобто нуля (порожнього), тепер ви не бачите нічого в моєму Інтернеті
Я закрив сесію і знову вступив, знову дав дозволи, змінив користувача, оновив, спробував вставити інші файли, створити нові, і він завжди робить те саме
це дає мені файли, але вони не мають даних
Хтось може мені допомогти ???
Я б дуже вдячний за ваші відповіді
перш за все, спасибі
Ув
Лік Ірвінг Ернандес
Привіт, як користуватися filezilla, я вже бачив це декількома способами, і досі не можу підключитися.
Це неправильно.
Доброго дня,
Виконайте процедуру, і клітка працює бездоганно, однак при спробі писати в папці «документи» або «html_publico» це дає мені відмову у доступі. Він має згадані дозволи і нічого, що дозволяє це.
drwxr-xr-x. 2 користувач1 користувач1 4096 11 березня 13:16 документи
drwxr-xr-x. 2 користувач2 користувач2 4096 11 березня 13:16 html_publico
Результатом є відмова в доступі при спробі записати в будь-яку папку. Однак виконання отримання це дозволяє.
Сподіваюсь, ви зможете мені якнайшвидше допомогти.
Привіт.