вторник, 30 декабря 2014 г.

Подключение NTFS диска к CentOS 6

Понадобилось по запросу клиента подключить его съемный диск к выделенному серверу. В датацентре его подключили к серверу, теперь давайте примаунтим.

Поставим драйвер для ntfs, так как при маунте без него была такая ошибка:
mount: неизвестный тип файловой системы 'ntfs'
# yum install ntfs-3g

Создадим каталог для маунта
# mkdir /mnt/disk

Найдем наш диск:
# fdisk -l | grep NTFS
/dev/sdc1               1      121598   976728064    7  HPFS/NTFS

Примонтируем его
# mount -t ntfs /dev/sdc1 /mnt/disk

воскресенье, 28 декабря 2014 г.

OpenVZ Debian 7 (VPS) init not start

Бывает такое на OpenVZ, что гостевые VPS с Debian 7 после dist-upgrade не загружаются, при попытке зайти с хост ноды видим:
# vzctl enter 1001
enter into CT 1001 failed
Unable to open pty: No such file or directory

Ну ничего, данную ошибку я уже описывал тут: http://blog.asidorov.name/2013/12/unable-to-open-pty-no-such-file-or.html

Правим так:
# vzctl exec 1001 "cd /dev; /sbin/MAKEDEV pty"
# vzctl exec 1001 "cd /dev; /sbin/MAKEDEV tty"

Теперь зайдем в VPS'ку:
# vzctl enter 1001

InnoDB Corruption Repair Guide

Довольно не плохой гайд, советую для ознакомления по восстановлению InnoBD: http://forums.cpanel.net/f402/innodb-corruption-repair-guide-418722.html

пятница, 19 декабря 2014 г.

Host 'host_name' is blocked because of many connection errors

Обращаются клиенты с проблемой:
Host 'host_name' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'

Смотрим, какое значение max_connect_erros выставлено сейчас:
# mysql -uroot -p -e "SHOW VARIABLES LIKE '%max_connect_errors%';"
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 10    |
+--------------------+-------+

Как-то маловато, увеличим хотя бы до 100:
# mysql -uroot -p -e "SET GLOBAL max_connect_errors=100;"

Проверяем:
# mysql -uroot -p -e "SHOW VARIABLES LIKE '%max_connect_errors%';"
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 100   |
+--------------------+-------+

Документация:

Fatal error: Class 'Mongo' not found ...

На сайте, которому нужна MongoDB после установки по их мануалу: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/
Fatal error: Class 'Mongo' not found ...

Просто не хватает драйвера php для MongoDB, поставим:
# yum install -y php-pear php-devel
# pecl install mongo

Убедимся, что подключен драйвер:
# cat /etc/php.d/mongo.ini 
extension=mongo.so

Перезапустим Апач:
# /etc/init.d/httpd restart

суббота, 13 декабря 2014 г.

plugin_googlemap2_proxy.php

Часто на шаред серверах вижу такие запросы:
ip.ip.ip - - [29/Nov/2014:18:39:26 +0300] domain.com HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=www.proxy.domain.com HTTP/1.1 499 0 "-" "Mozilla/5.0" "-" 0.001--

Оказывается это вирусняк для Joomla.
Более подробно тут: http://securityvulns.ru/docs30603.html

четверг, 11 декабря 2014 г.

Docker Hello world

Напишем простенький hello world:
# docker run ubuntu:14.10 /bin/echo 'Hello world'
Unable to find image 'ubuntu:14.10' locally
Pulling repository ubuntu
d6028e3b0b34: Download complete 
511136ea3c5a: Download complete 
df50890ba698: Download complete 
b526f11c9576: Download complete 
dde78202d417: Download complete 
Hello world

# docker run ubuntu:14.10 /bin/echo 'Hello world'
Hello world

Что тут произошло? Docker не нашел образ ubuntu:14.10 на локальном компьютере, поэтому скачал его с Docker Hub (https://hub.docker.com)

Установка docker на Ubuntu 14.10 (x64)

Решил начать знакомство с докером и установил Ubuntu 14.10 (x64) на DigitalOcean дроплет.
Собственно краткий копипаст из документации docker'а:

Установим последний доступный убунту пакет(не факт, что в нем будет последняя версия docker'а)
# apt-get update
# apt-get install docker.io

Подгрузим таб дополнение в баш:
# source /etc/bash_completion.d/docker

Если же вы хотите последнюю версию докера, то делаем так:
Проверим, может ли apt общаться по https протоколу, если есть файл
# ls -l /usr/lib/apt/methods/https 
-rwxr-xr-x 1 root root 80000 Oct 17 05:41 /usr/lib/apt/methods/https

Tor: Луковый маршрутизатор второго поколения

Если кому интересно, как же устроен Tor советую к прочтению:

English version: http://www.onion-router.net/Publications/tor-design.pdf
Russian version: http://www.opennet.ru/soft/tordesign.pdf

среда, 3 декабря 2014 г.

Защита от брутфорса WordPress, Joomla на шаред хостинге с помощью fail2ban

Понадобилось блокировать особо любопытных, написал пару правил.

Защита от брутфорса для сайтов на базе CMS WordPress:

Создадим файл с регексом для фильтрации попытки логина в админку:
# cat /etc/fail2ban/filter.d/bruteforce_wp.conf
[Definition]
failregex = ^<HOST> - - .* "POST /wp-login.php
ignoreregex = 

Проверим сразу попадают ли запросы под наше правило:
# fail2ban-regex /var/log/nginx/access.log /etc/fail2ban/filter.d/bruteforce_wp.conf
Running tests
=============
Use   failregex file : /etc/fail2ban/filter.d/bruteforce_wp.conf
Use         log file : /var/log/nginx/access.log

Results
=======
Failregex: 122795 total
|-  #) [# of hits] regular expression
|   1) [122795] ^<HOST> - - .* "POST /wp-login.php
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
|  [790258] Day/MONTH/Year:Hour:Minute:Second
`-
Lines: 790258 lines, 0 ignored, 122795 matched, 667463 missed
Missed line(s): too many to print.  Use --print-all-missed to print all 667463 lines

Как видим, 123 тысячи запросов попадают под данное правило, а значит и будем блокировать таким способом.