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

воскресенье, 24 марта 2013 г.

Установить модуль xt_LOG (Gentoo)

Имеется Gentoo, не хватает модуля для логгирования iptables. Краткая инструкция для себя.
# В данном случае версия ядра 3.5.7
cd /usr/src/linux
make menuconfig

# Установить CONFIG_NETFILTER_XT_TARGET_LOG=m и выйти, сохранив конфиг

# Откомпилировать модуль
make net/netfilter/xt_LOG.ko

# Скопировать в нужный каталог
cp net/netfilter/xt_LOG.ko /lib/modules/3.5.7-gentoo/kernel/net/netfilter/

# Создать файл зависимостей модулей
depmod -a

# Проверить наличие xt_LOG
grep -i xt_log /lib/modules/3.5.7-gentoo/modules.dep

# Получить информацию о модуле
modinfo xt_LOG

# Загрузить модуль
modprobe xt_LOG

# Добавить модуль в автозагрузку в файле /etc/conf.d/modules
modules="xt_LOG"

# Добавить правило в iptables для ограничения числа сообщений о блокировке пакета от
одного хоста-отправителя до 1 раза в минуту
iptables -A INPUT -m hashlimit --hashlimit-upto 1/min --hashlimit-burst 1 
--hashlimit-mode srcip --hashlimit-name lim_log --hashlimit-htable-expire 60000 
-j LOG --log-prefix "IPTABLES: DEF DROP: "

# Сохранить текущий набор правил
iptables-save > /var/lib/iptables/rules-save

# Отредактировать в /etc/syslog-ng/syslog-ng.conf
destination iptables { file("/var/log/iptables.log"); };
filter f_iptables {    message("IPTABLES.*") };
log { source(src); filter(f_iptables); destination(iptables); flags(final); };

# Перезапустить syslog-ng
/etc/init.d/syslog-ng reload

# Добавить в /etc/logrotate.d/syslog-ng.conf
/var/log/iptables.log {
    missingok
    notifempty
    rotate 300
    compress
    sharedscripts
    postrotate
        /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
    endscript
}

среда, 6 февраля 2013 г.

no iKVM64 in java.library.path (SuperMicro IP KVM)

Предыстория: нужно было из дома удаленно перегрузить сервер на базе SuperMicro X9SCi-X9SCA. Поскольку полной уверенности в том, что новое ядро заведется с первого раза не было, нужно было наблюдать за консолью сервера. В сети есть несколько серверов, на которые проброшен SSH, поэтому я, не долго думая, сделал проброс 80-го порта на удаленный хост с помощью:
ssh -p PORT -L 2080:IP:80 USER@HOST, где
PORT - номер внешнего порта, который натится в 22 порт на отдельном сервере
2080 - произвольный порт на локальной машине
IP - IP-адрес интересующего сервера внутри сети, например, 10.1.11.10
80 - порт на интересующем сервере внутри сети. в моем случае 80
USER - имя пользователя
HOST - внешний ip-адрес

Теперь можно зайти в браузере на http://127.0.0.1:2080 и увидеть страницу IP KVM SuperMicro. Залогиниться, нажать Remote Control -> Console Redirection -> Launch Console, на компьютер скачивается launch.jnlp. Запускаем файл и получаем малопонятную ошибку. Открываем файл и замечаем следующие моменты:
1. в файле подразумевается загрузка дополнительного jar-файла для разных ОС (Windows/Linux/Mac) и архитектур (x86/x86_64/amd64)
2. адрес, с которого скачивать файл - https://127.0.0.1:443
3. Секция
   <application-desc main-class="tw.com.aten.ikvm.KVMMain">
     <argument>127.0.0.1</argument>
     <argument>5900</argument>
     *****

Соответственно, нужно пробросить дополнительно порт 443 и 5900:
sudo ssh -p PORT -L 443:IP:443 USER@HOST
ssh -p PORT -L 5900:IP:5900 USER@HOST
Перелогиниться, загрузить файл, запустить и видим такую ошибку JAVA:
"no iKVM64 in java.library.path"
В данном случае помогает изменение файла launch.jnlp:

Найти секцию соответствующую вашей архитектуре и ОС, например:
  <resources os="Linux" arch="x86_64">
    <nativelib href="liblinux_x86_64.jar" download="eager" version="1.0.3"/>
  </resources>

Заменить на:
  <resources os="Linux" arch="x86_64">
    <nativelib href="liblinux_x86_64.jar" download="eager" version="1.0.3"/>
    <property name="jnlp.packEnabled" value="true"/>
    <property name="jnlp.versionEnabled" value="true"/>
  </resources>

Сохранить и запустить заново.
PS: таки не завелось новое ядро с первого раза.

Литература:
http://www.p14nd4.com/blog/2011/09/30/solved-no-ikvm64-in-java-library-path-on-supermicro-ip-kvm/

вторник, 5 февраля 2013 г.

Установка sphinx и pecl-sphinx (Gentoo)


Краткая заметка на память.

# Обновить portage
emerge --sync
emerge portage

# Установить sphinx
USE="debug id64 mysql -postgres stemmer test" emerge app-misc/sphinx

# Скопировать или переименовать конфигурационный файл
cd /etc/sphinx
cp sphinx.conf.dist sphinx.conf

# Настроить разрешения, чтоб группа web могла редактировать конфигурационный файл
chmod 664 /etc/sphinx/*
chown root:web /etc/sphinx/*

# Добавить пользователя и группу sphinx
groupadd -g 494 sphinx
useradd -g sphinx -u 494 -d /var/lib/sphinx -s /bin/bash -c "Sphinx server" sphinx

# Создать папки, где будут храниться логи, pid-файлы и данные
mkdir -p /var/log/sphinx
mkdir -p /var/run/sphinx
mkdir -p /var/lib/sphinx/data

# Настроить правильные разрешения на эти папки
chown sphinx:sphinx /var/log/sphinx
chown -R sphinx:sphinx /var/lib/sphinx
chown sphinx:sphinx /var/run/sphinx

# Добавить в /etc/sudoers что-то типа
%web ALL=NOPASSWD:/etc/init.d/searchd
%web ALL=(sphinx) NOPASSWD:/usr/bin/indexer

# Проверить от пользователя группы web
sudo -u sphinx /usr/bin/indexer
sudo /etc/init.d/searchd restart|stop|start

# Установить расширения php
PHP_TARGETS="php5-4" emerge pecl-sphinx

понедельник, 19 ноября 2012 г.

Gentoo и "ImportError: No module named setuptools"

При попытке установить rdiff-backup (emerge rdiff-backup-1.2.8-r1.ebuild) вылезла такая ошибка:
*****

  File "setup.py", line 4, in <module>
    from setuptools import setup, Extension

ImportError: No module named setuptools
****
Полностью вывод ошибки копировать не буду потому как он большой. В глаза бросилась именно вышеуказанное сообщение. В Gentoo я новичок, как и в Python. Пришлось гуглить, пока не нашел действенный рецепт на каком-то точно не гентушном форуме. Запуск команды python-updater, которая находит и перестраивает проблемные пакеты появившиеся после обновления версии Python, решает проблему. Что за обновление Python было не скажу потому как зашел на этот хост первый раз и нужно было срочно установить такой пакет. Собственно, все, заметка для себя - вдруг придется зайти куда-то, где обновили Python и поломались пару пакетов. ))