Рейтинг
+4.52

Linux

14 читателей, 52 топика

Удаление и новая установка MySQL в Ubuntu 10.x

  • Linux
Если Вам друг потребуется переустановить MySQL как мне, сначала скопируйте папку с базой MySQL если она Вам нужна, затем приступайте к удалению MySQL 5.1 из Ubuntu 10.x. Данный метод удалит все, что связано с MySQL в ubuntu! Установка MySQL будет как на чистой системе.

Удалить можно с помощью apt:
apt-get --purge remove mysql-server
apt-get --purge remove mysql-client
apt-get --purge remove mysql-common

apt-get autoremove
apt-get autoclean

Читать дальше →

Защита от Apache от DDOS-атак

  • Linux
Пару недель назад позвонил один знакомый и пожаловался, что плохо работает сайт и канал поменяли на FTTX с xDSL и тариф выбрали со скоростью повыше, но помогло мало — пользователи жалуются на HTTP/1.1 403 Forbidden. Сервер настраивал им не я, благо что установлена Ubuntu 10.04 LTS — люблю продукты семейства long time support — очень уж они хорошо. Получив доступ начал ковырять систему — первое что бросилось в глаза — практически пустой фаейр — десятка 2 правил на вход-выход ЛВС и сайта в мир. Набрав в консоли команду
netstat -n --tcp | grep SYN_RECV
— несколько секунд наблюдал строчки вида:
tcp     0   0 xxx.xxx.xxx.xxx:80    206.192.175.100:1084    SYN_RECV   
tcp     0   0 xxx.xxx.xxx.xxx:80    206.192.175.100:1228    SYN_RECV   
tcp     0   0 xxx.xxx.xxx.xxx:80    206.192.175.100:2652    SYN_RECV   
tcp     0   0 xxx.xxx.xxx.xxx:80    206.192.175.100:3446    SYN_RECV
Сразу стало понятно — что сайт завален большим количеством syn-пакетов, потому так плохо и работает.
Читать дальше →

Назад в будущее

  • Linux
Что делать если tar при попытке разархивировать выдает ошибку «timestamp in the future»? Нужно добавить в опции параметр m.
tar -xmvf archive.tar
и если запаковано в .gz, то
tar -xmzvf archive.tar.gz

Установка драйвера и подключение раздела exFAT в Linux с возможностью записи

  • Linux
Для добавления возможности подключения ExFat разделов в Ubuntu выполните в консоли команды:

sudo -s
apt-get install python-software-properties
apt-add-repository ppa:relan/exfat
apt-get update
apt-get install fuse-exfat

Читать дальше →

Замена BIND на Unbound на Ubuntu 11.10

  • Linux
