Работа с SSH — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
(не показано 8 промежуточных версий этого же участника) | |||
Строка 21: | Строка 21: | ||
Отправка администратору на почту уведомления о том, что в систему по SSH зашел пользователь, для этого поправим /etc/ssh/sshrc: | Отправка администратору на почту уведомления о том, что в систему по SSH зашел пользователь, для этого поправим /etc/ssh/sshrc: | ||
echo $(date) $SSH_CONNECTION $USER $SSH_TTY | mail -s “ssh login” admin@domain.ru | echo $(date) $SSH_CONNECTION $USER $SSH_TTY | mail -s “ssh login” admin@domain.ru | ||
+ | так подробней) | ||
+ | echo "ALERT - Root Shell Access on:" `date` `who` | mail -s "Alert: Root Access on SERVERNAME" myaccount@gmail.com & | ||
Строка 30: | Строка 32: | ||
pass in log on $ext_if inet proto tcp to $ext_if port ssh keep state (max-src-conn-rate 5/60, overload <sshbf> flush global) | pass in log on $ext_if inet proto tcp to $ext_if port ssh keep state (max-src-conn-rate 5/60, overload <sshbf> flush global) | ||
Данный набор правил инструктирует фильтр пакетов не допускать более 5 одновременных соединений к 22 порту за 60 секунд. | Данный набор правил инструктирует фильтр пакетов не допускать более 5 одновременных соединений к 22 порту за 60 секунд. | ||
+ | |||
+ | |||
+ | Запустить приложение на удалённой машине: | ||
+ | # ssh root@192.168.10.10 /sbin/ifconfig | ||
+ | |||
+ | |||
+ | Закачать файл на удалённый сервер: | ||
+ | # scp filename username@host:/directory/ | ||
+ | |||
+ | |||
+ | Закачать файл на удалённый сервер, если ssh на нестандартном порту: | ||
+ | # scp -P 50022 filename username@host:/directory/ | ||
+ | |||
+ | |||
+ | Скачать файл с удалённого хоста: | ||
+ | # scp username@host:/directory/filename /directory/ | ||
+ | |||
+ | |||
+ | Скачать файл с удалённого хоста, если ssh на нестандартном порту: | ||
+ | # scp -P 50022 username@host:/directory/filename /directory/ |
Текущая версия на 18:37, 4 апреля 2014
По умолчанию sshd слушает как на IPv4 так и на IPv6 адресах. Для того что бы отключить возможность работы по IPv6, необходимо изменить параметр AddressFamily:
AddressFamily inet
По умолчанию sshd принимает подключения на всех интерфейсах, в чем не всегда есть необходимость. Если не требуется заходить на сервер “из вне”, можно ограничить его работу определенным адресом:
ListenAddress 192.168.1.2
В большинстве дистрибутивов в целях безопасности доступ суперпользователю по SSH закрыт (PermitRootLogin no), и при попытке зарегистрироваться под root получаем сообщение об ошибке. Для выполнения задач, требующих привилегий администратора, приходится заходить под обычным пользователем и использовать su или sudo. Красиво выйти из ситуации поможет директива Match. В качестве аргумента ей передается критерий отбора (User, Group, Host, Address), его значение и параметр, который нужно применить. Для примера разрешим подключение под root только с localhost и из доверенной подсети 192.168.5.0/24:
PermitRootLogin no Match Host 192.168.5.*,127.0.0.1 PermitRootLogin yes
Контроль неудачных подключений к серверу:
LoginGraceTime 60 MaxStartups 2:50:10
Параметр LoginGraceTime определяет, по истечению какого времени простаивающее подключение будет разорвано (в секундах). Количество параллельных неаутентифицированных подключений к серверу контролируется при помощи MaxStartups. Запись параметра имеет форму “start:rate:full”. В нашем случае она означает отключение с вероятностью 50% при наличии двух неаутентифицированных связей, с линейным ростом вероятности до 100% при достижении 10.
Отправка администратору на почту уведомления о том, что в систему по SSH зашел пользователь, для этого поправим /etc/ssh/sshrc:
echo $(date) $SSH_CONNECTION $USER $SSH_TTY | mail -s “ssh login” admin@domain.ru
так подробней)
echo "ALERT - Root Shell Access on:" `date` `who` | mail -s "Alert: Root Access on SERVERNAME" myaccount@gmail.com &
Ограничение возможностей перебора паролей с помощью PF:
# ee /etc/pf.conf table <sshbf> persist block in log quick on $ext_if inet from <sshbf> pass in log on $ext_if inet proto tcp to $ext_if port ssh keep state (max-src-conn-rate 5/60, overload <sshbf> flush global)
Данный набор правил инструктирует фильтр пакетов не допускать более 5 одновременных соединений к 22 порту за 60 секунд.
Запустить приложение на удалённой машине:
# ssh root@192.168.10.10 /sbin/ifconfig
Закачать файл на удалённый сервер:
# scp filename username@host:/directory/
Закачать файл на удалённый сервер, если ssh на нестандартном порту:
# scp -P 50022 filename username@host:/directory/
Скачать файл с удалённого хоста:
# scp username@host:/directory/filename /directory/
Скачать файл с удалённого хоста, если ssh на нестандартном порту:
# scp -P 50022 username@host:/directory/filename /directory/