<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mysyslog.ru &#187; centos</title>
	<atom:link href="http://mysyslog.ru/posts/tag/centos/feed" rel="self" type="application/rss+xml" />
	<link>http://mysyslog.ru</link>
	<description>Всякая IT всячина</description>
	<lastBuildDate>Thu, 08 Jul 2010 13:51:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Как узнать версию CentOS</title>
		<link>http://mysyslog.ru/posts/511</link>
		<comments>http://mysyslog.ru/posts/511#comments</comments>
		<pubDate>Fri, 25 Jun 2010 07:32:53 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=511</guid>
		<description><![CDATA[Для меня, старого FreeBSD-ка, было несколько неожиданно, что команда uname мне не помогла определить версию системы&#8230;

% uname -a
Linux servername.ru 2.6.18-164.15.1.el5.028stab068.9 #1 SMP Tue Mar 30 18:07:38 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux
%

Т.е. конечно про ядро мне все тут рассказали, но вот какая версия CentOS? Загадка&#8230;
Попробовал иначе:

% cat /proc/version
Linux version 2.6.18-164.15.1.el5.028stab068.9 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 [...]]]></description>
			<content:encoded><![CDATA[<p>Для меня, старого FreeBSD-ка, было несколько неожиданно, что команда uname мне не помогла определить версию системы&#8230;</p>
<pre class="brush: plain;">
% uname -a
Linux servername.ru 2.6.18-164.15.1.el5.028stab068.9 #1 SMP Tue Mar 30 18:07:38 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux
%
</pre>
<p>Т.е. конечно про ядро мне все тут рассказали, но вот какая версия CentOS? Загадка&#8230;<br />
Попробовал иначе:</p>
<pre class="brush: plain;">
% cat /proc/version
Linux version 2.6.18-164.15.1.el5.028stab068.9 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Tue Mar 30 18:07:38 MSD 2010
%
</pre>
<p>Уже лучше, теперь я знаю, что уши CentOS торчат из указанной версии RedHat&#8230; Хм, все равно не то!<br />
Вот он, правильный вариант!</p>
<pre class="brush: plain;">
% cat /etc/redhat-release
CentOS release 5.4 (Final)
%
</pre>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/511/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Правильный и красивый способ добавлять модули ядра в автозагрузку в CentOS 5.X</title>
		<link>http://mysyslog.ru/posts/426</link>
		<comments>http://mysyslog.ru/posts/426#comments</comments>
		<pubDate>Tue, 20 Apr 2010 09:07:24 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=426</guid>
		<description><![CDATA[Наткнулся на блог с красивым и правильным методом добавления модулей в автозагрузку centos 5.x.

Все уже есть в самой системе и, как всегда, не нужно изобретать велосипед =) В файле /etc/rc.sysinit есть вот такая конструкция:

# Load other user-defined modules
for file in /etc/sysconfig/modules/*.modules ; do
  [ -x $file ] &#38;&#38; $file
done

Т.е. для добавления модуля достаточно создать [...]]]></description>
			<content:encoded><![CDATA[<p>Наткнулся на <a href="http://purpleblog.wordpress.com/2008/06/25/centos-modules-autoload/">блог</a> с красивым и правильным методом добавления модулей в автозагрузку centos 5.x.<br />
<span id="more-426"></span><br />
Все уже есть в самой системе и, как всегда, не нужно изобретать велосипед =) В файле /etc/rc.sysinit есть вот такая конструкция:</p>
<pre class="brush: bash;">
# Load other user-defined modules
for file in /etc/sysconfig/modules/*.modules ; do
  [ -x $file ] &amp;&amp; $file
done
</pre>
<p>Т.е. для добавления модуля достаточно создать файл some_name.modules в каталоге /etc/sysconfig/modules/, внутри которого будет команда на его загрузку. Что-то такое:</p>
<pre class="brush: plain; light: true;">
# cat /etc/sysconfig/modules/some_name.modules
modprobe some_module
</pre>
<p>Попробуем автоматизировать процесс добавления/удаление/просмотра модулей, для этого пишем скрипт:</p>
<pre class="brush: bash;">
#!/bin/sh

check_action ()
{
        if [ $ACTION != &quot;list&quot; ] &amp;&amp; [ $ACTION != &quot;add&quot; ] &amp;&amp; [ $ACTION != &quot;del&quot; ]; then
                show_help
                exit 1
        fi
}

show_help ()
{
        echo Usage: `basename $0` ACTION [ MODULE_NAME ]
        echo ACTION - list\|add\|del
        echo MODULE_NAME - module name for add\|del ACTION
}

make_action ()
{
        case $ACTION in
                &quot;list&quot;)
                        for i in `find $WORKDIR -type f -name &quot;*.modules&quot;`; do
                                module=`echo $i|sed 's/\.modules//'`
                                echo `basename $module`
                        done
                ;;
                &quot;add&quot;)
                        echo &quot;modprobe $MODULE_NAME&quot; &gt; $WORKDIR/$MODULE_NAME.modules
                        chmod 750 $WORKDIR/$MODULE_NAME.modules
                ;;
                &quot;del&quot;)
                        rm -f $WORKDIR/$MODULE_NAME.modules
                ;;

        esac
}

ACTION=&quot;$1&quot;
MODULE_NAME=&quot;$2&quot;
WORKDIR=&quot;/etc/sysconfig/modules/&quot;
: ${ACTION:=&quot;list&quot;}

check_action
make_action
</pre>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/426/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ipset в CentOS</title>
		<link>http://mysyslog.ru/posts/423</link>
		<comments>http://mysyslog.ru/posts/423#comments</comments>
		<pubDate>Tue, 20 Apr 2010 08:27:48 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[ipset]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=423</guid>
		<description><![CDATA[CentOS отличается некоторой консервативностью в версиях установленного ПО, что иногда приводит к проблемам с установкой нужной программы, не исключением стал и ipset. 
Первым делом я проверил, есть ли ipset в базовой системе, конечно же его не было. Пробежавшись по сайтам из найденных google по запросу &#8220;ipset centos&#8221;, так же не нашел готового решения. Проблема есть, [...]]]></description>
			<content:encoded><![CDATA[<p>CentOS отличается некоторой консервативностью в версиях установленного ПО, что иногда приводит к проблемам с установкой нужной программы, не исключением стал и ipset. <span id="more-423"></span><br />
Первым делом я проверил, есть ли ipset в базовой системе, конечно же его не было. Пробежавшись по сайтам из найденных google по запросу &#8220;ipset centos&#8221;, так же не нашел готового решения. Проблема есть, а вот методы решения ее самые разные. Большинство отказывались от ядра CentOS в пользу &#8220;чистого&#8221; ядра с kernel.org, патчили и ставили его. Мне такой подход не понравился, так как обновлять ядро хочется все тем же yum, а не каждый раз путем пересборки.<br />
Погуглив еще немного, я нашел способ поставить утилиту ipset и модуль ядра через yum. Для этого нужно подключить дополнительные репозитории: CentALT и epel.<br />
Сразу скажу, что CentALT заточен во многом под ALT Linux, так что софтом из него стоит пользоваться осторожно в CentOS. Устанавливаем:</p>
<pre class="brush: plain; light: true;">
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
# wget http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm
# rpm -iv epel-release-5-3.noarch.rpm
# rpm -iv centalt-release-5-3.noarch.rpm
# yum check-update
</pre>
<p>Если у вас x86_64 архитектура, то просто смените i386 на x86_64 в ссылках.<br />
Теперь можно поставить модуль ядра и утилиту ipset, после проверяем все ли работает:</p>
<pre class="brush: plain; light: true;">
# yum install kmod-ipset.i688 ipset.i386
# modprobe ip_set
# lsmod | fgrep ip_set
ip_set                 23708  0
# ipset -V
ipset v2.5.0 Protocol version 2.
# iptables -m set -h
iptables v1.3.5: Couldn't load match `set':/lib/iptables/libipt_set.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
</pre>
<p>Не все так гладко, как хотелось бы! Модуль и утилита ipset есть, а iptables не может с ней работать. Дело в версии iptables, нужна версия старше 1.4, но в CentOS ее нет. Так что придется все же пойти на определенные жертвы. Будем ставить iptables из сорцов. Сносим &#8220;родной&#8221; iptables и ставим более новую версию. Перед этим добавляем в систему gcc, если еще нет:</p>
<pre class="brush: plain; light: true;">
# cp /etc/init.d/iptables /root/
# yum erase iptables
# yum install gcc
# cd /usr/src/
# wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.7.tar.bz2
# tar xjf iptables-1.4.7.tar.bz2
# cd iptables-1.4.7
# ./configure
# make
# make install
# hash -r
</pre>
<p>Создаем тестовую таблицу и проверяем, что все работает:</p>
<pre class="brush: plain; light: true;">
# ipset -N badip iphash
# ipset -A badip 10.10.1.10
# iptables -A INPUT -p icmp -m set --set badip src -j DROP
# iptables -vL
Chain INPUT (policy ACCEPT 24372 packets, 2261K bytes)
 pkts bytes target     prot opt in     out     source               destination
    4   240 DROP       icmp --  any    any     anywhere             anywhere            match-set badip src

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 489 packets, 45302 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain RH-Firewall-1-INPUT (0 references)
 pkts bytes target     prot opt in     out     source               destination
</pre>
<p>Теперь про ложку дегтя, как же без нее. После удаления родного iptables и установки нового произошло несколько неприятных событий:<br />
1) По умолчанию iptables из сорцов ставится в /usr/local/sbin/iptables, в родной был в /sbin/iptables. В принципе не проблема пересобрать нужными опциями (внимательно смотрим ./configure &#8211;help)<br />
2) При удалении родного iptables, удаляется и /etc/init.d/iptables, так что я его я специально сохранил<br />
3) Удаляется несколько полезный утилит типа iptstate<br />
4) Все эти суммарные изменения могут где-нибудь неожиданно вылезти, так что перед вводом сервера в продакшен нужно очень хорошо все проверить.</p>
<p><strong>UPDATE!!!</strong><br />
В репозитории CentAlt есть обновление для iptables с поддержкой ipset, так что достаточно</p>
<pre class="brush: plain; light: true;">
# yum update iptables
</pre>
<p>чтобы все заработало!</p>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/423/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как легко запомнить диапазоны разных классов IP сетей!</title>
		<link>http://mysyslog.ru/posts/284</link>
		<comments>http://mysyslog.ru/posts/284#comments</comments>
		<pubDate>Thu, 25 Mar 2010 15:55:43 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=284</guid>
		<description><![CDATA[Для определения класса сети нужно смотреть на первый октет и помнить диапазон. А можно поступить проще!
Сети А класса: 0 &#8211; 127.
Или запоминаем, что в битовом исполнении сети класса А всегда выглядят так 0XXXXXXX.
Сети В класса: 128 &#8211; 191.
Или запоминаем, что первый октет всегда начинается на 10XXXXXX.
Сеть C класса: 192 &#8211; 223.
Или запоминаем, что первый октет [...]]]></description>
			<content:encoded><![CDATA[<p>Для определения класса сети нужно смотреть на первый октет и помнить диапазон. А можно поступить проще!<br />
Сети А класса: 0 &#8211; 127.<br />
Или запоминаем, что в битовом исполнении сети класса А всегда выглядят так <strong>0</strong>XXXXXXX.<br />
Сети В класса: 128 &#8211; 191.<br />
Или запоминаем, что первый октет всегда начинается на <strong>10</strong>XXXXXX.<br />
Сеть C класса: 192 &#8211; 223.<br />
Или запоминаем, что первый октет <strong>110</strong>XXXXX.</p>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/284/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Добавляем в CentOS5 rpmforge</title>
		<link>http://mysyslog.ru/posts/274</link>
		<comments>http://mysyslog.ru/posts/274#comments</comments>
		<pubDate>Thu, 19 Nov 2009 10:35:32 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=274</guid>
		<description><![CDATA[По умолчанию yum в CentOS имеет достаточно куцый список репозиториев, с которыми он может работать. В них нет многих нужных пакетов, например мне потребовался nrpe, и yum его не нашел. Ставить из исходников при наличии yum &#8211; лишняя головная боль через какое-то время. Так что добавляем RPMForge!
Все очень просто. Идем на сайт  https://rpmrepo.org/RPMforge и [...]]]></description>
			<content:encoded><![CDATA[<p>По умолчанию yum в CentOS имеет достаточно куцый список репозиториев, с которыми он может работать. В них нет многих нужных пакетов, например мне потребовался nrpe, и yum его не нашел. Ставить из исходников при наличии yum &#8211; лишняя головная боль через какое-то время. Так что добавляем RPMForge!<br />
Все очень просто. Идем на сайт  https://rpmrepo.org/RPMforge и видим в документации</p>
<pre class="brush: bash; light: true;">
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.$dist.rf.$arch.rpm
rpm -Uhv rpmforge-release-0.3.6-1.$dist.rf.$arch.rpm
</pre>
<p>Для CentOS5 нужна вот эта версия http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm (для x64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm)<br />
Выполняем команды и получаем установленный репозиторий. Можно пользоваться! </p>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/274/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