То что BIND достаточно неповоротлив знают наверно все. А тут еще захотелось чтобы и рекурсии было и производительность повыше да и кэширование не помешает. Курение гугла выдало несколько вариантов, одно заинтересовало: кеширующий и рекурсивный DNS сервер Unbound, хорошо мониторится работа в Cacti/Munin и других программах.
Итак приступаем. Исходные данные: Ubuntu Server 11.10 (LAMP+SQUID+SAMS+…
Читать дальше →

Включаем IP Forwarding в Linux

  • Linux
По умолчанию в большинстве дистрибутивов IP Forwarding выключен, но форвардинг может понадобится если на сервере будет подниматься VPN или например это будет роутер.
Проверить включен ли IP Forwarding можно так:
sysctl net.ipv4.ip_forward
cat /proc/sys/net/ipv4/ip_forward

Включить можно так (действовать будет до перезагрузки):
sysctl -w net.ipv4.ip_forward=1

или
echo 1 > /proc/sys/net/ipv4/ip_forward

Или жётско включить (действовать будет и после перезагрузки):
# grep forward /etc/sysctl.conf
net.ipv4.ip_forward = 1

В RedHat подобных:
# grep -i forward /etc/sysconfig/network
FORWARD_IPV4=true

в Debian (Ubuntu):
# grep -i forward /etc/network/options
ip_forward=yes

После правки конфигов (перманентное включение) необходимо перезапустить сеть. например, /etc/init.d/network restart
Note that: В OpenVPN используется первый способ (изменение на лету), это прописано в стартап скриптах.

Читать дальше →

Продолжаем защищаться или fail2ban на страже сервера

  • Linux
Предистория: Недавно настраивал в одной небольшой конторе внешний мультисервер — squid/postfix/apache и так далее. Доступ естественно по ssh, в конторе сразу попросили настроить защиту с мира на все что возможно. «Громкая просьба», но заказчик в данном случае прав — защита нужна, хотя бы от тупых халявщиков и прочей бредни. Естественно пожелание было учтено.
Вообще эпопея началась сразу: как только поднял ssh и proftpd (делал большую часть удаленно), в логи посыпался перебор паролей, на первом этапе быстренько подцепил sshguard — на первое время так сказать хватит. Так как в мир смотрело много сервисов — включая POP3/IMAP4 (ну возжаждал так клиент, web-морды для почты им мало) и прочее, решил поискать что-нибудь поинтересней. Google как говориться в помощь. Плутая в дебрях инета нашол простенькую, но интересную прогу из боекомплекта linux — fail2ban, быстренько пробежался по описанию — дружит почти со всем что можно и нельзя, умеет баннить и jail-ить. Ну что ж — вперед, на танки как говориться.
Читать дальше →

Повышаем защищенность php в apache

  • Linux
Те кто сталкивался с php-скриптом 57shell.php знают наверно, что неприятно когда в твоей системе роются и творят что хотят, но как правило в более чем половине случаев виноват настройщик.
Итак смотрим в чем дело: сей скрипт при внедрении на машину позволяет творить на ней все что угодно. Можно выполнять команды, редактировать и создавать файлы. Доступно содержимое каталога /root (в Ubuntu 8 и 9 по-умолчанию права над каталогом выставлены 0755(!!!) ).
Что делать?

1 — sudo chmod 700 /root (для версии Ubuntu 8/9(!))
2 — правим файл настроек php: sudo nano /etc/php5/apache2/php.ini — изменяем строки:
safe mode = off на safe mode = on
;open_basedir = на open_basedir = /var/www
3 — sudo service apache2 restart

Итог: это запретит выполнять команды на сервере с помощью php, но мы все равно сможем просматривать все файлы и редактировать через шелл файлы на которые у нас есть доступ как у пользователя/группы www-data(0644), но теперь просмотр ограничен только содержимым каталога /var/www. Конечно это не полная панацея и можно выведать пароли от баз данных ваших cms-движков, но тем не менее, это повышает защиту системы в целом и заставляет делать лишние телодвижения со стороны взломщика.

Перезагрузка Dlink DIR-100 скриптом

  • Linux
У меня 2 DIR-100 в разных районах «смотрят в Ланту». Один из них раз в недельку позволяет себе отвалить WAN без объяснения причин. И помогает бедолаге только перезагрузка.

Я решил перезагрузку автоматизировать. Ибо следить за ним визуально поднадоело.

Читать дальше →

Защита ssh и ftp от брутфорса

  • Linux
Настраивал одной конторе сервер на ubuntu 10.04 tls2, через несколько дней ребята позвонили и сказали что после публикации ssh(22) и ftp(21) в мир для своих нужд в логах посыпался перебор паролей. Ковырять port-knokking на linux было неохота, потому набрав команду
sudo apt-cache search ssh | less
бегло пробежался по тому что предлагалось. Одна утилитка меня заинтересовала —
sshguard - Protects from brute force attacks against ssh
пробежавшись в google по применению нашел простой вариант.

Читать дальше →

Генерим правильный пароль в консоли

  • Linux
Уже давно писали миру что надо пользоваться правильными паролями, а не 123456789 или QWERTY1.
Сидеть и придумывать пароли дело не благодарное, но вот имея под рукой unix/linux консоль дело можно автоматизировать. Рассмотрим 2 варианта:
1 — генерация штучных паролей через random:
</dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c8; echo
— суть команды в следующем — генератор случайных символов (/dev/urandom) из заданной последовательности tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' сформирует некую строку, которая будет обрезана при выводе командой head -c8 до 8 знаков (кому мало меняем 8 на нужное вам число в разумный пределах), ну а команда echo — распечатает результат. Есть неудобство — если нужно много паролей, надо генерить и копипастить каждый пароль отдельно.
2 — (например сделаем это на Ubuntu). Ставим утилиту pwgen
sudo apt-get install pwgen
— это генератор сложных паролей. При запуске без ключей получим сразу кучу 8-ми разрядных паролей:
# pwgen
oi7Iegah jo6gah2E uFe5ohni sae4Uch6 iet7Aino ieJaer2w cae0jaeT ohY2thie
oov8Caeg O......
Для задания необходимой разрядности пароля используем ключ -n и указываем количество разрядов, например 10:
pwgen -n 10
— будет выведена последовательность из 10-разрядных паролей

Sudo не видит некоторые системные команды

  • Linux
Не раз уже говорилось что безопасность прежде всего. К чему это я? Да к тому что игры с правами суперпользователя root — дело плохое и потому используется чудная команда
sudo
А так как в консоли работать хочется по-комфортнее, то запускаем MidnigthCommander
sudo mc
Но вот беда, у команды sudo есть особенность: она не видит некоторые системные команды, например размещенные в каталоге /sbin: ifconfig и другие. Беда конечно, но сделано это из соображений безопасности. Как быть? Ведь нам надо работать. Оказывается есть решение, довольно простое:
sudo su -c mc
— произойдет запуск mc от имени root без пароля, на медленных консолях используйте
sudo su -c mc -s
— отключит псевдографику и ускорит работу.

P.S.: Не забывайте только сделав всё необходимое от имени root'а своевременно выйти из режима суперпользователя.

Настройка рассылки SMS сообщений через gsm модем с linux сервера [2]

  • Linux
Топик в продолжение темы, где я обещал выложить доработанный скрипт. Последняя версия может рассылать пользователям или группе пользователей смс сообщения с использованием кириллицы и может вставлять заготовленный текст в поле сообщения. Удобно для однообразных рассылок, в которых меняется несколько символов.

Читать дальше →

Скрипт для переключения в режим энергосбережения

  • Linux
Иногда в своём любимом Mandriva Linux мне совсем не хочется пользоваться графическими кнопочками, на которых написано «Ждущий режим», «Спящий режим» и прочие непонятные вещи. И тогда после сеанса успешной борьбы с ленью мне на помощь приходит старый-добрый BASH:
#!/bin/bash
pfx='psm_'
slf="${0##*/$pfx}"
[[ $slf =~ ^($(tr ' ' '|' </sys/power/state))$ ]] || exit 1
if (($(id -u) == 0)); then
 echo -n $slf > /sys/power/state
else
 sudo $0
fi

Сохраните этот скрипт под именем, например, psm_mem в каталоге $HOME/bin (надеюсь, он у вас прописан в PATH?) и создайте на него симлинки:
cd ~/bin
for s in $(sed 's%mem%%' /sys/power/state); do ln -s psm_mem psm_${s}; done

Пропишите своему юзеру в sudoers беспарольное право выполнения соотв. комманд — и вуаля!
По команде psm_mem мы оказываемся в power saving mode, в котором на память подаётся напряжение, а всё остальное тихо отдыхает. И как это называется на графических кнопочках, и где эти кнопочки следует искать — всё это вас уже не колышет беспокоит ни разу!
P.S. Ура :)

