Linux: Системный администратор
1.94K subscribers
79 photos
8 videos
15 files
30 links
Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀

Авторский канал действующего админа 👨🏼‍💻
Download Telegram
🔥 Защита SSH: 5 простых шагов для безопасного сервера

Привет, админы! Сегодня разберёмся, как защитить SSH от взломов и брутфорса. Это критично для любого сервера, ведь атаки на 22-й порт идут постоянно. Держим систему в безопасности! 🛡️

1️⃣ Меняем стандартный порт
По умолчанию SSH слушает 22-й порт, который атакуют боты. Меняем его:

sudo nano /etc/ssh/sshd_config

Находим строку:

#Port 22

Заменяем, например, на:

Port 2222

Сохраняем и перезапускаем SSH:

sudo systemctl restart sshd

Теперь подключаться будем так:

ssh -p 2222 user@server


2️⃣ Запрещаем вход по паролю
Используем только ключи для входа:

PasswordAuthentication no

Чтобы изменения применились:

sudo systemctl restart sshd

Перед этим убедитесь, что у вас уже настроен SSH-ключ!

3️⃣ Ограничиваем доступ по IP
Если у вас статический IP, можно запретить подключение от всех, кроме своего IP:

sudo nano /etc/hosts.allow

Добавляем строку:

sshd: 192.168.1.100

А в /etc/hosts.deny запрещаем остальным:

sshd: ALL


4️⃣ Включаем Fail2Ban
Этот инструмент автоматически блокирует IP-адреса после нескольких неудачных попыток входа:

sudo apt install fail2ban -y

Настраиваем фильтр для SSH:

sudo nano /etc/fail2ban/jail.local

Добавляем:

[sshd]
enabled = true
maxretry = 5
bantime = 3600

Запускаем:

sudo systemctl restart fail2ban


5️⃣ Ограничиваем число подключений
Защитим сервер от DoS-атак с помощью iptables:

sudo iptables -A INPUT -p tcp --syn --dport 2222 -m connlimit --connlimit-above 3 -j REJECT

Это ограничит число одновременных подключений к SSH.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍7
🛠️ Как найти и исправить битые симлинки в Linux?

Привет, коллеги! Сегодня поговорим о том, как искать и исправлять битые символьные ссылки в Linux. Если в системе есть сломанные ссылки, это может привести к ошибкам в работе приложений и скриптов.

🔍 Как найти битые симлинки?
Используем команду find:

find / -xtype l 2>/dev/null

Она покажет все битые (неработающие) симлинки в системе. Если нужно искать только в определённой директории, указываем путь, например:

find /home -xtype l


🛠 Удаление всех битых ссылок:
Если нужно массово удалить сломанные ссылки, используем:

find / -xtype l -delete

⚠️ Осторожно! Перед удалением лучше проверить список, чтобы случайно не снести нужное.

🔄 Как исправить битый симлинк?
Если нашли сломанную ссылку, можно удалить её и создать заново. Допустим, у нас есть сломанный симлинк /usr/bin/python, который должен вести на /usr/bin/python3:

rm /usr/bin/python
ln -s /usr/bin/python3 /usr/bin/python


🔥 Полезный трюк: Проверка всех симлинков в системе
Хотите узнать, какие симлинки куда ведут? Запускаем:

find / -type l -exec ls -l {} +


#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
2🔥2
📌 5 полезных команд для диагностики сети в Linux 🌐

Привет, админы! Сегодня покажу вам 5 мощных команд, которые помогут быстро диагностировать проблемы с сетью в Linux. 🚀

1️⃣ ping – проверяем доступность хоста

ping -c 4 google.com

Отправляет 4 пакета на google.com и показывает, есть ли потери. Если пинг не проходит — проблемы с маршрутизацией или DNS.

2️⃣ traceroute – отслеживаем маршрут пакетов

traceroute google.com

Выводит список узлов, через которые проходит трафик. Полезно, если соединение нестабильное.

