Как установить и настроить Scponly на CentOS 7

Вступление

scponly - это безопасная альтернатива анонимному FTP. Это дает администратору возможность настроить защищенную учетную запись пользователя с ограниченным удаленным доступом к файлам и без доступа к интерактивной оболочке.

Зачем использовать scponly вместо обычного SSH? С помощью scponly вы предоставляете пользователю удаленный доступ для загрузки и загрузки определенных файлов. У них не будет интерактивной оболочки, что означает, что они не могут выполнять команды. Пользователь может получить доступ к серверу только через + scp +, + sftp + или через клиенты, которые поддерживают эти протоколы. С точки зрения безопасности, это уменьшает вашу поверхность атаки, ограничивая ненужный доступ к интерактивной оболочке на сервере.

Предпосылки

Для этого урока вам понадобится свежая CentOS 6 или 7 капель.

Все команды в этом руководстве должны выполняться от имени пользователя без полномочий root. Если для этой команды требуется root-доступ, ему будет предшествовать + sudo +. Если у вас его еще нет, следуйте этому руководству: Initial Настройка сервера на CentOS 6 или https : //www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7 [Начальная настройка сервера для CentOS 7].

Шаг 1 - Установите пакеты

scponly доступен в некоторых сторонних репозиториях, но эти сборки scponly устарели и в них отсутствуют некоторые функции, которые мы добавим при сборке scponly из исходного кода.

Для сборки scponly из исходного кода вам нужно установить следующие 5 пакетов:

  • wget (для загрузки файлов через командную строку)

  • gcc (для компиляции scponly из исходного кода)

  • man (читать страницы man)

  • rsync (для расширенного копирования файлов)

  • openssh-client-tools (для предоставления различных инструментов ssh)

Мы будем использовать yum для установки необходимых пакетов, необходимых для сборки scponly. Во время установки yum мы передадим необходимые имена пакетов, а также + -y +, который автоматически отвечает yes на все запросы.

Установите + wget,` + gcc + , + man`, + rsync и` + openssh-clients` с помощью команды + yum install +:

sudo yum install wget gcc man rsync openssh-clients -y

Шаг 2 - Загрузите и распакуйте scponly

В этом разделе мы будем загружать последнюю сборку scponly из sourceforge с помощью + wget + и извлекать файлы с помощью + tar +.

Перед загрузкой scponly перейдите в каталог + / opt +. Этот каталог обычно предназначен для программного обеспечения optional.

cd /opt

На момент написания этой статьи последний снимок scponly был * 2011.05.26 *. Вы можете проверить Sourceforge страницу для более поздней версии и соответствующим образом настроить команду + wget +.

Загрузите исходный код scponly, используя + wget +:

sudo wget http://sourceforge.net/projects/scponly/files/scponly-snapshots/scponly-20110526.tgz

Извлеките исходный код Scponly:

sudo tar -zxvf scponly-20110526.tgz

Шаг 3 - Сборка и установка scponly

В этом разделе мы будем использовать 3 основные команды для сборки scponly: + configure +, + make + и + make install +. Эти 3 команды чаще всего используются при загрузке и установке программного обеспечения из исходного кода.

Перейдите в каталог, содержащий исходный код scponly, который вы только что распаковали:

cd /opt/scponly-20110526

Сначала запустите команду + configure +, чтобы создать make-файл со всеми функциями, которые вы хотите включить или отключить при сборке из исходного кода:

sudo ./configure --enable-chrooted-binary --enable-winscp-compat --enable-rsync-compat --enable-scp-compat --with-sftp-server=/usr/libexec/openssh/sftp-server

Были использованы следующие параметры:

  • + - enable-chroot-binary: + Установленный двоичный файл chroot + scponly c +

  • + - enable-winscp-compat: + Включает совместимость с WinSCP, клиентом Windows scp / sftp

  • + - enable-rsync-compat: + Включить совместимость с rsync, очень универсальной утилитой копирования файлов

  • + - enable-scp-compat: + Включает совместимость с командами scp в стиле UNIX

Далее мы соберем scponly с помощью команды + make +. Команда + make + берет все параметры, которые вы передали с помощью команды + configure +, и встраивает их в двоичные файлы, которые будут установлены и запущены в ОС.

sudo make

Далее мы установим двоичные файлы с помощью + make install:

sudo make install

Наконец добавьте оболочки scponly в файл + / etc / shells +:

sudo /bin/su -c "echo "/usr/local/bin/scponly" >> /etc/shells"

Файл + / etc / shells + сообщает операционной системе, какие оболочки доступны для пользователей. Поэтому мы сообщаем операционной системе, что добавили новую оболочку в систему с именем + scponly + и что бинарный файл находится в + / usr / local / bin / scponly +.

Шаг 4 - Создать группу Scponly