Системные команды в Linux

  • Linux
1. Информация о ядре и системе

# unamе -a                           # Версия ядра (в том числе в BSD)
# uptimе                             # Время с последней перезагрузки
# hostnamе                           # Имя хоста
# hostnamе -i                        # IP адрес 
# last rеboot                        # Информация о последней перезагрузке

2. Информация о железе

# dmеsg                              # Обнаруженные устройства и сообщения при загрузке
# lsdеv                              # Информация о установленных устройствах (возможно потребуется пакет procinfo)
# cat /proc/cpuinfo                  # Модель процессора CPU 
# cat /proc/mеminfo                  # Информация о памяти
# grеp MеmTotal /proc/mеminfo        # Объем установленной памяти
# watch -n1 'cat /proc/intеrrupts'   # Информация о прерываниях
# frее -m                            # Сколько памяти занято
# cat /proc/dеvicеs                  # Еще один список устройств
# lspci -tv                          # Просмотр PCI устройств
# lsusb -tv                          # Просмотр USB устройств
# lshal                              # Список устройств с подробностями
# dmidеcodе                          # DMI/SMBIOS: информация о железе из биоса

3. Нагрузка и статистика

О некоторых командах уже писал тут
# top                                # Просмотр нагрузки на процессор и активности процессов
# mpstat 1                           # Просмотр нагрузки на процессор
# vmstat 2                           # Просмотр нагрузки на виртуальную память
# iostat 2                           # Просмотр активности ввода/вывода
# tail -n 500 /var/log/mеssagеs      # Посмотреть последние 500 сообщений системы

4. Пользователи

# id                                 # Просмотр активных пользователей
# last                               # Просмотр журнала пользователей
# who                                # Кто вошел в данных момент?
# groupadd admin                     # Добавить группу "admin" 
# usеradd -c "admin2" -g admin -m colin    # Добавить пользователя admin2 в группу admin
# usеrdеl admin2                     # Удалить пользователя



Читать дальше →