<?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; environment</title>
	<atom:link href="http://mysyslog.ru/posts/tag/environment/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>Resize partition in FreeBSD with growfs</title>
		<link>http://mysyslog.ru/posts/334</link>
		<comments>http://mysyslog.ru/posts/334#comments</comments>
		<pubDate>Fri, 02 Apr 2010 14:44:18 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[freebsd]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=334</guid>
		<description><![CDATA[It&#8217;s hard to say, which partition will grow more during system work at installation time. So in one good day nagios will start alerting you about space shortage! Nowadays it&#8217;s not topical problem, but it could happen, as it was with me.Some administrator before me prepared solution for this case. He added one empty partition [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s hard to say, which partition will grow more during system work at installation time. So in one good day nagios will start alerting you about space shortage! Nowadays it&#8217;s not topical problem, but it could happen, as it was with me.<span id="more-334"></span>Some administrator before me prepared solution for this case. He added one empty partition /mnt/b for cutting space from it in future. So my task was to grow one working partition without data loss.<br />
What we have in the beginning:</p>
<pre class="brush: plain;">
df -h
/dev/da1s1a    989M    488M    442M    52%    /mnt/a
/dev/da1s1b    6.8G    4.0K    6.4G     0%    /mnt/b
</pre>
<p>We want to resize /dev/da1s1a up to 2GB. For this task we need some utils: bsdlabel, newfs, growfs.<br />
First is to unmount partitions.</p>
<pre class="brush: plain;">
umount /mnt/a
umount /mnt/b
</pre>
<p>After this we must change label data on slice /dev/da1s1</p>
<pre class="brush: plain;">
bsdlabel -e /dev/da1s1

# /dev/da1s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2097152       16    4.2BSD     2048 16384 28528
  b: 14674629  2097168    4.2BSD     2048 16384 28448
  c: 16771797        0    unused        0     0         # &quot;raw&quot; part, don't edit
</pre>
<p>After changing it would look like</p>
<pre class="brush: plain;">
# /dev/da1s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2048M       16    4.2BSD     2048 16384 28528
  b: *  *   4.2BSD     2048 16384 28448
  c: 16771797        0    unused        0     0         # &quot;raw&quot; part, don't edit
</pre>
<p>Now it&#8217;s time to run growfs. It has key -s for setting new size of partition. One note, growfs works with size in blocks, so for 2GB it would be 4190208 ( 2 * 1024 * 1024 * 1024 / 512 ) because default block size is 512B.</p>
<pre class="brush: plain;">
growfs -s 4190208  /dev/da1s1a
newfs -U /dev/da1s1b
mount /dev/da1s1a /mnt/a
mount /dev/da1s1b /mnt/b
df -h
/dev/da1s1a   1.9G 488M  452378    52%    /mnt/a
/dev/da1s1b   5.8G      4K 6674404     0%    /mnt/b
</pre>
<p>I don&#8217;t know any way to resize /dev/da1s1b down, so we just run newfs against it.</p>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/334/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Изменение размера партиции в FreeBSD через growfs</title>
		<link>http://mysyslog.ru/posts/326</link>
		<comments>http://mysyslog.ru/posts/326#comments</comments>
		<pubDate>Fri, 02 Apr 2010 14:13:21 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[freebsd]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=326</guid>
		<description><![CDATA[Иногда при установке системы не удается предугадать, какие разделы будут расти больше, а какие меньше и в один прекрасный день nagios начинает орать о нехватке места. Вообще задача встречается все реже, так как диски все больше да и все все чаще создается они большой /. Но вот так случилось, что я с ней столкнулся.Причем мой [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда при установке системы не удается предугадать, какие разделы будут расти больше, а какие меньше и в один прекрасный день nagios начинает орать о нехватке места. Вообще задача встречается все реже, так как диски все больше да и все все чаще создается они большой /. Но вот так случилось, что я с ней столкнулся.<span id="more-326"></span>Причем мой предшественник сделал хитро. Он создал раздел, который никак не использовался, от которого можно было отрезать по кусочку для других разделов.<br />
Вот что у нас было на начальный момент:</p>
<pre class="brush: plain;">
df -h
/dev/da1s1a    989M    488M    442M    52%    /mnt/a
/dev/da1s1b    6.8G    4.0K    6.4G     0%    /mnt/b
</pre>
<p>Я хочу расширить /dev/da1s1a до 2GB. Итак, что нам нужно: bsdlabel, newfs, growfs.<br />
Первым делом нужно отмонтировать разделы.</p>
<pre class="brush: plain;">
umount /mnt/a
umount /mnt/b
</pre>
<p>После чего нужно изменить лейбл на слайсе /dev/da1s1</p>
<pre class="brush: plain;">
bsdlabel -e /dev/da1s1

# /dev/da1s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2097152       16    4.2BSD     2048 16384 28528
  b: 14674629  2097168    4.2BSD     2048 16384 28448
  c: 16771797        0    unused        0     0         # &quot;raw&quot; part, don't edit
</pre>
<p>Меняем это все следующим образом и сохраняем </p>
<pre class="brush: plain;">
# /dev/da1s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2048M       16    4.2BSD     2048 16384 28528
  b: *  *   4.2BSD     2048 16384 28448
  c: 16771797        0    unused        0     0         # &quot;raw&quot; part, don't edit
</pre>
<p>Далее запускаем growfs, для указания нужного размера есть ключ -s, но размер в нем указывается в блоках, а не в байтах. Потому для размера раздела в 2ГБ нужно указать 4190208 ( 2 * 1024 * 1024 * 1024 / 512 )</p>
<pre class="brush: plain;">
growfs -s 4190208  /dev/da1s1a
newfs -U /dev/da1s1b
mount /dev/da1s1a /mnt/a
mount /dev/da1s1b /mnt/b
df -h
/dev/da1s1a   1.9G 499818  452378    52%    /mnt/a
/dev/da1s1b   5.8G      4 6674404     0%    /mnt/b
</pre>
<p>Уменьшить размер раздела нельзя, так что приходится создавать файловую системы заново на /dev/da1s1b. </p>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/326/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mtree на страже вашей FreeBSD</title>
		<link>http://mysyslog.ru/posts/313</link>
		<comments>http://mysyslog.ru/posts/313#comments</comments>
		<pubDate>Wed, 31 Mar 2010 14:46:38 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=313</guid>
		<description><![CDATA[К сожалению в любом программном обеспечение есть уязвимости и дыры, который могут использовать хакеры в свои целях. С момента выхода обновления или security патча до момента исправления в вашей ОС может пройти какое-то время, т.е. это потенциальная возможность получить управление ваши серверов для злоумышленника, который может оставить закладки для будущего использования даже после того, как [...]]]></description>
			<content:encoded><![CDATA[<p>К сожалению в любом программном обеспечение есть уязвимости и дыры, который могут использовать хакеры в свои целях. С момента выхода обновления или security патча до момента исправления в вашей ОС может пройти какое-то время, т.е. это потенциальная возможность получить управление ваши серверов для злоумышленника, который может оставить закладки для будущего использования даже после того, как вы все исправите. Например он может заменить файл su или sudo, даже ps вместе ls могут стать смертельно опасными! Для защиты нужно отслеживать состояние системных файлов (владельцы, права, размер, хеши и т.п.)!<br />
Tripwire &#8211; достаточно сложный и тяжелый продукт, конечно можно поставить из портов, но в FreeBSD уже есть утилита, которая прекрасно справится с поставленной задачей.<span id="more-313"></span></p>
<p>mtree создает список файлов и их свойств в заданном каталоге. Полученный список может использоваться в дальнейшем для сравнения при помощи mtree текущего состояния файлов с моментом, когда создавался список. Если при сравнении будут найдены несоответствия mtree выведет на консоль информацию о них.</p>
<p>Нужно понимать, что файл со списком должен быть надежно защищен. Если злоумышленник найдет этот файл, то он сможет его изменить и он станет совершенно бесполезен. Для защиты лучше всего файл зашифровать и перенести с сервера на другую машину или еще лучше флешку.</p>
<p>Перейдем непосредственно к созданию списка:</p>
<pre class="brush: plain;">
cd /sbin
mtree -c -K uid,gid,mode,flags,size,cksum,md5digest,sha1digest,ripemd160digest &gt; /root/sbin-mtree
</pre>
<p>Теперь файл /root/sbin-mtree можно использовать для проверки.</p>
<pre class="brush: plain;">
cd /sbin
touch test
mtree &lt; /root/sbin-mtree
. changed
        modification time expected Wed Feb 17 14:19:16 2010 found Wed Mar 31 17:11:12 2010
test extra
</pre>
<p>Как видите, все достаточно просто. Поговорим немного об автоматизации и процессе использования mtree. Написать скрипт проверки не составляет проблемы, выглядеть он будет примерно так:</p>
<pre class="brush: bash;">
#!/bin/sh
MTREE_FILES_DIR='/mnt/security'
DIR_LIST='bin sbin etc root usr-bin usr-sbin usr-local-sbin usr-local-bin usr-local-etc boot'

for dir in $DIR_LIST; do
 realdir=&quot;/`/bin/echo $dir|/usr/bin/sed 's/-/\//g'`&quot;
 cd $realdir
 mtree_result=`/usr/sbin/mtree 2&gt;/dev/null &lt; $MTREE_FILES_DIR/${dir}-mtree
 if [ &quot;x$?&quot; != &quot;x0&quot; ]; then
   echo $mtree_result | mail admin@mail.domain
 fi
done
</pre>
<p>Здесь есть важный момент /mnt/security должен монтироваться в read-only по NFS например, так чтобы злоумышленник не мог поменять содержимое файлов.</p>
<p>Для FreeBSD я составил такой список каталогов, конечно же на рабоче системе будут и другие каталоги:<br />
/bin<br />
/sbin<br />
/etc<br />
/root<br />
/usr/bin<br />
/usr/sbin<br />
/usr/local/sbin<br />
/usr/local/bin<br />
/usr/local/etc<br />
/boot</p>
<p>Естественно безопасность добавляет проблем при работе, в данном случае придется при каждом обновлении системы или софта обновлять списки mtree. Но кто сказал, что будет легко?</p>
<p>П.С.<br />
Для написания заметки использовалась глава <strong>&#8220;Use mtree as a Built-in Tripwire&#8221;</strong> из книги <strong>&#8220;BSD hacks&#8221;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/313/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как посмотреть окружение запущенного процесса?</title>
		<link>http://mysyslog.ru/posts/277</link>
		<comments>http://mysyslog.ru/posts/277#comments</comments>
		<pubDate>Mon, 23 Nov 2009 12:52:28 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[env]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=277</guid>
		<description><![CDATA[Иногда нужно подсмотреть окружение запущенного процесса, для этого есть несколько способов и утилит.
Linux:
cat /proc/PID/environ
Solaris:
pargs -e PID
FreeBSD:
mount -t procfs none /proc
ps ewwwp PID
Общий подход для всех UNIX систем:
gcore PID
получим core файл
string core.PID
]]></description>
			<content:encoded><![CDATA[<p>Иногда нужно подсмотреть окружение запущенного процесса, для этого есть несколько способов и утилит.<br />
<strong>Linux:</strong><br />
cat /proc/PID/environ</p>
<p><strong>Solaris:</strong><br />
pargs -e PID</p>
<p><strong>FreeBSD:</strong><br />
mount -t procfs none /proc<br />
ps ewwwp PID</p>
<p><strong>Общий подход для всех UNIX систем:</strong><br />
gcore PID<br />
получим core файл<br />
string core.PID</p>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/277/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