Теперь мы создадим группу под названием scponly, чтобы мы могли легко управлять всеми пользователями, которые будут обращаться к серверу с помощью scponly.

sudo groupadd scponly

Шаг 5 - Создайте каталог загрузки и установите соответствующие разрешения

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

Создайте каталог с именем + / pub / upload +, это каталог, предназначенный для загрузки:

sudo mkdir -p /pub/upload

Измените принадлежность группы к каталогу + / pub / upload + на + scponly +:

sudo chown root:scponly /pub/upload

Следующим шагом является настройка прав доступа к каталогу + / pub / upload +. Устанавливая разрешения для этого каталога на 770, мы даем доступ только корневым пользователям и членам группы scponly.

Измените разрешения для каталога + / pub / upload + на чтение, запись и выполнение для владельца и группы и удалите все разрешения для других:

sudo chmod 770 /pub/upload

Шаг 6 - Создайте учетную запись пользователя в scponly Shell

Теперь мы собираемся настроить тестовую учетную запись пользователя, чтобы проверить нашу конфигурацию scponly.

Создайте пользователя с именем * testuser1 * и укажите * scponly * в качестве альтернативной группы и + / usr / local / bin / scponly + в качестве оболочки:

sudo useradd -m -d /home/testuser1 -s "/usr/local/bin/scponly" -c "testuser1" -G scponly testuser1

Измените разрешения для домашнего каталога * testuser1 * на чтение и выполнение только для владельца:

sudo chmod 500 /home/testuser1

Наконец, установите пароль для пользователя * testuser1 *:

sudo passwd testuser1

Шаг 7. Убедитесь, что у пользователя нет доступа к интерактивной оболочке.

Теперь мы проверим доступ к оболочке scponly и убедимся, что он работает как положено.

Давайте проверим, что учетная запись * testuser1 * не имеет доступа к терминалу.

Попробуйте войти на сервер как testuser1:

su - testuser1

Ваш терминал зависнет, так как у вас нет доступа к интерактивной оболочке. Нажмите + CTRL + C +, чтобы выйти из оболочки scponly.

Вы также можете проверить доступ с локального компьютера:

ssh testuser1@

Опять же, ваш терминал зависнет, потому что testuser1 не разрешен доступ к оболочке. Нажмите + CTRL + C +, чтобы выйти из оболочки scponly.

Шаг 8 - Проверка способности пользователей загружать файлы

В этом разделе мы будем подключаться через + sftp с вашего локального компьютера к вашей капле DigitalOcean, чтобы убедиться, что учетная запись` + test user1` может загружать файлы.

Сначала создайте файл размером 100 Мегабайт, используя + fallocate +:

sudo fallocate -l 100m /home/testuser1/testfile.img

Измените владельца файла + testfile.img + на testuser1:

sudo chown testuser1:testuser1 /home/testuser1/testfile.img

В вашей локальной системе измените каталог на + / tmp +:

cd /tmp

Далее + sftp + к вашему серверу DigitalOcean:

sftp testuser1@

Вам может быть предложено сохранить ключ SSH при вводе пароля.

После входа в систему проблема + ls -l + в приглашении + sftp> +:

ls -l

Загрузите файл с помощью команды + get +:

get testfile.img

После завершения загрузки файла введите + quit + для выхода:

quit

Вернитесь на локальный компьютер и убедитесь, что файл был успешно загружен:

ls -l testfile.img

Шаг 9 - Проверка способности пользователей загружать файлы

В этом разделе мы будем тестировать способность учетной записи + testuser1 + загружать файлы на сервер с помощью + sftp +.

В вашей локальной системе создайте файл размером 100 мегабайт с именем + uploadfile.img +, используя + fallocate +:

fallocate -l 100m /home/testuser1/uploadfile.img

Из локальной системы подключитесь к вашей DigitalOcean Droplet.

sftp testuser1@

Затем загрузите + uploadfile.img + в + / pub / upload из приглашения` + sftp`:

put uploadfile.img /pub/upload/

Убедитесь, что файл был успешно загружен, введя следующую команду в приглашении + sftp +:

ls -ltr /pub/upload

Результаты должны быть похожи на:

-rw-r--r--    1 testuser1 testuser1 104857600 Jun  5 07:46 uploadfile.img

Наконец, введите + quit + в приглашении + sftp +:

quit

Заключение

scponly должен быть в каждом наборе инструментов администратора. Его можно использовать как безопасную альтернативу анонимному FTP или как способ предоставить аутентифицированным пользователям возможность загружать и выгружать файлы без интерактивной оболочки. Регистрация scponly происходит в стандартном файле журнала ssh + / var / log / secure +. Как всегда, читайте справочные страницы и обновляйте свою систему.

Для получения дополнительной информации о scponly перейдите на страницу GitHub scponly.

Related