3️⃣ netstat / ss – смотрим открытые соединения

netstat -tulnp # для старых систем
ss -tulnp # альтернатива

Отображает открытые порты, какие процессы их используют и какие соединения установлены.

4️⃣ dig – проверяем работу DNS

dig google.com

Показывает IP-адреса и DNS-записи домена. Если резолвинг не работает — проблема в DNS.

5️⃣ tcpdump – анализируем сетевой трафик

tcpdump -i eth0 port 80

Фильтрует HTTP-трафик на интерфейсе eth0. Можно использовать для отладки запросов.

Эти команды - must-have для любого админа! Какие из них используете чаще всего? Делитесь в комментариях! 🔥

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍5
🛠️ Оптимизация journalctl: освобождаем место и ускоряем систему

Сегодня расскажу, как управлять журналами в Linux, чтобы они не разрастались до огромных размеров и не забивали диск. Логи — это хорошо, но когда они занимают десятки гигабайт, это уже проблема.

🔍 Проверяем размер логов
Сначала посмотрим, сколько места занимают журналы systemd:

journalctl --disk-usage

Вы увидите что-то вроде:

Archived and active journals take up 2.3G in total.

Если слишком много, пора чистить!

🗑️ Очищаем журналы
Удаляем все старые логи, оставляя только 500M:

journalctl --vacuum-size=500M

Можно также ограничить по времени, например, оставить только записи за последние 7 дней:

journalctl --vacuum-time=7d


⚙️ Ограничиваем размер логов
Чтобы в будущем избежать разрастания, задаем лимит в /etc/systemd/journald.conf:

[Journal]
SystemMaxUse=500M
SystemMaxFileSize=100M

Применяем изменения:

systemctl restart systemd-journald


🚀 Итог
Теперь логи не будут бесконтрольно расти, а система останется в порядке.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍8
🔥 Разбираем htop: Альтернатива top для мониторинга системы

Привет, коллеги! Сегодня разберем инструмент, который должен быть в арсенале каждого линукс-админа - htop. Это мощная альтернатива top, которая делает мониторинг ресурсов системы удобным и наглядным.

📌 Почему htop круче top?

Цветовая схема - информация подается визуально, что помогает быстрее анализировать нагрузку.

Гибкость - можно настроить отображение колонок, фильтровать процессы, сортировать их по различным параметрам.

Управление процессами - htop позволяет не только наблюдать, но и управлять процессами (убивать, приостанавливать, менять приоритет и т.д.).

Горячие клавиши - удобный интерфейс для быстрого взаимодействия.

🛠 Установка
На большинстве дистрибутивов htop уже есть в репозиториях:
🔹 Debian/Ubuntu:

sudo apt install htop

🔹 CentOS/RHEL:

sudo yum install htop

🔹 Arch Linux:

sudo pacman -S htop


🚀 Основные фишки

🔸 Сортировка процессов - нажмите F6, чтобы выбрать критерий сортировки.
🔸 Завершение процессов - выделяем процесс, жмем F9, выбираем сигнал.
🔸 Дерево процессов - F5 (отображает родственные связи между процессами).
🔸 Поиск процесса - F3, вводим имя процесса.
🔸 Изменение приоритета (nice) - F7 / F8 для повышения/понижения приоритета.

htop - это удобный инструмент для мониторинга и управления процессами в Linux.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍1🤣1
🔥 Как быстро поднять временный веб-сервер в Linux?

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

📌 Python
Если у вас установлен Python, запустить HTTP-сервер можно одной командой:

python3 -m http.server 8080

Теперь ваш сервер доступен по адресу http://localhost:8080/.
Если хотите раздавать файлы из конкретной директории:

python3 -m http.server 8080 --directory /путь/к/папке


📌 PHP
Для тех, у кого есть PHP:

php -S 0.0.0.0:8080

Он тоже запустит веб-сервер на 8080 порту.

