<?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>З.П.И.</title>
	<atom:link href="http://wiki.dodex.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://wiki.dodex.org</link>
	<description>Что-то новое пришедшее в голову или интересное, найденное в интернете</description>
	<lastBuildDate>Tue, 08 Nov 2011 10:16:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>VPN-сервер (pptpd/xl2tpd+mysql+radius) на CentOS 6</title>
		<link>http://wiki.dodex.org/2011/10/31/vpn-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80-pptpdxl2tpdmysqlradius-%d0%bd%d0%b0-centos-6/</link>
		<comments>http://wiki.dodex.org/2011/10/31/vpn-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80-pptpdxl2tpdmysqlradius-%d0%bd%d0%b0-centos-6/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 17:35:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Операционные системы]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[freeradius]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=814</guid>
		<description><![CDATA[Здесь я постараюсь описать процесс установки и настройки VPN-сервера на CentOS6 с пользователями в MySQL и авторизацией через radius по chap для xl2tpd и для шифрованного соединения по ms-chap-v2 и mppe для pptpd. Дано Виртуальная машина на KVM со свежеустановленной CentOS6 x86_64 minimal. Задача 1. Установить и настроить в связке pptpd/xl2tpd, freeradius2, radiusclient-ng и mysql. [...]]]></description>
			<content:encoded><![CDATA[<p>Здесь я постараюсь описать процесс установки и настройки VPN-сервера на CentOS6 с пользователями в MySQL и авторизацией через radius по chap для xl2tpd и для шифрованного соединения по ms-chap-v2 и mppe для pptpd.</p>
<h4>Дано</h4>
<p>Виртуальная машина на KVM со свежеустановленной CentOS6 x86_64 minimal.</p>
<h4>Задача</h4>
<p>1. Установить и настроить в связке pptpd/xl2tpd, freeradius2, radiusclient-ng и mysql.<br />
2. Создать 2-х клиентов для подключения к настроенному VPN-серверу, с выходом в нет четез NAT. Один клиент с динамическим получением адреса, второй с постоянным IP.<br />
3. Перенести pool адресов для раздачи динамическим клиентам из pptpd в radius. <span id="more-814"></span></p>
<h4>Решение</h4>
<p>Первым делом необходимо установить все необходимые пакеты. radiusclient-ng, pptpd и xl2tpd нет в стандартных репозиториях, поэтому для radiusclient-ng и xl2tpd мы подключим EPEL-репозиторий, а pptpd-пакет скачаем напрямую.</p>
<blockquote><p><code># rpm -Uhv http://fedora-epel.mirror.lstn.net/6/x86_64/epel-release-6-5.noarch.rpm<br />
# yum install freeradius freeradius-mysql xl2tpd radiusclient-ng radiusclient-ng-utils freeradius-utils mysql mysql-devel mysql-server<br />
# rpm -Uhv http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.x86_64.rpm</code></p></blockquote>
<p>далее настроим mysql и зададим пароль:</p>
<blockquote><p><code># mysql_secure_installation</code></p></blockquote>
<p>Собственно, перейдем к настройке pptpd. Приводим файлы настройки к следующему виду:</p>
<blockquote><p><code># cat /etc/pptpd.conf<br />
option /etc/ppp/options.pptpd<br />
logwtmp<br />
localip 192.168.80.1<br />
remoteip 192.168.80.5-35</code></p></blockquote>
<blockquote><p><code># cat /etc/ppp/options.pptpd<br />
name pptpd<br />
refuse-pap<br />
refuse-chap<br />
refuse-mschap<br />
require-mschap-v2<br />
require-mppe-128<br />
proxyarp<br />
ms-dns 8.8.8.8<br />
ms-dns 8.8.4.4<br />
lock<br />
nobsdcomp<br />
novj<br />
novjccomp<br />
nologfd<br />
lcp-echo-failure 30<br />
lcp-echo-interval 5<br />
ipcp-accept-local<br />
ipcp-accept-remote<br />
plugin radius.so<br />
plugin radattr.so</code></p></blockquote>
<p>если решили использовать не pptpd , а xl2tpd, то файлы будут иметь следующий вид:</p>
<blockquote><p><code># cat /etc/xl2tpd/xl2tpd.conf<br />
[global]<br />
port = 1701<br />
auth file = /etc/xl2tpd/l2tp-secrets<br />
access control = no<br />
rand source = dev<br />
[lns default]<br />
exclusive = no<br />
ip range = 192.168.80.5-192.168.81.35<br />
local ip = 192.168.80.1<br />
require chap = yes<br />
refuse pap = yes<br />
require authentication = yes<br />
name = VPNserver<br />
ppp debug = yes<br />
pppoptfile = /etc/ppp/options.xl2tpd<br />
length bit = yes<br />
flow bit = yes </code></p></blockquote>
<blockquote><p><code># cat /etc/ppp/options.xl2tpd<br />
ipcp-accept-local<br />
ipcp-accept-remote<br />
lcp-echo-failure 30<br />
lcp-echo-interval 5<br />
ms-dns 8.8.8.8<br />
ms-dns 8.8.4.4<br />
noccp<br />
nodeflate<br />
auth<br />
crtscts<br />
idle 1800<br />
mtu 1410<br />
mru 1410<br />
defaultroute<br />
debug<br />
proxyarp<br />
connect-delay 5000<br />
lock<br />
plugin radius.so<br />
plugin radattr.so</code></p></blockquote>
<p>с pptpd/xl2tpd закончено, переходим к настройке radiusclient-ng:<br />
Первая проблема с которой мы столкнулись, это нежелание pptpd работать с radiusclient-ng из-за путей куда он установлен, поэтому создаем софт-линк следующим образом</p>
<blockquote><p><code># ln -s /etc/radiusclient-ng /etc/radiusclient</code></p></blockquote>
<p>и закоментируем в файле /etc/radiusclient-ng/radiusclient.conf строчку</p>
<blockquote><p><code>#bindaddr *</code></p></blockquote>
<p>иначе ругается на неизвестный параметр.<br />
редактируем /etc/radiusclient-ng/servers , добавляем локальный radius-сервер, к которому будет обращаться клиент</p>
<blockquote><p><code>localhost YouRsUpErpAAs</code></p></blockquote>
<p>Вторая проблема, с которой нам пришлось столкнуться, это отсутствие в пакете radiusclient-ng атрибутов от mircosoft, после гугления, необходимые артибуты были найдены. Копируем имеющиеся файлы с атрибутами из /usr/share/radiusclient-ng/ в /etc/radiusclient-ng/</p>
<blockquote><p><code>cp /usr/share/radiusclient-ng/diction* /etc/radiusclient-ng/</code></p></blockquote>
<p>в /etc/radiusclient-ng/ создаем файл dictionary.microsoft со следующим содержимым:</p>
<blockquote><p>&nbsp;</p>
<p><code> </code></p>
<pre>VENDOR          Microsoft       311     Microsoft

ATTRIBUTE       MS-CHAP-Response        1       string  Microsoft
ATTRIBUTE       MS-CHAP-Error           2       string  Microsoft
ATTRIBUTE       MS-CHAP-CPW-1           3       string  Microsoft
ATTRIBUTE       MS-CHAP-CPW-2           4       string  Microsoft
ATTRIBUTE       MS-CHAP-LM-Enc-PW       5       string  Microsoft
ATTRIBUTE       MS-CHAP-NT-Enc-PW       6       string  Microsoft
ATTRIBUTE       MS-MPPE-Encryption-Policy 7     string  Microsoft
ATTRIBUTE       MS-MPPE-Encryption-Type 8       string  Microsoft
ATTRIBUTE       MS-MPPE-Encryption-Types  8     string  Microsoft
ATTRIBUTE       MS-RAS-Vendor           9       integer Microsoft
ATTRIBUTE       MS-CHAP-Domain          10      string  Microsoft
ATTRIBUTE       MS-CHAP-Challenge       11      string  Microsoft
ATTRIBUTE       MS-CHAP-MPPE-Keys       12      string  Microsoft
ATTRIBUTE       MS-BAP-Usage            13      integer Microsoft
ATTRIBUTE       MS-Link-Utilization-Threshold 14 integer        Microsoft
ATTRIBUTE       MS-Link-Drop-Time-Limit 15      integer Microsoft
ATTRIBUTE       MS-MPPE-Send-Key        16      string  Microsoft
ATTRIBUTE       MS-MPPE-Recv-Key        17      string  Microsoft
ATTRIBUTE       MS-RAS-Version          18      string  Microsoft
ATTRIBUTE       MS-Old-ARAP-Password    19      string  Microsoft
ATTRIBUTE       MS-New-ARAP-Password    20      string  Microsoft
ATTRIBUTE       MS-ARAP-PW-Change-Reason 21     integer Microsoft
ATTRIBUTE       MS-Filter               22      string  Microsoft
ATTRIBUTE       MS-Acct-Auth-Type       23      integer Microsoft
ATTRIBUTE       MS-Acct-EAP-Type        24      integer Microsoft
ATTRIBUTE       MS-CHAP2-Response       25      string  Microsoft
ATTRIBUTE       MS-CHAP2-Success        26      string  Microsoft
ATTRIBUTE       MS-CHAP2-CPW            27      string  Microsoft
ATTRIBUTE       MS-Primary-DNS-Server   28      ipaddr  Microsoft
ATTRIBUTE       MS-Secondary-DNS-Server 29      ipaddr  Microsoft
ATTRIBUTE       MS-Primary-NBNS-Server  30      ipaddr  Microsoft
ATTRIBUTE       MS-Secondary-NBNS-Server 31     ipaddr  Microsoft
VALUE           MS-BAP-Usage            Not-Allowed     0
VALUE           MS-BAP-Usage            Allowed         1
VALUE           MS-BAP-Usage            Required        2
VALUE   MS-ARAP-PW-Change-Reason        Just-Change-Password            1
VALUE   MS-ARAP-PW-Change-Reason        Expired-Password                2
VALUE   MS-ARAP-PW-Change-Reason        Admin-Requires-Password-Change  3
VALUE   MS-ARAP-PW-Change-Reason        Password-Too-Short              4
VALUE           MS-Acct-Auth-Type       PAP             1
VALUE           MS-Acct-Auth-Type       CHAP            2
VALUE           MS-Acct-Auth-Type       MS-CHAP-1       3
VALUE           MS-Acct-Auth-Type       MS-CHAP-2       4
VALUE           MS-Acct-Auth-Type       EAP             5
VALUE           MS-Acct-EAP-Type        MD5             4
VALUE           MS-Acct-EAP-Type        OTP             5
VALUE           MS-Acct-EAP-Type        Generic-Token-Card      6
VALUE           MS-Acct-EAP-Type        TLS             13</pre>
<p>&nbsp;</p></blockquote>
<p>редактируем файл /etc/radiusclient-ng/radiusclient.conf на предмет</p>
<blockquote><p><code>dictionary /etc/radiusclient-ng/dictionary</code></p></blockquote>
<p>редактируем файл /etc/radiusclient-ng/dictionary , добавляя в конец</p>
<blockquote><p><code>INCLUDE /etc/radiusclient-ng/dictionary.microsoft<br />
INCLUDE /etc/radiusclient-ng/dictionary.merit</code></p></blockquote>
<p>с клиентом тоже закончили, переходим к настройке mysql:<br />
пакет freeradius-mysql содержит необходимые файлы для импорта их в mysql, находятся они в /etc/raddb/sql/mysql/<br />
подредактируем файл admin.sql , что бы задать пароль отличный от стандартного</p>
<blockquote><p><code>vim admin.sql<br />
:%s/radpass/radpass235/g<br />
:wq</code></p></blockquote>
<p>подключаемся к mysql, создаем DB, импортируем таблицы и создаем пользователей</p>
<blockquote><p><code>mysql -p<br />
mysql&gt; create database radius;<br />
mysql&gt; \. admin.sql<br />
mysql&gt; use radius;<br />
mysql&gt; \. schema.sql</code></p></blockquote>
<p>далее создаем пользователей и их настройки</p>
<blockquote><p><code>mysql&gt; INSERT INTO radusergroup (username,groupname) values ('user1','static-ip-vpn');<br />
mysql&gt; INSERT INTO radusergroup (username,groupname) values ('user2','dinamic-ip-vpn');</code></p></blockquote>
<p>должно получится следующее</p>
<blockquote><p><code>mysql&gt; select * from radusergroup;</code></p>
<p><code> </code></p>
<pre>+----------+----------------+----------+
| username |   groupname    | priority |
+----------+----------------+----------+
| user1    | static-ip-vpn  | 1        |
| user2    | dinamic-ip-vpn | 1        |
+----------+----------------+----------+</pre>
<p>&nbsp;</p></blockquote>
<blockquote><p><code>mysql&gt; INSERT INTO radcheck (username,attribute,op,value) values ('user1','User-Password','==','pass1');<br />
mysql&gt; INSERT INTO radcheck (username,attribute,op,value) values ('user2','User-Password','==','pass2');</code></p></blockquote>
<blockquote><p><code>mysql&gt; select * from radcheck;</code></p>
<p><code> </code></p>
<pre>+----+----------+---------------+----+-------+
| id | username | attribute     | op | value |
+----+----------+---------------+----+-------+
|  1 | user1    | User-Password | == | pass1 |
|  2 | user2    | User-Password | == | pass2 |
+----+----------+---------------+----+-------+</pre>
<p>&nbsp;</p></blockquote>
<p>заполняем таблицу radgroupreply</p>
<blockquote><p><code>mysql&gt; INSERT INTO radgroupreply (groupname, attribute, op, value) values ('dinamic-ip-vpn','Service-Type',':=','Framed-User');</code></p></blockquote>
<p>и так далее, чтоб получить следующее</p>
<blockquote><p><code>mysql&gt; select * from radgroupreply;</code></p>
<p><code> </code></p>
<pre>+----+----------------+--------------------+----+---------------------+
| id | groupname      | attribute          | op | value               |
+----+----------------+--------------------+----+---------------------+
|  1 | dinamic-ip-vpn | Service-Type       | := | Framed-User         |
|  2 | dinamic-ip-vpn | Framed-Protocol    | := | PPP                 |
|  3 | dinamic-ip-vpn | Framed-Compression | := | Van-Jacobsen-TCP-IP |
|  4 | static-ip-vpn  | Framed-Compression | := | Van-Jacobsen-TCP-IP |
|  5 | static-ip-vpn  | Framed-Protocol    | := | PPP                 |
|  6 | static-ip-vpn  | Service-Type       | := | Framed-User         |
+----+----------------+--------------------+----+---------------------+</pre>
<p>&nbsp;</p></blockquote>
<p>заполняем таблицу radreply чтобы задать постоянный ip для первого клиента user1</p>
<blockquote><p><code>mysql&gt; INSERT INTO radreply (username, attribute, op, value) values ('user1','Framed-IP-Netmask',':=','255.255.255.255');<br />
mysql&gt; INSERT INTO radreply (username, attribute, op, value) values ('user1','Framed-IP-Address',':=','192.168.80.90');<br />
mysql&gt; select * from radreply;</code></p>
<p><code> </code></p>
<pre>+----+----------+-------------------+----+-----------------+
| id | username |     attribute     | op |     value       |
+----+----------+-------------------+----+-----------------+
| 1  | user1    | Framed-IP-Netmask | := | 255.255.255.255 |
| 2  | user1    | Framed-IP-Address | := | 192.168.80.90   |
+----+----------+-------------------+----+-----------------+</pre>
<p>&nbsp;</p></blockquote>
<p>В итоге, мы занесли в базу данный 2-х клиентов, user1 с паролем pass1 и статическим ip – 192.168.80.90, и user2 с паролем pass2 и получением динамического ip из пула указанного в настройках pptpd. Здесь намеренно пользователи разнесены по группам, с учетом дальшейшего увеличения клиентов, можно было просто создать все атрибуты для обоих клиентов в таблице radreply, но при большом количестве клиентов, удобнее использовать группы, где указываются одинаковые для клиентов группы атрибуты. Так же, в группах можно указывать разные пулы адресов и еще многое другое, но об этом сейчас не будем.</p>
<p>Переходим к настрокам radius. Здесь я приведу примеры файлов, в которых производились изменения:</p>
<blockquote><p><code>/etc/raddb/clients.conf<br />
client 127.0.0.1 {<br />
secret = YouRsUpErpAAs<br />
shortname = localhost<br />
nastype = other<br />
}</code></p></blockquote>
<p>Третья проблема, на момент отладки, когда еще radius не был подключен к mysql, столкнулись с тем, что если в файле /etc/raddb/users , если клиенты оказывались прописанными не в начале файла, ничего не работало.</p>
<blockquote><p><code>/etc/raddb/users<br />
DEFAULT Simultaneous-Use := 1<br />
Fall-Through = 1</code></p></blockquote>
<p>Это необходимо прописать, чтоб не было нескольких подключений с одним и тем же логином одновременно</p>
<p>/etc/raddb/radiusd.conf<br />
в секции modules уберем комментарии с</p>
<blockquote><p><code>$INCLUDE sql.conf</code></p></blockquote>
<p>/etc/raddb/sql.conf<br />
прописываем данные для подключения к mysql</p>
<blockquote><p><code>password = "radpass235"</code></p></blockquote>
<p>/etc/raddb/sites-enabled/default<br />
в секциях <code>authorize, session, post-auth и accounting</code> включаем sql<br />
в секции <code>authorize</code> включаем mschap</p>
<blockquote><p><code>/etc/raddb/modules/mschap<br />
mschap {<br />
use_mppe = yes<br />
require_encryption = yes<br />
require_strong = yes<br />
}</code></p></blockquote>
<p>Пожалуй, задача практически решена, остались некоторые штрихи:</p>
<p>Настроить iptables и разрешить форвард, чтоб выпустить клиентов в мир</p>
<blockquote><p><code>iptables -I INPUT -p gre -j ACCEPT<br />
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT<br />
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br />
iptables -I FORWARD -s 192.168.80.0/24 -o eth0 -j ACCEPT<br />
iptables -I FORWARD -d 192.168.80.0/24 -i eth0 -j ACCEPT<br />
iptables -t nat -I POSTROUTING -s 192.168.80.0/24 -o eth0 -j MASQUERADE</code></p></blockquote>
<blockquote><p><code>/etc/sysctl.conf<br />
net.ipv4.ip_forward = 1<br />
sysctl -p</code></p></blockquote>
<p>Уже на данной стадии, если мы запустим установленные сервисы, мы сможем подключится к нашей машине по vpn, осталось только перенести пул адресов выдаваемых динамическим клиентам из pptpd в radius. Для этого есть несколько вариантов, вплоть до помещения пула в mysql. Мы используем простой вариант.</p>
<p>/etc/raddb/modules/ippool<br />
в секции ippool main_pool , делаем правки для своего пула адресов</p>
<blockquote><p><code>range-start = 192.168.80.35<br />
range-stop = 192.168.80.65</code></p></blockquote>
<p>в файле /etc/raddb/sites-enabled/default добавляем с соответствующие секции</p>
<blockquote><p><code>accounting {<br />
main_pool<br />
}</code></p>
<p><code> </code><code>post-auth {<br />
main_pool<br />
}</code></p></blockquote>
<p>далее, создаем файлы, где пул будет храниться</p>
<blockquote><p><code>touch /etc/raddb/db.ipindex /etc/raddb/db.ippool<br />
chmod 664 /etc/raddb/db.ipindex /etc/raddb/db.ippool<br />
chown root:radiusd /etc/raddb/db.ipindex /etc/raddb/db.ippool</code></p></blockquote>
<p>и добавляем в /etc/raddb/users</p>
<blockquote><p><code>DEFAULT Pool-Name := main_pool<br />
Fall-Through = Yes</code></p></blockquote>
<p>перезапускаем radius, и пробуем подключится к машине по vpn, все должно работать. Подробную статистику подключений мы можем увидеть в таблице radius.radacct<br />
выделенные адреса из пула, можно посмотреть командой</p>
<blockquote><p><code>rlm_ippool_tool -av /etc/raddbdb/db.ippool /etc/raddbdb/db.ipindex</code></p></blockquote>
<p>Можно также одновременно использовать и pptpd и xl2tp. И если мы хотим разделить клиентов, мы можем добавить атрибуты, и в MySQL сделать соответствие группам, на основании этих атрибутов, например:<br />
в /etc/ppp/options.pptpd</p>
<blockquote><p><code>avpair Connect-Info=pptp</code></p></blockquote>
<p>а в /etc/ppp/options.xl2tpd</p>
<blockquote><p><code>avpair Connect-Info=l2tp</code></p></blockquote>
<p>Соответственно, при запросе к радиусу эти атрибуты будут посланы. Останется только сделать проверку в radcheck таблице, если для конкретного клиента, или в radgroupcheck, если для группы.</p>
<p>Вот и все.</p>
<p>Удачи в настройках.<br />
<a href="http://twitter.com/shadow_alone">© shadow_alone</a></p>
<p>Оригинал: <a title="http://andrey.org/pptpd-mysql-radius/" href="http://andrey.org/pptpd-mysql-radius/" target="_blank">http://andrey.org/pptpd-mysql-radius/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2011/10/31/vpn-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80-pptpdxl2tpdmysqlradius-%d0%bd%d0%b0-centos-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Доступ к дискам(разделам) виртуальных машин (lvm in lvm)</title>
		<link>http://wiki.dodex.org/2011/10/31/%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf-%d0%ba-%d0%b4%d0%b8%d1%81%d0%ba%d0%b0%d0%bc%d1%80%d0%b0%d0%b7%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc-%d0%b2%d0%b8%d1%80%d1%82%d1%83%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d1%85/</link>
		<comments>http://wiki.dodex.org/2011/10/31/%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf-%d0%ba-%d0%b4%d0%b8%d1%81%d0%ba%d0%b0%d0%bc%d1%80%d0%b0%d0%b7%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc-%d0%b2%d0%b8%d1%80%d1%82%d1%83%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d1%85/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 17:30:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Операционные системы]]></category>
		<category><![CDATA[KVM]]></category>
		<category><![CDATA[lvm]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=810</guid>
		<description><![CDATA[Иногда бывает необходимо получить доступ к дисковым разделам виртуальных машин. Здесь я постараюсь описать возможности доступа как для файлов-имидждей виртуальных машин, так и для LVM, в случае, если виртуалки стоят на LVM разделах. В случае с разделами на файлах-имиджах, будем использовать lood-девайсы. Далее, несколько возможных вариантов файлов-имиджей: 1. имидж содержит один раздел, например sda1, именно [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда бывает необходимо получить доступ к дисковым разделам виртуальных машин. Здесь я постараюсь описать возможности доступа как для файлов-имидждей виртуальных машин, так и для LVM, в случае, если виртуалки стоят на LVM разделах.</p>
<p>В случае с разделами на файлах-имиджах, будем использовать lood-девайсы.<br />
Далее, несколько возможных вариантов файлов-имиджей:</p>
<p><span id="more-810"></span></p>
<p><strong>1.</strong> имидж содержит один раздел, например sda1, именно раздел, а не диск с один разделом.</p>
<p><em><strong>решение:</strong></em></p>
<blockquote><p><code># losetup /dev/loop1 /home/vm/centos.img #маппим раздел<br />
# mount /dev/loop1 /mnt # монтируем раздел</code></p></blockquote>
<p>и мы можем работать с разделом примонтированным в /mnt</p>
<p>отключение:</p>
<blockquote><p><code># umount /dev/loop1<br />
# losetup -d /dev/loop1</code></p></blockquote>
<p><strong>2.</strong> имидж содержит диск с несколькими разделами.</p>
<p><em><strong>решение:</strong></em></p>
<blockquote><p><code># kpartx -l /home/vm/centos.img #смотрим разделы<br />
<em>loop0p1 : 0 1024000 /dev/loop0 2048<br />
loop0p2 : 0 15751168 /dev/loop0 1026048</em><br />
# kpartx -a /home/vm/centos.img #маппим разделы</code></p></blockquote>
<p>в результате получаем в /dev/mapper/ два раздела:<br />
<em>loop0p1 loop0p2</em></p>
<p>которые можно смонтировать, например</p>
<blockquote><p><code># mount /dev/mapper/loop0p1 /mnt</code></p></blockquote>
<p>отключение:</p>
<blockquote><p><code># umount /dev/mapper/loop0p1<br />
# kpartx -d /home/vm/centos.img</code></p></blockquote>
<p><strong>3.</strong> имидж содержит в себе LVM разделы</p>
<p>представим, что раздел loop0p2 из второго пункта содержит в себе LVM-тома</p>
<p><em><strong>решение:</strong></em></p>
<blockquote><p><code># lvm pvscan #сканируем на наличие LVM-томов<br />
<em>PV /dev/dm-1 VG VolGroup lvm2 [7.51 GiB / 0 free]<br />
Total: 1 [7.51 GiB] / in use: 1 [7.51 GiB] / in no VG: 0 [0 ]</em><br />
# lvm vgchange -a y VolGroup</code></p></blockquote>
<p>в результате получаем в /dev/mapper еще два раздела:<br />
<em>VolGroup-lv_root VolGroup-lv_swap</em></p>
<p>теперь можно монтировать и работать с разделом:</p>
<blockquote><p><code># mount /dev/mapper/VolGroup-lv_root /mnt</code></p></blockquote>
<p>отключение:</p>
<blockquote><p><code># umount /dev/mapper/VolGroup-lv_root<br />
# lvm vgchange -a n VolGroup<br />
# kpartx -d /home/vm/centos.img</code></p></blockquote>
<p>В случае с виртуальной машиной на LVM-разделе, все идентично, за исключением того, что loop-девайсы не используются. к примеру виртуальная машина на разделе /dev/mapper/vol-centos1</p>
<p><strong>1.</strong> один раздел<br />
напрямую монтируем раздел</p>
<blockquote><p><code># mount /dev/mapper/vol-centos1 /mnt</code></p></blockquote>
<p><strong>2.</strong> несколько разделов</p>
<blockquote><p><code># kpartx -l /dev/mapper/vol-centos1 #смотрим разделы<br />
<em>vol-centos1p1: 0 1024000 /dev/loop0 2048<br />
vol-centos1p2: 0 15751168 /dev/loop0 1026048</em><br />
# kpartx -a /dev/mapper/vol-centos1 #маппим разделы</code></p></blockquote>
<p>далее монтируем:</p>
<blockquote><p><code># mount /dev/mapper/vol-centos1p1 /mnt</code></p></blockquote>
<p><strong>3.</strong> LVM разделы (lvm in lvm)</p>
<blockquote><p><code># lvm pvscan #сканируем на наличие LVM-томов<br />
<em>PV /dev/mapper/vol-centos1p2 VG VolGroup lvm2 [7.51 GiB / 0 free]<br />
Total: 1 [7.51 GiB] / in use: 1 [7.51 GiB] / in no VG: 0 [0 ]</em><br />
# lvm vgchange -a y VolGroup #активируем группу LVM-томов</code></p></blockquote>
<p>получаем в /dev/mapper два новых раздела:<br />
<em>VolGroup-lv_root VolGroup-lv_swap</em></p>
<p>можем монтировать и работать:</p>
<blockquote><p><code># mount /dev/mapper/VolGroup-lv_root /mnt</code></p></blockquote>
<p>отключение:</p>
<blockquote><p><code># umount /dev/mapper/VolGroup-lv_root<br />
# lvm vgchange -a n VolGroup<br />
# kpartx -d /dev/mapper/vol-centos1</code></p></blockquote>
<p>Вот и все.</p>
<p>Удачи в настройках.<br />
<a href="http://twitter.com/shadow_alone">© shadow_alone</a></p>
<p>Оригинал: <a title="http://andrey.org/virtual-images-lvm/" href="http://andrey.org/virtual-images-lvm/" target="_blank">http://andrey.org/virtual-images-lvm/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2011/10/31/%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf-%d0%ba-%d0%b4%d0%b8%d1%81%d0%ba%d0%b0%d0%bc%d1%80%d0%b0%d0%b7%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc-%d0%b2%d0%b8%d1%80%d1%82%d1%83%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d1%85/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad. Дизайн шаблоны.</title>
		<link>http://wiki.dodex.org/2011/10/31/ipad-%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d1%8b/</link>
		<comments>http://wiki.dodex.org/2011/10/31/ipad-%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d1%8b/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 17:18:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Дизайн]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=800</guid>
		<description><![CDATA[После выпуска iPad компанией Apple, под него можно создавать приложения, а значит требуется проектировать и их интерфейс. Конечно интерфейс билдер Apple хорош, но он не позволяет создавать произвольные UI-элементы налету. Поэтому было решено создать PSD-файл шаблонов элементов. Данный PSD-файл был создан с использованием векторной графики, так что он полностью редактируемый и масштабируемый. Рабочяя облать в [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wiki.dodex.org/wp-content/uploads/2011/10/iPad_Gui_Element1.jpg"><img class="alignnone size-full wp-image-802" title="iPad_Gui_Element1" src="http://wiki.dodex.org/wp-content/uploads/2011/10/iPad_Gui_Element1.jpg" alt="" width="448" height="331" /></a></p>
<p>После выпуска iPad компанией Apple, под него можно создавать приложения, а значит требуется проектировать и их интерфейс. Конечно интерфейс билдер Apple хорош, но он не позволяет создавать произвольные UI-элементы налету. Поэтому было решено создать PSD-файл шаблонов элементов.</p>
<p>Данный PSD-файл был создан с использованием векторной графики, так что он полностью редактируемый и масштабируемый. Рабочяя облать в формате 764 на 1024 пикселей, так что все что вы создаете в Photoshop, может быть легко перенесено в SDK.</p>
<p><a href="../wp-content/uploads/2011/10/iPad_GUI_PSD_2.zip">Скачайть файл iPad_GUI_PSD_2</a></p>
<p>Скачав файл по <a href="http://wiki.dodex.org/wp-content/uploads/2011/10/iPad_Sketch_Elements_v1.ai_.zip">данной ссылке</a> вы получите набор шаблонов в виде скетчей (набросков сделанных от руки). Возможно такой дизайн подойдет вам больше чем дизайн с &#8220;реальнымы&#8221; элементами.</p>
<div id="attachment_806" class="wp-caption alignnone" style="width: 468px"><a href="http://wiki.dodex.org/wp-content/uploads/2011/10/ipad-sketch-elements-ai-2.jpg"><img class="size-full wp-image-806 " title="Шаблоны в виде набросков" src="http://wiki.dodex.org/wp-content/uploads/2011/10/ipad-sketch-elements-ai-2.jpg" alt="Шаблоны в виде набросков" width="458" height="434" /></a><p class="wp-caption-text">Шаблоны в виде набросков</p></div>
<p>Надеюсь это поможет вам при создании ваших iPad приложений.<a><br />
</a></p>
<p>Оригинал: http://www.teehanlax.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2011/10/31/ipad-%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d1%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Пейзажи из еды</title>
		<link>http://wiki.dodex.org/2011/10/18/%d0%bf%d0%b5%d0%b9%d0%b7%d0%b0%d0%b6%d0%b8-%d0%b8%d0%b7-%d0%b5%d0%b4%d1%8b/</link>
		<comments>http://wiki.dodex.org/2011/10/18/%d0%bf%d0%b5%d0%b9%d0%b7%d0%b0%d0%b6%d0%b8-%d0%b8%d0%b7-%d0%b5%d0%b4%d1%8b/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 13:32:58 +0000</pubDate>
		<dc:creator>marie</dc:creator>
				<category><![CDATA[Дизайн]]></category>
		<category><![CDATA[Искусство]]></category>
		<category><![CDATA[Фотография]]></category>
		<category><![CDATA[еда]]></category>
		<category><![CDATA[пейзаж]]></category>
		<category><![CDATA[фото]]></category>
		<category><![CDATA[фудстилистика]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=788</guid>
		<description><![CDATA[Удивительные фотографии съедобных ландшафтов, все элементы которых сделаны из настоящих продуктов. Карл Уорнер ( Carl Warner ) – австралийский фотограф, работающий в Лондоне. Окружающие считают Карла Уорнера немного странным: фотограф может подолгу стоять, разглядывая овощи в супермаркетах. Все дело в том, что Карл Уорнер, иллюстратор по образованию, мастер жанра с его подачи известного как &#8220;Foodscapes&#8221;, то есть [...]]]></description>
			<content:encoded><![CDATA[<p><span class="Apple-style-span" style="font-size: 15px;font-weight: bold">Удивительные фотографии съедобных ландшафтов, все элементы которых сделаны из настоящих продуктов.</span></p>
<div>
<div>
<p>Карл Уорнер ( <a href="http://www.carlwarner.com/warner.html">Carl Warner</a> ) – австралийский фотограф, работающий в Лондоне. Окружающие считают Карла Уорнера немного странным: фотограф может подолгу стоять, разглядывая овощи в супермаркетах.<br />
Все дело в том, что Карл Уорнер, иллюстратор по образованию, мастер жанра с его подачи известного как &#8220;Foodscapes&#8221;, то есть пейзажи из еды. На его картинах горы сделаны<br />
из хлеба, деревья – это брокколи, волны &#8211; листы капусты, а роль камней исполняет печеный картофель.<br />
<img src="http://files.adme.ru/files/news/part_30/307105/0_sm.jpg" alt="" width="496" height="463" /></p>
<p>&nbsp;</p>
<p><span id="more-788"></span></p>
<div>По сложности исполнения выкладывание пейзажей из еды ничем не отличается от написания картин маслом. Создание одного съедобного пейзажа занимает несколько дней. Сначала по эскизам подбираются продукты. Затем два-три дня уходит на построение пейзажа и фотографирование, при этом, чтобы &#8220;капризная&#8221; еда под светом сафитов не заветривалась и не портилась, каждая сцена фотографируется слоями. Еще несколько дней уходит на ретушь и совмещение всех слоев и элементов фотографии. В результате получается великоленая иллюзия.<br />
<img src="http://files.adme.ru/files/news/part_30/307105/carl_warner_work.jpg" alt="" width="496" height="346" /><br />
Рекламной фотографией Карл Уорнер занимается уже больше 25 лет. А конкретно пейзажами из еды &#8211; последние 10 лет. Всемирную известность &#8220;Foodscapes&#8221; принесли автору в 2008 году. Благодаря интернету фотографии съедобных пейзажей разлетелись по всему земному шару с невероятным вирусным успехом. С тех пор у Карла Уорнера нет отбоя от рекламодателей и агентств, желающих придать упаковкам и рекламе своих товаров такой же сочный вид, как на его аппетитных ландшафтах.<br />
<a href="http://files.adme.ru/files/news/part_30/307105/1.jpg"><img src="http://files.adme.ru/files/news/part_30/307105/1_sm.jpg" alt="" width="600" height="341" /></a><br />
<img src="http://files.adme.ru/files/news/part_30/307105/2.jpg" alt="" width="605" height="354" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/3.jpg" alt="" width="605" height="365" /></div>
<p>Брокколи в горах и морской пейзаж были сделаны для финского молочного бренда Valio по заказу агентства Sek &amp; Grey.<br />
<img src="http://files.adme.ru/files/news/part_30/307105/5.jpg" alt="" width="605" height="344" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/6.jpg" alt="" width="605" height="248" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/7.jpg" alt="" width="605" height="316" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/9.jpg" alt="" width="605" height="426" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/10.jpg" alt="" width="605" height="322" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/11.jpg" alt="" width="605" height="426" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/12.jpg" alt="" width="605" height="287" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/13.jpg" alt="" width="605" height="287" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/14.jpg" alt="" width="605" height="426" /></p>
<p><img src="http://files.adme.ru/files/news/part_30/307105/17.jpg" alt="" width="600" height="848" /></p>
<p>Пейзажи из колбасы и мяса Карл Уорнер сделал для бренда Negroni по заказу DDB Milan.<br />
<a href="http://files.adme.ru/files/news/part_30/307105/18.jpg"><img src="http://files.adme.ru/files/news/part_30/307105/18_sm.jpg" alt="" width="600" height="399" /></a><br />
<a href="http://files.adme.ru/files/news/part_30/307105/19.jpg"><img src="http://files.adme.ru/files/news/part_30/307105/19_sm.jpg" alt="" width="600" height="422" /></a><br />
<img src="http://files.adme.ru/files/news/part_30/307105/20.jpg" alt="" width="600" height="422" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/21.jpg" alt="" width="600" height="448" /><br />
<a href="http://files.adme.ru/files/news/part_30/307105/22.jpg"><img src="http://files.adme.ru/files/news/part_30/307105/22_sm.jpg" alt="" width="600" height="283" /></a><br />
<img src="http://files.adme.ru/files/news/part_30/307105/23.jpg" alt="" width="600" height="280" /><br />
<a href="http://files.adme.ru/files/news/part_30/307105/24.jpg"><img src="http://files.adme.ru/files/news/part_30/307105/24_sm.jpg" alt="" width="600" height="278" /></a><br />
<img src="http://files.adme.ru/files/news/part_30/307105/25.jpg" alt="" width="600" height="540" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/26.jpg" alt="" width="600" height="337" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/27.jpg" alt="" width="600" height="313" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/31.jpg" alt="" width="600" height="427" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/34.jpg" alt="" width="600" height="319" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/28.jpg" alt="" width="540" height="435" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/29.jpg" alt="" width="540" height="367" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/30.jpg" alt="" width="540" height="366" /></p>
<p>Серия принтов, изображающих лондонские достопримечательности, была сделана для британского телеканала Good Food.<br />
<img src="http://files.adme.ru/files/news/part_30/307105/32.jpg" alt="" width="474" height="596" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/36.jpg" alt="" width="420" height="574" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/35.jpg" alt="" width="600" height="379" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/37.jpg" alt="" width="600" height="300" /><br />
<img src="http://files.adme.ru/files/news/part_30/307105/38.jpg" alt="" width="600" height="300" /></p>
<p>источник: www.adme.ru</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2011/10/18/%d0%bf%d0%b5%d0%b9%d0%b7%d0%b0%d0%b6%d0%b8-%d0%b8%d0%b7-%d0%b5%d0%b4%d1%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Министерство печати</title>
		<link>http://wiki.dodex.org/2011/06/05/%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d0%b5%d1%80%d1%81%d1%82%d0%b2%d0%be-%d0%bf%d0%b5%d1%87%d0%b0%d1%82%d0%b8/</link>
		<comments>http://wiki.dodex.org/2011/06/05/%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d0%b5%d1%80%d1%81%d1%82%d0%b2%d0%be-%d0%bf%d0%b5%d1%87%d0%b0%d1%82%d0%b8/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 07:24:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Программирование]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=782</guid>
		<description><![CDATA[А в Великобритании есть министерство печати. Так то. http://ministryoftype.co.uk/]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Эволюция логотипа" src="http://s3.amazonaws.com/37assets/svn/625-2011-logo.png" alt="" width="220" height="63" /></p>
<p>А в Великобритании есть министерство печати. Так то.</p>
<p>http://ministryoftype.co.uk/</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2011/06/05/%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d0%b5%d1%80%d1%81%d1%82%d0%b2%d0%be-%d0%bf%d0%b5%d1%87%d0%b0%d1%82%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hetzner и IPv6</title>
		<link>http://wiki.dodex.org/2011/01/03/hetzner-and-ipv6/</link>
		<comments>http://wiki.dodex.org/2011/01/03/hetzner-and-ipv6/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 20:27:11 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Операционные системы]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Hetzner]]></category>
		<category><![CDATA[ip6tables]]></category>
		<category><![CDATA[IPv6]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=754</guid>
		<description><![CDATA[При заказе на Hetzner блока IPv6, Вы получите письмо примерно следующего содержания: IPs: 2a01:4f8:110:4121:: /64 Gateway: 2a01:4f8:110:4116::1 /59 Теперь необходимо всё это дело прописать у себя. У меня на одной из машин крутится несколько виртуальных, соответственно адреса выдадим и им. Все машины на CentOS. Для начала пропишем на основной машине (добавляем записи, если их нет): [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-591" title="tux-2" src="http://wiki.dodex.org/wp-content/uploads/2009/08/tux-2.png" alt="" width="100" height="111" /><br />
При заказе на Hetzner блока IPv6, Вы получите письмо примерно следующего содержания:<br />
<strong>IPs: 2a01:4f8:110:4121:: /64<br />
Gateway: 2a01:4f8:110:4116::1 /59</strong><br />
Теперь необходимо всё это дело прописать у себя. У меня на одной из машин крутится несколько виртуальных, соответственно адреса выдадим и им. Все машины на CentOS.<br />
<span id="more-754"></span></p>
<p>Для начала пропишем на основной машине (добавляем записи, если их нет):</p>
<blockquote><p><span style="color: #339966;">/etc/sysconfig/network</span><br />
NETWORKING_IPV6=yes</p>
<p><span style="color: #339966;">/etc/sysconfig/network-scripts/ifcfg-eth0</span><br />
IPV6INIT=yes<br />
IPV6ADDR=2a01:4f8:110:4121::1</p>
<p><span style="color: #339966;">/etc/sysconfig/network-scripts/route6-eth0</span><br />
2a01:4f8:110:4116::1 dev eth0<br />
::/0 via 2a01:4f8:110:4116::1</p></blockquote>
<p>и выполняем<br />
<span style="color: #339966;"># /etc/init.d/network restart</span><br />
Проверяем:<br />
<span style="color: #339966;"># ping6 ipv6.google.com</span><br />
С основной машиной почти закончили, осталось включить forwarding, чтобы виртуальные машины могли использовать IPv6 адреса. В данном случае, адрес Вашей основной машины &#8211; <strong>[2a01:4f8:110:4121::1]</strong>.</p>
<blockquote><p><span style="color: #339966;">/etc/sysctl.conf</span><br />
net.ipv6.conf.all.forwarding=1</p></blockquote>
<p>выполняем:<br />
<span style="color: #339966;"># sysctl -p</span><br />
Теперь к настройке виртуальных машин, там все просто, достаточно дать адрес и шлюз.</p>
<blockquote><p><span style="color: #339966;">/etc/sysconfig/network</span><br />
NETWORKING_IPV6=yes</p>
<p><span style="color: #339966;">/etc/sysconfig/network-scripts/ifcfg-eth0</span><br />
IPV6INIT=yes<br />
IPV6ADDR=2a01:4f8:110:4121::2<br />
IPV6_DEFAULTGW=2a01:4f8:110:4121::1</p></blockquote>
<p>выполняем:<br />
<span style="color: #339966;"># /etc/init.d/network restart</span><br />
Машина получила адрес <strong>[2a01:4f8:110:4121::2]</strong>. Для других виртуальных машин проделайте тоже самое, меняя адрес.</p>
<p>Ну и приведу пример простейшей настройки ip6tables &#8211; файлвол для IPv6.<br />
создайте файл примерно следующего содержания, каждому своё, кто-то что-то добавит или уберет:</p>
<blockquote><p><span style="color: #339966;">/etc/sysconfig/ip6tables</span><br />
#<br />
*filter<br />
:INPUT ACCEPT [0:0]<br />
:FORWARD ACCEPT [0:0]<br />
:OUTPUT ACCEPT [0:0]<br />
# Разрешаем все подключения из своей подсети<br />
-A INPUT -s 2a01:4f8:110:4121::/64 -d ::/0 -j ACCEPT<br />
-A INPUT -s ::/0 -d ::/0 -i lo -j ACCEPT<br />
# Разрешаем соединения для уже установленных соединений<br />
-A INPUT -s ::/0 -d ::/0 -m state &#8211;state RELATED,ESTABLISHED -j ACCEPT<br />
# Разрешаем icmp<br />
-A INPUT -s ::/0 -d ::/0 -p ipv6-icmp -j ACCEPT<br />
# Разрешаем необходимые нам порты<br />
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp &#8211;dport 22 -j ACCEPT<br />
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp &#8211;dport 80 -j ACCEPT<br />
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp &#8211;dport 53 -j ACCEPT<br />
-A INPUT -s ::/0 -d ::/0 -p udp -m udp &#8211;dport 53 -j ACCEPT<br />
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp &#8211;dport 443 -j ACCEPT<br />
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp &#8211;dport 25 -j ACCEPT<br />
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp &#8211;dport 110 -j ACCEPT<br />
# Все остальное отклоняем<br />
-A INPUT -s ::/0 -d ::/0 -j REJECT &#8211;reject-with icmp6-adm-prohibited<br />
COMMIT<br />
#
</p></blockquote>
<p>Перезапускаем файрвол:<br />
<span style="color: #339966;"># /etc/init.d/ip6tables restart</span></p>
<p>Вот и все готово. Теперь Ваши машины имеют IPv6 адреса и защищены файрволом.</p>
<p>Удачи в настройках.<br />
<a href="http://twitter.com/shadow_alone">© shadow_alone</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2011/01/03/hetzner-and-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Синхронизация DNS-зон c сервера с Plesk-панелью</title>
		<link>http://wiki.dodex.org/2010/12/17/dns-plesk/</link>
		<comments>http://wiki.dodex.org/2010/12/17/dns-plesk/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 15:01:06 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[plesk]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=723</guid>
		<description><![CDATA[Задача может возникнуть когда на сервере с Plesk-панелью имеется всего один IP-адрес. В данном случае, что-бы не заводить slave-зоны на другом сервере каждый раз вручную, можно в крон поставить скрипт, который и будет производить синхронизацию зон. Причем, не только добавлять новые зоны, но и удалять старые, а также не только основные домены,но и алиасы к [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-468" title="tux" src="http://wiki.dodex.org/wp-content/uploads/2008/12/tux.png" alt="" width="100" height="117" /> Задача может возникнуть когда на сервере с Plesk-панелью имеется всего один IP-адрес. В данном случае, что-бы не заводить slave-зоны на другом сервере каждый раз вручную, можно в крон поставить скрипт, который и будет производить синхронизацию зон. Причем, не только добавлять новые зоны, но и удалять старые, а также не только основные домены,но и алиасы к ним.</p>
<p>Для начала нам понадобиться создать юзера в mysql на сервере с Plesk-панелью, и дать ему права на чтение из нужных таблиц.<br />
<span id="more-723"></span></p>
<blockquote><p><code>grant select on psa.domains to dsnuser@'%' identified by 'You_paSSword';<br />
grant select on psa.domainaliases to dsnuser@'%' identified by 'You_paSSword';</code></p></blockquote>
<p>Можете вместо % использовать конкретный хост, так безопаснее, и так же не забудьте открыть для этого хоста mysql-порт(3306) на файрволе.<br />
Все остальные действия проводятся уже на сервере где должны быть slave-зоны.<br />
Далее создадим следующий скрипт, назовем его dnssync:<br />
<code> </code></p>
<blockquote><p><code><br />
#!/bin/bash</code></p>
<p><code>if [ -f /tmp/plesk-domains.txt ];then<br />
/bin/mv -f /tmp/plesk-domains.txt /tmp/plesk-domains.txt.old<br />
fi</p>
<p>/usr/bin/mysql -h plesk.server.name -u dssuser --password="You_paSSword"  -Bse "SELECT name from domains where status=0 UNION SELECT name from domainaliases where status=0 " psa &gt;/tmp/plesk-domains.txt<br />
OUT1=$?</p>
<p>if [ $OUT1 -eq 0 ];then</p>
<p>/usr/bin/diff -q /tmp/plesk-domains.txt /tmp/plesk-domains.txt.old &gt; /dev/null<br />
OUT2=$?<br />
if [ $OUT2 -ne 0 ];then<br />
echo "" &gt;/var/named/chroot/etc/plesk-zones.conf<br />
while read line<br />
do<br />
domain=$line<br />
echo "zone \"$domain\" { type slave; masters {ip_of_plesk_server;}; file \"/var/named/slaves/$domain.hosts\"; };" &gt;&gt;/var/named/chroot/etc/plesk-zones.conf<br />
done &lt; "/tmp/plesk-domains.txt"</p>
<p>echo "" &gt;&gt;/var/named/chroot/etc/plesk-zones.conf<br />
/etc/init.d/named restart &gt; /dev/null</p>
<p>fi<br />
else<br />
if [ -f /tmp/plesk-domains.txt.old ];then<br />
/bin/mv -f /tmp/plesk-domains.txt.old /tmp/plesk-domains.txt<br />
fi<br />
fi</p>
<p></code></p></blockquote>
<p><code> </code><br />
Обратите внимание на пути, в данном примере bind запущен в chroot окружении, на CentOS 5.5. У Вас пути могут отличатся, и Вам необходимо исправить их на свои. Также замените ip_of_plesk_server и plesk.server.name на IP сервера с Plesk-панелью.</p>
<p>Осталось добавить в named.conf</p>
<blockquote><p><code>include "/etc/plesk-zones.conf"; </code></p></blockquote>
<p>дать права на выполнение файлу dnssync,и поставить задание в cron, например, делать проверку каждый час:</p>
<blockquote><p><code>0 * * * * /path_to_script/dnssync </code></p></blockquote>
<p>запускаем один раз /path_to_script/dnssync<br />
рестартуем bind<br />
И все работает на ура.<br />
Больше лишних телодвижений не потребуется.<br />
Я всегда задумываюсь: все-таки именно лень заставляет нас что-то сделать, чтоб потом ничего не делать.</p>
<p>Удачи в настройках.<br />
<a href="http://twitter.com/shadow_alone">© shadow_alone</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2010/12/17/dns-plesk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ip sla, ipsec и event manager</title>
		<link>http://wiki.dodex.org/2010/06/19/ip-sla-ipsec-event-manager/</link>
		<comments>http://wiki.dodex.org/2010/06/19/ip-sla-ipsec-event-manager/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 21:38:30 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[event manager]]></category>
		<category><![CDATA[ip sla]]></category>
		<category><![CDATA[ipsec]]></category>
		<category><![CDATA[track]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=711</guid>
		<description><![CDATA[Заметку делаю для себя, чтоб не забыть. Итак, столкнулся с тем, что track отбивает маршрут, но сессия ipsec висит. Соответственно, пока её не прибить, трафик не ходит по новому маршруту с новым тунелем. Проблему решил с помощью event manager. Настраивалось все на 2811. track timer interface 5 track timer ip route 5 ! track 1 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wiki.dodex.org/wp-content/uploads/2009/03/cisco.gif"><img class="alignleft size-full wp-image-498" title="cisco" src="http://wiki.dodex.org/wp-content/uploads/2009/03/cisco.gif" alt="" width="110" height="73" /></a>Заметку делаю для себя, чтоб не забыть.<br />
Итак, столкнулся с тем, что track отбивает маршрут, но сессия ipsec висит. Соответственно, пока её не прибить, трафик не ходит по новому маршруту с новым тунелем.<br />
Проблему решил с помощью event manager. Настраивалось все на 2811.</p>
<p><span id="more-711"></span></p>
<blockquote><p><code><span style="color: #339966;">track timer interface 5<br />
track timer ip route 5<br />
!<br />
track 1 ip sla 10 reachability<br />
!</span></code></p></blockquote>
<p>канала для сети 192.168.125.0/24 два, оба через ipsec, основной канал по радиолинку через 10.11.12.13, и второй через инет по дефолтному маршруту.</p>
<blockquote><p><code><span style="color: #339966;">ip route 192.168.125.0 255.255.255.0 10.11.12.13 track 1<br />
ip route 0.0.0.0 0.0.0.0 10.9.8.7</span></code></p></blockquote>
<p>когда линк по радио-каналу есть, работает основной маршрут для этой сети, в отсутствие линка, работает маршрут через инет.</p>
<blockquote><p><code><span style="color: #339966;">ip sla 10<br />
&nbsp; icmp-echo 10.11.12.13 source-interface FastEthernet0/1<br />
&nbsp; timeout 2000<br />
&nbsp; threshold 2<br />
&nbsp; frequency 10<br />
ip sla schedule 10 life forever start-time now</span></code></p></blockquote>
<p>теперь собственно нужно отбить сессию ipsec, что проделывается следующим образом</p>
<blockquote><p><code><span style="color: #339966;">event manager applet app-sla-10<br />
&nbsp; description #crypto down if radio channel unav#<br />
&nbsp; event track 1 state down<br />
&nbsp; action 1.0 cli command "enable"<br />
&nbsp; action 1.1 cli command "clear crypto session remote 10.11.12.13"<br />
event manager applet app-sla-11<br />
&nbsp; description #crypto down if radio channel av#<br />
&nbsp; event track 1 state up<br />
&nbsp; action 1.0 cli command "enable"<br />
&nbsp; action 1.1 cli command "clear crypto session remote 10.9.8.6"</span></code></p></blockquote>
<p>Вот таким образом всё работает. При пропадании линка через радио-модем, маршрут через него пропадает и ipsec сессия прибивается, соответственно, поднимается новя сессия ipsec по каналу через инет и работает основной маршрут. При появлении радио-линка все возвращается на круги своя.</p>
<p>Удачи в настройках.<br />
© shadow_alone</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2010/06/19/ip-sla-ipsec-event-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx с php на CentOS</title>
		<link>http://wiki.dodex.org/2010/04/26/nginx-php-centos/</link>
		<comments>http://wiki.dodex.org/2010/04/26/nginx-php-centos/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 14:54:46 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Операционные системы]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=690</guid>
		<description><![CDATA[Установим и настроем Nginx с PHP на примере CentOS 5.4. Все делается довольно быстро и просто. Первым делом ставим репозитарий epel: # rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/$(uname -m)/epel-release-5-3.noarch.rpm Устанавливаем nginx: # yum install nginx Ставим PHP и необходимые модули: # yum install php-pear-Net-Socket php-pear php-common php-gd php-devel php php-mbstring php-pear-Mail php-cli php-imap php-snmp php-pdo php-xml php-pear-Auth-SASL php-ldap [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wiki.dodex.org/wp-content/uploads/2008/12/tux.png"><img class="size-full wp-image-468 alignright" title="tux" src="http://wiki.dodex.org/wp-content/uploads/2008/12/tux.png" alt="" width="70" height="82" /></a> Установим и настроем Nginx с PHP на примере CentOS 5.4. Все делается довольно быстро и просто.</p>
<p>Первым делом ставим репозитарий epel:</p>
<blockquote><p># rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/$(uname -m)/epel-release-5-3.noarch.rpm</p></blockquote>
<p>Устанавливаем nginx:</p>
<blockquote><p># yum install nginx</p></blockquote>
<p><span id="more-690"></span></p>
<p>Ставим PHP и необходимые модули:</p>
<blockquote><p># yum install php-pear-Net-Socket php-pear php-common php-gd php-devel php php-mbstring php-pear-Mail php-cli php-imap php-snmp php-pdo php-xml php-pear-Auth-SASL php-ldap php-pear-Net-SMTP php-mysql</p></blockquote>
<p>Ставим spawn-fcgi:</p>
<blockquote><p># yum install spawn-fcgi</p></blockquote>
<p>Скачиваем и настраиваем скрипт для init.d:</p>
<blockquote><p># wget http://andrey.org/nginx-daemon.sh.gz</p>
<p># gunzip nginx-daemon.sh.gz</p>
<p># mv nginx-daemon.sh /etc/init.d/php_cgi</p>
<p># chmod +x /etc/init.d/php_cgi</p></blockquote>
<p>Запускаем php app :</p>
<blockquote><p># /etc/init.d/php_cgi start</p></blockquote>
<p>Проверяем:</p>
<blockquote><p># netstat -tulpn | grep :9000</p></blockquote>
<p>Получаем:</p>
<p><code>tcp     0      0 127.0.0.1:9000       0.0.0.0:*      LISTEN    15196/php-cgi</code></p>
<p>Вносим изменения в <em>/etc/nginx/nginx.conf </em>:</p>
<blockquote><p>location ~ \.php$ {</p>
<p>root           html;</p>
<p>fastcgi_pass   127.0.0.1:9000;</p>
<p>fastcgi_index  index.php;</p>
<p>fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;</p>
<p>include        fastcgi_params;</p>
<p>}</p></blockquote>
<p>Рестартуем Nginx:</p>
<blockquote><p># service nginx restart</p></blockquote>
<p>Создаем тестовый файл для проверки работы php &#8211; <em>/usr/share/nginx/html/info.php</em>:</p>
<blockquote><p>&lt;?php</p>
<p>phpinfo();</p>
<p>?&gt;</p></blockquote>
<p>Проверяем в браузере. Все должно работать.</p>
<p>Удачи в настройках.</p>
<p>© shadow_alone</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2010/04/26/nginx-php-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Изменение размеров файлов-имиджей XEN Dom-U</title>
		<link>http://wiki.dodex.org/2010/03/17/xen-resize/</link>
		<comments>http://wiki.dodex.org/2010/03/17/xen-resize/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 00:09:10 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[stacklet.com]]></category>
		<category><![CDATA[XEN]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=682</guid>
		<description><![CDATA[В случае, если, Вы пользуетесь файлами имиджей с сайта stacklet.com, все совсем просто: Отключаем машину. Создаем пустой файл нужного размера: dd if=/dev/zero of=Tempfile bs=1M count=10010 добавляем этот файл в конец файла-имиджа, например: cat Tempfile &#62;&#62;ubuntu.9-10.x86.img и изменяем размер раздела файловой системы: resize2fs -f ubuntu.9-10.x86.img Запускаем машину и всё. В случае, если вы сами создавали виртуальную [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste"><a href="http://wiki.dodex.org/wp-content/uploads/2009/08/tux-2.png"><img class="alignleft size-full wp-image-591" title="tux-2" src="http://wiki.dodex.org/wp-content/uploads/2009/08/tux-2.png" alt="" width="100" height="111" /></a>В случае, если, Вы пользуетесь файлами имиджей с сайта <a title="http://stacklet.com/" href="http://stacklet.com/" target="_blank">stacklet.com</a>, все совсем просто:</div>
<div id="_mcePaste">Отключаем машину. Создаем пустой файл нужного размера:</div>
<blockquote>
<div id="_mcePaste">dd if=/dev/zero of=Tempfile bs=1M count=10010</div>
</blockquote>
<div id="_mcePaste">добавляем этот файл в конец файла-имиджа, например:</div>
<blockquote>
<div id="_mcePaste">cat Tempfile &gt;&gt;ubuntu.9-10.x86.img</div>
</blockquote>
<div id="_mcePaste"><span id="more-682"></span>и изменяем размер раздела файловой системы:</div>
<blockquote>
<div id="_mcePaste">resize2fs -f ubuntu.9-10.x86.img</div>
</blockquote>
<div id="_mcePaste">Запускаем машину и всё.</div>
<div>В случае, если вы сами создавали виртуальную или паравиртуальную машину, и файл имидж содержит несколько разделов, например:</div>
<blockquote>
<div id="_mcePaste">/dev/sda1	/boot</div>
<div id="_mcePaste">/dev/sda2	swap</div>
<div id="_mcePaste">/dev/sda3	/</div>
</blockquote>
<div id="_mcePaste">делаем таким образом:</div>
<div id="_mcePaste">останавливаем машину, создаем пустой файл нужного размера</div>
<blockquote>
<div id="_mcePaste">dd if=/dev/zero of=/vm/zero.img bs=1M count=5000</div>
</blockquote>
<div id="_mcePaste">добавляем этот файл в конец файла-имиджа</div>
<blockquote>
<div id="_mcePaste">cat zero.img &gt;&gt;t2.img</div>
</blockquote>
<div id="_mcePaste">потом прикручиваем получившийся файл в систему и запускаем fdisk</div>
<blockquote>
<div id="_mcePaste">/sbin/losetup /dev/loop1 /vm/t2.img</div>
<div id="_mcePaste">fdisk /dev/loop1</div>
</blockquote>
<div id="_mcePaste">()delete &#8211; удаляем наш раздел, в данном случае /dev/sda3</div>
<div id="_mcePaste">()add &#8211; добавляем раздел /dev/sda3 с таким же началом, но новым размером</div>
<div id="_mcePaste">сохраняем изменения</div>
<div id="_mcePaste">отсоединяем имидж из системы</div>
<blockquote>
<div id="_mcePaste">/sbin/losetup -d /dev/loop1</div>
</blockquote>
<div id="_mcePaste">запускаем нашу виртуальную машину и уже в ней</div>
<blockquote>
<div id="_mcePaste">resize2fs /dev/sda3</div>
</blockquote>
<div id="_mcePaste">вот и все.</div>
<div id="_mcePaste">Заметка практического характера, в свое время искал инфу, и если в первом варианте всё без проблем, то во втором надо быть осторожнее, чтоб не потерять инфу. Возможно, кому-то будет полезно.</div>
<p><span style="font-family: arial, sans; line-height: 25px; color: #222222; font-size: 14px;">© shadow_alone</span></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2010/03/17/xen-resize/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

