Защищаемся по SSH
Прежде чем разворачивать на сервере буйную деятельность обезопасим себя от взлома. Всякие создание и размещение сайтов, баз данных все это подождет. Первым делом после входа на новый сервер защищаем его больное место: порт SSH, который изначально открыт на всех серверах Linux и является одной из главных целей серверовзломщиков, потому что они знают кто владеет SSH тот владеет миром.
Изменяем пароль доступа по SSH.
Заходим на сервер с правами root при помощи программы Putty и меняем пароль суперпуперпользователя root присланный нам от хостинг компании (какой-нибудь типа 7Sw&IjKf^1y?Q) на более внятный нам. Несколько рекомендаций:
- пароль не должен содержать всяких японских иероглифов и русских букв, разрешена только латиница,
- пароль не должен быть английским словом, названием, именем или какой-либо известной фразой,
- пароль не должен быть словом вашего родного языка написанным транскрипцией латиницей или же написанным английской раскладкой клавиатуры, к примеру слово мир (транскрипция mir, с английской клавиатурой vbh)
- пароль не должен ассоциироваться с вашей личной жизнью.
- пароль следует делать больше чем 6 символов,
- пароль рекомендуется составлять из латинских букв в нижнем и верхнем регистре, а также должны присутствовать цифры и знаки препинания.
Команда passwd написанная в консоли Linux дает вам возможность смены пароля пользователя.
В ответ на команду passwd вы увидите сообщения системы с предложением ввода вашего нового пароля (в нашем случае для пароля root).
Ввод пароля происходит в слепом режиме, то есть набираемые вами символы не отображаются. Когда вы введете ваш новый пароль и нажмете клавишу Enter система предложит вам повторить операцию ввода нового пароля, чтобы убедиться, что вы действительно помните создаваемый пароль.
Если в качестве нового пароля вы зададите слишком легкий или слишком короткий по мнению системы пароль, то перед сообщением о повторном вводе нового пароля отобразятся сообщения сопровождающиеся фразой BAD PASSWORD.
На самом деле это ничего страшного система вас просто предупреждает о слабости пароля, но вы всегда можете отказаться от продолжения операции в консоли Linux нажав CTRL+C.
Когда все сделано верно по завершении система уведомит сообщением:
Важно, если вы забудете пароль root то только переустановка системы поможет вам его вернуть!
В случае же если при изменении пароля введенные вами дважды данные не будут совпадать друг с другом операция завершиться не удачей и на экране появится сообщение:
Если кроме всего прочего вам нужно поменять пароль какого-либо конкретного пользователя на сервере, то после ввода команды passwd нужно ввести имя этого пользователя. При этом у вас должно быть достаточно прав на смену пароля указываемого пользователя, конечно если мы работаем на сервере как root, то проблем с этим не возникнет.
Вам опять понадобиться ввести новый пароль, подтвердить его нажав Enter, затем повторить ввод нового пароля и снова Enter.
Некоторые советуют глупости предлагая держать все пароли в уме, когда паролей и PIN-кодов становиться много в них можно запутаться, а создавать один универсальный пароль это самая большая глупость. Можно иметь один пароль к разным сайтам потерю доступа к которым для вас не критично, но пароль SSH к серверу должен быть уникален. Я рекомендую пароли обязательно записывать, куда решать вам, но крайне не желательно на компьютер имеющий доступ в Интернет.
Зачем нужен такой дурацкосложный пароль объясню. Во-первых, в сети уже выложены и постоянно обновляются куча хэшей или иными словами разгаданных паролей. Хэш — это специальным образом математически вычисленное значение чего-либо. Конечно пароли в системе Linux не лежат только в хэш виде и тем более в открытую, хеш пароль пользователя в операционной системе Linux зашифрован и хранится в файле /etc/shadow. Теоретически есть вероятность, что у вас украдут файл /etc/shadow и расшифруют до уровня хеш значения, а хэш уже ломать не придется, если он окажется уже разгаданным. Во-вторых современные сервера, а еще ужаснее целые сети зараженных компьютеров, так называемые ботнеты, способны подбирать пароли, которые еще вчера казались не поддающимися взлому. В-третьих методы взлома с использованием социальной инженерии популярны даже больше чем все остальные, потому что доступны не только хакерам, но и «полу-хакерам», скрывающимися к примеру за фотками симпатичных блондинок на сайтах знакомств или в Фейсбуке, с которыми вы возможно и не желая, но в порыве флирта можете похвастаться своим сервером.
В современном мире чаще ломают пачками, к примеру для этого создается програмка-парсер, она запускается на сервере взломщика или зараженном компьютере и поочередно ищет жертвы в сети, когда ему жертва присматривается она начинают свою работу хищника по взлому. Так вот, для того чтобы вас такие хищники даже не заметили достаточно закрыть 22 порт SSH. Нет порта SSH и нет проблем! С такой могучей идеей можно отказаться и от компьютеров в борьбе с вирусами, но все гораздо проще: мы закрываем 22 порт, про который все и вся знают, что это порт подключения SSH, а вместо него задаем другой порт.
Я рекомендую задавать порт SSH пятизначный до значения 65000. Почему такие далекие порты, это чтобы вы случайно не заняли нужные другим службам порты, к примеру 80 или 443 — это порты сервера для работы веб-сайтов крутящихся на нем. Конфигурационный файл службы отвечающей за работу протокола SSH находится по пути /etc/ssh/sshd_config. Открываем файл
В открывшимся файле увидим строку #Port 22 — знак # комментария говорит о том, что строка в настоящее время не задействована. Чтобы начать редактировать в редакторе нужно нажать на клавиатуре большую букву I, то есть сочетание клавиш shift+i, как первая буква английского слова Insert — вставить. Убираем знак # комментария, чтобы задействовать нашу строчку и изменяем цифру порта SSH на другой, к примеру 33442. После чего сохраняем результат. Клавиша ESC — выход из режима редактирования, :wq — закрытие файла и внесение изменений, с английского write — записать и quit — выйти. Если строку Port 22 в открывшемся файле sshd_config вы не найдете просто добавьте её в этот файл
Делаем рестарт службы SSH, в Linux это служба sshd
И теперь наравне с новым паролем вам лучше не забывать ваш новый порт, потому что стандартный 22 порт SSH с этого момента на сервере закрыт, а подключаться через Putty вы будете только через порт указанный вами в настройках, в моем примере это 33442 порт, который нужно будет указывать в поле Port программы Putty вместо цифры 22. Мы то с вами порт SSH сервера знаем в отличие от взломщиков.
PS Настройки приведены на примере операционной системы Centos
Как сменить пароль в Linux
Операционная система Linux изначально проектировалась как многопользовательская и безопасная система. Поэтому здесь у каждого пользователя есть пароль. Полномочия пользователей и способ их аутентификации заложен на уровне системы.
Иногда возникает необходимость изменить пароль в Linux. Во-первых, это может произойти, если вы забыли пароль или просто хотите его поменять. Другая же причина — это безопасность. Пароли нужно менять по крайней мере несколько раз в год, и, если вы системный администратор компании, важно заставить ваших пользователей тоже менять пароли время от времени, и у Linux для этого тоже есть инструменты. В этой статье мы рассмотрим, как поменять пароль в Linux.
Основы
В Linux есть несколько утилит с помощью которых может быть выполнена смена пароля Linux. В этой статье мы будем рассматривать только способы сделать это с помощью терминала, с графическими способами, я думаю, вы и так без труда разберётесь, к тому же они не дают нужной нам гибкости.
Список пользователей в Linux хранится в файле /etc/passwd, вы можете без труда открыть его и посмотреть, пароли же выделены в отдельный файл — /etc/shadow. Этот файл можно открыть только с правами суперпользователя, и, более того, пароли здесь хранятся в зашифрованном виде, поэтому узнать пароль Linux не получиться, а поменять вручную будет сложно.
В большинстве случаев смена пароля выполняется с помощью утилиты passwd. Это очень мощная утилита, она позволяет не только менять пароль, но и управлять сроком его жизни. У неё такой синтаксис:
$ passwd опции пользователь
Рассмотрим опции, чтобы лучше ориентироваться в использовании утилиты:
- -d — удалить пароль пользователя, после этого он не сможет войти
- -e — сделать пароль устаревшим
- -i — через сколько дней после того, как пароль устарел, отключить аккаунт, если пользователь не сменил пароль
- -l — запретить пользователю входить в систему
- -n — минимальное количество дней между сменами пароля
- -S — отобразить информацию об аккаунте
- -u — отменяет действие параметра -l
- -x — максимальное количество дней, пока пароль можно использовать.
- -w — количество дней, после которых нужно предупреждать пользователя о том, что надо сменить пароль.
Возможно, сейчас всё выглядит очень непонятно, но на примерах станет проще. Мы рассмотрим, зачем и в каких случаях нужно использовать все эти опции, чтобы сменить пароль в Linux. Переходим к практике.
Если вы забыли пароль и вам его надо не просто сменить, а сбросить, вам будут полезными эти две статьи:
Как сменить пароль пользователя
Вы можете сменить свой пароль, когда захотите. Для этого вам не нужно особых прав суперпользователя, только знать свой текущий пароль. Просто откройте терминал и выполните утилиту passwd без параметров:
Дальше необходимо ввести новый пароль — и готово, теперь он измеён. Он кодируетсятся с помощью необратимого шифрования и сохраняется в файле /etc/shadow Но заметьте, что вы не можете использовать здесь любой пароль. Система Linux заботится о том, чтобы пользователи выбирали достаточно сложные пароли. Если он будет очень коротким или будет содержать только цифры, вы не сможете его установить.
Общие требования для пароля такие: должен содержать от 6 до 8 символов, причём один или несколько из них должны относиться как минимум к двум из таких множеств:
- Буквы нижнего регистра
- Буквы верхнего регистра
- Цифры от нуля до девяти
- Знаки препинания и знак _
Теперь рассмотрим, как изменить пароль Linux для другого пользователя.
Как сменить пароль другого пользователя
Со своим паролем всё понятно, но если вы захотите поменять код для другого пользователя, то придётся вопользоваться правами суперпользователя. А во всём остальном процесс тот же:
Здесь user — это пользователь, для которого нужна смена пароля Linux. Требования для пароля такие же: вы не сможете установить слишком простой пароль.
Вы можете удалить пароль Linux для пользователя, тогда он не сможет войти в систему:
sudo passwd -d user
Как поменять пароль группы
Наверное вы видели в своей системе файл /etc/gshadow. Этот файл эквивалентен /etc/shadow, только содержат пароли для групп. Вы не можете войти от имени группы, но зато, зная её пароль, можете получить доступ к предоставляемым ею функциям в отдельной командной оболочке с помощью команды newgrp.
Для установки пароля на группу используется утилита очень похожая на passwd — gpasswd. Естественно, нам нужны права суперпользователя. Например:
Теперь попробуем получить полномочия группы:
После ввода пароля мы временно оказываемся в этой группе и можем работать с теми файлами, к которым разрешен доступ этой группе. Чтобы удалить пароль Linux из группы, используется опция -r:
sudo gpasswd -r disk
Как заставить пользователя поменять пароль
Безопасность сервера — это одна из самых важных вещей. Часто причиной проблем с безопасностью становятся сами пользователи, которые недостаточно часто меняют пароли или делают их слишком простыми. Если вы администратор, у вас есть возможность заставить пользователей выполнять смену пароля время от времени, а также автоматически отсылать им предупреждения о том, что пора сменить пароль пользователя Linux.
Всё это позволяет сделать утилита passwd. Сначала давайте рассмотрим, как посмотреть информацию о пароле в passwd. Для этого используется опция -S:
- Первое поле — имя пользователя
- Второе поле показывает одно из значений: P — пароль установлен, L — пользователь заблокирован, NP — пароля нет.
- 07/21/2016 — дата последнего изменения пароля.
- 0 — минимальное время до смены пароля
- 99999 — максимальное время действия пароля
- 7 — за сколько дней нужно предупреждать об истечении срока действия пароля
- -1 — через сколько дней пароль нужно деактивировать.
Например, через тридцать дней после смены, пароль пользователя станет устаревшим:
sudo passwd -x 30 test
За три дня до того, как пароль устареет, предупредим пользователя, что его нужно сменить:
sudo passwd -w 3 test
Если он этого не сделает в течении пяти дней, аккаунт нужно отключить:
sudo passwd -i 3 test
Пароль можно менять не чаще, чем раз в 10 дней:
sudo passwd -n 10 test
Смотрим теперь, что у нас получилось:
sudo passwd -S test
Как поменять пароль root
Изменить пароль Linux для root очень просто, точно так же, как и для любого другого пользователя. Только нужно иметь права суперпользователя. Вот так это будет выглядеть:
Всё работает. Таким же способом можно задать пароль root в Ubuntu.
Как вручную поменять пароль
Операционная система Linux не была бы Linux, если бы мы не имели возможность настроить пароль вручную безо всяких утилит. Как я уже говорил, пароли хранятся в файле /etc/shadow. И хранятся они там в зашифрованном виде. Расшифровать пароль невозможно.
Когда система сохраняет пароль, она выполняет шифрование по определённому алгоритму и сохраняет уже зашифрованный результат, а когда пользователю нужно войти в систему, она просто берёт его пароль, опять же шифрует и сверяет с тем, что хранится в /etc/shadow. Если совпадает — пользователь авторизован.
Даже таким способом сменить пароль пользователя Linux не так уж сложно. Итак, сначала нам нужно получить зашифрованный пароль. Это можно сделать несколькими способами, например с помощью openssl:
openssl passwd -1 -salt xyz yourpass
Замените xyz на любую случайную комбинацию символов, чем больше, тем лучше; yourpass — это ваш новый пароль.
Скопируйте полученный результат в буфер обмена, затем откройте файл /etc/shadow и найдите там нужного пользователя. Я хочу сменить пароль Linux для test:
Синтаксис этого файла такой:
имя_пользователя: пароль: .
Следующее поле указывает на последнее изменение пароля в виде количества дней, прошедших с первого января 1970. Остальные поля нас не интересуют, да и вы с ними очень просто разберётесь, просто сопоставив данные.
Теперь замените пароль на полученный выше и сохраненный в буфер обмена. Сохраните файл и можете пробовать войти под новым паролем:
Всё работает. Как я уже говорил, есть ещё несколько алгоритмов шифрования, с помощью которых вы можете получить пароль, вот они:
makepasswd —clearfrom=- —crypt-md5
Во всех этих примерах salt — это случайная строка для увеличения надёжности шифрования, а YourPass — ваш пароль. Что делать с полученным данными вы уже знаете.
Выводы
Из этой статьи вы узнали, как сменить пароль Linux. Я рассмотрел все возможные способы и даже не очень стандартные. Если у вас остались вопросы, пишите комментарии!