Устанавливаем DenyHost на CentOS/RH

DenyHost это антибрутофорс, или другими словами програма выявляющая и присекающаю угрозы подбора пароля по SSH. Я уже писал ранее о нескольких решениях, но DenyHost интересно в первую очередь тем, что может обмениваться данными с центральным сервером, и получать свежие списки брутофорсеров. Система весьма эффективна, и что не мало важно, легко устанавливаеться и настраиватся.

И так, для начала, нам понадобится установить EPEL, как это сделать читаем ТУТ . Далее:

yum install denyhosts

Основные настройки находяться в /etc/denyhosts.conf, но сама программа работает из коробки без каких либо донастроек. Добавим ее в автозагрузку:

chkconfig denyhosts on

и запускаем

service start denyhosts

Ограничение доступа по SHH средствами sshd

Есть много способов как можно закрыть удаленный доступ к системе, это и PAM и IPtables. Но тем ни менее наиболее простым способом ограничить доступ будет через настройки. Для этого отредактируйте файл /etc/ssh/sshd_config. Список пользователей который разрешен доступ —

AllowUsers

Список пользователей для которых закрыт доступ

DenyUsers

Вы так же можете ограничить адреса на которых демон SSHD будет «слушать» —

ListenAddress

для каждого адреса используйте отдельную запись.

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

MaxAuthTries

Автоматическое вылогинивание пользователей Bash и SSH при неактиности сессии

Для того, что бы автоматически вылогинивать неактивных пользователей из Bash, создайте файл autologout.sh в папке /etc/profile.d/ с таким содержанием:

TMOUT=600
readonly TMOUT 
export TMOUT

Устанавливаем права на этот файл:

chmod +x /etc/profile.d/autologout.sh

Данный скрипт автоматически вылогинивает неактивного пользователя через 10 минут

Для SSH нам необходимо отредактировать файл /etc/ssh/sshd_config. Найдите и измените или при необходимости добавте такие строки:

ClientAliveInterval 600 
ClientAliveCountMax 0

Обязательно перезапустите sshd

service sshd restart

 

Настраиваем bash историю

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

Первое, не сохранять дубликаты:

HISTCONTROL=ignoreboth

Есть несколько других полезных опций HISTCONTROL, например ignorespace, команды которые начинаются с пробела не будут сохраняться; erasedups, все предыдущие команды, которые совпадают с текущей будут удалены из истории.

Второе, это размер истории, в стандартных настройках HISTSIZE равно 500. Я обычно выставляю до 2000.

HISTSIZE=2000

Если вы поставите 0, то в истории ничего не будет сохраняться.

Третье, это имя файла истории, обычно это HISTFILE =~/.bash_history

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

И последнее, как же установить эти значения? Вы можете добавить эти значения в персональный конфигурационный файл ~/.bashrc или в глобальный конфигурационный файл /etc/bashrc просто дописав например :

export HISTCONTROL=ignoreboth 
export HISTSIZE=2000

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

Самый простой и быстрый способ поиска это нажать Ctrl+r и набрать небольшой фрагмент команды.

Еще один антибрутофорс SSH

Этот будет немного попроще чем предыдущий, но не менее эффективный.

Первое что мы сделаем это немного поднастроем ssh, для этого заходим в /etc/ssh/sshd_config и уменьшим количество неавторизированных сессий и количество попыток в каждой сессии:

LoginGraceTime 30 # 30 sec
MaxAuthTries 2
MaxStartups 3

Добавим правило в iptables, которое уменьшит количество возможных попыток аутентификации на 22 порту до 5 в минут:

iptables -A INPUT -p tcp —dport 22 -m recent —name ssh —update —seconds 3600 —hitcount 5 -j REJECT
iptables -A INPUT -p tcp —dport 22 -m recent —name ssh —set -j ACCEPT

Continue reading

PuTTy и без парольный досту при помощи SSH ключей.

Для того что бы получить без парольный доступ через ssh при помощи putty нам понадобиться сгенирировать SSH-2 RSA ключи. И так, для этого необходимо скачать PuTTygen

Запускаем эту программу и выбираем SSH-2 RSA и длину ключа 2048

Continue reading

Полноэкранный оконный менеджер Screen для Linux

Очень часто бывает так, что из за обрыва ssh сессии вы можете потерять все наработки сделанные на сервере. Но, есть способ сохранить нервы, для этого необходимо использовать утилитку Screen.

Основные возможности Screen, это логирование, многооконность и поддержка сессий при работе с удаленным сервером через ssh.

Начнем с установки:

yum install screen

После чего просто запустите команду:

screen

Continue reading

SSH

Статья Всеволода Стахова
Когда стали широко использоваться алгоритмы шифрования при передаче данных в сети, одной из первых возникла задача организации безопасной оболочки. До этого существовала система rsh, которая позволяла определённым пользователям с определённых машин (между ними должны были быть доверительные отношения) работать на сервере с его оболочкой. Это практически то же самое, что и telnet-доступ. Но с развитием сетей стали видны вопиющие дыры rsh: данные, передаваемые через сеть, никак не шифруются, включая пароли; они, могут быть без проблем получены либо модифицированы третьей стороной; злоумышленник может спокойно подменить ip клиента и, используя полученный ранее хеш пароля, пройти аутентификацию на сервере со всеми вытекающими последствиями. Поэтому сейчас rsh применяется в чрезвычайно редких случаях, например, при переносе данных между двумя попарно соединёнными машинами (мне так пришлось работать с двумя машинами в разных комнатах). В основном стандартом де-факто стал ssh.

Continue reading

Антибрутофорс ssh

Я думаю, что у каждого возникала данная проблема, когда ваш сервер смотрит в мир и на нем открыт ssh, естественно его пытаются постоянно брутофорсить, то есть подобрать пароль и логин. И в прицепе ничего страшного в этом нет, но все же неприятно, нагружает сервер и мало ли, вдруг все же подберут. Вот и меня когда-то возникла данная проблема. Порыскав в инете, я наше достаточно хороший навесок на PAM — pam_abl, который по заверению авторов должен был избавить меня от данной проблемы. Данная программа при определенном количестве попыток вносит ip адресс нарушителя себе в базу, и в следующий раз когда он пытается войти в систему блокирует его. Установив и потестив ее, выяснилось, что в базу она ip вносит, но вот блокировать не хочет, может проблема была в CentOS может в програмке, но оно так и не заработало по полной. И тогда немного подумав, я решил дописать пару скриптов, так как база с ip нарушителей у нас есть, то можно ведь этих нарушителей внести в iptables.
Если вам ненужен открытый ssh порт на внешнем порту, вы его можете просто отключить, для этого надо зайти в /etc/ssh/sshd_config и отредактировать параметр ListenAddress

Continue reading

SSH доступ без пароля

Создать пару ключей на сервере с которого мы хотим получить без парольный ssh доступ:

#shh-keygen

Ввести имя файла и два раза enter
Скопировать pub ключи из /root/.ssh/ на сервер где мы хотим получить без парольный ssh доступ(можно использовать winscp)
На сервере поместить данный ключ в /root/.ssh/ и выполнить команду

#cat “имя файла” 1>> authorized_keys

После этого можно выполнять без парольный вход, а так же воспользоваться командой scp например для без парольного, защищенного, перемещения файлов между серверами