📌 BusyBox
Если на сервере установлен busybox, можно использовать его встроенный HTTP-сервер:

busybox httpd -f -p 8080 -h /путь/к/каталогу


📌 Node.js
У кого есть node, можно использовать http-server:

npx http-server -p 8080

или установить глобально:

npm install -g http-server
http-server -p 8080


💡 Все эти методы хороши для временных решений. Но если вам нужен стабильный веб-сервер, лучше использовать NGINX или Apache.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍2
🔐 Как заставить пользователя сменить пароль при следующем входе в Linux

Привет, коллеги! Сегодня разберем полезный трюк: как заставить пользователя сменить пароль при следующем входе в систему. Это особенно актуально при создании новых учетных записей или после сброса пароля.

🔸 1. Используем команду passwd

Самый простой способ принудительно заставить пользователя сменить пароль — это выполнить команду:


passwd --expire username


🔹 Что делает эта команда?
Она устанавливает дату последней смены пароля в 0, что вынуждает пользователя изменить его при следующем входе.

🔸 2. Используем команду chage

Команда chage позволяет гибко управлять политикой паролей. Чтобы заставить пользователя сменить пароль при следующем входе:


chage -d 0 username


🔹 Как это работает?
Флаг -d 0 сбрасывает дату последней смены пароля, и система требует его обновления при следующем входе.

🔸 3. Политика паролей для всех пользователей

Если тебе нужно настроить принудительную смену пароля через определенное время для всех пользователей, используй:


chage -M 30 username


🔹 Что делает этот параметр?
Устанавливает срок действия пароля в 30 дней. После истечения этого срока система потребует его смены.

🔸 4. Проверка настроек пароля пользователя

Чтобы убедиться, что правило применилось, можно выполнить:


chage -l username


Это покажет дату последней смены пароля, срок его действия и дату истечения.

🔸 5. Блокировка входа без смены пароля

Если ты хочешь полностью заблокировать пользователя, пока он не изменит пароль, можешь сначала принудительно истечь срок пароля:


passwd -l username


А затем снова разрешить вход после смены пароля:


passwd -u username


🔥 Итог

🔹 Используй passwd --expire username или chage -d 0 username, чтобы заставить пользователя сменить пароль.
🔹 Проверяй настройки командой chage -l username.
🔹 Настраивай срок действия пароля глобально через chage -M 30 username.
🔹 При необходимости блокируй вход до смены пароля.

Применяй эти методы и будь уверен в безопасности системы! 🔒

💬 Делись своим опытом в комментариях! Какие еще трюки используешь для управления паролями?


#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍6🔥21
🖥️ Как проверить, что cron работает корректно?

Привет, админы! Сегодня разберём важную тему — как убедиться, что cron действительно выполняет ваши задания. Бывает, что скрипт в crontab прописан, но не работает, и причина может быть неочевидной.

🔎 Проверяем cron пошагово:

1️⃣ Проверяем, работает ли сам демон cron:

systemctl status cron # Для систем с systemd (Ubuntu, Debian)
service cron status # Для старых систем

Если он не запущен, запускаем:

systemctl start cron


2️⃣ Смотрим логи cron:
На большинстве дистрибутивов логи находятся в /var/log/syslog или /var/log/cron.log:

grep CRON /var/log/syslog

Если сообщений нет, проверьте, включён ли лог cron в rsyslog.conf.

3️⃣ Запускаем задание вручную
Скопируйте команду из crontab и выполните в терминале, чтобы убедиться, что скрипт сам по себе работает.

4️⃣ Добавляем вывод в лог
Иногда cron просто не видит ошибки. Давайте принудительно записывать их в лог:

* * * * * /path/to/script.sh >> /var/log/mycron.log 2>&1


5️⃣ Проверяем переменные окружения
Cron использует ограниченный PATH. Если скрипт использует внешние команды, указываем полный путь:

