Как посмотреть кто подключен по ssh ubuntu
Школа хостинга Редактор: Дмитрий Сокол 143111 4 мин Аудио
Как правило, для управления Unix\Linux веб-сервером, используют бесплатную программу PuTTY, которая через защищенный SSH-протокол передает команду, которая распознается и выполняется сервером. Как подключиться к серверу и передавать команды через командную строку читайте здесь. А мы далее приводим большую часть команд, в зависимости от их направленности.
Операции с файлами
Работа с процессами
Команда Действие ps показывает текущие процессы, которые активны top показывает все процессы kill процесс убивает процесс с id "процесс" killall проц убивает все процессы с именем проц bg показывает список фоновых задач, а также остановленных; bg процесс продолжит выполнение остановленного процесса в фоне
Операции с правами доступа к файлам
Команда Действие chmod 755 файл задает права 755 для файла find /path/to/dir -type f -exec chmod 0644 <> укажет права 644 на все файлы на сервере find /path/to/dir -type d -exec chmod 0755 <> укажет права 755 на все папки на сервере
Работа с SSH
Команда Действие ssh user@host подключает к хосту "host" как "user" ssh -p port user@host подключает к хосту "host" на порт "port" как "user" ssh-copy-id user@host добавит ключ на "host" для пользователя "user", при этом операция входа будет происходить без логина, а через ключ
Как искать?
Команда Действие grep слово файл ищет "слово" в "файле" locate файл найдет все файлы с именем "файл"
Информация о системе
Команда Действие date показать время и дату cal показать календарь uptime проверить аптайм (время безотканой работы) w покажет количество пользователей, которые в данный момент используют сервер whoami покажет Ваш логин finger юзер покажет инфу о пользователе "юзер" uname -a информация про ядро cat /proc/cpuinfo информация про CPU cat /proc/meminfo информация про память man команда покажет все о команде df информация о дисках du покажет, сколько памяти занимает текущий каталог free сколько памяти используется whereis программа найдет место расположения программы which программа определеяет, что "программа" будет запущена первой vmstat покажет загрузку процессора
Работа с системой и базами данных
Команда Действие apachectl restart перезапуск сервера Apache apachectl startssl запуск сервера Apache apachectl stop выключение сервера Apache /usr/local/etc/rc.d/mysql-server restart перезапуск MySQL mysqldump -u имя_пользователя_БД -pпароль_пользователя_БД имя_бд > /полный/путь/бд.sql создать копию базы данных бд.sql mysql -u имя_пользователя_БД -pпароль_пользователя_БД -D имя_бд < /полный/путь/бд.sql импортировать бд.sql в базу данных mysql на сервере exit выйти из системы reboot перезапуск сервера
Работа с архивами
Команда Действие tar cf myfile.tar файлы запаковать "файлы" в архив myfile.tar tar xf myfile.tar разархивировать myfile.tar tar czf myfile.tar.gz files архивировать с использованием Gzip (особое сжатие на сервере) tar xzf myfile.tar.gz разархивировать Gzip-файл tar cjf myfile.tar.bz2 архивировать с использованием Gzip tar xjf myfile.tar.bz2 разархивировать Bzip2-файл gzip myfile запаковать myfile и переименовать в его в myfile.gz gzip -d myfile.gz распаковать myfile.gz в myfile
Клавиши
Команда Действие Ctrl+C прекратить текущую команду Ctrl+D выйти из системы\сменить пользоваателя (вместо этого можно использовать команду exit) Ctrl+U удаляет строку Ctrl+Z остановка текущей команды и продолжить с fg или bg Ctrl+W удалить слово в текущей строке !! повторяет последнюю команду
Провайдеры с виртуальным выделенным сервером (VPS)
Провайдеры с выделенным сервером
Провайдеры предлагающие Linux-хостинг
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.
От панели управления зависит ваше удобство в настройке хостинге\сайта.
Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.
Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.
Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.
VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.
Выделенный сервер - нужен для очень сложных и ресурсоемких проектов. Для вас выделяют отдельный сервер,мощность которого будете использовать только вы. Дорого и сложно настраивать.
Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.
- Облачный хостинг
- Виртуальный хостинг
- VPS/VDS
- Выделенный сервер
- Размещение сервера
- CDN
CMS - это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть - поддерживаются на большинстве серверов.
Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера. С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).
Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).
Безлимитный хостинг - хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.
Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".
Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.
- Абузоустойчивый хостинг
- Безлимитный хостинг
- Безопасный хостинг
- Черный список
- Защита от DDOS
- Конструктор сайтов
- Партнерские программы
- Реселлинг хостинга
Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.
Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.
Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.
Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.
- Дешёвый хостинг
- Дешевый VPS-хостинг
- Цена-Качество
- Дорогой хостинг
- Бесплатный хостинг
- VPS/VDS посуточно
На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.
ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.
Список всех "пользователей"
Я ожидал, что будет способ, которым я мог просто сказать, показать мне всех пользователей, которые могут ssh на мой сервер.
То, что я не понял, - то, что нет различия между людьми-пользователями и системой - "пользователи", поэтому в то время как можно перечислить всех пользователей с этой командой, это, вероятно, намного длиннее, чем Вы были expecting/hoping-for:
Показ всех пользователей с допустимой оболочкой
Если пользователи окружают, установлен на /etc/false затем они не могут войти в систему, таким образом, это обрезает вниз список возможных пользователей SSH:
Но это - все еще довольно большой список.
У пользователей, которые имеют на самом деле, есть доступ
Если у пользователя нет действительного пароля, который мог бы быть признаком, что они не могут войти в систему.
/etc/shadow файл содержит зашифрованные пароли, a"!" или "*" в 2-м столбце этого файла означает, что никакой пароль не установлен. Мы можем фильтровать тех, которые для нового (вероятно, короче) списком пользователей, которые имеют действительный пароль:
(Примечание: та команда могла быть добита большего успеха - не стесняются обновлять мой ответ),
Единственные другие учетные записи, которые не покрыты этим, были бы то, где у них есть ssh, включают их учетную запись пользователя, таким образом, необходимо также посмотреть на пользователей, которые имеют домашнюю папку:
Ограничение доступа
Хорошо - поэтому теперь у меня есть несколько ограниченный список - и я хочу удалить доступ для нескольких учетных записей.
Ответ @Yaron описывает это более подробно (как делает это), но кратко; /etc/ssh/sshd_config файл говорит, какие учетные записи могут ssh, и если Вы устанавливаете AllowUsers там затем другие пользователи будут ограничены - таким образом, можно будет отредактировать тот файл, чтобы быть явными о том, кто Вы хотите позволить входить в систему:
И добавьте высказывание строки
Наконец перезапустите ssh сервис
(в зависимости от Вашей системы - посмотрите это для сервисного перезапуска в других системах),
Даже если у вас нет нескольких пользователей, кто-то, вероятно, пытался получить доступ к вашему серверу Linux. Поверьте нам, это может звучать странно, но в наши дни боты пытаются получить доступ к вашим серверам Linux. Не верите нам? Просто проверьте неудачные попытки входа на ваш сервер, чтобы увидеть, пытался ли кто-нибудь войти в вашу систему.
Позвольте нам показать вам, как просмотреть историю входа в Linux, чтобы вы знали, кто и откуда обращается к вашей системе.
Просмотр истории входа в Linux
Linux очень хорошо ведет журналы всего, что происходит в вашей системе. Вполне естественно, что он также хранит журналы о входе и попытках входа. Информация для входа хранится в трех местах:
Давайте посмотрим на эти вещи немного подробнее.
Чтобы просмотреть историю всех успешных входов в систему, просто используйте команду last.
Вывод должен выглядеть следующим образом. Как видите, в нем перечислены пользователи, IP-адрес, с которого пользователь получил доступ к системе, дата и время входа в систему. pts/0 означает доступ к серверу через SSH.
Последняя строка вывода сообщает вам, когда был создан файл журнала wtmp. Это важно, потому что если файл wtmp был удален недавно, последняя команда не сможет отобразить историю входов в систему до этой даты.
У вас может быть огромная история сеансов входа в систему, поэтому лучше передать вывод с помощью команды less.
2. Просмотр истории входа определенного пользователя
Если вы просто хотите просмотреть историю входа определенного пользователя, вы можете указать имя пользователя с помощью последней команды.
Вы увидите информацию для входа только выбранного пользователя:
3. Отображать IP-адреса в истории входа вместо имени хоста
Вы не могли видеть это в предыдущем выводе, но по умолчанию последняя команда показывает имя хоста вместо IP-адреса пользователя. Если вы находитесь в подсети, вы, вероятно, увидите только имена хостов.
4. Отображать только последние N логинов
Если у вашей системы хорошее время работы, возможно, ваша история входа будет огромной. Как мы упоминали ранее, вы можете использовать команду less или другие команды просмотра файлов, такие как head или tail.
Последняя команда дает вам возможность отображать только определенное количество истории входа.
Просто замените N на номер, который вы хотите. Вы также можете комбинировать его с именем пользователя.
5. Просмотр всех неудачных попыток входа на ваш сервер Linux
Теперь важная часть: проверка неудачных попыток входа на ваш сервер.
Вы можете сделать это двумя способами. Вы можете использовать последнюю команду с файлом журнала btmp:
или вы можете использовать команду lastb:
Обе эти команды дадут одинаковый результат. Lastb на самом деле является ссылкой на последнюю команду с указанным файлом.
Плохие логины могут быть неверным паролем, введенным законным пользователем. Это также может быть бот, пытающийся взломать ваш пароль.
Вы должны проанализировать здесь и посмотреть, узнаете ли вы IP-адреса в журнале. Если было слишком много попыток входа в систему с определенного IP-адреса с пользователем root, возможно, кто-то пытается атаковать вашу систему с помощью брутфорса.
Вы должны развернуть Fail2Ban для защиты вашего сервера в таких случаях. Fail2Ban забанит такие IP-адреса с вашего сервера и тем самым предоставит вашему серверу дополнительный уровень защиты.
Заключение
Мы надеемся, что эта статья научит вас просматривать историю входа в Linux, и теперь вы можете использовать эти знания для лучшего управления и защиты вашей системы Linux.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
SSH - (Secure Shell) - это протокол удаленного управления компьютером с операционной системой Linux. В основном ssh используется для удаленного управления серверами через терминал. Если вы администратор нескольких серверов или даже продвинутый веб-мастер, то наверное, вы часто сталкиваетесь с необходимостью работать с тем или иным компьютером по ssh. В Linux для этого используется сервер ssh на машине, к которой нужно подключится и клиент, на той из которой подключаются.
В этой инструкции мы рассмотрим как пользоваться ssh, а также ее возможности, о которых вы даже не знали. Скорее всего, вы уже знаете как подключиться к серверу по ssh, но у этой утилиты есть еще много возможностей, таких как передача файлов ssh, подключение без пароля или выполнение скрипта на удаленном сервере. Все это мы и рассмотрим далее в статье. Но начнем с самых основ.
Базовый синтаксис
Синтаксис команды выглядит следующим образом:
$ ssh [опции] имя пользователя @ сервер [команда]
Важно заметить что ssh может работать по двум версиям протокола. Версии 1 и 2. Понятное дело, что версия 2 лучше и поддерживает больше типов шифрования и аутентификации. Больше в этой статье об отличиях протоколов мы говорить не будем и я буду подразумевать что вы используете версию 2.
Опции команды SSH
Теперь давайте рассмотрим самые основные опции команды ssh:
Это далеко не все опции утилиты, остальные выходят за рамки данной статьи. Многие настройки работы ssh можно изменять через конфигурационный файл
/.ssh/config но здесь мы это тоже подробно рассматривать не будем.
Настройка сервера SSH
Настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Многие из них мы тоже трогать не будем. Рассмотрим только самые интересные. Сначала откройте файл /etc/ssh/sshd.conf
Порт ssh
По умолчанию ssh работает на порту 22. Но такое поведение небезопасно, поскольку злоумышленник знает этот порт и может попробовать выполнить Bruteforce атаку для перебора пароля. Порт задается строчкой:
Поменяйте значение порта на нужное.
Протокол SSH
По умолчанию сервер ssh может работать по двум версиям протокола, для совместимости. Чтобы использовать только протокол версии два раскомментируйте строчку:
И приведите ее к такому виду:
Рут доступ
По умолчанию Root доступ по ssh разрешен, но такое поведение очень небезопасно, поэтому раскомментируйте строчку:
Доступ только определенного пользователя к SSH
Мы можем разрешить доступ к ssh только для определенного пользователя или группы. Для этого добавьте строчки:
AllowUsers User1, User2, User3
AllowGroups Group1, Group2, Group3
Здесь User1 и Group1 - пользователь и группа к которым нужно разрешить доступ.
Выполнение X11 приложений
Не все знают но есть возможность использовать ssh для запуска полноценных X11 приложений. Об этом мы поговорим ниже, но чтобы все заработало необходимо разрешить эту возможность на стороне сервера, добавьте такую строчку:
Основные опции рассмотрели, перед тем как переходить дальше, не забудьте перезагрузить ssh сервер чтобы сохранить изменения:
service sshd restart
Использование SSH
Основная цель этой статьи - показать интересные и полезные способы использования ssh, о которых, возможно, вы не знали. Переходим к самому вкусному - возможности ssh.
Подключение к серверу
Чтобы просто подключиться к серверу по SSH используйте такую команду:
Выполнить команду
Мы привыкли подключаться к удаленному серверу, а уже потом выполнять нужные команды, но на самом деле утилита ssh позволяет сразу выполнить нужную команду без открытия терминала удаленной машины. Например:
ssh user@host ls
Выполнит команду ls на удаленном сервере и вернет ее вывод в текущий терминал.
Выполнить локальный скрипт
Выполним интерпретатор bash на удаленном сервере и передадим ему наш локальный скрипт с помощью перенаправления ввода Bash:
ssh user@host 'bash -s' < script.sh
Бекап на удаленный сервер и восстановление
Мы можем сохранять бекэп диска сразу на удаленном сервере с помощью ssh. Перенаправим вывод dd с помощью оператора перенаправления |, затем сохраним его на той стороне в файл:
sudo dd if=/dev/sda | ssh user@host 'dd of=sda.img'
Теперь чтобы восстановить состояние диска из сделанной копии выполните:
ssh user@host 'dd if=sda.img' | dd of=/dev/sda
Здесь и выше /dev/sda имя файла вашего жесткого диска.
Аутентификация без пароля
Использование ssh пароля для входа на сервер не только неудобно но и небезопасно, потому что этот пароль в любой момент может быть подобран. Самый надежный и часто используемый способ аутентификации - с помощью пары ключей RSA. Секретный ключ хранится на компьютере, а публичный используется на сервере для удостоверения пользователя.
Настроить такое поведение очень легко. Сначала создайте ключ командой:
ssh-keygen -t rsa
Во время создания ключа нужно будет ответить на несколько вопросов, расположение оставляйте по умолчанию, если хотите подключаться без пароля - поле Passphare тоже оставьте пустым.
Затем отправляем ключ на сервер:
Вот и все. Теперь при попытке подключится к этому серверу пароль запрашиваться не будет, а стазу произойдет подключение. Смотрите подробнее создание открытого ключа для ssh.
Взять пароль из локального файла
Напомню, что хранить пароли в обычных текстовых файлах небезопасно, но если хотите, то да - возможно. Для этого используется оператор перенаправления ввода Bash:
ssh user@host < local_file.txt
Изменить приветствие SSH
При входе по ssh может выводиться приветствие, изменить его очень легко. За это отвечает файл /etc/issue. Просто откройте этот файл и введите нужный текст:
Смотрим неудачные попытки входа SSH
Хотите посмотреть были ли попытки неудачного доступа по ssh к вашему серверу и с каких IP адресов? Запросто, все запросы логируются в файл /var/log/secure, отфильтруем только нужные данные командой:
cat /var/log/secure | grep "Failed password for"
Передача файлов по SSH
Кроме выполнения команд, можно копировать файлы по ssh. Для этого используется утилита scp. Просто укажите файл, который нужно передать, удаленный сервер и папку на сервере, вот:
$ scp /адрес/локального/файла пользователь@ хост: адрес/папки
Кроме утилиты scp, передача файлов ssh может быть выполнена более хитрым способом. Прочитаем файл и с помощью cat, передадим, а там сохраним поток в файл:
cat localfile | ssh user@host "cat > remotefile"
ssh user@host "cat > remotefile" < localfile
Пойдем еще дальше, вы можете сжимать файлы перед передачей с помощью tar, а потом их сразу же на лету распаковывать:
tar czf - /home/user/file | ssh user@host tar -xvzf -C /home/remoteuser/
Такое копирование файлов ssh позволяет отправлять сразу целые папки.
Запуск графических приложений по ssh
Если вам нужно запустить то или иное графическое приложение на удаленной машине необязательно для этого использовать VNC, вы можете обойтись возможностями ssh. Программа будет выполняться на стороне сервера, а вам будет лишь транслироваться окно, чтобы вы могли сделать все что нужно. Причем все данные шифруются. Чтобы эта функция работала, нужно включить ее поддержку на стороне сервера.
Затем просто выполняем команду запуска графического приложения на удаленном сервере вот таким образом:
ssh -XC user@remotehost "eclipse"
Как вы уже видели опция X разрешает перенаправление X11 на стороне клиента, а С - сжатие данных.
Завершение сессии SSH
В файл /etc/ssh/ssh_config. Теперь, чтобы разорвать SSH соединение достаточно нажать Enter и набрать:
Другие управляющие символы можно узнать нажав:
Туннели SSH
С помощью SSH туннелей вы можете пробросить порт с удалённого сервера на локальную машину. Это очень полезно, в первую очередь, для разработчиков. Для того чтобы пробросить порт с удалённой машины локальной используйте опцию -L и такой синтаксис:
$ ssh -L локальный_порт :удаленный_адрес : удаленный_порт пользователь@сервер
Например, сделаем удалённую базу данных доступной локально на порту 5555. Для этого выполните подставив свои значения:
$ ssh -N -L 5555:127.0.0.1:3306 root@losst-1
Опция -N сообщает, что команду на удалённой машине выполнять не нужно. Локальный порт - 5555, поскольку сервер баз данных слушает на локальном интерфейсе удалённой машины, то и здесь надо указывать адрес 127.0.0.1. А порт MySQL по умолчанию 3306. Если же вы хотите чтобы локальный сервис был доступен на удалённой машине, то следует использовать опцию -R:
$ ssh -N -R 5555:127.0.0.1:3306 root@losst-1
Теперь локальная база данных на порту 3306 будет доступна на удалённом сервере при обращении к порту 5555.
Выводы
Теперь вы знаете как пользоваться SSH. Как видите, технология SSH позволяет сделать намного больше чем можно предположить с первого взгляда, и это еще далеко не все. Какие интересные возможности SSH используете вы при повседневной работе? Поделитесь в комментариях!
Читайте также: