Показаны сообщения с ярлыком Centos. Показать все сообщения
Показаны сообщения с ярлыком Centos. Показать все сообщения

3 янв. 2015 г.

Если fail2ban в письме пишет "missing whois program"

Если fail2ban в письме пишет "missing whois program"

Проверяем из консоли

# whois 11.22.33.44
-bash: whois: command not found

Это значит, что нужно поставить jwhois. Для CentOS это

# yum install jwhois
 
    Installed: jwhois.x86_64 0:4.0-19.el6




И да, Ceterum censeo Lugansk esse delendam! Прочитать полностью...

11 дек. 2014 г.

Как чинить проблемы SSHD в Centos 6

Как чинить проблемы SSHD

Если ваша Путти внезапнно вместо логина на сервер по паре ключей пишет в консоли:

Using username "root".
Server refused our key
root@8.8.8.8's password:

А в логе путти вы видите:
2014-12-10 12:17:15 Offered public key
2014-12-10 12:17:15 Server refused our key
2014-12-10 12:17:15 Using SSPI from SECUR32.DLL
2014-12-10 12:17:15 Attempting GSSAPI authentication
2014-12-10 12:17:16 GSSAPI authentication request refused

Это значит, что: караул, меня взломали, я разорен или что настала пора что-то полечить.

1. если вы раньше отключали ведение логов для экономии ресурсов, то нужно убедиться в том, что сейчас работает демон rsyslogd, без него не пишется /var/log/secure и следовательно не работает fail2ban между прочим
# ps axfu
где-то есть такое /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
service rsyslog start
chkconfig rsyslog on
2. включить дебаг лога SSHD
\etc\ssh\sshd_config
разремить или добавить
LogLevel DEBUG3
в районе
#LogLevel INFO
3. За одно проверить
#AuthorizedKeysFile .ssh/authorized_keys
обратите внимание, что путь будет строиться от домашнего каталога юзера! Вам тут исправлять вот так
AuthorizedKeysFile /root/.ssh_t/authorized_keys
не нужно!
4. читать логи, если там есть
key_type_from_name: unknown key type 'ssh-dsa'
key_read: missing keytype
то внимательно проверить файл с публичным ключем, в моем случае было ssh-dsa.... вместо ssh-dss....
а если бы я выбрал ключик попроще RSA, то такой проблемы не было бы :)
желательно в конце ключа через пробел после == дописать что-то типа john@example.net
5. Вывод - выбирайте тип RSA и генерируйте ключи на сервере, потому что при переносе ключа из Putty в \root\.ssh\authorized_keys больше шансов ошибиться, чем при скачивании приватного ключа с сервера на локальный комп.
5. Инструкция
Создаем папку
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
Генерируем ключи
$ ssh-keygen -t rsa
и три раза Энтер
Создаст
~/.ssh/id_rsa приватный ключ
~/.ssh/id_rsa.pub публичный ключ
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
Теперь нужно стащить ~/.ssh/id_rsa (приватный ключ) в программу puttygen.exe и сохранить в формате Путти. Потом подключить к Путти...
Проверим права и владельцев по всему пути
namei -om /root/.ssh
SSHD строго следит за минимально необходимыми правами. Ставить везде 777 и 666 нельзя.
Если это ВДС под OpenVZ, то потребуется восстановить владельца:
restorecon -Rv /root/.ssh
Припрячем ключ на будущее
$ chmod 600 ~/.ssh/id_rsa
Или уберем за собой, смотря кому как нужно
rm ~/.ssh/id_rsa
rm ~/.ssh/id_rsa.pub


Полезное чтиво http://wiki.centos.org/HowTos/Network/SecuringSSH Прочитать полностью...

10 дек. 2014 г.

mc Крякозаблы вместо псевдографики

Для борьбы с крякозаблами вместо псевдографики в mc обычно делают так
/etc/sysconfig/i18n
LANG="en_US.UTF-8" --> LANG="ru_RU.koi8r"
ИЛИ
LANG="en_US.UTF-8" --> LANG="ru_RU.UTF-8"

но тогда гадостным обазом половина сообщений операционной системы Centos становятся на русском языке, что сильно затрудняет обращение в нерусский саппорт :)

Оказалось, что эту псевдографику в mc можно победить одной командой:

unicode_start

И никакого русского языка :)

Это ещё не всё... Прочитать полностью...

mc Cannot open master side of pty: No space left on device (28)

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

Гадость 1.

Midnight Commander, он же mc, после запуска и закрытия оставляет сообщение

Cannot open master side of pty: ▒▒ ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒ (28)

Решетки это из-за сломавшегося \etc\sysconfig\i18n - это ещё одна гадость от mc
Под решетками имеется в виду так:

Cannot open master side of pty: No space left on device (28)

Решение простое:
#mkdir /dev/pts
#mount /dev/pts

ну и дописать в автозагрузку в /etc/rc.d/rc в самое начало или в /etc/rc.d/rc.local куда угодно
mkdir /dev/pts
mount /dev/pts

----------------------------
другие рецепты не помогали:
«Cannot open master side of pty: No such file or directory (2)
Прежде всего убедитесь, что в /etc/fstab присутствует запись вида:
none /dev/pts devpts mode=0620 0 0
Если нет - добавляем и выполняем под пользователем root:
#mount -a
Если нет идем дальше: Можно запустить strace и посмотреть, что идет не так. Но вероятнее всего ошибка возникает при обращении к /dev/urandom и/или /dev/ptmx.
бла бла бла про OpenVZ.

И это не помогло
Если devpts все же примонтирована, а ошибка сохраняется, возможно отсутствует файл /dev/ptmx
создадим его:
mknod /dev/ptmx c 5 2
chmod 0666 /dev/ptmx
chown root.tty /dev/ptmx


Это ещё не всё... Прочитать полностью...

16 сент. 2013 г.

Два способа как экономить траф и ресурсы VDS - nginx.conf

nginx.conf

# Баним нахуй ботов

if ( $http_user_agent ~*

360Spider|80bot|80legs|Aboundex|Aboundexbot|AhrefsBot|
Baiduspider|BecomeBot|Blekkobot|DinoPing|Exabot|
Ezooms|Fasterfox|MJ12bot|MLBot|Morfeus|Nutch|
OmniExplorer_Bot|Searchmetrics|SemrushBot|
SeznamBot|Snoopy|SolomonoBot|Sosospider|SurveyBot|
TurnitinBot|URLAppendBot|WBSearchBot|YamanaLab-Robot|ZmEu|aiHitBot|archive.org|dataprovider.com|
discoverybot|dotbot|dotnetdotcom|findlinks|genieBot|
ia_archiver|integromedb|ip-web-crawler|linkcheck|
lipperhey|panopta.com|purebot|rogerbot|scrapbot|
sistrix|sitebot|spock

) {
return 444;
}

переносы строк я поставил для удобства чтения, а вообще-то они в одну строку живут у меня. Кстати, это одно не многих законных использований директивы if ( в конфигах энджинкса.

Потому что robots.txt они не читают, а если читают, то не выполняют, да и отдавать им robots.txt дюже жирно будет. Некоторые вписывают сюда Yandex, но учитывая его мировую экспансию на страны-члены-НАТО (Турция, например), я его не забанил.

Если какую тварь не упомянул или кого лишнего вписал - буду рад комментам.

Важная новость для тех, кто в танке, как я. Как оказалось http://clockworkorange.me/ с 01/01/2013 снова работает, и работает хорошо! Читайте, завидуйте, думайте, делайте. А то я поставил на мониторинг фид старого блога, а там:

Requesting http://www.clockworkorange.biz/feed .. Ok
Reply received (reply time: 469 ms)
-----------------------------------
HTTP/1.1 404 Not Found
Server: nginx/1.3.12
Date: Mon, 16 Sep 2013 11:33:22 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 291
Connection: close

Идите читать Блог Заводного Апельсина Ересь эпохи разума Прочитать полностью...

12 сент. 2013 г.

Прощай, Apache (вэбсервер такой). Я буду скучать.

Прощай, Apache (вэбсервер такой). Я буду скучать. Твоя прожорливость памяти и решето утечек памяти мне не по карману. Твои модули мне не осилить в плане "а ты отключи лишние модули и Апач будет хорошо работать". Я полностью переписал свои .htaccess в nginx.conf. PHP-FPM так же хорошо работает и без этой прожорливой пожилой жировой прослойки.

В плане переезда на современный софт перевооружения для войны со зверинцем, где заправляют Панда и Пингвин. Как памятку для highload doorway pages пишу этот пост. Начало истории тут  Centos. Как оказалось...

Советы грядущем поколениям по вопросу "как переписать конфиг апача .htaccess в конфиг энджинкса nginx.conf":

  • конфиг энджинкса это не программа на ПХП!
  • порядок следования директив в nginx.conf редко что-то означает, а точнее скачать ничего не означет
  • не используйте директиву if иначе как с return или rewrite ... last; - смотри пункт 1 и тут
  • в директиве if пробел перед скобкой обязятелен!
  • Читайте мануалы
  • Читайте мануалы на английском, там написано больше, чем на русском.
  • Читайте мануалы вопросы-ответы в том числе так вот так (гугл разумеется) site:nginx.org/ru rewrite или что ещё непонятно
  • Читайте мануалы так (гугл разумеется) site:mailman.nginx.org rewrite или что ещё непонятно
  • Ну и так тоже читайте мануалы (гугл разумеется) site:forum.nginx.org rewrite
  • Гуглите, ответы лично Игоря Сысоева на сложные вопросы попадаются в самых неожиданных местах.
  • Пишите свой конфиг от простого к сложному с нуля
  • Не включайте в свой конфиг ни единого символа, если не знаете точно, что он делает. Даже если нагуглили достойный пример - проверяйте все символы, зачем они указаны на что они влияют.

Желаю вам успешного избавления от Апача.

Удалить из ридера:
Ура! Ридер чист от говноблогов! Читайте Самосвала, он дело пишет! Прочитать полностью...

2 июл. 2013 г.

Centos Nginx PHP-fpm error child 1111 exited on signal 11 (SIGSEGV) after 2222 seconds from start

Если проблема, вынесенная в заголовок, вас волнует "Centos Nginx PHP-fpm child 1111 exited on signal 11 (SIGSEGV) after 2222 seconds from start", то после долгого гугления вы найдете два совета:

  1. выслать дамп коре куда-то для исправления бага
  2. стучать в бубен потому что никто не знает, от чего срабатывает защита от "сегментейшен фолт"
Ни то ни второе мне не понравилось и я пошел своим путем - перфекционизм. Включил отображение всех ошибок ПХП и начал избавлять от ворнингов и нотисов. Когда их количество уменьшилось в 10-100 раз, то и падение PHP-fpm от заезда в чужой сегмент памяти исчезло. Для проверки вернул старый набор классов - SIGSEGV вернулось. Для справки - это шоп от RX-P. Инвайты по почте после собеседования.

UPD
Забыл указать, что:
PHP 5.4.16
Nginx 1.5.1
Centos 5.9

Удалить из ридера - данунах, некогда. Прочитать полностью...

19 июн. 2013 г.

Using DKIM in Exim for Centos. Part 1.

Мои аптеки регулярно шлют мне письма от себя и из обратной связи от кутомеров и абузеров. В последнее время mail.ru и gmail.com повадились такие письма даже в спам не ложить, а отправлять обратно с пометкой 421 - "никого нет дома, приходите позже" или "550 - ты ёбаный спамер".

Хостеры ругаются, регистраторы банят домены, абузеры охуевают, кустомеры не покупают. После месячного заёбывания саппорта mail.ru и быстро покурив интернеты и второго после Бога, я выснил, что:
  1. почтовики не любят такую хуйню в заголовках как "X-PHP-Originating-Script: 500:class-phpmailer.php", устраняется в \etc\php.ini исправить mail.add_x_header = Off
  2. всем поголовно в ДНС добавить TXT  86400 v=spf1 ip4:111.222.33.44 a mx ~all (IP ясен хуй писать свой) 
  3. заставить exim (не менее 4.70, у меня 4.80.1) подписывать письма кровью, т.е. DKIM
 Создаём RSA-ключ (не менее, чем 1024 бита длиной, гугл меньше не примет) и парный ему общедоступный ключ. Прячем тайный ключ от посторонних:
mkdir /etc/pki/dkim
cd /etc/pki/dkim
openssl genrsa -out buy-viagra-online.com.key 1024
Generating RSA private key, 1024 bit long modulus
...................++++++
..++++++
e is 65537 (0x10001)
openssl rsa -in buy-viagra-online.com.key -pubout > buy-viagra-online.com.pub
chown exim:exim buy-viagra-online.com.key
chmod 640 buy-viagra-online.com.key
Получили buy-viagra-online.com.key 891 байт + buy-viagra-online.com.pub 272 байта
Создаём  DNS-запись для верификации DKIM
Берём публичный ключ, файло example.com.pub, который выглядит примерно так:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3D......
......
......
YRhOq9VT1IuiNhULLQIDAQAB
-----END PUBLIC KEY-----
Удаляем комментарии (начинаются со знаков минуса), всё остальное разворачиваем в одну линию, и приписываем к началу строку
k=rsa; p=
Получим что-то вроде следующего:
k=rsa; p=MIGfMA0GCSqGS.....дохуя.букв......BwIDAQAB
Входим в интерфейс управления зоной для домена example.com и создаём запись вида
dkim._domainkey.buy-viagra-online.com 86400 IN TXT "k=rsa; p=MIGfMA0GCSqG....дохуя.букв....9VT1IuiNhULLQIDAQAB"
Где dkim — произвольная строка (допустимая в доменном имени). Важно: можно создать несколько DKIM-записей для одного и того же домена, если у них различаются селекторы.
Лезем в файл \etc\exim\exim.conf
# было так
remote_smtp:
driver = smtp
# стало так
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_KEY_FILE = /etc/pki/dkim/DKIM_DOMAIN.key
# OLD FUCKING ERROR DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_FILE}{0}}
DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_KEY_FILE}{0}}
remote_smtp:
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = dkim
dkim_private_key = DKIM_PRIVATE_KEY
# я не вкурил, зачем это и заремил dkim_canon = relaxed
service exim restart
echo "body viagra 00 _`date`_" |mail -s "subject 123 from _`hostname`_" fucking.viagra.admin@gmail.com

Если всё нормально, то на жимыле в исходниках вы увидите в том числе и такое:
Received-SPF: pass (google.com: domain of root@buy-viagra-online.com designates 111.222.33.44 as permitted sender) client-ip=111.222.33.44; Authentication-Results: mx.google.com;
spf=pass (google.com: domain of root@buy-viagra-online.com designates 111.222.33.44 as permitted sender) smtp.mail=root@buy-viagra-online.com;
dkim=pass header.i=@buy-viagra-online.com
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=buy-viagra-online.com; s=dkim;
h=Date:From:Message-Id:Subject:To; bh=9DgPzmCC0hW....много-букв.....2wDEUnow=;
b=idayqjqxQbc....дохуя-букв.....LhhlE8jE3Y=;
Received: from root by buy-viagra-online.com with local (Exim 4.80.1)
(envelope-from )
------ 
story is based on http://boyandin.info/w/Exim/DKIM
PS
The dkim_canon = relaxed, sets the canonicalization method to use when signing messages. DKIM supports “simple” and “relaxed” algorithms- to understand the difference, see section 3.4 of the DKIM RFC.
PS
Once you’ve set everything up, you can test your DKIM (and SPF and SenderID, etc) install, by using the port25.com validation service:
If you wish to receive the results at the address in the “mail_from”, the sample message should be sent to check-auth@verifier.port25.com.
If you wish to receive the results at the address in the “from” header, the sample message should be sent to check-auth2@verifier.port25.com.
If you wish to receive the results at a different address from one of the addresses above, the address need to be added to the check-auth address. For example, to send the results to: jsmith@yourdomain.com the sample message should be sent to check-auth-jsmith=yourdomain.com@verifier.port25.com.

PS
Как ставить EXIM 4.80.1 на Centos 5.9 32 бит на VDS с 128 Mb RAM - это тема отдельной истории. Если будут интересующиеся - напишу. А вот как делать DKIM на шареде - ебитесь сами :) потому что ВДС.
Иди работай! Прочитать полностью...

2 июн. 2013 г.

Centos. Как оказалось...

Пост с матюками!

Я уже давно и планомерно переезжаю постепенно с шаредов на ВДС. Ибо как только начинает валить траф, то шареды тут же блочат акк за:

  • нагрузка на процессор
  • нагрузка на Мускл (у меня есть очень старые сапосайты на вордпрессе)
  • нагрузка на память ПХП лимит
  • лимит трафика 509 бендвич эксид и нахуй трафик.
  • лимит процессорного времени в месяц, в день, в час, в минуту, в секунду.
  • переходи на больший тариф или давайдосвидания.
Аккаунт блочат весь, потому что тупые пёзды, которых держат вместо админов, не умеют определить с какого сайта иждет нагрузка и залить .htaccess deny all с правами рута в папку ОДНОГО сайта. Нет жеж блядь надо заблочить весь акк со всеми аптеками.

Гугл пугается, траф падает. После перехода на дорогой тариф через месяц ситуация повторяется, но уже на тарифе не за 1-2 бакса в месяц, а за 4-5.

Заебали, только ВДС!

Как оказалось:
  • Centos охуенен, если мелкий ВДС, то 5.9, если крупный, то 6.4.
  • Панель управления нахуй не нужно. Putty + WinSCP + mc и путь весь мир отсосет. Разве что поставить webmin, побаловаться, посмотреть что там хостер нсобирал в образ Центоса и снести нахуй.
  • Администрировать это дело не сложней, чем винду.
  • nging охуенен. Апач охуенен только тем, что в нем есть .htaccess. И то только временно, пока не перенес это на php-fpm.

Удалять некогда никого сейчас Прочитать полностью...