/usr/bin/python3 /home/user/myscript.py

или задаём PATH в начале crontab:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


6️⃣ Проверяем права и владельца
Скрипт может не запускаться из-за прав доступа. Даем права на исполнение:

chmod +x /path/to/script.sh

Если задание в crontab -e, убедитесь, что оно прописано под нужным пользователем.

💡 Бонус: визуальный мониторинг работы cron
Если вам надо отслеживать выполнение задач в реальном времени, установите cronitor или healthchecks.io. Эти сервисы сообщат, если задание не отработало.

Пользуетесь ли вы чем-то ещё для отладки cron? Делитесь в комментариях! 🚀

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍51🔥1
📌 Как быстро посмотреть историю изменений файла в Linux?

Сегодня покажу вам несколько способов, как отследить изменения в файле в Linux. Это может быть полезно для поиска причин ошибок, аудита или простого контроля за конфигурацией.

🔍 1. stat — метаданные файла
Хотите узнать, когда последний раз изменялся файл? Используйте команду:


stat /etc/nginx/nginx.conf

Вы увидите три временных метки:
- Access (чтение)
- Modify (изменение содержимого)
- Change (изменение метаданных, например, прав)

📝 2. ls -lt — сортировка по времени
Для списка файлов в каталоге по дате изменения:


ls -lt /etc/nginx/


🕵️ 3. diff — сравнение версий
Если у вас есть резервная копия файла, можно сравнить:


diff /etc/nginx/nginx.conf /backup/nginx.conf


📜 4. git — контроль версий
Лучший способ отслеживать изменения в важных файлах — использовать git:


cd /etc/nginx
git init
git add nginx.conf
git commit -m "Initial version"

После изменений проверяем разницу:


git diff nginx.conf


👀 5. auditd — мониторинг изменений
Если нужно следить за изменением файла в реальном времени, добавляем его в аудит:


auditctl -w /etc/nginx/nginx.conf -p wa -k nginx_conf_change

А потом смотрим логи:


ausearch -k nginx_conf_change --start today


📢 Какой способ используете вы? Делитесь в комментариях! 🚀

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍4
🔥 Автоматический перезапуск упавшего сервиса в Linux

Привет, коллеги! Сегодня разберём, как автоматически перезапускать сервис, если он вдруг упал. Это полезно для критичных приложений, которые должны работать 24/7.

📌 Метод 1: systemd (современный способ)
Если ваш сервис управляется systemd, настройте автоматический рестарт:

1️⃣ Открываем юнит-файл сервиса:

sudo nano /etc/systemd/system/имя_сервиса.service


2️⃣ Добавляем или редактируем секцию [Service]:

[Service]
Restart=always
RestartSec=5

🔹 Restart=always – сервис перезапускается при любой ошибке
🔹 RestartSec=5 – задержка 5 секунд перед рестартом

3️⃣ Применяем изменения:

sudo systemctl daemon-reexec
sudo systemctl restart имя_сервиса


📌 Метод 2: Monit (для расширенного контроля)
Если нужен мониторинг с уведомлениями, используем Monit:

1️⃣ Устанавливаем:

sudo apt install monit # Debian/Ubuntu
sudo yum install monit # CentOS


2️⃣ Добавляем правило для сервиса:

sudo nano /etc/monitrc

Пример конфига:

check process nginx with pidfile /run/nginx.pid
start program = "/bin/systemctl start nginx"
stop program = "/bin/systemctl stop nginx"
if 5 restarts within 5 cycles then unmonitor


3️⃣ Перезапускаем Monit:

sudo systemctl restart monit


📌 Метод 3: crontab (самый простой способ)
Если сервис падает редко, можно просто проверять его раз в минуту:

* * * * * pgrep -x nginx > /dev/null || systemctl restart nginx


Вывод: systemd – лучший вариант, Monit подходит для расширенного мониторинга, а cron – для простых случаев.


#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔥5👍2