Как заключить в тюрьму пользователей, подключающихся по SSH

В нашем мире есть много-много секретов ... Я, честно говоря, не думаю, что смогу выучить достаточно, чтобы знать большинство из них, и это объясняется тем простым фактом, что Linux позволяет нам делать так много, но так много вещей, что нам трудно знать их все.

На этот раз я объясню вам, как сделать что-то чрезвычайно полезное, что-то, что нужно было сделать многим сетевым или системным администраторам, и им было трудно просто не найти довольно простой способ добиться этого:

Как ограничить пользователей, подключающихся через SSH

клетка? … Черт возьми!

Да. Если по какой-либо причине мы должны предоставить SSH доступ нашему другу к нашему компьютеру (или серверу), мы всегда должны заботиться о безопасности и стабильности нашего компьютера или сервера.

Бывает, что недавно мы хотели предоставить Персею SSH-доступ к нашему серверу, но мы не можем предоставить ему какой-либо доступ, потому что у нас есть действительно важные конфигурации (мы скомпилировали много вещей, пакетов, которые мы установили индивидуально и т. Независимо от того, пытаюсь ли я внести хоть малейшее изменение в сервер, есть вероятность, что все пойдет зря, хе-хе.

Тогда, Как создать пользователя с крайне ограниченными привилегиями, настолько, что он не может даже выйти из своей клетки (дома)?

Начнем со скачивания тюремщик, инструмент, который позволит нам сделать это:

Все следующие команды запускаются от имени root

1. Сначала мы должны загрузить наш сервер JailKit.

wget http://ftp.desdelinux.net/jailkit-2.14.tar.gz

2. Затем мы должны распаковать пакет и войти в только что появившуюся папку:

tar xzf jailkit-2.14.tar.gz && cd jailkit-2.14

3. Позже мы перешли к компиляции и установке программного обеспечения (Оставляю вам скриншот):

./configure
make
make install

. / Настроить

сделать

сделать установку

4. Готово, это уже установлено. Теперь мы переходим к созданию клетки, которая будет содержать будущих пользователей, в моем случае я создал ее в: / opt / и назвал ее "тюрьмой", поэтому путь будет следующим: / opt / jail :

mkdir /opt/jail
chown root:root /opt/jail

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

jk_init -v /opt/jail basicshell
jk_init -v /opt/jail editors
jk_init -v /opt/jail extendedshell
jk_init -v /opt/jail netutils
jk_init -v /opt/jail ssh
jk_init -v /opt/jail sftp
jk_init -v /opt/jail jk_lsh

6. Готово, клетка существует, и в ней уже есть инструменты для использования пользователем ... теперь нам просто нужен ... пользователь! Создадим пользователя Кира и поместим в клетку:

adduser kira
jk_jailuser -m -j /opt/jail kira

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

cat /etc/passwd | grep jk_chroot

Если вы заметили, что ничего похожего на скриншот не появляется, значит, вы сделали что-то не так. Оставьте здесь комментарий, и я с радостью вам помогу.

7. И вуаля, пользователь уже в клетке ... но он ТАК в клетке, что не может подключиться по SSH, потому что, когда он пытается подключиться, сервер не позволяет ему:

8. Чтобы позволить пользователю подключиться, мы должны сделать еще один шаг.

Мы должны отредактировать файл etc / passwd клетки, то есть в этом случае это будет / opt / jail / etc / passwd , в нем мы комментируем созданную нами пользовательскую строку и добавляем новую, например:

Кира: х: 1003: 1003 :: / домой / Кира: / бен / баш

То есть у нас был бы такой файл ПАРОЛЬ:

корень: х: 0: 0: корень: / корень: / Bin / Баш
#kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
Кира: х: 1003: 1003 :: / домой / Кира: / бен / баш

Обратите внимание на повторяющиеся знаки препинания и так далее, важно не пропустить ни одного 

После этого пользователь сможет войти без проблем 

И это все.

Инструмент, который мы используем для всего этого (тюремщик) использовать в бэкэнде корневой, что на самом деле используется почти во всех руководствах. Однако использование JailKit упрощает размещение в клетках 

Важно !: Это было проверено на Сжатие Debian (6) y Centos и это сработало в 100%, протестирован в Debian Wheezy (7), и он также работал, хотя и с небольшой детализацией: никнейм пользователя не отображается в ssh, но при этом не теряет никакой функциональности.

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