<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-789720048709096873</id><updated>2011-08-01T18:40:02.106-07:00</updated><category term='администрирование консоль'/><title type='text'>Линукс для людей</title><subtitle type='html'>Делаем линукс доступным... &lt;br&gt;
&lt;br&gt;
Этот блог просто моя записная книжка...&lt;br&gt;
&lt;br&gt;
сам проект вы найдете по адресу      
 ---&amp;gt;  &lt;a href="http://ualinux.com"&gt;http://ualinux.com&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-4777966409808674379</id><published>2010-03-22T04:39:00.001-07:00</published><updated>2010-03-22T04:39:33.707-07:00</updated><title type='text'></title><content type='html'>Иногда возникает необходимость автоматического входа в систему под определенным пользователем. Решение данной проблемы не сложно, но требует внимательности осторожности, поскольку неправильное редактирование реестра может привести к краху системы.  К тому же возникает серьезный вопрос безопасности, так как  любой человек имеющий физический доступ к компьютеру может воспользоваться им. Будте рассудительны и осторожны.&lt;br /&gt;&lt;br /&gt;Итак, для решения данной задачи необходимо выполнить следующее:&lt;br /&gt;&lt;br /&gt;   1. Запускаем редактор реестра. Пуск -&gt; Выполнить, набрать строку «regedit» и нажать клавишу ОК). Откроется окно реестра.&lt;br /&gt;   2. Двигаемя по ветке реестра HKEY_LOCAL_MACHINE -&gt; SOFTWARE -&gt; Microsoft -&gt; WindowsNT -&gt; CurrentVersion -&gt; Winlogon&lt;br /&gt;   3. Изменяем параметр DefaultUserName, где необходимо указать имя пользователя.&lt;br /&gt;   4. Ищем параметр DefaultPassword, если его нет, то создаем его (тип строковый параметр). В значении указываем пароль пользователя.&lt;br /&gt;   5. Далее находим AutoAdminLogon, если тоже не окажется, то придется его создать. Устанавливаем значение 1.&lt;br /&gt;   6. Закрываем редактор реестра и перегружаемся .&lt;br /&gt;&lt;br /&gt;После перезапуска вход в систему выполняется автоматически.&lt;br /&gt;&lt;br /&gt;Для того чтобы обойти автоматический вход в систему необходимо при завершении сеанса или при перезагрузке удерживать клавишу SHIFT. Данная операция приведет только к изменению первого вода в систему.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-4777966409808674379?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/4777966409808674379/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2010/03/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4777966409808674379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4777966409808674379'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2010/03/blog-post.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-7411911532815739898</id><published>2010-02-24T03:31:00.001-08:00</published><updated>2010-02-24T03:31:58.259-08:00</updated><title type='text'></title><content type='html'>http://IHero2012.com/1331362529-20100224.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-7411911532815739898?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/7411911532815739898/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2010/02/httpihero2012.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/7411911532815739898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/7411911532815739898'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2010/02/httpihero2012.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-3752981993899417189</id><published>2009-07-16T07:49:00.000-07:00</published><updated>2009-07-16T07:51:12.464-07:00</updated><title type='text'></title><content type='html'>http://pomka.blogspot.com/2008/01/vpn-pptp-centos-5.html&lt;br /&gt;http://pomka.blogspot.com/2008/02/microsoft.html&lt;br /&gt;http://pomka.blogspot.com/2008/07/pptp.html&lt;br /&gt;http://www.opennet.ru/opennews/art.shtml?num=22618&lt;br /&gt;http://www.opennet.ru/opennews/art.shtml?num=22623&lt;br /&gt;http://www.opennet.ru/opennews/art.shtml?num=22619&lt;br /&gt;http://www.opennet.ru/opennews/art.shtml?num=22616&lt;br /&gt;http://habrahabr.ru/blogs/linux/64640/&lt;br /&gt;http://symmetrica.net/cuneiform-linux/yagf-ru.html#download&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-3752981993899417189?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/3752981993899417189/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/07/httppomka.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3752981993899417189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3752981993899417189'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/07/httppomka.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-8924994971390223533</id><published>2009-07-09T08:13:00.001-07:00</published><updated>2009-07-09T08:13:52.727-07:00</updated><title type='text'></title><content type='html'>http://blog.sozinov.eu/2007/06/1-heartbeat.html&lt;br /&gt;http://blog.sozinov.eu/2007/08/samba-windows-ad-domain-controller.html&lt;br /&gt;http://blog.sozinov.eu/2008/03/linux-windows-ad-domain-controller.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-8924994971390223533?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/8924994971390223533/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/07/httpblog.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/8924994971390223533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/8924994971390223533'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/07/httpblog.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1783858535164306396</id><published>2009-05-14T11:23:00.000-07:00</published><updated>2009-06-02T03:27:41.291-07:00</updated><title type='text'></title><content type='html'>http://www.opennet.ru/docs/RUS/squid_filter/squidguard_3.html&lt;br /&gt;http://sams.perm.ru/index.php?option=com_easygallery&amp;act=photos&amp;cid=3&amp;Itemid=30&lt;br /&gt;http://avreg.net/&lt;br /&gt;http://123.123.123.7/phpsysinfo/index.php?disp=dynamic&lt;br /&gt;http://123.123.123.7/cgi-bin/cachemgr.cgi&lt;br /&gt;http://urlblacklist.com/?sec=download&lt;br /&gt;http://www.squidguard.org/Doc/configure.html&lt;br /&gt;http://www.squidguard.org/Doc/verify.html&lt;br /&gt;http://www.samag.ru/art/11.2007/11.2007_02.html&lt;br /&gt;http://hire7.net/soft/ofice/9160-fineprint-609.html&lt;br /&gt;http://hire7.net/soft/ofice/9161-ventafax-voice-private-6267177-russkaya-versiya.html&lt;br /&gt;http://www.earth.li/projectpurple/progs/onak.html&lt;br /&gt;http://rus-linux.net/lib.php?name=/MyLDP/mm/One_Month_In_Linux_Audio.html&lt;br /&gt;http://www.getdeb.net/release/4284&lt;br /&gt;http://www.opennet.ru/base/net/postfix_mysql_courier.txt.html&lt;br /&gt;http://linux.cpms.ru/page.php?al=alias3399&amp;pg=7&lt;br /&gt;http://www.opennet.ru/base/net/sendmail_sa.txt.html&lt;br /&gt;http://habrahabr.ru/blogs/linux/60095/&lt;br /&gt;http://www.sqweek.com/sqweek/index.php?p=1&lt;br /&gt;http://lsupport.net/resources/files-library&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://desktoplinux.ru/&lt;br /&gt;http://it-talk.ru/?p=245&lt;br /&gt;http://habrahabr.ru/blogs/linux/60924/&lt;br /&gt;http://welinux.ru/post/855&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1783858535164306396?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1783858535164306396/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/05/httpwww_14.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1783858535164306396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1783858535164306396'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/05/httpwww_14.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1915292411761403676</id><published>2009-05-05T09:23:00.001-07:00</published><updated>2009-05-05T09:23:34.312-07:00</updated><title type='text'></title><content type='html'>http://www.linuxcenter.ru/news/2009/05/05/9659/&lt;br /&gt;http://www.opennet.ru/opennews/art.shtml?num=21605&lt;br /&gt;http://www.getdeb.net/app/DiscWrapper&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1915292411761403676?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1915292411761403676/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/05/httpwww.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1915292411761403676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1915292411761403676'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/05/httpwww.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1383041793825761972</id><published>2009-04-27T09:38:00.000-07:00</published><updated>2009-05-01T01:14:56.985-07:00</updated><title type='text'></title><content type='html'>http://ualinux.com/desktop/&lt;br /&gt;http://www.ulteo.com/home/en/home&lt;br /&gt;http://nethuman.blogspot.com/2009/04/exim4-postmastera-ubuntu-810.html&lt;br /&gt;http://sk1project.org/modules.php?name=Products&amp;product=uniconvertor&lt;br /&gt;http://habrahabr.ru/blogs/linux/58218/&lt;br /&gt;http://www.opennet.ru/opennews/art.shtml?num=21462&lt;br /&gt;http://www.funnestra.org/ubuntu/intrepid/&lt;br /&gt;https://launchpad.net/ubuntu/+source/qucs&lt;br /&gt;http://it-open.ru/srv&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1383041793825761972?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1383041793825761972/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/httpualinux.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1383041793825761972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1383041793825761972'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/httpualinux.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-8475120762439927809</id><published>2009-04-22T03:20:00.001-07:00</published><updated>2009-04-22T03:20:51.390-07:00</updated><title type='text'>...</title><content type='html'>http://contact.meta.ua/users/evgeniya-ryabchenko-1152778/ 66-086-5654&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-8475120762439927809?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/8475120762439927809/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post_8578.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/8475120762439927809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/8475120762439927809'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post_8578.html' title='...'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-6213084211704634763</id><published>2009-04-22T03:15:00.001-07:00</published><updated>2009-04-22T03:15:23.610-07:00</updated><title type='text'>Делаем свой дистрибутив</title><content type='html'>C помощью Remastersys можно сделать две вещи:&lt;br /&gt;&lt;br /&gt;   1. Полный бекап своей системы, включая персональные данные,и создать его в виде LiveCD или DVD для последующей инсталляции.&lt;br /&gt;   2. Сделать свой дистрибутив на основе Ubuntu для себя или поделиться им с кем-нибудь.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Установка Remastersys в Ubuntu&lt;br /&gt;&lt;br /&gt;Добавляем репозиторий в /etc/apt/sources.list&lt;br /&gt;&lt;br /&gt;    sudo gedit /etc/apt/sources.list&lt;br /&gt;&lt;br /&gt;и вносим следующую строчку:&lt;br /&gt;&lt;br /&gt;    # Remastersys&lt;br /&gt;    deb http://www.remastersys.klikit-linux.com/repository remastersys/&lt;br /&gt;&lt;br /&gt;Сохраняем файл.&lt;br /&gt;&lt;br /&gt;Обновляем source list&lt;br /&gt;&lt;br /&gt;    sudo apt-get update&lt;br /&gt;&lt;br /&gt;Устанавливаем&lt;br /&gt;&lt;br /&gt;    sudo apt-get install remastersys&lt;br /&gt;&lt;br /&gt;Дожидаемся полной инсталляции.&lt;br /&gt;&lt;br /&gt;Запуск Remastersys&lt;br /&gt;&lt;br /&gt;    sudo remastersys&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Remastersys команды&lt;br /&gt;sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso]&lt;br /&gt;&lt;br /&gt;Remastersys примеры&lt;br /&gt;&lt;br /&gt;1) создаем livecd/dvd бекап нашей системы&lt;br /&gt;sudo remastersys backup&lt;br /&gt;&lt;br /&gt;2) создаем livecd/dvd бекап и образ диска custom.iso&lt;br /&gt;sudo remastersys backup custom.iso&lt;br /&gt;&lt;br /&gt;3) чистим временные файлы remastersys&lt;br /&gt;sudo remastersys clean&lt;br /&gt;&lt;br /&gt;4) создаем дистрибутив livecd/dvd из нашей системы&lt;br /&gt;sudo remastersys dist&lt;br /&gt;&lt;br /&gt;5) создаем дистрибутив livecd/dvd только из файловой системы&lt;br /&gt;sudo remastersys dist cdfs&lt;br /&gt;&lt;br /&gt;6) создаем дистрибутив с именем custom.iso, если cdfs уже сделали&lt;br /&gt;sudo remastersys dist iso custom.iso&lt;br /&gt;&lt;br /&gt;Создание ISO образа&lt;br /&gt;sudo remastersys dist&lt;br /&gt;&lt;br /&gt;Эта команда создаст образ iso с называнием customdist.iso в каталоге / home / remastersys .&lt;br /&gt;Опция dist позволяет не включить в образ ваши личные папки (например, / home / user).&lt;br /&gt;Возможно в ходе процесса вам придется вставить установочный диск Ubuntu.&lt;br /&gt;&lt;br /&gt;процесс создания образа идет примерно так:&lt;br /&gt;&lt;br /&gt;[…]&lt;br /&gt;92.16% done, estimate finish Wed DEC 28 15:31:25 2007&lt;br /&gt;93.39% done, estimate finish Wed DEC 28 15:31:25 2007&lt;br /&gt;94.62% done, estimate finish Wed DEC 28 15:31:24 2007&lt;br /&gt;95.85% done, estimate finish Wed DEC 28 15:31:24 2007&lt;br /&gt;97.08% done, estimate finish Wed DEC 28 15:31:25 2007&lt;br /&gt;98.31% done, estimate finish Wed DEC 28 15:31:25 2007&lt;br /&gt;99.54% done, estimate finish Wed DEC 28 15:31:25 2007&lt;br /&gt;Total translation table size: 2048&lt;br /&gt;Total rockridge attributes bytes: 3950&lt;br /&gt;Total directory bytes: 9094&lt;br /&gt;Path table size(bytes): 54&lt;br /&gt;Max brk space used 0&lt;br /&gt;406890 extents written (794 MB)&lt;br /&gt;&lt;br /&gt;В каталоге /home/remastersys/ создастся образ customdist.iso, который можно буде записать на болванку.&lt;br /&gt;Если размер образа более 700Мб, то его можно записать на DVD болванку&lt;br /&gt;&lt;br /&gt;Чистим&lt;br /&gt;&lt;br /&gt;После того как образ протестирован, записан и он больше не нужен выполняем&lt;br /&gt;&lt;br /&gt;    sudo remastersys clean&lt;br /&gt;&lt;br /&gt;удалятся все временные файлы и образ диска в директории /home/remastersys.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-6213084211704634763?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/6213084211704634763/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post_3296.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6213084211704634763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6213084211704634763'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post_3296.html' title='Делаем свой дистрибутив'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-8495333561727334429</id><published>2009-04-22T03:09:00.000-07:00</published><updated>2009-04-22T03:10:27.618-07:00</updated><title type='text'>Доменное имя на динамический IP адрес</title><content type='html'>Регестрируемся на сайте типа dyndns&lt;br /&gt;Ставим демона обновления&lt;br /&gt;&lt;br /&gt;apt-get install ddclient&lt;br /&gt;&lt;br /&gt;Вам нужно будет ввести логин и пароль для сайта dyndns, имя хоста, с которым нужно связывать ip и имя сетевого интерфейса, на котором этот ip назначен. Это будет имя той сетевой карточки, через которую проходит интернет,например eth0 или ppp0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-8495333561727334429?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/8495333561727334429/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/ip.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/8495333561727334429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/8495333561727334429'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/ip.html' title='Доменное имя на динамический IP адрес'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-6689490033080884932</id><published>2009-04-22T03:02:00.000-07:00</published><updated>2009-04-22T03:03:15.206-07:00</updated><title type='text'>Советы по Linux</title><content type='html'>1. Как быстро получить информацию о системе?&lt;br /&gt;&lt;br /&gt;Быстро получить информацию о системе можно используя команду procinfo. Если этого недостаточно - смотрите файловую систему /proc.&lt;br /&gt;Например: /proc/interrupts, /proc/cpuinfo...&lt;br /&gt;&lt;br /&gt;2. Еще один способ получить полезную информацию о системе&lt;br /&gt;&lt;br /&gt;Еще один способ получить полезную информацию о системе - команда vmstat. Она выводит информацию использовании памяти, процессора, областях swap и т.п.&lt;br /&gt;Команда free выдает информацию о памяти и swap.&lt;br /&gt;&lt;br /&gt;3. Как получить информацию о ваших загруженных модулях ядра&lt;br /&gt;&lt;br /&gt;lsmod - хороший способ получить информацию о ваших загруженных модулях ядра.&lt;br /&gt;&lt;br /&gt;4. Нужно посмотреть параметры и возможные опции для модуля ядра Linux?&lt;br /&gt;&lt;br /&gt;Воспользуйтесь командой modinfo. Например, Информация о авторе:&lt;br /&gt;modinfo -a модуль&lt;br /&gt;Список возможных параметров: modinfo -p модуль&lt;br /&gt;&lt;br /&gt;5. Полезная информация о ядре&lt;br /&gt;&lt;br /&gt;Левый или правый CTRL, ALT, или SHIFT + scrollock покажут вам полезную информацию о ядре.&lt;br /&gt;&lt;br /&gt;6. Как долго ваша система была запущена?&lt;br /&gt;&lt;br /&gt;Чтобы увидеть, как долго ваша система была запущена, наберите uptime.&lt;br /&gt;&lt;br /&gt;7. Как посмотреть какие порты открыты?&lt;br /&gt;&lt;br /&gt;netstat -a позволит вам увидеть все tcp и udp порты, которые открыты на вашей системе.&lt;br /&gt;&lt;br /&gt;8. Нужно узнать какой сокет заняла программа?&lt;br /&gt;&lt;br /&gt;lsof -i -U&lt;br /&gt;fuser port_num/tcp&lt;br /&gt;а также:&lt;br /&gt;netstat -pvlA inet&lt;br /&gt;&lt;br /&gt;9.Как посмотреть информацию о запущенных процессах?&lt;br /&gt;&lt;br /&gt;Обычно используется "ps -aux", и потом "kill &lt;номер процесса&gt;". Так же есть специальные программы - такие, как top, gtop и ktop.&lt;br /&gt;&lt;br /&gt;10. Как посмотреть свободное место на диске?&lt;br /&gt;&lt;br /&gt;Чтобы посмотреть свободное место на диске, используйте команду df. Так же в KDE есть программа kdf (KDiskFree).&lt;br /&gt;&lt;br /&gt;11. Как узнать размер всех директорий в данном каталоге?&lt;br /&gt;&lt;br /&gt;Чтобы узнать размер всех директорий в данном каталоге, выполните команду:&lt;br /&gt;&lt;br /&gt;find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn&lt;br /&gt;&lt;br /&gt;12. Как разбить один большой файл на несколько маленьких?&lt;br /&gt;&lt;br /&gt;Чтобы разбить один большой файл на несколько маленьких используйте команду:&lt;br /&gt;&lt;br /&gt;split --bytes=SIZE filename&lt;br /&gt;&lt;br /&gt;13. Как добавить конфигурации по умолчанию для программ?&lt;br /&gt;&lt;br /&gt;Если вы хотите добавить конфигурации по умолчанию для своих программ (которые размещаются в каждой домашней директории), копируйте эти конфигурационные файлы в /etc/skel. Каждый раз, когда вы добавляете нового пользователя, эти файлы будут скопированы в домашние директории пользователей.&lt;br /&gt;&lt;br /&gt;14. Как убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL?&lt;br /&gt;&lt;br /&gt;Убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL можно закомментировав строку&lt;br /&gt;&lt;br /&gt;ca::ctrlaltdel:/sbin/shutdown -t5 -rf now&lt;br /&gt;&lt;br /&gt;в файле /etc/inittab.&lt;br /&gt;&lt;br /&gt;15. Быстрый метод завершения перезапускаемого(respawning) процесса?&lt;br /&gt;&lt;br /&gt;Очень быстрый метод завершения перезапускаемого(respawning) процесса в вашем /etc/inittab - это переключение уровней исполнения. Например, если вы имеете строку:&lt;br /&gt;&lt;br /&gt;1:1235:respawn:/usr/sbin/mgetty /dev/ttyS1&lt;br /&gt;&lt;br /&gt;переключение на уровень 4 остановит перезапускаемый процесс.&lt;br /&gt;&lt;br /&gt;16. Как ограничить потребление ресурсов системы пользователями?&lt;br /&gt;&lt;br /&gt;Если вы запустили большую систему с большим количеством пользователей, может быть очень важно ограничить потребление ресурсов системы пользователями. Вы можете контролировать эти ограничения с помощью модуля PAM и файла /etc/pam.d/limits.conf. Большинство современных дистрибутивов используют PAM для аутентификации. Пример ограничений для группы users sample of limits for the users group.&lt;br /&gt;&lt;br /&gt;@users hard core 0&lt;br /&gt;&lt;br /&gt;@users hard nproc 50&lt;br /&gt;&lt;br /&gt;@users hard rss 5000&lt;br /&gt;&lt;br /&gt;Это не позволяет создавать файлы core, ограничивает пользователя до 50 процессов и по использованию памяти до 5МБ&lt;br /&gt;&lt;br /&gt;17. Как сделать дамп N-консоли?&lt;br /&gt;&lt;br /&gt;Команда cat /dev/vcsN сбрасывает дамп N-консоли.&lt;br /&gt;&lt;br /&gt;18. Как запретить вход всех пользователей в систему?&lt;br /&gt;&lt;br /&gt;Чтобы запретить вход всех пользователей в систему (кроме root) без перезагрузки создайте файл /etc/nologin. Содержимое этого файла будет отображаться когда пользователь попытается войти в систему.&lt;br /&gt;&lt;br /&gt;19. Ограничение на выполнение команды su&lt;br /&gt;&lt;br /&gt;Чтобы разрешить определенным пользователям делать su, что лучше чем всем по умолчанию, редактируйте /etc/login.defs и установите строку SU_WHEEL_ONLY в yes. Затем вам нужно добавить пользователей, которым нужно делать su в группу 0, что делается редактированием файла /etc/groups.&lt;br /&gt;&lt;br /&gt;20. Как примонтировать директорию из одной части файловой системы в другую?&lt;br /&gt;&lt;br /&gt;В linux 2.4.x ядрах:&lt;br /&gt;&lt;br /&gt;mount --bind какую_директорию_монтировать куда_монтировать&lt;br /&gt;&lt;br /&gt;21. Как установить точное время?&lt;br /&gt;&lt;br /&gt;Отличный способ установить на машине точное время - использовать каманду ntpdate:&lt;br /&gt;&lt;br /&gt;ntpdate&lt;br /&gt;&lt;br /&gt;Конечно, нужно иметь установленный пакет ntp и возможность соединения с сервером NTP. Вместо лучше использовать ip-адрес, чтобы избежать преобразования доменного имени в ip-адрес.&lt;br /&gt;&lt;br /&gt;22. Как установить время CMOS?&lt;br /&gt;&lt;br /&gt;Чтобы установить время CMOS системному используйте hwclock --systohc, а hwclock --hctosys - установит системное время, как время CMOS clock.&lt;br /&gt;&lt;br /&gt;23. Как быстро скомпилировать ядро&lt;br /&gt;&lt;br /&gt;Самый простой способ скомпилировать ядро это выполнить все команды make на одной строке набрав:&lt;br /&gt;&lt;br /&gt;make dep clean bzImage modules modules_install&lt;br /&gt;&lt;br /&gt;Если вы просто пропатчили свое ядро тогда просто сделайте:&lt;br /&gt;&lt;br /&gt;make oldconfig dep clean bzImage modules modules_install.&lt;br /&gt;&lt;br /&gt;24. System.map&lt;br /&gt;&lt;br /&gt;Вешь, о которой иногда забывают упомянуть, когда вы обновляете свое ядро - это файл System.map (обычно располагающийся в каталоге /boot), который не соответствует новому ядру. После перезагрузки вы увидите сообщения о некорректной версии ядра. После построения нового ядра не забудьте скопировать новый файл System.map из каталога /usr/src/linux в загрузочный каталог вашей системы (/boot).&lt;br /&gt;&lt;br /&gt;25. Как увидеть сообщения выдаваемы ядром?&lt;br /&gt;&lt;br /&gt;Увидеть сообщения, выдаваемые ядром на экран при загрузке системы можно набрав команду dmesg.&lt;br /&gt;&lt;br /&gt;26. Как посмотреть вывод команды и одновременно записать его в файл?&lt;br /&gt;&lt;br /&gt;Посмотреть вывод команды и одновременно записать его в файл можно с помощью команды:&lt;br /&gt;&lt;br /&gt;tee $ls | tee logfile.txt&lt;br /&gt;&lt;br /&gt;27. Как запретить хранитель экрана в текстовом режиме?&lt;br /&gt;&lt;br /&gt;Запретить хранитель экрана в текстовом режиме - напечатайте setterm -blank 0.&lt;br /&gt;&lt;br /&gt;28.Средство для более быстрого поиска файлов, чем find&lt;br /&gt;&lt;br /&gt;Средство для более быстрого поиска файлов, чем find - команда locate, которая использует базу данных для поиска. Для обновления этой базы часто используется cron. Или вручную - updatedb.&lt;br /&gt;&lt;br /&gt;29. Список всех исполняемых файлов в системе, которые присутствуют в вашем $PATH?&lt;br /&gt;&lt;br /&gt;Нажмите TAB + scroll-lock или еще проще - два нажатия на клавишу TAB. Результат один и тот же.&lt;br /&gt;&lt;br /&gt;30. Как отключить сигнал "beep" в течение автоматического завершения командной строки?&lt;br /&gt;&lt;br /&gt;Добавьте либо в ~/.inputrc или в /etc/inputrc для визуального звонка:&lt;br /&gt;&lt;br /&gt;set bell-style visible&lt;br /&gt;&lt;br /&gt;совершенно без сигнала:&lt;br /&gt;&lt;br /&gt;set bell-style none&lt;br /&gt;&lt;br /&gt;31. Как послать данные на желаемый терминал?&lt;br /&gt;&lt;br /&gt;Вы можете использовать все доступные терминалы, даже если они в применении, чтобы послать данные на тот терминал, на который хотите. Например:&lt;br /&gt;&lt;br /&gt;tail -f /var/log/messages &gt; /dev/tty12&lt;br /&gt;&lt;br /&gt;Для посылки любых сообщений на tty12.&lt;br /&gt;&lt;br /&gt;32. Циклическое переключение через все доступные консоли.&lt;br /&gt;&lt;br /&gt;Многие клавиатурные раскладки позволяют циклическое переключение через все доступные консоли используя Alt-RightArrow и Alt-LeftArrow.&lt;br /&gt;&lt;br /&gt;33. Как выполнить родную команду системы, если используются алиасы?&lt;br /&gt;&lt;br /&gt;Часто используете альясы shell (например, прописанные в ~/.bashrc), но иногда необходимо выполнить родную команду системы? Добавьте обратный слэш перед командой, это игнорирует псевдоним shell.&lt;br /&gt;&lt;br /&gt;34. Как найти все файлы в каталоге, которые содержат строку?&lt;br /&gt;&lt;br /&gt;Найти все файлы в каталоге, которые содержат строку:&lt;br /&gt;&lt;br /&gt;find . -type f -print | xargs grep -li "search string"&lt;br /&gt;&lt;br /&gt;35. Как сделать чтобы программа ожидала нажатия какой-либо клавиши пользователем?&lt;br /&gt;&lt;br /&gt;При написании скриптов shell часто возникает необходимость того, чтобы в процессе выполнения программа ожидала нажатия какой-либо клавиши пользователем. Это можно сделать таким способом:&lt;br /&gt;&lt;br /&gt;stty raw; dd if=$(tty) of=/dev/null bs=1 count=1; stty -raw&lt;br /&gt;&lt;br /&gt;36.Как перенаправить стандартный вывод и поток ошибок в один и тот же файл?&lt;br /&gt;&lt;br /&gt;Чтобы перенаправить стандартный вывод и поток ошибок в один и тот же файл, используйте `&amp;&gt;'.&lt;br /&gt;&lt;br /&gt;37. Как сохрать man-страницы в текстовый файл?&lt;br /&gt;&lt;br /&gt;Самый простой способ сохранения man-страницы в текстовый файл - " man name | col -b &gt; name.txt".&lt;br /&gt;&lt;br /&gt;38. Все символы в консоли стали нечитаемыми&lt;br /&gt;&lt;br /&gt;Если все символы в консоли стали нечитаемыми, наберите:&lt;br /&gt;&lt;br /&gt;"echo -ne "\017","stty sane" или просто "reset".&lt;br /&gt;&lt;br /&gt;39. Как перевести имена файлов в директории в нижний регистр?&lt;br /&gt;&lt;br /&gt;Самый простой способ перевода всех имен файлов из директории в нижний регистр:&lt;br /&gt;&lt;br /&gt;"for x in *; do mv $x `echo $x | tr [A-Z] [a-z]`; done".&lt;br /&gt;&lt;br /&gt;40. Как быстро переименовать файл?&lt;br /&gt;&lt;br /&gt;Чтобы быстро переименовать файл, используйте команду:&lt;br /&gt;&lt;br /&gt;"mv /usr/local/bin/{старое_имя,новое_имя}".&lt;br /&gt;&lt;br /&gt;41. Как удалить всю директорию без лишних запросов?&lt;br /&gt;&lt;br /&gt;Чтобы удалить сразу всю директорию без лишних запросов, используйте:&lt;br /&gt;&lt;br /&gt;rm -rf имя_директории&lt;br /&gt;&lt;br /&gt;42. Как создать сразу несколько директорий?&lt;br /&gt;&lt;br /&gt;Создание сразу нескольких директорий - "mkdir -p dir1/dir2/dir3".&lt;br /&gt;&lt;br /&gt;43. Как правильно выключить компьютер?&lt;br /&gt;&lt;br /&gt;Правильное выключение компьютера - команда "shutdown -h now".&lt;br /&gt;&lt;br /&gt;Перезагрузка - "shutdown -r now" или просто "init 5".&lt;br /&gt;&lt;br /&gt;44. Как передать весь вывод одной команды на вход другой команде?&lt;br /&gt;&lt;br /&gt;Чтобы передать весь вывод одной команды на вход другой команде, используется символ "|".&lt;br /&gt;&lt;br /&gt;Таким образом можно делать сложные конструкции (например, "ls | sort -r | less").&lt;br /&gt;&lt;br /&gt;45. Как следить за постоянно изменяющимися файлами?&lt;br /&gt;&lt;br /&gt;Чтобы следить за постоянно изменяющимися файлами (например, за системными логами), используйте команду tail.&lt;br /&gt;&lt;br /&gt;Пример: "tail -15 /var/log/syslog" - постоянно показывает последние 15 строк.&lt;br /&gt;&lt;br /&gt;46. Как следить за списком файлов в реальном времени?&lt;br /&gt;&lt;br /&gt;Слежение за списком файлов в реальном времени - "watch -n 0 ls -l".&lt;br /&gt;&lt;br /&gt;Команда watch осуществляет периодический запуск других команд.&lt;br /&gt;&lt;br /&gt;47. Как искать текст в файлах?&lt;br /&gt;&lt;br /&gt;Для поиска текста в файлах используется команда - "grep "ваш текст" /where/to/search".&lt;br /&gt;&lt;br /&gt;Если при поиске не нужно учитывать регистр - "grep -i "ваш текст" /where/to/search"&lt;br /&gt;&lt;br /&gt;48. Как заменить одно слово на другое во многих файлах?&lt;br /&gt;&lt;br /&gt;Для замены одного слова на другое сразу же во многих файлах можно использовать этот скрипт&lt;br /&gt;&lt;br /&gt;perl -pi -e 's/oneword/anotherword/g' *.&lt;br /&gt;Если нужно сделать это же с одним файлом, поставьте его имя вместо " * ".&lt;br /&gt;&lt;br /&gt;49. Как перейти из графического режима в текстовую консоль?&lt;br /&gt;&lt;br /&gt;Чтобы перейти из графического режима в текстовую консоль, нажмите Ctrl+Alt+F1. (Ctrl+Alt+F2 - на вторую консоль, Ctrl+Alt+F3 - на третью консоль, etc). Для того, чтобы вернуться обратно в Иксы, обычно используется комбинация клавиш Alt+F7.&lt;br /&gt;&lt;br /&gt;50. Как увидеть под Linux другой подключенный жесткий диск?&lt;br /&gt;&lt;br /&gt;Чтобы увидеть под Linux другой подключенный жесткий диск, надо примонтировать (командой mount) разделы, которые на новом винчестере есть. Для этого надо определить, каким винчестер стоит: hdb, hdc или hdd. Для этого нужно всего лишь сообразить, как он подключен: primary slave - это hdb, secondary master - это hdc, secondary slave - это hdd. Теперь надо просмотреть, какие диски на винте есть. Для этого запускаем cfdisk для того винта, который мы определили на предыдущем шаге, например, для hdb: cfdisk /dev/hdb. Глядим, какие разделы есть. Например есть FAT32 (или он еще обозначается как WIN95) диск /dev/hdb1. Мы хотим его подключить скажем к каталогу /mnt/disk. Тогда: mount -t vfat /dev/hdb1 /mnt/disk. Здесь: параметр "-t" указывает тип файловой системы, в нашем случае это vfat, что соответствует fat32.&lt;br /&gt;&lt;br /&gt;51. Работа с CD/R и CD/RW.&lt;br /&gt;&lt;br /&gt;Стираем так: cdrecord -v blank=fast(или all) dev=&lt;Ваш девайс&gt;.&lt;br /&gt;&lt;br /&gt;Образ делаем так: mkisofs -r -J -o &lt;имя_файла_образа.iso&gt; &lt;то_чего_в_образ_загоняем&gt;&lt;br /&gt;&lt;br /&gt;Пишем так: cdrecord -v -eject speed=8 dev=&lt;Ваш девайс&gt; file.iso.&lt;br /&gt;&lt;br /&gt;Если надо мультисессионный диск, то добавляем -multi.&lt;br /&gt;&lt;br /&gt;Так же существует много графических оболочек, которые в своей работе используют эти же простые команды.&lt;br /&gt;&lt;br /&gt;52. Запись CD диска&lt;br /&gt;&lt;br /&gt;Команды cdrecord, полезные при записи CDROM:&lt;br /&gt;&lt;br /&gt;mkisofs -V "volume_ID" -D -l -L -N -J -R -v -o cdrom.iso директория&lt;br /&gt;&lt;br /&gt;cdrecord -dev=0,1,0 -speed=4 -v cdrom.iso&lt;br /&gt;&lt;br /&gt;Для подключения IDE накопителя добавить в linux lilo append="hdc=ide-scsi"&lt;br /&gt;&lt;br /&gt;( hdc - ваш привод?) и включить в ядре поддержку эмуляции SCSI.&lt;br /&gt;&lt;br /&gt;-toc -atip -prcap - выдать полную информацию о накопителе.&lt;br /&gt;&lt;br /&gt;-scanbus - определить параметры для -dev (можно /proc/scsi/scsi)&lt;br /&gt;&lt;br /&gt;-dummy - запись в режие тестирования (без реального прожигания диска).&lt;br /&gt;&lt;br /&gt;-fix - исправить недописавшийся диск.&lt;br /&gt;&lt;br /&gt;-eject - после записи вытащить CD&lt;br /&gt;&lt;br /&gt;-blank=all очистить CR-RW перед записью.&lt;br /&gt;&lt;br /&gt;mkisofs -print-size - расчитать сколько потребуется места для записи директории&lt;br /&gt;&lt;br /&gt;53. Как смонтировать образ компак-диска?&lt;br /&gt;&lt;br /&gt;Смонтировать образ компакт-диска можно таким образом:&lt;br /&gt;&lt;br /&gt;#mkdir /mnt/iso&lt;br /&gt;&lt;br /&gt;#mount -t iso9660 -o loop cd-image.iso /mnt/iso&lt;br /&gt;&lt;br /&gt;(Разумеется, для операции монтирования нужно иметь права root). Теперь каталог /mnt/iso доступен для чтения содержимого образа компакт-диска.&lt;br /&gt;&lt;br /&gt;54. Как узнать метку компакт-диска?&lt;br /&gt;&lt;br /&gt;Узнать метку компакт-диска можно так:&lt;br /&gt;&lt;br /&gt;alias cdlabel='LABEL=`dd if=/dev/cdrom bs=1 count=32 skip=32808 2&gt;/dev/null` &amp;&amp; echo $LABEL'&lt;br /&gt;&lt;br /&gt;Удобно использовать альяс в инициализационных скриптах shell.&lt;br /&gt;Советы по “железу”&lt;br /&gt;&lt;br /&gt;1. Как получить список устройств на шине PCI?&lt;br /&gt;&lt;br /&gt;Получить список устройств на шине PCI можно таким образом:&lt;br /&gt;&lt;br /&gt;/sbin/lspci&lt;br /&gt;&lt;br /&gt;2. Как включить при загрузке клавиши numlock?&lt;br /&gt;&lt;br /&gt;Если вы хотите включить все клавиши numlock при загрузке, добавьте следущее в ваши загрузочные скрипты, например в rc.local:&lt;br /&gt;&lt;br /&gt;echo -n "Turning on numlock LEDs: "&lt;br /&gt;&lt;br /&gt;for tty in /dev/tty[1-6] /dev/tty1[2]; do&lt;br /&gt;&lt;br /&gt;setleds -D +num &lt; $tty &amp;&lt;br /&gt;&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;echo "done."&lt;br /&gt;&lt;br /&gt;3. Как посмотреть информацию полученную от мыши на стандартный вывод?&lt;br /&gt;&lt;br /&gt;Если у вас трудности с мышью, mev -i сбросит информацию полученную от мыши на стандартный вывод.&lt;br /&gt;&lt;br /&gt;4. Раздражают сигналы спикера вашего компьютера когда вы ошиблись?&lt;br /&gt;&lt;br /&gt;Попробуйте выполнить следующую команду bash:&lt;br /&gt;&lt;br /&gt;echo -ne '\033[11;0]'&lt;br /&gt;&lt;br /&gt;которая устанавливает продолжительность сигнала для консоли равным 0 секунд. Чтобы сделать это автоматически добавьте эти строки в /etc/profile или ваш~/.profile. Подробную информацию о том, как установить частоту и длительность гудка, читайте в Visual bell mini-Howto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-6689490033080884932?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/6689490033080884932/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/linux.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6689490033080884932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6689490033080884932'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/linux.html' title='Советы по Linux'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-4858458733224371562</id><published>2009-04-22T02:56:00.000-07:00</published><updated>2009-04-22T03:00:54.148-07:00</updated><title type='text'>Юмор</title><content type='html'>- Иду по парку, смотрю 100 баксов лежит! Думаю, ну, повезло, нашла!&lt;br /&gt;Наклоняюсь поднять. Чувствую... нет, зарабатываю!&lt;br /&gt;&lt;br /&gt;Идут как то по лесу Василиса Прекрасная и Илья Муромец. И попалась у них на пути береза. Илья Муромец не говоря ни слова, ударил кулаком по березе и дерево отлетело в сторону.&lt;br /&gt;В.П. - А ты можешь также и дуб с дороги убрать?&lt;br /&gt;И.М. - Могу!&lt;br /&gt;В.П. - А сосну?&lt;br /&gt;И.М. - А если соснешь так я весь лес выкорчую.&lt;br /&gt;&lt;br /&gt;На уроке в школе:&lt;br /&gt;- Дети, знаете ли вы, откуда течёт электричество?&lt;br /&gt;Вовочка:&lt;br /&gt;- Я знаю! Из джунглей.&lt;br /&gt;- Почему ты так считаешь?&lt;br /&gt;- А сегодня утром папа, когда хотел побриться, сказал:&lt;br /&gt;"Опять эти обезьяны отключили электричество!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-4858458733224371562?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/4858458733224371562/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post_5884.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4858458733224371562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4858458733224371562'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post_5884.html' title='Юмор'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1987664274303934886</id><published>2009-04-22T02:51:00.000-07:00</published><updated>2009-04-22T02:52:15.566-07:00</updated><title type='text'>VLAN и Linux</title><content type='html'>Недавно перед автором этих строк встала очередная задача: в офисе компании появилась ещё одна логическая локальная сеть и надо было настроить роутинг между ней и остальными сетями офиса используя имеющийся межсетевой экран на Debian. Изначально предполагалось добавить в сервер ещё одну сетевую карту, поднять на ней IP из новой сети и настраивать роутинг так же, как и для других сетей. Однако после снятия с сервера крышки выяснилось что в нём есть только два PCI-слота и оба уже заняты.&lt;br /&gt;&lt;br /&gt;Решение пришло в виде гигабитной сетевой карты с поддержкой транков:) Было решено перевести одну из сетевых карточек из акцессного режима в транковый, поскольку изначально на коммутаторе каждая логическая сеть находилась в отдельном влане. Так же в будущем это решение позволит гораздо проще добавлять новые логические сети а значит решение становится более масштабируемым.&lt;br /&gt;&lt;br /&gt;Самым сложным во всём этом оказалось переключение карточки в транковый режим и настройка нужных VLAN'ов. Однако вдумчивое чтение документации показало что это всё не так уж и сложно, что и будет показано ниже. Будем предполагать что у нас сервер под Debian или одном из его клонов. Транк нужно настроить на интерфейсе eth3 и нас интересуют два VLAN'а: 31 (в нём находится сеть 192.168.31.0/24) и 50 (сеть 192.168.50.0/24).&lt;br /&gt;&lt;br /&gt;Для начала установим пакет vlan, который кроме всего прочего содержит утилиту vconfig:&lt;br /&gt;&lt;br /&gt;apt-get install vlan&lt;br /&gt;&lt;br /&gt;Затем загасим интерфейс eth3 (если вы подключаетесь к серверу через него - придётся вам дойти до сервера и поработать локально:)):&lt;br /&gt;&lt;br /&gt;ifdown eth3&lt;br /&gt;&lt;br /&gt;После этого закоментируем все настройки для eth3 в /etc/network/interfaces и добавим настройки наших VLAN'ов:&lt;br /&gt;&lt;br /&gt;#auto eth3&lt;br /&gt;#iface eth3 inet static&lt;br /&gt;#       address 192.168.50.253&lt;br /&gt;#       netmask 255.255.255.0&lt;br /&gt;#       network 192.168.50.0&lt;br /&gt;#       broadcast 192.168.50.255&lt;br /&gt;&lt;br /&gt;auto vlan50&lt;br /&gt;iface vlan50 inet static&lt;br /&gt;       address 192.168.50.253&lt;br /&gt;       netmask 255.255.255.0&lt;br /&gt;       network 192.168.50.0&lt;br /&gt;       broadcast 192.168.50.255&lt;br /&gt;       mtu 1500&lt;br /&gt;       vlan_raw_device eth3&lt;br /&gt;&lt;br /&gt;auto vlan31&lt;br /&gt;iface vlan31 inet static&lt;br /&gt;       address 192.168.31.100&lt;br /&gt;       netmask 255.255.255.0&lt;br /&gt;       network 192.168.31.0&lt;br /&gt;       broadcast 192.168.31.255&lt;br /&gt;       mtu 1500&lt;br /&gt;       vlan_raw_device eth3&lt;br /&gt;&lt;br /&gt;Теперь нужно поднять новые интерфейсы:&lt;br /&gt;&lt;br /&gt;ifup vlan31&lt;br /&gt;ifup vlan50&lt;br /&gt;&lt;br /&gt;Проверить поднялся ли VLAN можно командой:&lt;br /&gt;&lt;br /&gt;ifconfig vlan31&lt;br /&gt;&lt;br /&gt;Вывод должен выглядеть примерно вот так:&lt;br /&gt;&lt;br /&gt;vlan31    Link encap:Ethernet  HWaddr 00:07:E9:0B:28:79&lt;br /&gt;         inet addr:192.168.31.100  Bcast:192.168.31.255  Mask:255.255.255.0&lt;br /&gt;         inet6 addr: fe80::207:e9ff:fe0b:2879/64 Scope:Link&lt;br /&gt;         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;         RX packets:9431 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;         TX packets:34429 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;         collisions:0 txqueuelen:0&lt;br /&gt;         RX bytes:512370 (500.3 KB)  TX bytes:1556858 (1.4 MB)&lt;br /&gt;&lt;br /&gt;На самом деле в /etc/network/interafces VLAN'ы настраиваются как обычные сетевые интерфейсы, только имеющие имя vlan&lt;номер_VLAN&gt; и обязательный параметр vlan_raw_device, указывающий на физический интерфейс. Во всём остальном работа с VLAN'ами ничем не отличается от работы с обычными сетевыми интерфейсами. Потому настройку роутинга между ними я оставлю читателю.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1987664274303934886?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1987664274303934886/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/vlan-linux.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1987664274303934886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1987664274303934886'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/vlan-linux.html' title='VLAN и Linux'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-5568720794633260869</id><published>2009-04-22T02:43:00.000-07:00</published><updated>2009-04-22T06:36:59.535-07:00</updated><title type='text'>Разное</title><content type='html'>http://blender-empire.ru/ - Журнал по блендеру 3Д&lt;br /&gt;Написание скриптов с графическим интерфейсом GTK - Zenity http://library.gnome.org/users/zenity/stable/zenity-progress-options.html.ru &lt;br /&gt;http://xgu.ru/wiki/DNS-tunneling&lt;br /&gt;http://ubuntologia.ru/&lt;br /&gt;http://wiki.winehq.org/winetricks&lt;br /&gt;http://proxya.ru/&lt;br /&gt;http://simadmin.ru/&lt;br /&gt;http://www.zabbix.com/screenshots.php &lt;br /&gt;http://www.cacti.net/spine_install.php &lt;br /&gt;http://pppstatus.sourceforge.net/graphic/screenshots.html &lt;br /&gt;http://www.f0x.ru/2008/09/usb-ubuntu.html &lt;br /&gt;http://fishki.net/comment.php?id=46562&lt;br /&gt;http://blog.cyphermox.net/2008/10/automatic-mounting-of-samba-shares.html?showComment=1224536280000&lt;br /&gt;http://ulmencave.blogspot.com/2007/05/apache2-ssl-php5-mysql5-ubuntu-feisty.html&lt;br /&gt;http://spo.cnews.ru/news/top/index.shtml?2009/03/11/340321&lt;br /&gt;http://www.itoday.ru/6988.html&lt;br /&gt;http://www.itoday.ru/12920.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-5568720794633260869?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/5568720794633260869/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/3.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5568720794633260869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5568720794633260869'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/3.html' title='Разное'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1324170206382784946</id><published>2009-04-22T02:41:00.000-07:00</published><updated>2009-04-22T02:42:57.407-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='администрирование консоль'/><title type='text'>Собираем ядро</title><content type='html'>sudo aptitude install debhelper gcc make modutils kernel-package libncurses5-dev&lt;br /&gt;Скачаем свежее ядро с http://www.kernel.org/ в архиве tar.bz2&lt;br /&gt;Полученный архив распакуем:&lt;br /&gt;tar --bzip2 -xvf linux-source-2.6.*&lt;br /&gt;Перейдём в созданную директорию с ядром и настроим его&lt;br /&gt;cd linux-source-2.6.* &amp;&amp; sudo make menuconfig&lt;br /&gt;В подробности настройки вдаваться не буду, но скажу лишь, что главное правило это «не уверен — не трогай»&lt;br /&gt;Очистим параметры kpkg&lt;br /&gt;sudo make-kpkg clean&lt;br /&gt;Теперь самая длительновыполняемая команда — компилируем&lt;br /&gt;sudo make-kpkg --initrd --revision=myfirstbuild.1.0 kernel_image&lt;br /&gt;,где myfirstbuild.1.0 это произвольное имя сборки&lt;br /&gt;По окончанию сборки ставим образовавшийся пакет&lt;br /&gt;sudo dpkg -i ../linux-image-2.6.*.deb&lt;br /&gt;Самое время перезагрузиться и в меню загрузчика выбрать новое ядро.&lt;br /&gt;Если же оно не загрузилось, всегда можно загрузить предыдущее ядро и грузиться с него.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1324170206382784946?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1324170206382784946/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post_22.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1324170206382784946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1324170206382784946'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post_22.html' title='Собираем ядро'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-19514600404843391</id><published>2009-04-17T00:41:00.000-07:00</published><updated>2009-04-17T00:42:56.049-07:00</updated><title type='text'>Работа с БАШЕМ</title><content type='html'>http://www.opennet.ru/docs/RUS/bash_scripting_guide/&lt;br /&gt;http://noteslinux.blogspot.com/2008/07/bash_18.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-19514600404843391?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/19514600404843391/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/19514600404843391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/19514600404843391'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/blog-post.html' title='Работа с БАШЕМ'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-360870947779920470</id><published>2009-04-17T00:40:00.000-07:00</published><updated>2009-04-17T00:41:18.485-07:00</updated><title type='text'>OpenSSH - настройка, полезные приемы, секреты и советы по использованию</title><content type='html'>За последние несколько лет OpenSSH из набора программ для защищенной системы регистрации, выполнения команд на удаленном хосте и передачи файлов с одной машины на другую превратился в швейцарский армейский нож, просто потрясающий своими возможностями. Используете ли вы хотя бы половину из них? В этой статье вы найдете множество полезных советов по настройке, использованию, и всевозможные способы применения ssh в повседневной жизни, как например резервное копирование, копирование файлов, создание туннелей, авторизация и ее ограничение, и еще много всяких вещей которые умеет эта замечательная программа.&lt;br /&gt;&lt;br /&gt;Отключение прослушивания IPv6 адресов&lt;br /&gt;&lt;br /&gt;По умолчанию sshd(8) слушает как на IPv4 так и на IPv6 адресах. Для того что бы отключить возможность работы по IPv6, необходимо изменить параметр AddressFamily:&lt;br /&gt;&lt;br /&gt;AddressFamily inet&lt;br /&gt;&lt;br /&gt;Адрес и порт прослушивания&lt;br /&gt;&lt;br /&gt;По умолчанию sshd(8) принимает подключения на всех интерфейсах, в чем не всегда есть необходимость. Если не требуется заходить на сервер “из вне”, следует ограничить его работу определенным адресом с помощью параметра ListenAddress:&lt;br /&gt;&lt;br /&gt;# ListenAddress 0.0.0.0&lt;br /&gt;ListenAddress 192.168.1.2&lt;br /&gt;&lt;br /&gt;Дополнительно через двоеточие можно указать и номер порта. В данном примере используется значение порта, заданное глобально параметром Port.&lt;br /&gt;Ограничение доступа суперпользователя&lt;br /&gt;&lt;br /&gt;В большинстве дистрибутивов в целях безопасности доступ суперпользователю по SSH закрыт (PermitRootLogin no), и при попытке зарегистрироваться под root получаем сообщение об ошибке. Для выполнения задач, требующих привилегий администратора, приходится заходить под обычным пользователем и использовать su(1) или sudo(8). Красиво выйти из ситуации поможет директива Match. В качестве аргумента ей передается критерий отбора (User, Group, Host, Address), его значение и параметр, который нужно применить. Для примера разрешим подключение под root только с localhost и из доверенной подсети 192.168.5.0/24:&lt;br /&gt;&lt;br /&gt;PermitRootLogin no&lt;br /&gt;Match Host 192.168.5.*,127.0.0.1&lt;br /&gt; PermitRootLogin yes&lt;br /&gt;&lt;br /&gt;Контроль неудачных подключений&lt;br /&gt;&lt;br /&gt;Следующие две директивы позволяют контролировать неудачные подключения к серверу:&lt;br /&gt;&lt;br /&gt;LoginGraceTime 60&lt;br /&gt;MaxStartups 2:50:10&lt;br /&gt;&lt;br /&gt;Параметр LoginGraceTime определяет, по истечению какого времени простаивающее подключение будет разорвано (в секундах). Значение по умолчанию 120 явно завышено. Количество параллельных неаутентифицированных подключений к серверу контролируется при помощи MaxStartups. Запись параметра имеет форму “start:rate:full”. В нашем случае она означает отключение с вероятностью 50% при наличии двух неаутентифицированных связей, с линейным ростом вероятности до 100% при достижении 10.&lt;br /&gt;Контроль за подключениями пользователей&lt;br /&gt;&lt;br /&gt;Установки в файлах /etc/ssh/sshrc или ~/.ssh/rc позволяют выполнить некоторые действия при регистрации пользователя. Здесь можно использовать любые команды оболочки. Например, отправим администратору на почту уведомление о том, что в систему по SSH зашел пользователь:&lt;br /&gt;&lt;br /&gt;# vi /etc/ssh/sshrc&lt;br /&gt;echo $(date) $SSH_CONNECTION $USER $SSH_TTY | mail -s “ssh login” admin@domain.ru&lt;br /&gt;&lt;br /&gt;Пример создания резервных копий&lt;br /&gt;&lt;br /&gt;Генерируем пару ключей (секретный и публичный):&lt;br /&gt;&lt;br /&gt;$ sudo ssh-keygen -t rsa -C ‘remote backup’&lt;br /&gt;Generating public/private rsa key pair.&lt;br /&gt;Enter file in which to save the key (/home/user/.ssh/id_rsa):&lt;br /&gt;/home/user/.ssh/id_rsa_backup&lt;br /&gt;&lt;br /&gt;Добавляем публичный ключ в список авторизованных ключей на удаленной системе:&lt;br /&gt;&lt;br /&gt;$ ssh remotehost “umask 077; cat &gt; .ssh/authorized_keys” &lt; .ssh/id_rsa_backup.pub&lt;br /&gt;&lt;br /&gt;Затем редактируем authorized_keys (ключ ‘-t’ следует использовать при запуске программ, требующих для своей работы наличия псевдотерминала):&lt;br /&gt;&lt;br /&gt;$ ssh -t remotehost vi .ssh/authorized_keys&lt;br /&gt;from=”192.168.0.*,212.34.XX.YY”,command=”cd /work; tar cvf - ./* | bzip2 -9″,&lt;br /&gt;no-pty,no-agent-forwarding,no-X11-forwarding,no-port-forwarding ssh-rsa AAAA[…]&lt;br /&gt;&lt;br /&gt;И запускаем процедуру резервного копирования:&lt;br /&gt;&lt;br /&gt;$ ssh -i .ssh/id_rsa_backup remotehost &gt; ~/backup/work-`date +%d%m%Y`.tar.bz2 2&gt;/dev/null&lt;br /&gt;&lt;br /&gt;Каталог /work, находящийся на сервере remotehost, будет сохранен в архив ~/backup/work-11052008.tar.bz2.&lt;br /&gt;Используем dump в связке с SSH&lt;br /&gt;&lt;br /&gt;Используя SSH, можно защитить информацию, передаваемую программами, не имеющими встроенных механизмов шифрования соединения. Например, сделаем бэкап с помощью dump(8) на удаленный сервер:&lt;br /&gt;&lt;br /&gt;$ sudo dump -0au -f - /dev/rwd1a | gzip -9 | ssh remotehost ‘dd of=cvs_backup.dump.gz’&lt;br /&gt;&lt;br /&gt;Поскольку в dump(8) встроена возможность передавать данные по сети с использованием RSH, существует возможность использования и SSH, поскольку его функциональность аналогична:&lt;br /&gt;&lt;br /&gt;$ ssh remotehost touch /home/user/cvs.dump&lt;br /&gt;$ env RSH=`which ssh` sudo -E dump 0f remotehost:/home/user/cvs.dump /cvs&lt;br /&gt;&lt;br /&gt;Передача файлов и каталогов&lt;br /&gt;&lt;br /&gt;Передать файл, используя SSH, можно одним из следующих способов:&lt;br /&gt;&lt;br /&gt;$ cat myfile | ssh remotehost ‘cat &gt; myfile’&lt;br /&gt;$ tar zcf - ~/coding | ssh remotehost ‘cat &gt; coding.tgz’&lt;br /&gt;&lt;br /&gt;Чтобы рекурсивно отправить весь каталог, набираем:&lt;br /&gt;&lt;br /&gt;$ scp -r mydir user@host.domain.ru:&lt;br /&gt;&lt;br /&gt;Вариант копирования каталога с использованием ssh(1) и tar(1) с локального хоста на удаленный:&lt;br /&gt;&lt;br /&gt;$ tar cf - source | ssh remotehost “(cd /target; tar xpf -)”&lt;br /&gt;&lt;br /&gt;и с удаленного хоста на локальный:&lt;br /&gt;&lt;br /&gt;$ ssh remotehost “tar cf - source” | (cd /target; tar xpf -)&lt;br /&gt;&lt;br /&gt;Безопасный способ получения почты&lt;br /&gt;&lt;br /&gt;Для безопасного получения почты с помощью fetchmail можно использовать SSH. Для этого в конфигурационном файле ~/.fetchmailrc необходимо указать следующее:&lt;br /&gt;&lt;br /&gt;poll localhost with protocol pop3 and port 8110:&lt;br /&gt;        preconnect "ssh -f -q -C user@213.167.XX.YY \&lt;br /&gt; -L 8110:213.167.XX.YY:110 sleep 10" password noIdea;&lt;br /&gt;&lt;br /&gt;Забираем почту:&lt;br /&gt;&lt;br /&gt;$ fetchmail&lt;br /&gt;1 message for user at localhost (8062 octets).&lt;br /&gt;reading message user@localhost.domain.ru:1 of 1 (8062 octets)……. flushed&lt;br /&gt;&lt;br /&gt;Почтовый шлюз&lt;br /&gt;&lt;br /&gt;Настроим 192.168.1.1 на перенаправление входящей и исходящей почты по шифрованному каналу для клиентов из 192.168.1.0/24 на mail.domain.ru:&lt;br /&gt;&lt;br /&gt;$ vi .ssh/config&lt;br /&gt;Host mail&lt;br /&gt; Hostname mail.domain.ru&lt;br /&gt; LocalForward 192.168.1.1:8025 mail.domain.ru:25&lt;br /&gt; LocalForward 192.168.1.1:8110 mail.domain.ru:110&lt;br /&gt; LocalForward 192.168.1.1:8143 mail.domain.ru:143&lt;br /&gt; GatewayPorts yes&lt;br /&gt;&lt;br /&gt;Открываем туннель:&lt;br /&gt;&lt;br /&gt;$ ssh mail&lt;br /&gt;&lt;br /&gt;Выполнение заданной команды после подключения&lt;br /&gt;&lt;br /&gt;Параметр ProxyCommand позволяет выполнить произвольную команду. Для примера подключимся через шлюз к файловому серверу, который находится за NAT:&lt;br /&gt;&lt;br /&gt;$ vi .ssh/config&lt;br /&gt;Host gateway&lt;br /&gt;        HostName ns.domain.ru&lt;br /&gt;Host filesrv&lt;br /&gt;        HostName 192.168.5.201&lt;br /&gt;        ProxyCommand ssh gateway nc -w 180 %h %p&lt;br /&gt;&lt;br /&gt;Подключаемся:&lt;br /&gt;&lt;br /&gt;$ ssh filesrv&lt;br /&gt;&lt;br /&gt;Мультиплексирование ssh-сессий&lt;br /&gt;&lt;br /&gt;Использование параметра ControlMaster позволяет ускорить доступ к удаленному серверу за счет того, что в специальном файле сохраняются все параметры предыдущего сеанса, которые и используются при повторном подключении. Для примера создадим две Host-секции:&lt;br /&gt;&lt;br /&gt;$ vi .ssh/config&lt;br /&gt;Host srv1&lt;br /&gt; HostName 213.167.XX.YY&lt;br /&gt; ControlMaster yes&lt;br /&gt; # Здесь %r - имя, %h - хост и %p - порт&lt;br /&gt; ControlPath ~/.ssh/ctl-%r-%h-%p&lt;br /&gt;Host srv1fast&lt;br /&gt; HostName 213.167.XX.YY&lt;br /&gt; ControlMaster no&lt;br /&gt; ControlPath ~/.ssh/ctl-%r-%h-%p&lt;br /&gt;&lt;br /&gt;Теперь на сервере srv1 выполняем утилиту uptime(1), логинимся на нем (чтобы создать локальный сокет для второго подключения), переходим на другую консоль и снова запрашиваем статистические счетчики:&lt;br /&gt;&lt;br /&gt;ttyp0$ time ssh srv1 uptime&lt;br /&gt; 5:55PM  up 37 days,  9:19, 1 user, load averages: 0.33, 0.32, 0.33&lt;br /&gt;    0m0.77s real     0m0.06s user     0m0.01s system&lt;br /&gt;&lt;br /&gt;ttyp0$ ssh srv1&lt;br /&gt;ttyp1$ time ssh srv1fast uptime&lt;br /&gt; 5:57PM  up 37 days,  9:20, 2 users, load averages: 0.37, 0.34, 0.33&lt;br /&gt;    0m0.03s real     0m0.00s user     0m0.01s system&lt;br /&gt;&lt;br /&gt;Из примера видно, что при использовании мультиплексирования соединений время выполнения команды uptime(1) на удаленном сервере уменьшилось в 25 раз.&lt;br /&gt;Создание SOCKS-сервера&lt;br /&gt;&lt;br /&gt;OpenSSH можно использовать как специальный SOCKS-сервер, который поддерживает более гибкое проксирование, чем простое перенаправление портов. Например, команда:&lt;br /&gt;&lt;br /&gt;$ ssh -D1080 user@domain.ru&lt;br /&gt;&lt;br /&gt;Создает локальный SOCKS5-сервер, который ждет подключения на localhost:1080. Альтернативный вариант - прописать директиву DynamicForward в .ssh/config:&lt;br /&gt;&lt;br /&gt;$ vi .ssh/config&lt;br /&gt;Host proxy&lt;br /&gt;        HostName ns.domain.ru&lt;br /&gt;        DynamicForward 1080&lt;br /&gt;&lt;br /&gt;Подключаемся, введя ssh proxy. Протестировать работу SOCKS5-сервера можно такой командой:&lt;br /&gt;&lt;br /&gt;$ echo -n “GET / HTTP/1.0\r\n\r\n” | nc -X 5 -x 127.0.0.1:1080 \&lt;br /&gt; www.domain.ru 80 | head -4&lt;br /&gt;HTTP/1.1 200 OK&lt;br /&gt;Date: Sat, 23 Feb 2008 14:27:43 GMT&lt;br /&gt;Server: Apache&lt;br /&gt;X-Powered-By: PHP/4.4.1&lt;br /&gt;&lt;br /&gt;Теперь SOCKS-сервер готов к использованию:&lt;br /&gt;&lt;br /&gt;$ tsocks thunderbird&lt;br /&gt;&lt;br /&gt;Сажаем пользователей в песочницу&lt;br /&gt;&lt;br /&gt;В OpenSSH 4.9 появилась долгожданная поддержка chroot(2) для sshd(8), контролируемая с помощью опции ChrootDirectory. К примеру, заставим подключающегося по sftp пользователя worker переходить в измененный корневой каталог data:&lt;br /&gt;&lt;br /&gt;# vi /etc/ssh/sshd_config&lt;br /&gt;#Subsystem  sftp   /usr/libexec/sftp-server&lt;br /&gt;Subsystem   sftp   internal-sftp&lt;br /&gt;&lt;br /&gt;Match User worker&lt;br /&gt; X11Forwarding no&lt;br /&gt; AllowTcpForwarding no&lt;br /&gt; ForceCommand internal-sftp&lt;br /&gt; ChrootDirectory /data&lt;br /&gt;&lt;br /&gt;Пример для хостинговых клиентов:&lt;br /&gt;&lt;br /&gt;# vi /etc/ssh/sshd_config&lt;br /&gt;#Subsystem  sftp   /usr/libexec/sftp-server&lt;br /&gt;Subsystem sftp internal-sftp&lt;br /&gt;&lt;br /&gt;Match Group wwwusers&lt;br /&gt; X11Forwarding no&lt;br /&gt; AllowTcpForwarding no&lt;br /&gt; ForceCommand internal-sftp&lt;br /&gt; ChrootDirectory /var/www/hosting/%u&lt;br /&gt;&lt;br /&gt;Теперь зарегистрированные пользователи будут допущены только к “своему” каталогу, при подключении модификатор %u будет заменен именем пользователя. При необходимости можно использовать %h, который соответствует домашнему каталогу юзера.&lt;br /&gt;Скрываем записи о серверах, к которым мы подключались&lt;br /&gt;&lt;br /&gt;Некоторые администраторы, возможно, захотят зашифровать все IP и доменные адреса из файла .ssh/known_hosts. Делается это следующим образом:&lt;br /&gt;&lt;br /&gt;$ echo ‘HashKnownHosts’ &gt;&gt; ~/.ssh/config&lt;br /&gt;$ ssh-keygen -H -f ~/.ssh/known_hosts&lt;br /&gt;$ head -1 ~/.ssh/known_hosts&lt;br /&gt;+|1|TJ2SaXGqO8uHYeiA92KuNRIKR7M=|GpQB8Qz0tQPqA+nF+ghe37mpcHA= ssh-rsa AAAA[…]&lt;br /&gt;&lt;br /&gt;Управляющие последовательности SSH&lt;br /&gt;&lt;br /&gt;Управляющие последовательности SSH станут доступны, если в SSH-сессии сначала нажать &lt;Enter&gt;, затем управляющий символ сеанса (по умолчанию тильда, задается директивой EscapeChar) и специальную клавишу, которая указывает, какую именно функцию следует выполнить.&lt;br /&gt;&lt;br /&gt;Допустим, мы с mail.domain.ru зашли на bastion.domain2.ru и решили, что не плохо было бы открыть обратный шифрованный туннель к почтовому серверу для безопасной загрузки сообщений. С помощью комбинации клавиш “&lt;Enter&gt;~C” можно интерактивно управлять локальным и удаленным форвардингами (ключи ‘-L’ и ‘-R’):&lt;br /&gt;&lt;br /&gt;bastion$ &lt;Enter&gt;~C&lt;br /&gt;ssh&gt; -R 8110:mail.domain.ru:110&lt;br /&gt;Forwarding port.&lt;br /&gt;&lt;br /&gt;Проверяем работу созданного почтового туннеля:&lt;br /&gt;&lt;br /&gt;bastion$ telnet localhost 8110&lt;br /&gt;+OK Dovecot ready.&lt;br /&gt;&lt;br /&gt;В ответ получен баннер от Dovecot, значит, все в порядке.&lt;br /&gt;Кстати, обратившись к подсказке, получим список всех доступных ключей и дополнительных параметров:&lt;br /&gt;&lt;br /&gt;bastion$ &lt;Enter&gt;~C&lt;br /&gt;ssh&gt; help&lt;br /&gt;Commands:&lt;br /&gt;      -L[bind_address:]port:host:hostport    Request local forward&lt;br /&gt;      -R[bind_address:]port:host:hostport    Request remote forward&lt;br /&gt;      -KR[bind_address:]port                 Cancel remote forward&lt;br /&gt;&lt;br /&gt;Если в ~/.ssh/config установить значение директивы PermitLocalCommand в yes, то мы сможем выполнять команды в локальном шелле, т.е. на хосте, с которого зашли:&lt;br /&gt;&lt;br /&gt;ns$ ssh mx&lt;br /&gt;mx$ &lt;Enter&gt;~C&lt;br /&gt;ssh&gt; !uptime # команда выполняется на хосте ns&lt;br /&gt; 7:02PM  up 100 days, 11 mins, 1 user, load averages: 0.13, 0.21, 0.23&lt;br /&gt;&lt;Enter&gt;&lt;br /&gt;mx$ uptime  # команда выполняется на хосте mx&lt;br /&gt; 7:02PM  up 4 days,  7:34, 1 user, load averages: 0.21, 0.23, 0.19&lt;br /&gt;&lt;br /&gt;Если на предыдущем узле требуется выполнить сразу несколько команд, то SSH-сессию лучше временно засуспендить (приостановить выполнение программы ssh):&lt;br /&gt;&lt;br /&gt;mx$ &lt;Enter&gt;~&lt;Ctrl-Z&gt;&lt;br /&gt;[1] + Suspended            “ssh” “$@”&lt;br /&gt;&lt;br /&gt;Чтобы перевести SSH-сессию из остановленного режима в активный, следует воспользоваться командой fg.&lt;br /&gt;Список текущих SSH-соединений можно просмотреть комбинацией:&lt;br /&gt;&lt;br /&gt;mx$ &lt;Enter&gt;~#&lt;br /&gt;The following connections are open:&lt;br /&gt;  #0 client-session (t4 r0 i0/0 o0/0 fd 5/6 cfd -1)&lt;br /&gt;&lt;br /&gt;А для быстрого завершения SSH-сессии ставим точку:&lt;br /&gt;&lt;br /&gt;mx$ &lt;Enter&gt;~.&lt;br /&gt;Connection to 213.167.XX.YY closed.&lt;br /&gt;&lt;br /&gt;Сокращенный набор&lt;br /&gt;&lt;br /&gt;Чтобы в консоли не вводить полное доменное имя, порт и учетную запись для подключения к удаленной системе, стоит заручиться поддержкой директивы Host:&lt;br /&gt;&lt;br /&gt;$ vi ~/.ssh/config&lt;br /&gt;Host mx&lt;br /&gt; Hostname mx.domain.ru&lt;br /&gt; Port 2022&lt;br /&gt; User admin&lt;br /&gt;&lt;br /&gt;Таким образом, достаточно ввести ssh mx, чтобы соединиться с нужным хостом.&lt;br /&gt;Получение доступа к закрытому сервису&lt;br /&gt;&lt;br /&gt;Многие администраторы в целях безопасности скрывают свои сервера в демилитаризованной зоне, либо за NAT’ом, и разрешают входящие соединения только с доверенных IP-адресов и по определенными портам. Поэтому доступ ко многим полезным ресурсам получить напрямую нельзя. Это как раз тот случай, когда использование SSH-форвардинга может исправить ситуацию.&lt;br /&gt;&lt;br /&gt;$ vi ~/.ssh/config&lt;br /&gt;Host gate&lt;br /&gt;        Hostname gate.domain.ru&lt;br /&gt;# Для ускорения соединений включаем мультиплексирование SSH-сессий&lt;br /&gt;        ControlMaster auto&lt;br /&gt;        ControlPath ~/.ssh/ctl-%r-%h-%p&lt;br /&gt;# Перенаправляем локальный порт на файловый сервер (Win2k3 с поднятым VShell)&lt;br /&gt;        LocalForward 8022 192.168.1.101:22&lt;br /&gt;&lt;br /&gt;# Подключаясь к localhost:8022, мы будем попадать на файловый сервер&lt;br /&gt;Host fileserver&lt;br /&gt;        Hostname localhost&lt;br /&gt;        Port 8022&lt;br /&gt;        ControlMaster auto&lt;br /&gt;        ControlPath ~/.ssh/ctl-%r-%h-%p&lt;br /&gt;        HostKeyAlias fileserver&lt;br /&gt;&lt;br /&gt;Соединяемся с узлом gate и проверяем возможность подключения к локальному порту 8022:&lt;br /&gt;&lt;br /&gt;$ ssh -N -f gate&lt;br /&gt;$ telnet localhost 8022&lt;br /&gt;SSH-2.0-VShell_3_0_4_656 VShell&lt;br /&gt;&lt;br /&gt;Теперь можно подключиться к файловому серверу, который находится за NAT’ом, в обход правил файерола, установленных на шлюзе:&lt;br /&gt;&lt;br /&gt;$ ssh fileserver&lt;br /&gt;Microsoft Windows [Version 5.2.3790]&lt;br /&gt;C:\Documents and Settings\Username\My Documents&gt;&lt;br /&gt;&lt;br /&gt;Ограничение возможностей перебора паролей с помощью Pf&lt;br /&gt;&lt;br /&gt;Сервис SSH является любимой мишенью злоумышленников, поэтому следует принять некоторые меры безопасности. Одна из них - ограничение количества подключений, чтобы избежать DoS-атаки и перебора паролей.&lt;br /&gt;&lt;br /&gt;# vi /etc/pf.conf&lt;br /&gt;table &lt;sshbf&gt; persist&lt;br /&gt;block in log quick on $ext_if inet from &lt;sshbf&gt;&lt;br /&gt;pass in log on $ext_if inet proto tcp to $ext_if port ssh keep state \&lt;br /&gt; (max-src-conn-rate 5/60, overload &lt;sshbf&gt; flush global)&lt;br /&gt;&lt;br /&gt;Данный набор правил инструктирует фильтр пакетов не допускать более 5 одновременных соединений к 22 порту за 60 секунд.&lt;br /&gt;Перенаправление X11-подключений&lt;br /&gt;&lt;br /&gt;Для перенаправления X11-подключений следует использовать ключ ‘-Y’:&lt;br /&gt;&lt;br /&gt;$ ssh -Y user@domain.com&lt;br /&gt;&lt;br /&gt;Причем в конфигурационном файле /etc/ssh/sshd_config параметр X11Forwarding должен быть установлен в “yes”. Если X-сервер запущен на локальной системе, то необходимо включить и X11UseLocalhost.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-360870947779920470?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/360870947779920470/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/openssh.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/360870947779920470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/360870947779920470'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/openssh.html' title='OpenSSH - настройка, полезные приемы, секреты и советы по использованию'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-5310482302823510863</id><published>2009-04-17T00:38:00.000-07:00</published><updated>2009-04-17T00:40:24.704-07:00</updated><title type='text'>Спасаем данные в Linux с помощью ddrecovery</title><content type='html'>«Input/output error (5)» сказала система при копировании файла и заставила погрузиться в неприятные раздумья о новом винчестере и подлом партизане SMART. К счастью все важные данные сохранились в резервных копиях, и всё-же постараться вытащить один файл очень хотелось — 34Гб образ виртуальной машины содержал в себе несколько документов потерять которые было бы неприятно.&lt;br /&gt;&lt;br /&gt;Делать образ всего диска оказалось не лучшей идеей — место для этого отсутствовало, а ставить ещё один жёсткий очень не хотелось, вдобавок структура диска была цела и доступ к отдельным файлам оставался возможным. На помощь пришла утилита ddrescue, задача которой копировать файлы чтение которых затруднено — в первую очередь различных оптических дисков, но и жёстких дисков в нагрузку.&lt;br /&gt;&lt;br /&gt;Первым делом потребовалось скачать утилиту — она идёт в стандартных пакетах Ubuntu(под именем gddrescue), но достаточно старой версии и некоторые полезные возможности не содержит.&lt;br /&gt;По адресу ftp.gnu.org/gnu/ddrescue/ находится релиз 1.10, собирается простым набором «./configure &amp;&amp; make &amp;&amp; make install» и сразу готов к работе.&lt;br /&gt;&lt;br /&gt;Немного теории — утилита ddrscue обладает одной очень полезной особенностью, она ведёт специальный лог, в котором отмечает проблемные\пропущенные места, и при дальнейших запусках уже использует этот файл пробует читать только то, что раньше распознать не удалось. Поэтому процесс восстановления будет идти в несколько этапов, сначала пытаемся максимально быстро распознать большую часть, а потом возвращаемя к проблемным участкам.&lt;br /&gt;&lt;br /&gt;Первый проход запускается командой&lt;br /&gt;&lt;br /&gt;ddrescue --no-split --verbose /media/disk-1/broken.vdi /media/disk-4/fixed.vdi /media/disk-4/rescue.log&lt;br /&gt;&lt;br /&gt;т.е. отключаем повторные чтения и попытки минимизировать проблемные зоны, указываем откуда и куда копировать и файл лога. Понятно что копировать файл на тот-же диск идея плохая. Исходная файловая система ext3, раздел куда копируется ext2.&lt;br /&gt;&lt;br /&gt;Лог восстановления — параметр не обязательный, но при многопроходном варианте нужен, и если в первый проход его создать забыли, то можно использовать --generate-logfile, полученный лог будет больше оптимального, но для дальнейших проходов полностью подойдёт.&lt;br /&gt;&lt;br /&gt;В моём случае первый проход занял больше дня и сообщил о следующем&lt;br /&gt;rescued: 22093 MB, errsize: 12264 MB, errors: 3876&lt;br /&gt;картина не самая приятная, но уже что-то, начинаем второй проход.&lt;br /&gt;&lt;br /&gt;ddrescue --direct --max-retries=2 --verbose /media/disk-1/broken.vdi /media/disk-4/fixed.vdi /media/disk-4/rescue.log&lt;br /&gt;&lt;br /&gt;теперь пробуем прочесть диск в режиме прямого доступа и с 2 повторными попытками. Это число можно увеличивать, но в моём случае это только увеличивало время и результатов не приносило. (А вот при копировании CD вполне может дать результат).&lt;br /&gt;&lt;br /&gt;Второй проход занял ещё около 15 часов, причём значительно улучшил картину:&lt;br /&gt;rescued: 34292 MB, errsize: 65220 kB, errors: 16659&lt;br /&gt;но попробуем вернуть остатки&lt;br /&gt;&lt;br /&gt;ddrescue --retrim --max-retries=2 --verbose /media/disk-1/broken.vdi /media/disk-4/fixed.vdi /media/disk-4/rescue.log&lt;br /&gt;&lt;br /&gt;в этом режиме очень сильно падает скорость, но восстанавливается то, что предыдущие два прохода не смогли.&lt;br /&gt;&lt;br /&gt;Через два часа восстановление прерываю, результат&lt;br /&gt;rescued: 34293 MB, errsize: 64579 kB&lt;br /&gt;понятно что резкого улучшения ждать не стоит. С другой стороны для файлов небольшого размера (10-100мб) именно третий проход давал максимум данных, так что зависит от везения и характера проблем.&lt;br /&gt;&lt;br /&gt;Образ был успешно добавлен в VirtualBox, проверен стандартным chkdsk и все необходимые данные скопированы, погибшие 60 мегабайт пришлись на системные файлы. Времени на всё ушло чуть более двух суток, что конечно много, но приемлемо.&lt;br /&gt;&lt;br /&gt;Удачного восстановления, и не забывайте делать бекапы, они стоят потерянного времени, но а на крайний случай, ddrescue Вам в помощь&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-5310482302823510863?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/5310482302823510863/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/04/linux-ddrecovery.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5310482302823510863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5310482302823510863'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/04/linux-ddrecovery.html' title='Спасаем данные в Linux с помощью ddrecovery'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-6966951515121505957</id><published>2009-03-30T08:40:00.000-07:00</published><updated>2009-03-30T08:41:17.847-07:00</updated><title type='text'></title><content type='html'>монтирование лиска в LikeWise&lt;br /&gt;http://blog.cyphermox.net/2008/10/automatic-mounting-of-samba-shares.html?showComment=1224536280000&lt;br /&gt;&lt;br /&gt;Lotus Notes 8.5&lt;br /&gt;&lt;br /&gt;http://otrs.org/demo/ - система тикетов&lt;br /&gt;&lt;br /&gt;флопи диск gfloppy&lt;br /&gt;&lt;br /&gt;принт сервер на линуксе&lt;br /&gt;http://www.lissyara.su/?id=1873&lt;br /&gt;&lt;br /&gt;настройка openvpn:&lt;br /&gt;http://ylsoftware.com/news/393&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-6966951515121505957?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/6966951515121505957/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/likewise-httpblog.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6966951515121505957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6966951515121505957'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/likewise-httpblog.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-3008907586154478320</id><published>2009-03-28T23:22:00.000-07:00</published><updated>2009-03-28T23:23:14.670-07:00</updated><title type='text'>10+ фактов для вашего босса, почему выгоден переход на Linux</title><content type='html'>1. Стоимость&lt;br /&gt;&lt;br /&gt;Начальники очень хорошо знают как считать деньги, так что это первое, что вы должны сказать, почему вы должны перейти на Linux. Общая стоимость владения (TCO) Linux ниже, чем Windows и это доказано. Подробнее см. здесь “Microsoft, Linux и TCO“&lt;br /&gt;2. Безопасность&lt;br /&gt;&lt;br /&gt;Это практически аксиома или постулат, если хотите, современного ИТ мира. Для полной картины прочтите также статью “Microsoft ворует данные“.&lt;br /&gt;3. Производительность&lt;br /&gt;&lt;br /&gt;Linux - это высокопроизводительная ОС. Благодаря своей модульной природе все части операционной системы Linux могут быть легко добавлены или удалены, операционная система Linux может быть легко настроена для конкретной цели. Нужен веб-сервер? Вы можете установить только компоненты веб-сервера, без графического интерфейса, который вам не нужен. Нужен почтовый сервер? Вы можете запустить выделенный, специализированные почтовый сервис без проблем.&lt;br /&gt;4. Устойчивость&lt;br /&gt;&lt;br /&gt;Тоже, как ни странно, это аксиома.&lt;br /&gt;5. Открытые стандарты&lt;br /&gt;&lt;br /&gt;Linux свободен от привязки к конкретному продавцу, т.н. “vendor-lock-in“.&lt;br /&gt;6. Интероперабельность&lt;br /&gt;&lt;br /&gt;В Linux очень легко общаться по сети с почти любым ПК на любой компьютерной платформе с использованием различных протоколов. Linux с Samba может выступать в качестве файл-сервера Windows и члена домена Active Directory. Linux также имеет очень хороший свободный офис - Open Office, который читает файлы Windows Office.&lt;br /&gt;7. Гибкость&lt;br /&gt;&lt;br /&gt;Когда вам нужно что-то в плане программного обеспечения, то не нужно делать абсолютно новые программные разработки. В Linux существует большая вероятность того, что это уже есть и можно просто взять существующий проект и адаптировать его к вашим потребностям. Это происходит все время, и является одним из великих преимуществ СПО, FOSS.&lt;br /&gt;8. Free software - cвободное программное обеспечение&lt;br /&gt;&lt;br /&gt;Linux - это не только ОС. При использовании Linux вы не только получаете полноценную операционную систему.&lt;br /&gt;Вы также получаете невероятное количество свободного и открытого исходного программного кода, который делает практически всё, что вам когда-нибудь понадобится.&lt;br /&gt;&lt;br /&gt;Это то, про что часто забывают.&lt;br /&gt;&lt;br /&gt;Если сравниваете Linux и Windows TCO, то вы смотрите только затраты на операционные системы. Но если вам нужно на чём-то работать в Windows, то это также будет стоить денег. Есть проекты с открытым исходным кодом для Windows, но далеко не столько, как для Linux.&lt;br /&gt;9. Виртуализация&lt;br /&gt;&lt;br /&gt;Linux имеет передовые решения для виртуализации, давая вам возможность запуска виртуальных серверов с очень низким уровнем накладных расходов. Вот еще одна возможность подчеркнуть экономию средств. Бесплатная виртуализация доступна на Linux!&lt;br /&gt;10. Стабильное будущее&lt;br /&gt;&lt;br /&gt;Linux не исчезнет, он показал очень стабильный рост и поддерживается некоторыми очень крупными компаниями.&lt;br /&gt;Если только одна единственная компания, владеющая и поддерживающая проприетарную операционную систему и ПО исчезнет, например, в результате кризиса или банкротства, то у вас будут очень большие проблемы.&lt;br /&gt;&lt;br /&gt;Но, если все крупные компании, поддерживающие Linux исчезнут, что почти нереально, то код по-прежнему будет доступен всем и любой новый игрок на рынке может просто взять его и продолжить поддержку.&lt;br /&gt;11. Счастливый сисадмин&lt;br /&gt;&lt;br /&gt;Linux делает системных администраторов счастливыми.&lt;br /&gt;Linux намного проще и приятнее поддерживать, потому что он сделан для пользователей и за счет пользователей.&lt;br /&gt;Ничто не может конкурировать с Linux, когда дело доходит до администрирования. Linux очень прозрачен и имеет все средства, какие только можно себе представить, в свободном доступе.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-3008907586154478320?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/3008907586154478320/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/10-linux.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3008907586154478320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3008907586154478320'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/10-linux.html' title='10+ фактов для вашего босса, почему выгоден переход на Linux'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-4846936955263960250</id><published>2009-03-24T05:05:00.001-07:00</published><updated>2009-03-24T05:05:21.951-07:00</updated><title type='text'>Vyatta. Программный роутер. Краткий обзор</title><content type='html'>http://tuxologia.blogspot.com/2009/03/vyatta.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-4846936955263960250?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/4846936955263960250/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/vyatta.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4846936955263960250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4846936955263960250'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/vyatta.html' title='Vyatta. Программный роутер. Краткий обзор'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1480708763552084865</id><published>2009-03-24T04:33:00.001-07:00</published><updated>2009-03-24T04:33:54.381-07:00</updated><title type='text'>Используем 2+ провайдера (вторая часть)</title><content type='html'>Продолжим настройку нашего шлюза, про который я говорил в предыдущей статье. Напомню, там мы настроили правила маршрутизации, теперь нам надо заняться iptables. Сейчас мы настроим сеть состоящую из шлюза и сервера. На шлюзе будет работать SSH и DNS, а сервер у нас будет виндовый на нем у нас RDP и SMTP. Сеть будет настроена таким образом, что через любой из внешних айпишников мы сможем подключаться к любому из серверов, а SMTP сервер будет выходить наружу через основного провайдера.&lt;br /&gt;Ну и конечно, же начнем с переменных, причем вынесем следующие настройки в отдельный файл, это нам сильно пригодиться в будущем:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    #!/bin/bash&lt;br /&gt;&lt;br /&gt;    export GLOBAL_ETH_PRIM=eth1&lt;br /&gt;    export GLOBAL_ETH_SEC=eth2&lt;br /&gt;    export GLOBAL_IP_PRIM=10.10.10.10&lt;br /&gt;    export GLOBAL_IP_SEC=20.20.20.20&lt;br /&gt;    export MARK_PRIM=10&lt;br /&gt;    export MARK_SEC=20&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Назовем этот файл ipt_p1.conf. А содержит он данные о том, какой из интерфейсов является главным, а какой запасным (PRIM и SEC соответственно) и значения для маркировки пакетов.&lt;br /&gt;Перейдем к основному файлу конфигурации iptables, назовем его ipt.conf. Запишем переменные ;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    #!/bin/bash&lt;br /&gt;    IPTABLES=/sbin/iptables&lt;br /&gt;    MODPROBE=/sbin/modprobe&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Это для того, чтобы меньше зависеть от дистрибутива - пути к исполняемым файлам.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    LOCAL_ETH=eth0&lt;br /&gt;    GLOBAL_ETH_P1=eth1&lt;br /&gt;    GLOBAL_ETH_P2=eth2&lt;br /&gt;    LOCAL_IP=192.168.0.1&lt;br /&gt;    LOCAL_NET=192.168.0.0/24&lt;br /&gt;    GLOBAL_IP_P1=10.10.10.10&lt;br /&gt;    GLOBAL_IP_P2=20.20.20.20&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Тут мы описали конфигурацию нашей сети, по порядку: локальный интерфейс, интерфейсы, которые смотрят к провайдерам, локальный айпишник и подсеть, айпишники, которые выданы провайдерами.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    SRV11=192.168.0.11&lt;br /&gt;    SRV12=192.168.0.12&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;А это наш сервер, для которого мы настраивали маршрутизацию на основе политик, используя метки. Как я уже говорил этот сервер на своем сетевом интерфейсе имеет два айпишника, чуть ниже я расскажу для чего это нам пригодиться.&lt;br /&gt;&lt;br /&gt;    . $1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Зацепили внешние настройки, в данном случае это будет наш файл ipt_p1.conf.&lt;br /&gt;Хватит о скучном, приступим к настройке, причем попытаемся все сделать красиво:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    echo "[+] Flushing existing iptables rules..."&lt;br /&gt;    $IPTABLES -F&lt;br /&gt;    $IPTABLES -F -t nat&lt;br /&gt;    $IPTABLES -F -t raw&lt;br /&gt;    $IPTABLES -F -t mangle&lt;br /&gt;    $IPTABLES -X&lt;br /&gt;    $IPTABLES -P INPUT DROP&lt;br /&gt;    $IPTABLES -P OUTPUT DROP&lt;br /&gt;    $IPTABLES -P FORWARD DROP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Очищаем все правила iptables, в первой строке говорим, что делаем, почему по английски, а чтобы не было проблем с кодировками. Последние три строчки устанавливают правила по умолчанию - все пакеты не подходящие под список правил будут просто отброшены.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $MODPROBE ip_conntrack&lt;br /&gt;    $MODPROBE iptable_nat&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Загрузили модули ядра, которые будем использовать.&lt;br /&gt;Теперь пройдемся по цепочкам iptables и заполним их необходимыми правилами:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    echo "[+] Setting up INPUT chain..."&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A INPUT -m state --state INVALID -j DROP&lt;br /&gt;    $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Используя возможности модуля state мы отбрасываем некорректные пакеты и принимаем пакеты относящиеся к уже установленным соединениям либо ко вторичными соединениям (таким как передача данных в ftp).&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A INPUT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Принимаем подключения по SSH отовсюду.&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A INPUT -i $LOCAL_ETH -s $LOCAL_NET -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Локальный трафик будет ходить без ограничений, хотя это не всегда правильно.&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A INPUT -i lo -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Тоже на localhost.&lt;br /&gt;Продолжаем с цепочкой OUTPUT:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    echo "[+] Setting up OUTPUT chain..."&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A OUTPUT -m state --state INVALID -j DROP&lt;br /&gt;    $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Эти правила аналогичны правилам в цепочке INPUT.&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A OUTPUT -o $GLOBAL_ETH_PRIM -p udp --dport 53 -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Мы разрешили работать нашему DNS серверу через основного провайдера&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A OUTPUT -o $GLOBAL_ETH_PRIM -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;А также разрешили выходить наружу по SSH.&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A OUTPUT -o $LOCAL_ETH -d $LOCAL_NET -m state --state NEW -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Опять же на исходящий локальный трафик ограничений нет.&lt;br /&gt;Переходим к обработке трафика из локальной сети:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    echo "[+] Setting up FORWARD chain..."&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A FORWARD -m state --state INVALID -j DROP&lt;br /&gt;    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Все те же два удобных правила.&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A FORWARD -i $GLOBAL_ETH_P1 -d $SRV11 -p tcp --dport 25 --syn -m state --state NEW -j ACCEPT&lt;br /&gt;    $IPTABLES -A FORWARD -i $GLOBAL_ETH_P2 -d $SRV12 -p tcp --dport 25 --syn -m state --state NEW -j ACCEPT&lt;br /&gt;    $IPTABLES -A FORWARD -i $GLOBAL_ETH_P1 -d $SRV11 -p tcp --dport 3389 --syn -m state --state NEW -j ACCEPT&lt;br /&gt;    $IPTABLES -A FORWARD -i $GLOBAL_ETH_P2 -d $SRV12 -p tcp --dport 3389 --syn -m state --state NEW -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Так у нас получается, что пакеты приходящие на первого провайдера пропускаются только на первый айпишник сервера, второго - на второй.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $IPTABLES -A FORWARD -i $LOCAL_ETH -s $SRV11 -j ACCEPT&lt;br /&gt;    $IPTABLES -A FORWARD -i $LOCAL_ETH -s $SRV12 -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Разрашаем весь исходящий трафик с нашего сервера, опять же это не совсем правильно.&lt;br /&gt;Далее идут правила NAT:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $IPTABLES -t nat -A POSTROUTING -s $SRV11 -p tcp --dport 25 -j SNAT --to-source $GLOBAL_IP_PRIM&lt;br /&gt;    $IPTABLES -t nat -A POSTROUTING -s $SRV12 -p tcp --dport 25 -j SNAT --to-source $GLOBAL_IP_PRIM&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Все, что наш сервер попытается отправить по SMTP пойдет через основного провайдера.&lt;br /&gt;И опять самое интересное нам осталось на последок. Переходим к PREROUTING, здесь то мы и воспользуемся возможностью маркировать пакеты, которая нам понадобится для маршрутизации вот в этих двух строчках:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    ip rule add from $SRV11 fwmark 10 table T1&lt;br /&gt;    ip rule add from $SRV12 fwmark 20 table T2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Итак, наши правила:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $IPTABLES -t mangle -A PREROUTING -i $LOCAL_ETH -s $SRV11 -p tcp --dport 25 -j MARK --set-mark $MARK_PRIM&lt;br /&gt;    $IPTABLES -t mangle -A PREROUTING -i $LOCAL_ETH -s $SRV12 -p tcp --dport 25 -j MARK --set-mark $MARK_PRIM&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Все пакеты уходящие с нашего внутреннего сервера на 25 порт мы маркируем значением $MARK_PRIM. Давайте проследим, что это нам дает: исходящий пакет маркируется значением 10, значит маршрутизироваться он будет по таблице T1, а соответствуя этой таблице пакет должен уйти через первого провайдера, в цепочке FORWARD есть разрешающее правило, поэтому пакет безпрепятственно проходит - все правильно это нам и требовалось.&lt;br /&gt;Теперь нам надо разобраться с соединениями идущими к нам. Сначала, конечно же, должен отработать DNAT:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $IPTABLES -t nat -A PREROUTING -i $GLOBAL_ETH_P1 -d $GLOBAL_IP_P1 -p tcp --dport 25 -j DNAT --to-destination $SRV11&lt;br /&gt;    $IPTABLES -t nat -A PREROUTING -i $GLOBAL_ETH_P1 -d $GLOBAL_IP_P1 -p tcp --dport 3389 -j DNAT --to-destination $SRV11&lt;br /&gt;    $IPTABLES -t nat -A PREROUTING -i $GLOBAL_ETH_P2 -d $GLOBAL_IP_P2 -p tcp --dport 25 -j DNAT --to-destination $SRV12&lt;br /&gt;    $IPTABLES -t nat -A PREROUTING -i $GLOBAL_ETH_P2 -d $GLOBAL_IP_P2 -p tcp --dport 3389 -j DNAT --to-destination $SRV12&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Вроде бы все правильно, проверяем: пакет приходит на внешний интерфейс шлюза, в зависимости от принадлежности интерфейса провайдеру, он перенаправляется на первый или второй айпишник внутреннего сервера, сервер отвечает с того же(!) айпишника, пакет на шлюзе маршрутизируется по основной таблице, проходит через FORWARD и отправляется через основного провайдера, а вот это уже не правильно, ведь пакет мог прийти и через запасного провайдера. Исправляем, добавляя правила:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $IPTABLES -t mangle -A PREROUTING -i $LOCAL_ETH -s $SRV11 -p tcp --sport 25 -j MARK --set-mark $MARK_PRIM&lt;br /&gt;    $IPTABLES -t mangle -A PREROUTING -i $LOCAL_ETH -s $SRV11 -p tcp --sport 3389 -j MARK --set-mark $MARK_PRIM&lt;br /&gt;    $IPTABLES -t mangle -A PREROUTING -i $LOCAL_ETH -s $SRV12 -p tcp --sport 25 -j MARK --set-mark $MARK_SEC&lt;br /&gt;    $IPTABLES -t mangle -A PREROUTING -i $LOCAL_ETH -s $SRV12 -p tcp --sport 3389 -j MARK --set-mark $MARK_SEC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Теперь на обратном пути мы маркируем пакеты в соответствии с адресом, с которого они отправляются. Далее в дело вступают таблицы маршрутизации T1 и T2, поэтому решение через какой интерфейс отправлять пакеты принимается правильное.&lt;br /&gt;Все! Готово. Для применения правил выполняем команду "./ipt.conf ipt_p1.conf". Теперь наши сервера доступны, пока хотя бы один из провайдеров дает нам доступ в интернет.&lt;br /&gt;Еще хотел рассказать, как можно переключаться между провайдерами и сделать парочку замечаний, но объем статьи и так уже слишком большой, видимо будет третья часть.&lt;br /&gt;&lt;br /&gt;Скачать скрипты из первой и второй части.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1480708763552084865?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1480708763552084865/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/2.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1480708763552084865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1480708763552084865'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/2.html' title='Используем 2+ провайдера (вторая часть)'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-8934626000841254995</id><published>2009-03-24T04:28:00.001-07:00</published><updated>2009-03-24T04:28:22.059-07:00</updated><title type='text'>Дублируем весь трафик, проходящий через цепочку FORWARD на адрес сервера съема 172.16.1.2:</title><content type='html'>#iptables -t mangle -A FORWARD -j ROUTE --tee --gw 172.20.1.2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-8934626000841254995?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/8934626000841254995/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/forward-1721612.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/8934626000841254995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/8934626000841254995'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/forward-1721612.html' title='Дублируем весь трафик, проходящий через цепочку FORWARD на адрес сервера съема 172.16.1.2:'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1113817532626665768</id><published>2009-03-20T23:06:00.000-07:00</published><updated>2009-03-20T23:07:11.233-07:00</updated><title type='text'>использование двух каналов инет</title><content type='html'>Есть у меня своя домашняя сеть, с linux сервером, и подключена она к интернет с помощью беспроводного соединения — на крыше антена и роутер, к серверу подключено витой парой. Все вобщем то неплохо, канал с гарантированой полосой в обоих направлениях, постоянный IP адрес, довольно надежный — падает редко. Но вот есть у него один минус — цена кусается.&lt;br /&gt;Ценовая политика провайдера построена так, что для того, чтоб увеличить скорость в два раза — платить тоже надо в два раза больше. А скорости хочется больше! И надежности тоже — как то во время сильных заморозков роутеру стало «холодно» и интернета вечером и ночью небыло.&lt;br /&gt;Поэтому задумал я провести домой второй интернет-канал, выбар пал на одного известного на Украине провайдера, предоставляющего доступ по ADSL. У него и тарифы недорогие и модем ADSL стоит недорого. Так я и сделал, подключился, воткнул ADLS модем в свич — все работает. Но от старого доброго беспроводного канала отказываться мне нехотелось, поэтому задумал я сделать так, чтоб интернет трафик шел сразу по обеим каналам, так, чтоб я мог воспользоваться суммарной пропускной способностью. Да еще и чтоб при падении одного канала всю нагрузку на себя брал другой.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;После поиска в интернете я выснил, что есть как минимум два решения:&lt;br /&gt;&lt;br /&gt;— на уровне файрвола раскидывать TCP сессии по разным интерфейсам. Недостатки — сайты, которые имею привязку сессий к IP адресу перестанут работать, так как последовательные запросы от одного пользователя могут приходить по разным каналам и с разных IP.&lt;br /&gt;— на уровне маршрутизации раскидывать маршруты через разные интерфейсы. Проблем перового решения небудет, так как маршруты кешируются и последующие обращения к одному адресу будут идти через один и тот же интерфейс. Но балансировка будет не такая точная, и качая с одного сервера даже в несколько потоков не удастся достигнуть суммарной скорости двух каналов.&lt;br /&gt;&lt;br /&gt;Я выбрал для себя балансировку с помощью маршрутизации, так как мне была очень важна стабильная работа всех сайтов, ну и эта функциональность уже была в моем ядре, а файрвол пришлось бы патчить.&lt;br /&gt;&lt;br /&gt;Итак, приступим!&lt;br /&gt;&lt;br /&gt;Для начала определим переменные:&lt;br /&gt;$ cat /etc/balance/vars&lt;br /&gt;&lt;br /&gt;       1. #!/bin/bash&lt;br /&gt;       2.  &lt;br /&gt;       3. # LAN interface&lt;br /&gt;       4. IF0="eth1"&lt;br /&gt;       5.  &lt;br /&gt;       6. # WAN interface 1&lt;br /&gt;       7. IF1="eth0"&lt;br /&gt;       8.  &lt;br /&gt;       9. # WAN interface 2&lt;br /&gt;      10. IF2="ppp0"&lt;br /&gt;      11.  &lt;br /&gt;      12. IP1="194.9.xx.xx"&lt;br /&gt;      13. IP2="`ip addr show $IF2 | grep inet | awk '{print $2}'`"&lt;br /&gt;      14.  &lt;br /&gt;      15. # gateway 1&lt;br /&gt;      16. P1="194.9.xx.xx"&lt;br /&gt;      17. # gateway 2&lt;br /&gt;      18. P2="195.5.xx.xx"&lt;br /&gt;      19.  &lt;br /&gt;      20. # LAN netmask&lt;br /&gt;      21. P0_NET="192.168.0.0/24"&lt;br /&gt;      22. # WAN1 netmask&lt;br /&gt;      23. P1_NET="194.9.xx.xx/xx"&lt;br /&gt;      24. # WAN2 netmask&lt;br /&gt;      25. P2_NET="195.5.xx.xx/xx"&lt;br /&gt;      26.  &lt;br /&gt;      27.  &lt;br /&gt;      28. TBL1="provider1"&lt;br /&gt;      29. TBL2="provider2"&lt;br /&gt;      30.  &lt;br /&gt;      31. # Realtive weight of channels bandwidth&lt;br /&gt;      32. W1="2"&lt;br /&gt;      33. W2="1"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Добавим в файл /etc/iproute2/rt_tables две дополнительные таблицы маршрутизации:&lt;br /&gt;echo "1 provider1" &gt;&gt; /etc/iproute2/rt_tables&lt;br /&gt;echo "2 provider2" &gt;&gt; /etc/iproute2/rt_tables&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Теперь напишем скрипт, который будет прописывать все необходимые маршруты и правила файрвола:&lt;br /&gt;&lt;br /&gt;cat /etc/balance/routing.sh&lt;br /&gt;&lt;br /&gt;       1. #!/bin/bash&lt;br /&gt;       2.  &lt;br /&gt;       3. . /etc/balance/vars&lt;br /&gt;       4.  &lt;br /&gt;       5. echo "1" &gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;       6.  &lt;br /&gt;       7.  &lt;br /&gt;       8. ip route add $P1_NET dev $IF1 src $IP1 table $TBL1 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;       9. ip route add default via $P1 table $TBL1 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      10. ip route add $P2_NET dev $IF2 src $IP2 table $TBL2 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      11. ip route add default via $P2 table $TBL2 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      12.  &lt;br /&gt;      13. ip route add $P1_NET dev $IF1 src $IP1 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      14. ip route add $P2_NET dev $IF2 src $IP2&lt;br /&gt;      15.  &lt;br /&gt;      16. ip route add default via $P1 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      17.  &lt;br /&gt;      18. ip rule add from $IP1 table $TBL1 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      19. ip rule add from $IP2 table $TBL2 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      20.  &lt;br /&gt;      21.  &lt;br /&gt;      22. ip route add $P0_NET   dev $IF0 table $TBL1 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      23. ip route add $P2_NET   dev $IF2 table $TBL1 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      24. ip route add 127.0.0.0/8 dev lo  table $TBL1 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      25. ip route add $P0_NET   dev $IF0 table $TBL2 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      26. ip route add $P1_NET   dev $IF1 table $TBL2 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      27. ip route add 127.0.0.0/8 dev lo  table $TBL2 &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;      28.  &lt;br /&gt;      29. iptables -t nat -F POSTROUTING &lt;br /&gt;      30. iptables -t nat -A POSTROUTING -s $P0_NET -o $IF1 -j MASQUERADE       &lt;br /&gt;      31. iptables -t nat -A POSTROUTING -s $P0_NET -o $IF2 -j MASQUERADE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Этот набор команд обеспечивает маршрутизацию ответов через интерфейс, на котором был получен запрос, а так же маскарадинг а обоих интерфейсах.&lt;br /&gt;&lt;br /&gt;Теперь напишем скрипт, который будет определять, работатет ли тот или иной канал и соответственно менять записи шлюза по умолчанию.&lt;br /&gt;&lt;br /&gt;$ cat /etc/balance/check.sh&lt;br /&gt;&lt;br /&gt;       1. #!/bin/bash&lt;br /&gt;       2.  &lt;br /&gt;       3. . /etc/balance/vars&lt;br /&gt;       4.  &lt;br /&gt;       5. OLDIF1=0&lt;br /&gt;       6. OLDIF2=0&lt;br /&gt;       7.  &lt;br /&gt;       8. . /etc/balance/routing.sh&lt;br /&gt;       9. while true; do&lt;br /&gt;      10.  &lt;br /&gt;      11.  &lt;br /&gt;      12. ping -c 3 -s 100 $P1 -I $IF1 &gt; /dev/null&lt;br /&gt;      13. if [ $? -ne 0 ]; then&lt;br /&gt;      14.   echo "Failed IF1!"&lt;br /&gt;      15.   NEWIF1=0&lt;br /&gt;      16. else&lt;br /&gt;      17.   NEWIF1=1&lt;br /&gt;      18. fi&lt;br /&gt;      19.  &lt;br /&gt;      20. ping -c 3 -s 100 $P2 -I $IF2 &gt; /dev/null&lt;br /&gt;      21. if [ $? -ne 0 ]; then&lt;br /&gt;      22.   echo "Failed IF2!"&lt;br /&gt;      23.   NEWIF2=0&lt;br /&gt;      24. else&lt;br /&gt;      25.   NEWIF2=1&lt;br /&gt;      26. fi&lt;br /&gt;      27.  &lt;br /&gt;      28. if (( ($NEWIF1!=$OLDIF1) || ($NEWIF2!=$OLDIF2) )); then&lt;br /&gt;      29.   echo "Changing routes"&lt;br /&gt;      30.  &lt;br /&gt;      31.   if (( ($NEWIF1==1) &amp;&amp; ($NEWIF2==1) )); then&lt;br /&gt;      32.   echo "Both channels"&lt;br /&gt;      33.   ip route delete default&lt;br /&gt;      34.   ip route add default scope global nexthop via $P1 dev $IF1 weight $W1 \&lt;br /&gt;      35.     nexthop via $P2 dev $IF2 weight $W2 &lt;br /&gt;      36.   elif (( ($NEWIF1==1) &amp;&amp; ($NEWIF2==0) )); then&lt;br /&gt;      37.   echo "First channel"&lt;br /&gt;      38.   ip route delete default&lt;br /&gt;      39.   ip route add default via $P1 dev $IF1&lt;br /&gt;      40.   elif (( ($NEWIF1==0) &amp;&amp; ($NEWIF2==1) )); then&lt;br /&gt;      41.   echo "Second channel"&lt;br /&gt;      42.   ip route delete default&lt;br /&gt;      43.   ip route add default via $P2 dev $IF2&lt;br /&gt;      44.   fi&lt;br /&gt;      45.   &lt;br /&gt;      46. else&lt;br /&gt;      47.   echo "Not changed"&lt;br /&gt;      48. fi&lt;br /&gt;      49.  &lt;br /&gt;      50. OLDIF1=$NEWIF1&lt;br /&gt;      51. OLDIF2=$NEWIF2&lt;br /&gt;      52. sleep 3&lt;br /&gt;      53. done&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Работу канала проверяем пингуя шлюз, и если нет ответа на 3 пинга подряд — мы считаем, что канал упал, и соответственно исключаем его из таблицы маршрутизации.&lt;br /&gt;&lt;br /&gt;Таким образом, если работают оба канала:&lt;br /&gt;&lt;br /&gt;$ ip route&lt;br /&gt;195.5.xx.xx dev ppp0 proto kernel scope link src 95.133.xx.xx&lt;br /&gt;194.9.xx.xx/xx dev eth0 proto kernel scope link src 194.9.xx.xx&lt;br /&gt;192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.75&lt;br /&gt;default&lt;br /&gt;nexthop via 194.9.xx.xx dev eth0 weight 2&lt;br /&gt;nexthop via 195.5.xx.xx dev ppp0 weight 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Итого имеем два default gw, первый с весом 2 и второй с весом 1. Тоесть через первый канал пойдет в два раза больше трафика, чем через второй.&lt;br /&gt;&lt;br /&gt;Для того, чтобы кастомизировать эти скрипты под ваши нужды необходимо настроить значения в файле vars, остальные скрипты практически не требуют настройки.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Здесь я хочу рассказать о настройке шлюза на Linux'e, для использования 2-х (и более) провайдеров интернета.&lt;br /&gt;Для настройки мы будем использовать возможности iptables и утилиты ip из пакета, который как правило называется iproute2. А для решения поставленной задачи пакеты мы будем маршрутизировать на основе "policy routing" (т.е. маршрутизация на основе политик), а не "destination routing" (маршрутизация на основе адреса получателя).&lt;br /&gt;Итак, приступим. Для начала определимся с переменными:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    #!/bin/bash&lt;br /&gt;&lt;br /&gt;    IF1=eth1&lt;br /&gt;    IF2=eth2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IF - это сетевые интерфейсы, которые смотрят в интернет, через наших провайдеров&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    IP1=10.10.10.10&lt;br /&gt;    IP2=20.20.20.20&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IP - это наши внешние IP-адреса, которые нам выдали провайдеры&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    P1=10.10.10.1&lt;br /&gt;    P2=20.20.20.1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P - это шлюзы по умолчанию у наших провайдеров&lt;br /&gt;Policy routing позволяет выполнять маршрутизацию на основе адреса источника поэтому перечислим сервера которые будут учавствовать:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    SRV11=192.168.0.11&lt;br /&gt;    SRV12=192.168.0.12&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Здесь SRV11 и SRV12 - это два айпишника одного и тогоже сервера (это важно!), это позволяет одному серверу обрабатывать входящие соединения с двух провайдеров. Конечно же, существуют и другие варианты реализовать эту возможность, но я буду использовать именно айпишники, мне кажется для начала так будет проше.&lt;br /&gt;Ну а теперь самое интересное - пишем правило для маршрутизации.&lt;br /&gt;Первое что мы должны сделать это добавить свои таблицы маршрутизации, для этого необходимо отредактировать файл /etc/iproute2/rt_tables, например так:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    #echo "101 T1" &gt;&gt; /etc/iproute2/rt_tables&lt;br /&gt;    #echo "102 T2" &gt;&gt; /etc/iproute2/rt_tables&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Заполняем первую таблицу:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    ip route add $P1_NET dev $IF1 src $IP1 table T1&lt;br /&gt;    ip route add default via $P1 table T1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Тоесть мы добавляем маршруты, в которых указываем что попасть в подсеть первого провайдера можно через первый интерфейс. Во второй строчке мы добавляем шлюз по умолчанию.&lt;br /&gt;Тоже самое и во второй:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    ip route add $P2_NET dev $IF2 src $IP2 table T2&lt;br /&gt;    ip route add default via $P2 table T2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Затем разберемся с основной таблицей, которая называется "main". Ее мы видим, когда набираем ip route:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    ip route add $P1_NET dev $IF1 src $IP1&lt;br /&gt;    ip route add $P2_NET dev $IF2 src $IP2&lt;br /&gt;    ip route add default via $P1 metric 10&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Первые две строчки аналогичны предыдущим записям, только опущено "table main". В третьей строчке задается маршрут по умолчанию с указанием метрики.&lt;br /&gt;На этом с маршрутизацией разобрались, чтобы посмотреть что у нас находится в таблице маршрутизации можно выполнить команду "ip route show table &lt;имя таблицы&gt;". Теперь приступим к правилам. Как раз по правилам и будет приниматься решения какой пакет по какой таблице будет маршрутизироваться.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    ip rule add from $IP1 table T1&lt;br /&gt;    ip rule add from $IP2 table T2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Здесь мы указали, что если адрес источника равен первому внешнему адресу, тогда маршрутизация выполняется по таблице T1. Аналогично вторая запись.&lt;br /&gt;И наконец самое интересное:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    ip rule add from $SRV11 fwmark 10 table T1&lt;br /&gt;    ip rule add from $SRV12 fwmark 20 table T2&lt;br /&gt;&lt;br /&gt;Используя iptables мы можем маркировать интересующие нас пакеты и маршрутизировать их на основе этих меток. Собственно здесь мы добавили два правила: для пакетов, имеющих метку 10, использовать таблицу T1, для пакетов с меткой 20 - T2. Сейчас возможно не очень понятно для чего это может потребоваться, но из правил iptables все станет ясно. Для просмотра правил выполняем "ip rule", при маршрутизации они проверяются по порядку.&lt;br /&gt;Ну вот половина работы сделана осталось написать правила для iptables, об этом мы поговорим во второй части.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1113817532626665768?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1113817532626665768/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/blog-post_6144.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1113817532626665768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1113817532626665768'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/blog-post_6144.html' title='использование двух каналов инет'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-3056437479390116635</id><published>2009-03-12T07:29:00.000-07:00</published><updated>2009-03-12T07:30:31.714-07:00</updated><title type='text'>squid - AD</title><content type='html'>http://www.flatmtn.com/article/setting-squid-ntlm-auth&lt;br /&gt;http://www.papercut.com/kb/Main/ConfiguringSquidProxyToAuthenticateWithActiveDirectAd&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-3056437479390116635?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/3056437479390116635/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/squid-ad.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3056437479390116635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3056437479390116635'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/squid-ad.html' title='squid - AD'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1922181782267033178</id><published>2009-03-12T07:24:00.001-07:00</published><updated>2009-03-12T07:25:00.012-07:00</updated><title type='text'>Отравка безплатного факса</title><content type='html'>http://faxonline.com.ua/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1922181782267033178?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1922181782267033178/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/blog-post_3429.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1922181782267033178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1922181782267033178'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/blog-post_3429.html' title='Отравка безплатного факса'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-6437706423825457500</id><published>2009-03-12T07:04:00.000-07:00</published><updated>2009-03-12T07:05:12.481-07:00</updated><title type='text'>Рассылка дисков - и как это всё происходит на самом деле</title><content type='html'>http://mydebianblog.blogspot.com/2009/03/blog-post_09.html&lt;br /&gt;&lt;br /&gt;Как-то у меня коллега Garfeild спросил, как лучше упаковывать диски при отправке. Думаю, эта информация будет полезна тем, кто решил / решает заняться этим хлопотным, но полезным делом. Накопленные ошибки и наступленные грабли выложены ниже&lt;br /&gt;&lt;br /&gt;Предисловие&lt;br /&gt;Время от времени при рассчётах за оплату дисков для отправки приходится сталкиваться с откровенно хамскими личностями. Они начинают высчитывать до копейки стоимость отправлений, придираются к непрезентабельной упаковке, требуют десятки дисков за себестоимость носителей и начинают сокрушаться о "погибели опенсорс-духа" вообще и в моём лице в особенности. Таким гражданам я по возможности вежливо отказываю и / или посылаю в линуксцентр. Там им называют совсем другие цены, и желающие купить по почте 20 дистрибутивов за 200 рублей в графе "Итого" наблюдают астрономические цифры.&lt;br /&gt;&lt;br /&gt;Так вот, ежели кто сомневается в духе опенсорс - отвечаю словами Ричарда Столмена: "free market from any kind", то бишь "свободный рынок чего угодно". Есть я, есть местные аксакалы и есть Линуксцентр/Nixp.ru. Выбирайте.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Технология отправки дисков почтой&lt;br /&gt;Очень надеюсь, что это не прочтут работники почтовых отделений,&lt;br /&gt;в которых я отправляю письма :-)&lt;br /&gt;&lt;br /&gt;Этап 0. Формулировка заказа&lt;br /&gt;Добиться точной формулировки заказа и точного адреса. Это бывает нелегко: постоянные жители Интернета в ряде случаев не помнят свой точный адрес, а некоторые не подозревают о существовании почтовых индексов. Заказ должен формулироваться точно, никаких разночтений. Способы оплаты - минимум геморроя, минимум экзотики. Лучше всего сбербанком, на мобильник или электронными деньгами. Переводить лучше в систему электронных денег, которая позволяет быстро отслеживать приход и выводить деньги в наличность / счёт в российском банке. У меня это яндекс.деньги.&lt;br /&gt;Короче:&lt;br /&gt;&lt;br /&gt;    * точный (документальный) заказ&lt;br /&gt;    * точный (полный) адрес&lt;br /&gt;    * способ оплаты&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Этап 1. Подготовка&lt;br /&gt;Диски лучше всего покупать на шпинделе, и сразу штук 100 - дешевле и удобнее. Никаких no-name / Мань-Лянь и прочей безродной китайщины - только честную китайщину типа Verbatim и TDK.&lt;br /&gt;&lt;br /&gt;Далее, на почте закупаемся конвертами за 1р30коп (они формата 23х16 см). Именно таких - в них помещается с запасом для упаковки диск по высоте. И по ширине можно запихнуть два в ряд, если очень постараться. В такой конверт без скрипа влезает 8-9 дисков. И ещё парочку покупаем полноформатных конвертов А4, за 4 рубля. Туда насовать дисков можно до одури.&lt;br /&gt;&lt;br /&gt;Кроме того, пойти на рынок и купить простой китайский клей-карандаш, фломастер для дисков, шариковую ручку и скотч, а так же где-нибудь найти пупырчатый упаковочный материал (можно купить или, идя по улице, смотреть по сторонам и не упускать момент) и картонные коробки - например, от купленного оборудования.&lt;br /&gt;&lt;br /&gt;Кроме того, заводим таблицу (или базу данных) - для отслеживания заказов и их состояния (если планируются масштабные отправки дисков).&lt;br /&gt;&lt;br /&gt;    Сразу отвечаю на вопрос: почему я отправляю только письмами и никогда - посылками. Очень просто: заказное письмо - самый дешёвый и технологичный вид отправлений. Легко и просто наклепать десяток заказных писем и не мучаться с посылками, заполняя на почте описи и платя за всё это весьма ощутимые деньги.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Короче, потребуется:&lt;br /&gt;&lt;br /&gt;    * конверты 23x16 см и 21х29см&lt;br /&gt;    * клей-карандаш&lt;br /&gt;    * шариковая ручка&lt;br /&gt;    * фломастер для дисков&lt;br /&gt;    * скотч&lt;br /&gt;    * упаковка (картон и пупырчатый полиэтилен)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Этап 2. Пропаливание&lt;br /&gt;Оплата получена - можно палить диски. Лучше это поставить на скрипты - тыкать по цветастым кнопкам быстро надоест. Лично у меня каждый диск проходит проверку на совпадение контрольных md5-сумм после прожига. Это удлиняет время обработки заказа, но даёт гарантию, что диск читается.&lt;br /&gt;&lt;br /&gt;    Поначалу я иногда отправлял диски с упреждением - то есть ещё до оплаты. В честности некоторых линуксоидов пришлось разочароваться: от троих деньги так и не пришли. Так что после этого я жёстко следую формуле "утром деньги - вечером стулья", отступая от неё лишь в крайних случаях (вопрос жизни и смерти / прокуратура стучит сапогами у дверей по поводу ворованного софта / угроза выхода из строя стратегических объектов жизнеобеспечения).&lt;br /&gt;&lt;br /&gt;Скрипты пропаливания и проверки есть у меня в блоге. Готовые диски подписываются, и сразу складываются на уже заполненный конверт - чтобы потом не забыть, что и кому отправляется.&lt;br /&gt;Короче:&lt;br /&gt;&lt;br /&gt;    * пропаливаем диск&lt;br /&gt;    * проверяем md5-суммы&lt;br /&gt;    * подписываем диск&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Этап 3. Упаковка&lt;br /&gt;Здесь начинается всё самое весёлое. Упаковка! То, о чём так часто забывают скрупулёзные и скуповатые рыцари духа Опенсорс. Если вы просто накидаете дисков в конверт и отправите - к месту назначения придёт кучка сверкающих обломков.&lt;br /&gt;&lt;br /&gt;Методом проб и ошибок найдены несколько технологий упаковки, которые дают хороший результат: диски приходят в нормальном состоянии и всё читается. Читаются даже те, что приходят с возвратом! Итак:&lt;br /&gt;&lt;br /&gt;    3.1 Картон + пупырчатый полиэтилен + бумага&lt;br /&gt;    Берём картонку, вдвое превышающую по формату конверт, сгибаем пополам, вкладываем туда отрезанный под размер пупырчатый полиэтилен (это очень эротичное занятие, поверьте мне). Теперь накладываем туда диски, стараясь класть их в "шахматном" порядке. Разделяем старой бумагой / газетой. В итоге получился бутерброд из дисков, картона и пупырышков. Теперь - важный момент! - несильно сжимаем этот бутерброд и перетягиваем его скотчем.&lt;br /&gt;    Скотчем клеем не только по вертикали, но и по горизонтали, стягивая друг к другу края "бутерброда" из дисков.&lt;br /&gt;    Если этого не сделать, диски в процессе транспортировки будут болтаться по конверту и поцарапаются!&lt;br /&gt;&lt;br /&gt;Это если дисков мало (до 8 штук), а если много (больше 10) - такой способ не пройдёт. Тут нам пригодятся крупные конверты и старые глянцевые (или не очень) журналы, а так же красочные буклеты от купленного когда-то железа.&lt;br /&gt;&lt;br /&gt;    3.2 Картон + буклет&lt;br /&gt;    Берём журнал / буклет и набиваем его дисками, помещая между страницами. Шахматный порядок дисков тут тоже важен. Потом подкладываем под одну сторону картонку (для жёсткости), на первую и последнюю станицу вкладываем пупырчатую упаковку и всё это перетягиваем скотчем. Получится тоже бутерброд, только больше :-)&lt;br /&gt;&lt;br /&gt;Ешё более простой и демократичный способ:&lt;br /&gt;&lt;br /&gt;    3.3. Части книги&lt;br /&gt;    Можно использовать ненужные книжки или методические пособия. Разрываем их на нужное количество половинок и вкладываем диски в шахматном порядке между страниц. Первую и последнюю страницу, содержащие диски, лучше всего склеивать скотчем, чтобы диски не болтались при транспортировке. Доходит превосходно, как и в предыдущих случаях.&lt;br /&gt;&lt;br /&gt;Теперь осталось это всунуть в конверт - море положительных эмоций гарантировано. В деле запихивания упакованных дисков в конверт могут пригодиться навыки игры в тетрис, ножницы и линейка.&lt;br /&gt;&lt;br /&gt;Даже если вам удастся всё это засунуть в конверт, его ещё надо заклеить. Про клей-карандаш было сказано совсем не зря: если вы думаете, что за рупь-тридцать вам густо намажут полоску конверта клеем - время в этом разочароваться.&lt;br /&gt;&lt;br /&gt;Намазываем густо клей-карандашом тыльную сторону конверта и, в разумных пределах прикладывая грубую физическую силу, пытаемся две половинки конверта свести. Яростно трём клеевую полоску конверта, чтобы оно-таки схватилось с бумагой.&lt;br /&gt;&lt;br /&gt;    Внимание! Не вздумайте заклеивать конверт скотчем вместо клея! Это вправе делать только сами почтовики на пересылочных пунктах, о чём на конверте ставится печать: "Поступило в Н-ск МСЦ закленное клейкой лентой". Мне в своё время за это на почте надавали по шее. Только клеем, причём так, чтобы у работников почты не возникло и мысли о лёгком вскрытии конверта. При сомнениях о содержимом письма и плохой проклеенности они могут полезть внутрь.. и увидев там диски, с чувством выполненного долга разводят вас на ценное ускоренное письмо или того хуже посылку. Но об этом позже.&lt;br /&gt;&lt;br /&gt;Теперь осматриваем этот здоровенный и пухлый конвертище - и если видим, что он начинает расходиться по швам, берём клей-карандаш снова и проходимся по швам.&lt;br /&gt;&lt;br /&gt;Ну и что мы после этого говорим тем, кто жадничает нам двадцатник? :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Этап 4. Отправка.&lt;br /&gt;Такое письмо (не менее 50 грамм) в почтовый ящик у почтамта опускать не стоит, ибо это уже не простое письмо, а как минимум заказное, что стоит больших денег. Так что начинается психология, партизанщина и дипломатия: вам предстоит завалить босса уровняобщение с сотрудниками почты.&lt;br /&gt;&lt;br /&gt;Значит, так: посылать диски заказными письмами нельзя. Это считается "товарным вложением" и если сотрудник почты прознается, то завернёт вас на ценное ускоренное письмо / посылку. Это влетит в 80-100 рублей и больше, в зависимости от веса и дальности. Заказное письмо стоит 20-25 рублей, максимум - 30.&lt;br /&gt;&lt;br /&gt;    Насчёт "товарных вложений" - тут ваша совесть должна быть кристально чиста: вы пересылаете лицензионное опенсорсное ПО, способствуя распространению никс-систем и вытеснению подлой проприетарщины.&lt;br /&gt;    На самом деле, почтовикам просто не нужна дополнительная ответственность за пересылку хрупкого предмета в конверте - ведь в случае чего, чек останется у вас и вы можете крупно попортить нервы почте (дураков хватает и прецеденты были). Но если диски упакованы по технологиям, описанным выше - всё отлично доходит, дёшево и быстро, и все счастливы.&lt;br /&gt;&lt;br /&gt;Стало быть, ваша задача - чтобы сотрудник почты об этом не догадался либо получил от вас бодрый энергичный ответ, который его успокоит. Поэтому при вопросах "что в письме" и "почему такое пухлое" бодро отвечаем, что это книжка / буклет - и никаких придумок на ходу.&lt;br /&gt;&lt;br /&gt;Если письмо заклеено не плотно - сотрудник почты может его вскрыть. Мало ли, что вы собрались посылать - может, оно тикает и вибрирует? :-)&lt;br /&gt;&lt;br /&gt;    Именно поэтому у Линуксцентра так дорого, а у меня дешевле: они - компания, и распорядок Почты для них закон. Поэтому они отправляют посылками и с солидной задержкой (никто специально ради вас на почту не ломанётся). Для частных лиц устав почты носит, скажем так, рекомендательный характер :-)&lt;br /&gt;&lt;br /&gt;Так вот, с чувством собственной правоты, которое "достигается упражнением", убеждаем почтаря в том, что вы посылаете книжку или буклетик. Отвечаем чётко и убедительно, с ясным взглядом выдерживая этот допрос с пристрастием.&lt;br /&gt;&lt;br /&gt;Когда сотруднику почты надоест это дело, скорее всего, конверты отправят и чек отдадут (сохраняйте его обязательно!). Но если вы будете этим промышлять регулярно, ваша физиономия быстро примелькается, и допросы с пристрастем могут быть более длительными и коварными - здесь всё зависит от сотрудника почты. Многим наплевать, что вы посылаете, но есть и сугубо принципиальные товарищи. Тут главное ни в коем случае не хамить и быть предельно вежливым - почтовых отделений поблизости мало даже в Москве, и плевать в колодец совершенно не стоит.&lt;br /&gt;&lt;br /&gt;Это к слову о партизанщине: разузнайте, где ещё в пределах вашей досягаемости есть почтовые отделения. Отправлять письма можно откуда угодно - не обязательно с почты по месту жительства. Если вы занимаетесь отправкой таких писем часто, есть смысл наведываться в разные почтовые отделения.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Этап 5. После отправки.&lt;br /&gt;Известите того, кому посылаете диски, что они отправлены. Лучше приложить отсканированный чек с почты - так можно отследить на сайте почты, что диски на самом деле отправлены.&lt;br /&gt;Со сроками дохода всё сложнее: обычно - неделя или полторы. От дальности зависит слабо: в Петропавловск-Камчатский одно письмо долетело за четыре дня, а в Вологду тащилось месяц.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Резюме&lt;br /&gt;Здесь я постарался описать технологию пересылки дисков - может быть, кто-то захочет заниматься отправкой дисков. И чтобы получатель не рассматривал красивые обломки вместо долгожданного диска с дистрибутивом, я поделился своим скромным (более сотни почтовых отправлений) опытом по этой части.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Эпилог&lt;br /&gt;- "Виренс, ну и зачем тебе всё это надо!?" - спросит, может быть, любопытствующий читатель. Отвечаю:&lt;br /&gt;&lt;br /&gt;   1. Время, потраченное вместо флейма на ЛОРе, можно использовать лучше. Например, помогая распространению *никс-систем.&lt;br /&gt;   2. Помогать другим людям вообще приятно. Особенно получая письма, что диски пришли :-)&lt;br /&gt;   3. Рассылка дисков не приносит огромных прибылей, но на оплату интернета, мобильника и коммунальных платежей вполне хватет.&lt;br /&gt;   4. И, наконец, философское: когда солнце моих дней зайдёт окончательно, и меня, может быть, спросят "так что ты сделал, чтобы тот мир стал немного лучше?" - и мне будет, что ответить :-)&lt;br /&gt;&lt;br /&gt;В общем, рассылка дисков - дело интересное, хлопотное, увлекательное, забавное, поучительное и до некоторой степени прибыльное.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-6437706423825457500?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/6437706423825457500/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/blog-post_12.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6437706423825457500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6437706423825457500'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/blog-post_12.html' title='Рассылка дисков - и как это всё происходит на самом деле'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-1792634217976272644</id><published>2009-03-12T07:02:00.000-07:00</published><updated>2009-03-12T07:03:11.911-07:00</updated><title type='text'>Создание сервера видеоконференций на базе OpenMCU и GnuGK (voip gatekeeper openmcu linux)</title><content type='html'>http://www.opennet.ru/base/net/openmcu_gnugk.txt.html&lt;br /&gt;&lt;br /&gt;Введение&lt;br /&gt;&lt;br /&gt;Эта статья призвана немного восполнить пробел практически полного отсутствия &lt;br /&gt;информации о проекте OpenMCU на русском языке. Пару раз эта тема проскакивала здесь &lt;br /&gt;на opennet.ru и на форуме ixbt.com и, собственно, из этих источников я и узнал&lt;br /&gt;о существовании OpenMCU :) А вот, как его все-таки использовать, &lt;br /&gt;информации было крайне мало и она была неполная. На английском языке ее, &lt;br /&gt;по-моему, также не густо, лучшее, что я нашел, было в зарубежных списках &lt;br /&gt;рассылки, опубликованных на http://osdir.com/ml/telephony.openh323.general/ ,&lt;br /&gt;небольшом мануале на openmcu (man openmcu) и сайте, посвященном GnuGK  http://www.gnugk.org/, &lt;br /&gt;который, в отличие от OpenMCU, куда лучше документирован.&lt;br /&gt;Буду очень благодарен за любые замечания и улучшения.&lt;br /&gt;&lt;br /&gt;Дистрибутив:&lt;br /&gt;Я использовал Linux OpenSUSE 10.3, версия ядра 2.6.22.5-31&lt;br /&gt;&lt;br /&gt;Версии пакетов:&lt;br /&gt;openmcu-2.2.0-104 (сервер видеоконференций, использующий протокол H323)&lt;br /&gt;gnugk-2.2.5-65 (H323 Gatekeeper)&lt;br /&gt;Используемые библиотеки:&lt;br /&gt;openh323-1.19.0.1-106&lt;br /&gt;pwlib-1.10.7-61&lt;br /&gt;&lt;br /&gt;Процесс установки описывать не буду, никаких трудностей в нем нет, положим, &lt;br /&gt;все необходимое уже установлено.&lt;br /&gt;&lt;br /&gt;По поводу того, что такое  протокол H323, привратник, MCU и т.д. &lt;br /&gt;можно почитать, например, Здесь&lt;br /&gt;и Здесь&lt;br /&gt;&lt;br /&gt;Как все это работает?&lt;br /&gt;Клиент регистрируется у привратника (GnuGK) под именем, скажем,  nm1. Затем набирает &lt;br /&gt;код выхода на openmcu, например, "02" и привратник соединяет его с сервером видеоконференций (OpenMCU), &lt;br /&gt;где nm1 ждет остальных участников. Все остальные попадают на конференцию точно так же.  &lt;br /&gt;Для всех собравшихся используется default room  - комната видеоконференции по умолчанию.&lt;br /&gt;Привратник не является обязательным компонентом, но дает удобную возможность использовать &lt;br /&gt;короткие символьные имена вместо ip-адресов.  Так, все зарегестрировшиеся у привратника могут &lt;br /&gt;также вызывать друг друга по имени, например, клиент зарегестрировавшийся, как nm2 может вызвать nm1 &lt;br /&gt;по его имени и организовать с ним видеообщение на 2 участников (point-to-point). &lt;br /&gt;Тогда openmcu не используется. &lt;br /&gt;&lt;br /&gt;Конфигурация GnuGK:&lt;br /&gt;/etc/gnugk.ini&lt;br /&gt;&lt;br /&gt;        [Gatekeeper::Main]&lt;br /&gt;        FourtyTwo=42&lt;br /&gt;        Name=GNU_Gk&lt;br /&gt;        ;EndpointSuffix=_gnugk&lt;br /&gt;        Home=127.0.0.1&lt;br /&gt;        StatusTraceLevel=2&lt;br /&gt;        UseBroadcastListener=0&lt;br /&gt;        TimestampFormat=ISO8601&lt;br /&gt;        EndpointSignalPort=1721&lt;br /&gt;        EncryptAllPasswords=0&lt;br /&gt;        UseMulticastListener=0&lt;br /&gt;        StatusPort=7000  #Порт мониторинга&lt;br /&gt;        &lt;br /&gt;        SignalCallId=1&lt;br /&gt;        &lt;br /&gt;        [GkStatus::Auth] #Здесь задаются правила доступа к &lt;br /&gt;        #мониторингу GnuGK&lt;br /&gt;        rule=explicit  #Доступ осуществляется на основе ip&lt;br /&gt;        192.168.2.106=allow #Хост с которого можно мониторить GnuGK&lt;br /&gt;        Shutdown=allow  #Разрешено отключать gnugk в мониторинге&lt;br /&gt;        &lt;br /&gt;        #Самое важное:&lt;br /&gt;        #Описываем постоянные точки подключения, то есть те, которые будут &lt;br /&gt;        #постоянно храниться в регистрационной таблице привратника&lt;br /&gt;&lt;br /&gt;        [RasSrv::PermanentEndpoints]&lt;br /&gt;        127.0.0.1:1720=mcu;02  #наш mcu &lt;br /&gt;&lt;br /&gt;        [RasSrv::GWPrefixes]&lt;br /&gt;        mcu=02   #префикс выхода на него&lt;br /&gt;&lt;br /&gt;        #Остальное можно не трогать&lt;br /&gt;        [RasSrv::RRQFeatures]&lt;br /&gt;        AcceptEndpointIdentifier=1&lt;br /&gt;        AcceptGatewayPrefixes=1&lt;br /&gt;        OverwriteEPOnSameAddress=1&lt;br /&gt;        IRQPollCount=0&lt;br /&gt;&lt;br /&gt;        [RasSrv::ARQFeatures]&lt;br /&gt;        CallUnregisteredEndpoints=0&lt;br /&gt;        ArjReasonRouteCallToGatekeeper=0&lt;br /&gt;&lt;br /&gt;        [RoutedMode]&lt;br /&gt;        GKRouted=1&lt;br /&gt;        H245Routed=1&lt;br /&gt;        CallSignalPort=1721&lt;br /&gt;        AcceptNeighborCalls=1&lt;br /&gt;        AcceptUnregisteredCalls=1&lt;br /&gt;        RemoveH245AddressOnTunneling=0&lt;br /&gt;        RemoveCallOnDRQ=1&lt;br /&gt;        DropCallsByReleaseComplete=1&lt;br /&gt;        SendReleaseCompleteOnDRQ=1&lt;br /&gt;        SupportNATedEndpoints=1&lt;br /&gt;        TranslateFacility=1&lt;br /&gt;&lt;br /&gt;        [Proxy]&lt;br /&gt;        Enable=1&lt;br /&gt;        ProxyForNAT=1&lt;br /&gt;        RTPPortRange=1024-65535&lt;br /&gt;&lt;br /&gt;        [RoutingPolicy]&lt;br /&gt;        00=explicit,internal&lt;br /&gt;        02=internal,explicit&lt;br /&gt;        Default=explicit,internal,numberanalysis&lt;br /&gt;&lt;br /&gt;        [CallTable]&lt;br /&gt;        GenerateNBCDR=0&lt;br /&gt;        GenerateUCCDR=1&lt;br /&gt;&lt;br /&gt;        [Gatekeeper::Auth]&lt;br /&gt;        FileIPAuth=optional;RRQ&lt;br /&gt;        SQLPasswordAuth=required;RRQ&lt;br /&gt;        SQLAuth=required;ARQ,Setup&lt;br /&gt;&lt;br /&gt;        [Gatekeeper::Acct]&lt;br /&gt;        SQLAcct=required;start,update,stop&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Подробное описание каждого из параметров можно найти на http://www.gnugk.org/gnugk-manual.html&lt;br /&gt;&lt;br /&gt;Работу GnuGK можно мониторить подключившись к серверу на 7000 порт.&lt;br /&gt;Например, мой сервер - 192.168.3.2&lt;br /&gt;&lt;br /&gt;        telnet 192.168.3.2 7000&lt;br /&gt;&lt;br /&gt;        Version:&lt;br /&gt;        Gatekeeper(GNU) Version(2.2.5) Ext(pthreads=1,radius=1,mysql=0,pgsql=0,firebird=0,large_fd&lt;br /&gt;        set=0,crypto/ssl=1) Build(Sep 25 2007, 22:47:36) Sys(Linux i686 2.6.22.5-31-default)&lt;br /&gt;        GkStatus: Version(2.0) Ext()&lt;br /&gt;        Toolkit: Version(1.0) Ext(basic)&lt;br /&gt;        Startup: Thu, 26 Feb 2009 14:09:41 +0600   Running: 0 days 23:41:38;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Конфигурация OpenMCU&lt;br /&gt;&lt;br /&gt;OpenMCU по умолчанию хранит свой конфиг в &lt;br /&gt;&lt;br /&gt;        ~/.pwlib_config/openmcu.ini&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Поначалу конфига нет в этой директории, чтобы он появился, можно &lt;br /&gt;подключиться к openmcu через веб-интерфейс (про это - ниже), заполнить &lt;br /&gt;необходимые поля, нажать Accept и конфиг будет создан.&lt;br /&gt;&lt;br /&gt;        [Parameters]&lt;br /&gt;        Username=mcu&lt;br /&gt;        Password=*******  #Пароль здесь указывать не надо, это &lt;br /&gt;        #можно сделать через веб-интерфейс, а здесь хранится только хэш&lt;br /&gt;        Log Level=4&lt;br /&gt;        HTTP Certificate=server.pem&lt;br /&gt;        HTTP Port=1420  &lt;br /&gt;        Gatekeeper Mode=No gatekeeper #Не использовать регистрацию у &lt;br /&gt;        #привратника&lt;br /&gt;        #Далее идут различные параметры, связанные с обслуживанием &lt;br /&gt;        #видеоконференции, &lt;br /&gt;        #можно все оставить, как есть, все нормально работает с дефолтовыми &lt;br /&gt;        #параметрами&lt;br /&gt;        Interface Array Size=0&lt;br /&gt;        Enable video=True&lt;br /&gt;        Video frame rate=10&lt;br /&gt;        Video quality=10&lt;br /&gt;        Default room=room101&lt;br /&gt;        Room time limit=0&lt;br /&gt;        Connecting WAV File=/usr/sbin/connecting.wav&lt;br /&gt;        Entering WAV File=/usr/sbin/entering.wav&lt;br /&gt;        Leaving WAV File=/usr/sbin/leaving.wav&lt;br /&gt;        Call log filename=/var/log/openmcu/opemcu.log&lt;br /&gt;        Force split screen video=False&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Для описания этих параметров читайте man на openmcu. &lt;br /&gt;&lt;br /&gt;Как уже говорилось, настраивать openmcu можно также через web-интерфейс.&lt;br /&gt;Для этого нужно набрать в браузере https://your-MCU-ip:1420/ &lt;br /&gt;&lt;br /&gt;Доступны следующие опции:&lt;br /&gt;* Parameters &lt;br /&gt;* MCU Status &lt;br /&gt;* Invite user to conference &lt;br /&gt;&lt;br /&gt;С помощью Parametrs можно производить настройку сервера&lt;br /&gt;В MCU status можно мониторить его текущее состояние. Очень полезная вещь!&lt;br /&gt;Invite user to conference - отправить пользователю приглашение на конференцию &lt;br /&gt;(не понял, как это должно работать:))&lt;br /&gt;&lt;br /&gt;Для отладки сервисов можно использовать команды&lt;br /&gt;&lt;br /&gt;        gnugk -c имя_конфига -ttt (trace - расширенный вывод данных)&lt;br /&gt;        openmcu -i имя_конфига  -cx (запускать как обычную программу с выводом данных на экран) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Чтобы сервисы автоматически запускались при старте, надо создать их стартовые скрипты и &lt;br /&gt;положить их (в зависимости от дистрибутива) в /etc/rc.d/ или /etc/init.d/&lt;br /&gt;&lt;br /&gt;Сами скрипты тоже могут отличаться в зависимости от используемого дистрибутива.&lt;br /&gt;Вообще-то эти скрипты обычно идут вместе с пакетом (или архивом с исходниками) &lt;br /&gt;программы, но для openmcu он отсутствовал, а для gnugk я немного &lt;br /&gt;изменил строчку запуска&lt;br /&gt;&lt;br /&gt;        startproc $OPENGK_BIN -c /etc/gnugk.ini -o  /var/log/gnugk/gnugk.log -t &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Скрипт для запуска openMCU я на скорую руку слепил из шаблона для стартовых &lt;br /&gt;скриптов /etc/init.d/skeleton&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# /etc/init.d/openmcu&lt;br /&gt;#&lt;br /&gt;### BEGIN INIT INFO&lt;br /&gt;# Provides:          openMCU&lt;br /&gt;# Required-Start:    $network $syslog $remote_fs&lt;br /&gt;# Should-Start: $time ypbind smtp&lt;br /&gt;# Required-Stop:     $syslog $remote_fs&lt;br /&gt;# Should-Stop: $time ypbind smtp&lt;br /&gt;# Default-Start:     3 5&lt;br /&gt;# Default-Stop:      0 1 2 6&lt;br /&gt;# Short-Description: OpenMCU &lt;br /&gt;# Description:       Start openMCU &lt;br /&gt;### END INIT INFO&lt;br /&gt;# &lt;br /&gt;&lt;br /&gt;FOO_BIN="/usr/sbin/openmcu -d"&lt;br /&gt;MCU_BIN="/usr/sbin/openmcu"&lt;br /&gt;&lt;br /&gt;test -x $MCU_BIN || { echo "$MCU_BIN not installed"; &lt;br /&gt;        if [ "$1" = "stop" ]; then exit 0;&lt;br /&gt;        else exit 5; fi; }&lt;br /&gt;&lt;br /&gt;. /etc/rc.status&lt;br /&gt;&lt;br /&gt;# Reset status of this service&lt;br /&gt;rc_reset&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt;    start)&lt;br /&gt;        echo -n "Starting OpenMCU "&lt;br /&gt;        ## Start daemon with startproc(8). If this fails&lt;br /&gt;        ## the return value is set appropriately by startproc.&lt;br /&gt;        /sbin/startproc $FOO_BIN&lt;br /&gt;&lt;br /&gt;        # Remember status and be verbose&lt;br /&gt;        rc_status -v&lt;br /&gt;        ;;&lt;br /&gt;    stop)&lt;br /&gt;        echo -n "Shutting down OpenMCU"&lt;br /&gt;        ## Stop daemon with killproc(8) and if this fails&lt;br /&gt;        ## killproc sets the return value according to LSB.&lt;br /&gt;&lt;br /&gt;        /sbin/killproc -TERM $MCU_BIN&lt;br /&gt;&lt;br /&gt;        # Remember status and be verbose&lt;br /&gt;        rc_status -v&lt;br /&gt;        ;;&lt;br /&gt;    try-restart|condrestart)&lt;br /&gt;        ## Do a restart only if the service was active before.&lt;br /&gt;        ## Note: try-restart is now part of LSB (as of 1.9).&lt;br /&gt;        ## RH has a similar command named condrestart.&lt;br /&gt;        if test "$1" = "condrestart"; then&lt;br /&gt;                echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"&lt;br /&gt;        fi&lt;br /&gt;        $0 status&lt;br /&gt;        if test $? = 0; then&lt;br /&gt;                $0 restart&lt;br /&gt;        else&lt;br /&gt;                rc_reset # Not running is not a failure.&lt;br /&gt;        fi&lt;br /&gt;        # Remember status and be quiet&lt;br /&gt;        rc_status&lt;br /&gt;        ;;&lt;br /&gt;    restart)&lt;br /&gt;        ## Stop the service and regardless of whether it was&lt;br /&gt;        ## running or not, start it again.&lt;br /&gt;        $0 stop&lt;br /&gt;        $0 start&lt;br /&gt;&lt;br /&gt;        # Remember status and be quiet&lt;br /&gt;        rc_status&lt;br /&gt;        ;;&lt;br /&gt;    force-reload)&lt;br /&gt;        ## Signal the daemon to reload its config. Most daemons&lt;br /&gt;        ## do this on signal 1 (SIGHUP).&lt;br /&gt;        ## If it does not support it, restart the service if it&lt;br /&gt;        ## is running.&lt;br /&gt;&lt;br /&gt;        echo -n "Reload service OpenMCU "&lt;br /&gt;        ## if it supports it:&lt;br /&gt;        /sbin/killproc -HUP $FOO_BIN&lt;br /&gt;        rc_status -v&lt;br /&gt;&lt;br /&gt;        ## Otherwise:&lt;br /&gt;        #$0 try-restart&lt;br /&gt;        #rc_status&lt;br /&gt;        ;;&lt;br /&gt;    reload)&lt;br /&gt;        ## Like force-reload, but if daemon does not support&lt;br /&gt;        ## signaling, do nothing (!)&lt;br /&gt;&lt;br /&gt;        # If it supports signaling:&lt;br /&gt;        echo -n "Reload service OpenMCU "&lt;br /&gt;        /sbin/killproc -HUP $FOO_BIN&lt;br /&gt;        rc_status -v&lt;br /&gt;        &lt;br /&gt;        ## Otherwise if it does not support reload:&lt;br /&gt;        #rc_failed 3&lt;br /&gt;        #rc_status -v&lt;br /&gt;        ;;&lt;br /&gt;    status)&lt;br /&gt;        echo -n "Checking for service OpenMCU "&lt;br /&gt;&lt;br /&gt;        # NOTE: checkproc returns LSB compliant status values.&lt;br /&gt;        /sbin/checkproc $MCU_BIN&lt;br /&gt;        # NOTE: rc_status knows that we called this init script with&lt;br /&gt;        # "status" option and adapts its messages accordingly.&lt;br /&gt;        rc_status -v&lt;br /&gt;        ;;&lt;br /&gt;    probe)&lt;br /&gt;&lt;br /&gt;esac&lt;br /&gt;rc_exit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Не забудьте назначить скриптам права на выполнение.&lt;br /&gt;&lt;br /&gt;Собственно, теперь надо положить соответсвующие ссылки на скрипты в rcN.d, &lt;br /&gt;то есть для соответствующих уровней запуска.&lt;br /&gt;Я предпочитаю делать это программой chkconfig&lt;br /&gt;&lt;br /&gt;        chkconfig openmcu on&lt;br /&gt;        chkconfig gnugk on&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Теперь все готово для запуска сервисов.&lt;br /&gt;&lt;br /&gt;        service gnugk start&lt;br /&gt;        service openmcu start&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;В настройках NetMeeting надо выставить Сервис-Параметры - Расширенный вызов-&lt;br /&gt;Использовать привратника для вызовов и Регистрация моей учетной записи &lt;br /&gt;(имя учетной записи). &lt;br /&gt;После активации параметров в правом нижнем углу у него должен появиться значок &lt;br /&gt;"Есть регистрация у привратника". Теперь набираем наш префикс выхода (02) и &lt;br /&gt;попадаем на сервер OpenMCU, на экране будет виден соответствующий логотип. &lt;br /&gt;Все остальные участники, также регистрируясь у привратника и набирая 02, будут &lt;br /&gt;попадать на нашу конференцию.&lt;br /&gt;&lt;br /&gt;Но тут возникает один интересный вопрос. Получается, что наш сервер будет &lt;br /&gt;обслуживать одновременно только одну видеоконференцию, ту, что в default room. &lt;br /&gt;А как сделать так, чтобы на одном сервере MCU одновременно проводить несколько &lt;br /&gt;параллельных конференций?&lt;br /&gt;&lt;br /&gt;Именно для этого и используется разделение конференций по комнатам. &lt;br /&gt;К сожалению, NetMeeting не умеет указывать при вызове желаемую комнату для &lt;br /&gt;конференции и может попадать только на default room, если она задана. &lt;br /&gt;Поэтому организовывать различные комнаты мы будем, используя различные префиксы&lt;br /&gt;выхода на MCU в gnugk.&lt;br /&gt;&lt;br /&gt;Например, так:&lt;br /&gt;/etc/gnugk.ini&lt;br /&gt;&lt;br /&gt;        [RasSrv::GWPrefixes]&lt;br /&gt;        #Комната 00&lt;br /&gt;        mcu=00&lt;br /&gt;        #Комната 11&lt;br /&gt;        mcu=11&lt;br /&gt;        #Комната 22&lt;br /&gt;        mcu=22&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Таким образом, при наборе соответствующих префиксов, клиент будет попадать в &lt;br /&gt;различные комнаты. Например, при наборе 00, openmcu создаст комнату 00, в &lt;br /&gt;которую и попадет клиент. Остальным участникам конференции также можно выбирать&lt;br /&gt;нужную комнату, набирая нужный префикс.&lt;br /&gt;Другим способом выбора комнаты является явное указание ее в запросе следующим &lt;br /&gt;образом:&lt;br /&gt;&lt;br /&gt;        "room_name@server_name"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NetMeeting эту возможность не поддерживает, поэтому можно использовать другого &lt;br /&gt;h323 клиента, например, несколько хороших клиентов перечислены здесь:&lt;br /&gt;http://www.gnugk.org/h323-endpoint.html&lt;br /&gt;&lt;br /&gt;В этом случае, можно не использовать регистрацию у привратника, а сразу набирать&lt;br /&gt;выход на openmcu в адресной строке, например, набираем example@192.168.3.2&lt;br /&gt;и попадаем на наш openmcu. Аналогично другие клиенты могут указывать свои &lt;br /&gt;комнаты, отличные от example и  участвовать в отдельной конференции.&lt;br /&gt;&lt;br /&gt;Заключение&lt;br /&gt;&lt;br /&gt;Число комнат, по идее, ограничено только аппаратными ресурсами вашего сервера. &lt;br /&gt;Что касается того, сколько максимально участников может одновременно участвовать&lt;br /&gt;в одной видеоконференции, то я использовал конференции  лишь до 4-х &lt;br /&gt;участников включительно и могу сказать только, что это работает. Что &lt;br /&gt;касается большего числа участников, то единственную информацию, которую мне &lt;br /&gt;удалось найти на этот счет была на http://www.e-bizone.com/e_chinabo_03.htm &lt;br /&gt;(но,к сожалению, не было возможности проверить, так что за что купил, &lt;br /&gt;за то и продаю)&lt;br /&gt;&lt;br /&gt;You hear the audio from the other users, but only see the video from the&lt;br /&gt;four users actively talking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-1792634217976272644?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/1792634217976272644/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/openmcu-gnugk-voip-gatekeeper-openmcu.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1792634217976272644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/1792634217976272644'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/openmcu-gnugk-voip-gatekeeper-openmcu.html' title='Создание сервера видеоконференций на базе OpenMCU и GnuGK (voip gatekeeper openmcu linux)'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-6667980668164169969</id><published>2009-03-12T05:41:00.000-07:00</published><updated>2009-03-12T05:42:47.286-07:00</updated><title type='text'>Как сбросить пароль в Linux</title><content type='html'>* В окне загрузчика GRUB выделите строку с  нужной версией линукса, для которого вам нужно сбросить pароль&lt;br /&gt;* Нажмите 'e' для редактирования. Выберите строку ядра. Добавьте 'single' в конец строки. Нажмите 'b' для загрузки. Если система продолжает запрашивать пароль рута, добавьте в конец строки init=/bin/bash Снова нажмите 'b' для загрузки&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-6667980668164169969?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/6667980668164169969/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/linux.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6667980668164169969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6667980668164169969'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/linux.html' title='Как сбросить пароль в Linux'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-5673813340315213964</id><published>2009-03-10T02:33:00.001-07:00</published><updated>2009-03-10T02:33:58.414-07:00</updated><title type='text'>Настройка репликации дисков на трех узлах в Debian GNU/Linux при помощи DRBD</title><content type='html'>http://www.howtoforge.com/drbd-8.3-third-node-replication-with-debian-etch&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-5673813340315213964?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/5673813340315213964/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/debian-gnulinux-drbd.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5673813340315213964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5673813340315213964'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/debian-gnulinux-drbd.html' title='Настройка репликации дисков на трех узлах в Debian GNU/Linux при помощи DRBD'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-3577650546635245068</id><published>2009-03-06T03:12:00.000-08:00</published><updated>2009-03-06T03:18:43.455-08:00</updated><title type='text'></title><content type='html'>Перед тем, как освободить диск, давайте узнаем, какой процесс его использует:&lt;br /&gt;# fuser /media/cdrom &lt;br /&gt;&lt;br /&gt;# screen -S foo&lt;br /&gt;Затем говорите Дэвиду: «Запусти-ка на своем терминале следующую команду»: # screen -x foo." &lt;br /&gt;&lt;br /&gt;Поиск открытых файлов и сетевых соединений&lt;br /&gt;lsof — список открытых файлов&lt;br /&gt;В дополнение к списку открытых файлов lsof может такде оторбражать открытые сокеты (сетевые соединения), если вы запустите его в ключом -i:&lt;br /&gt;&lt;br /&gt;Вывод netstat можно сделать подобным выводу lsof, добавив -A inet и -program, которые указывают netstat печатать только нелокальные соединения, включая процессы, чьей собственностью они являются:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-3577650546635245068?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/3577650546635245068/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/fuser-mediacdrom-screen-s-foo-screen-x.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3577650546635245068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3577650546635245068'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/fuser-mediacdrom-screen-s-foo-screen-x.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-4256350707871572353</id><published>2009-03-05T08:09:00.001-08:00</published><updated>2009-03-05T08:09:28.735-08:00</updated><title type='text'>Как восстановить файлы, недавно удаленные с USB-флешки? Легко! Понадобится связка из fls и icat.</title><content type='html'>Эти программы входят в пакет sleuthkit.&lt;br /&gt;&lt;br /&gt;Mandriva:&lt;br /&gt;urpmi sleuthkit&lt;br /&gt;&lt;br /&gt;Gentoo:&lt;br /&gt;emerge sleuthkit&lt;br /&gt;&lt;br /&gt;Программа fls покажет нам список удаленных файлов:&lt;br /&gt;&lt;br /&gt;#fls -rd /dev/sdb1&lt;br /&gt;&lt;br /&gt;r/r * 117: dsc0005.jpg&lt;br /&gt;r/r * 119: dsc0006.jpg&lt;br /&gt;r/r * 122: dsc0007.jpg&lt;br /&gt;r/r * 125: dsc0008.jpg&lt;br /&gt;r/r * 128: dsc0009.jpg&lt;br /&gt;&lt;br /&gt;Команда icat восстанавливает удаленные файлы:&lt;br /&gt;&lt;br /&gt;#icat -rf fat /dev/sdb1 117 &gt; /home/yuri/dsc0005.jpg&lt;br /&gt;&lt;br /&gt;Поскольку у меня была задача восстановить только фотографии, а значит имя файла было не важно, то родился следующий однострочник:&lt;br /&gt;&lt;br /&gt;#for i in $(fls -rd /dev/sdb1|awk {'print $3'}|tr -d [:]); do icat -r -f fat /dev/sdb1 $i &gt; /home/yuri/photo/$i.jpg;done&lt;br /&gt;&lt;br /&gt;Как указано в документации, Sleuthkit работает не только с FAT и NTFS, но и с ext2/3, iso9660, ufs, raw, swap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-4256350707871572353?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/4256350707871572353/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/usb-fls-icat.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4256350707871572353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4256350707871572353'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/usb-fls-icat.html' title='Как восстановить файлы, недавно удаленные с USB-флешки? Легко! Понадобится связка из fls и icat.'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-6029120866360582826</id><published>2009-03-05T08:08:00.001-08:00</published><updated>2009-03-05T08:08:25.572-08:00</updated><title type='text'></title><content type='html'>Команда setfacl устанавливает расширенные права доступа (access control list или ACL).&lt;br /&gt;Основные параметры команды setfacl:&lt;br /&gt;-m — установить ACL,&lt;br /&gt;-x — удалить ACL,&lt;br /&gt;-b — удалить все установленные параметры ACL.&lt;br /&gt;Например, команда&lt;br /&gt;&lt;br /&gt;setfacl -m user:B:rwx&lt;br /&gt;&lt;br /&gt;добавляет доступ на чтение, запись и выполнение для пользователя «В».&lt;br /&gt;Подробней смотри man setfacl. Также смотри man acl и man getfacl.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-6029120866360582826?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/6029120866360582826/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/setfacl-access-control-list-acl.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6029120866360582826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6029120866360582826'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/setfacl-access-control-list-acl.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-4138622424264790127</id><published>2009-03-05T06:09:00.000-08:00</published><updated>2009-03-05T06:10:44.500-08:00</updated><title type='text'>Поиск открытых файлов и сетевых соединений</title><content type='html'>Одной из многих выгод использования операционной системы Linux является то, что есть возможность получить обширую информацию о процессах, работающих в данный момент, и ресурсах, которые они потребляют. Эта статья описывает две очень полезные команды: lsof и netstat, которые покажут вам список всех открытых файлов или сетевых соединений на системе наряду с соответствующими им процессами.&lt;br /&gt;&lt;br /&gt;Их еще одно очевидное преимущество — безопасность. Например, если бы spyware или какая-либо другая malware-программа отправляли бы информацию с вашего компьютера в Интернет или в файл на вашем жестком диске, это можно было увидеть в выводе этих команд.&lt;br /&gt;&lt;br /&gt;lsof — список открытых файлов&lt;br /&gt;&lt;br /&gt;Эта простая команда часто запускается без аргументов и делает только то, что ей сказано: отображать список из каждых открытых файлов каждой программы, запущенной в данной момент.&lt;br /&gt;&lt;br /&gt;Обычно вывод lsof выглядит так:&lt;br /&gt;&lt;br /&gt;    kain@slickbox:~&gt; lsof&lt;br /&gt;    COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME&lt;br /&gt;    init 1 root cwd unknown /proc/1/cwd&lt;br /&gt;    init 1 root rtd unknown /proc/1/root&lt;br /&gt;    init 1 root txt unknown /proc/1/exe&lt;br /&gt;    init 1 root mem REG 8,22 509596 60081 /sbin/init&lt;br /&gt;    init 1 root mem REG 0,0 0 [heap]&lt;br /&gt;    init 1 root NOFD /proc/1/fd&lt;br /&gt;    kthreadd 2 root cwd unknown /proc/2/cwd&lt;br /&gt;    kthreadd 2 root rtd unknown /proc/2/root&lt;br /&gt;    kthreadd 2 root txt unknown /proc/2/exe&lt;br /&gt;    ....&lt;br /&gt;&lt;br /&gt;Информация в колонках обычно является прямой.&lt;br /&gt;&lt;br /&gt;Обычно lsof выводит слишком много информации, чтобы она могла поместиться в буфер прокрутки консоли. Таким образом у вас может возникнуть желание сбросить эту информацию на диск (через lsof &gt; lsof-output.txt) или отфильтровать ее, используя различные pipe-команды.&lt;br /&gt;&lt;br /&gt;Например, если хотите увидеть, открыт ли специальный файл /dev/dsp (звуковая карта) каким-нибудь процессом, запустите следующую команду:&lt;br /&gt;&lt;br /&gt;    kain@slickbox:~&gt; lsof|grep dsp&lt;br /&gt;     game 3835 kain mem CHR 195,0 13940 /dev/dsp&lt;br /&gt;&lt;br /&gt;Теперь мы можем убить процесс, если хотим освободить звуковую карту:&lt;br /&gt;&lt;br /&gt;    kain@slickbox:~&gt; kill -9 3835&lt;br /&gt;    kain@slickbox:~&gt; killall -9 game # это также сработает&lt;br /&gt;&lt;br /&gt;В дополнение к списку открытых файлов lsof может такде оторбражать открытые сокеты (сетевые соединения), если вы запустите его в ключом -i:&lt;br /&gt;&lt;br /&gt;    kain@slickbox:~&gt; lsof -i&lt;br /&gt;    COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME&lt;br /&gt;    kded 4140 kain 15u IPv4 15400 TCP localhost:37435 (LISTEN)&lt;br /&gt;    kded 4140 kain 19u IPv6 15483 TCP *:5800 (LISTEN)&lt;br /&gt;    kded 4140 kain 20u IPv6 15488 TCP *:5900 (LISTEN)&lt;br /&gt;    pidgin 4530 kain 14u IPv4 17075 TCP 192.168.1.104:54623-&gt;205.188.9.158:aol (ESTABLISHED)&lt;br /&gt;    pidgin 4530 kain 15u IPv4 17072 TCP 192.168.1.104:56693-&gt;205.188.5.214:aol (ESTABLISHED)&lt;br /&gt;    pidgin 4530 kain 16u IPv4 49002 TCP 192.168.1.104:37275-&gt;64.12.30.80:aol (ESTABLISHED)&lt;br /&gt;    pidgin 4530 kain 17u IPv4 17092 TCP 192.168.1.104:57145-&gt;oam-d09b.blue.aol.com:aol (ESTABLISHED)&lt;br /&gt;    pidgin 4530 kain 18u IPv4 50809 TCP 192.168.1.104:42839-&gt;64.12.30.92:aol (ESTABLISHED)&lt;br /&gt;    pidgin 4530 kain 23u IPv4 17107 TCP 192.168.1.104:43997-&gt;oam-d23c.blue.aol.com:aol (ESTABLISHED)&lt;br /&gt;    firefox-b 9464 kain 10u IPv4 55549 TCP 192.168.1.104:37274-&gt;mu-in-f91.google.com:http (ESTABLISHED)&lt;br /&gt;    firefox-b 9464 kain 44u IPv4 54630 TCP 192.168.1.104:43427-&gt;132.235.194.70:http (ESTABLISHED)&lt;br /&gt;    firefox-b 9464 kain 45u IPv4 54631 TCP 192.168.1.104:43428-&gt;132.235.194.70:http (ESTABLISHED)&lt;br /&gt;    firefox-b 9464 kain 46u IPv4 54635 TCP 192.168.1.104:49242-&gt;132.235.194.69:http&lt;br /&gt;&lt;br /&gt;Можно заметить, что когда я запустил эту команду, у меня уже были запущены pidgin и firefox. В колонке содержится адрес соединения, его номер порта или имя сервиса, и действительно ли сокет LISTEN или ESTABLISHED. Прослушиваемые сокеты соответствуют процессам сервера, запущенным на вашей машине, которые ожидают соединений от других частей. Любые подозрительные слушающие процессы должны быть проверены на предметбезопасности. Если номер порта будет в списке известных сервисов на системе, то он отображается как именованный сервис (например, http или aol в листинге выше). Вы можете поискать файл /etc/services, чтобы узнать, что это такое:&lt;br /&gt;&lt;br /&gt;    kain@slickbox:~&gt; cat /etc/services|grep aol&lt;br /&gt;    aol 5190/tcp # America-Online&lt;br /&gt;&lt;br /&gt;Чтобы быть уверенным, что вы получаете полный вывод lsof, вы должны быть пользователем root.&lt;br /&gt;&lt;br /&gt;netstat — инструмент сетевой статистики&lt;br /&gt;&lt;br /&gt;В то время, как lsof -i удобный способ отображения списка сетевых соединений, netstat обеспечивает альтернативный и более подробный способ получаения информации о вашей сети.&lt;br /&gt;&lt;br /&gt;Вывод netstat обычно более длинный, чем lsof -i:&lt;br /&gt;&lt;br /&gt;    kain@slickbox:~&gt; netstat&lt;br /&gt;    Active Internet connections (w/o servers)&lt;br /&gt;    Proto Recv-Q Send-Q Local Address Foreign Address State&lt;br /&gt;    tcp 0 0 192.168.1.104:56693 205.188.5.214:aol ESTABLISHED&lt;br /&gt;    tcp 0 0 192.168.1.104:55219 64.12.30.80:aol ESTABLISHED&lt;br /&gt;    tcp 0 0 192.168.1.104:43997 oam-d23c.blue.aol.c:aol ESTABLISHED&lt;br /&gt;    tcp 0 0 192.168.1.104:54623 205.188.9.158:aol ESTABLISHED&lt;br /&gt;    tcp 0 0 192.168.1.104:57145 oam-d09b.blue.aol.c:aol ESTABLISHED&lt;br /&gt;    tcp 0 0 192.168.1.104:44775 64.12.30.92:aol ESTABLISHED&lt;br /&gt;    Active UNIX domain sockets (w/o servers)&lt;br /&gt;    Proto RefCnt Flags Type State I-Node Path&lt;br /&gt;    unix 2 [ ] DGRAM 15294 /var/run/NetworkManager/wpa_ctrl_3020-1&lt;br /&gt;    unix 2 [ ] DGRAM 15215 /var/run/wpa_supplicant-global&lt;br /&gt;    unix 3 [ ] DGRAM 15292 /var/run/wpa_supplicant/eth1&lt;br /&gt;    unix 2 [ ] DGRAM 3300 @/org/kernel/udev/udevd&lt;br /&gt;    unix 2 [ ] DGRAM 8419 /var/lib/dhcp/dev/log&lt;br /&gt;    ....&lt;br /&gt;&lt;br /&gt;Заметьте, что netstat указывает также локальный адрес для каждого соединения, а также размер отправленной и полученной очереди, что помогает контролировать активность каждого соединения. В дополнение к этому, она отображает соединения, созданные поверх сокетов Unix, другой механизм для соединений между процессами в Linux.&lt;br /&gt;&lt;br /&gt;Вывод netstat можно сделать подобным выводу lsof, добавив -A inet и -program, которые указывают netstat печатать только нелокальные соединения, включая процессы, чьей собственностью они являются:&lt;br /&gt;&lt;br /&gt;    slickbox:/home/kain # netstat -A inet --program&lt;br /&gt;    Active Internet connections (w/o servers)&lt;br /&gt;    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name&lt;br /&gt;    tcp 0 0 192.168.1.104:56693 205.188.5.214:aol ESTABLISHED 4530/pidgin&lt;br /&gt;    tcp 0 0 192.168.1.104:55219 64.12.30.80:aol ESTABLISHED 4530/pidgin&lt;br /&gt;    tcp 0 0 192.168.1.104:43997 oam-d23c.blue.aol.c:aol ESTABLISHED 4530/pidgin&lt;br /&gt;    tcp 0 0 192.168.1.104:54623 205.188.9.158:aol ESTABLISHED 4530/pidgin&lt;br /&gt;    tcp 0 0 192.168.1.104:57145 oam-d09b.blue.aol.c:aol ESTABLISHED 4530/pidgin&lt;br /&gt;    tcp 0 0 192.168.1.104:44775 64.12.30.92:aol ESTABLISHED 4530/pidgin&lt;br /&gt;&lt;br /&gt;Вот и все, что можно сказать по этому поводу. Обе эти команды имеют гораздо больше возможностей, которые вы можете узнать, прочитав соответствующие man-страницы — man lsof и man netstat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-4138622424264790127?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/4138622424264790127/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4138622424264790127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4138622424264790127'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/blog-post.html' title='Поиск открытых файлов и сетевых соединений'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-4416977079230305039</id><published>2009-03-05T05:49:00.000-08:00</published><updated>2009-03-05T05:50:11.248-08:00</updated><title type='text'>Удаленное управление сервером имён BIND9</title><content type='html'>Управление сервером имён BIND9 производится с помощью команды rndc. С его помощью можно удаленно обновить (или принудительно перезагрузить) зоны, сбросить кеш сервера или заморозить обновление динамических зон.&lt;br /&gt;&lt;br /&gt;Сперва настраиваем BIND9&lt;br /&gt;&lt;br /&gt;    * Сгенерируем ключ «/etc/namedb/rndc.key»&lt;br /&gt;&lt;br /&gt;      # rndc-confgen -u bind -a -b 256&lt;br /&gt;&lt;br /&gt;    * Создадим конфигурационный файл «/etc/namedb/rndc.conf»&lt;br /&gt;&lt;br /&gt;         1. include "/etc/namedb/rndc.key";&lt;br /&gt;         2.&lt;br /&gt;         3. options {&lt;br /&gt;         4. default-key "rndc-key";&lt;br /&gt;         5. default-server 127.0.0.1;&lt;br /&gt;         6. default-port 953;&lt;br /&gt;         7. };&lt;br /&gt;&lt;br /&gt;    * Отредактируем файл «/etc/namedb/named.conf» и добавим&lt;br /&gt;&lt;br /&gt;         1. include "/etc/namedb/rndc.key";&lt;br /&gt;         2. controls {&lt;br /&gt;         3. inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; };&lt;br /&gt;         4. inet 192.168.0.xxx port 953 allow { 192.168.0.yyy; } keys { "rndc-key"; };&lt;br /&gt;         5. };&lt;br /&gt;&lt;br /&gt;      где «192.168.0.xxx» – ip-адрес сервера в сети, а «192.168.0.yyy» – ip-адрес компьютера администратора.&lt;br /&gt;    * Перезагружаем сервер имён&lt;br /&gt;&lt;br /&gt;      # /etc/rc.d/named restart&lt;br /&gt;&lt;br /&gt;    * Проверяем&lt;br /&gt;&lt;br /&gt;      # rndc reload&lt;br /&gt;      server reload successful&lt;br /&gt;&lt;br /&gt;Теперь настроим на стороне администратора&lt;br /&gt;&lt;br /&gt;    * Копируем с сервера файлы для rndc&lt;br /&gt;&lt;br /&gt;      $ sudo scp -p admin@192.168.0.xxx:/etc/namedb/rndc.'*' /etc/namedb/&lt;br /&gt;&lt;br /&gt;    * Отредактируем файл «/etc/namedb/rndc.conf»&lt;br /&gt;&lt;br /&gt;         1. include "/etc/namedb/rndc.key";&lt;br /&gt;         2.&lt;br /&gt;         3. options {&lt;br /&gt;         4. default-key "rndc-key";&lt;br /&gt;         5. # default-server 127.0.0.1;&lt;br /&gt;         6. default-server 192.168.0.xxx;&lt;br /&gt;         7. default-port 953;&lt;br /&gt;         8. };&lt;br /&gt;&lt;br /&gt;    * Проверяем&lt;br /&gt;&lt;br /&gt;      # rndc reload&lt;br /&gt;      server reload successful&lt;br /&gt;&lt;br /&gt;Если у вас несколько серверов, то они настраиваются похожим образом.&lt;br /&gt;&lt;br /&gt;    * На стороне администратора сохраняем ключи с именами вроде «/etc/namedb/server-name.key» и редактируем&lt;br /&gt;&lt;br /&gt;         1. key "rndc-server-name-key" {&lt;br /&gt;         2. algorithm hmac-md5;&lt;br /&gt;         3. secret "super-secret-password-hash=";&lt;br /&gt;         4. };&lt;br /&gt;&lt;br /&gt;    * В файл «/etc/namedb/rndc.conf» добавим строки для каждого сервера&lt;br /&gt;&lt;br /&gt;         1. include "/etc/namedb/server-name.key";&lt;br /&gt;         2. server "server-name" {&lt;br /&gt;         3. key "rndc-server-name-key";&lt;br /&gt;         4. };&lt;br /&gt;&lt;br /&gt;      «server-name» может быть именем сервера или его ip-адресом.&lt;br /&gt;    * Проверяем&lt;br /&gt;&lt;br /&gt;      # rndc -s server-name reload&lt;br /&gt;      server reload successful&lt;br /&gt;&lt;br /&gt;      Если опустить параметр «-s» то будем «рулить» сервером, заданным по умолчанию в секции «options»&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-4416977079230305039?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/4416977079230305039/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/03/bind9.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4416977079230305039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4416977079230305039'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/03/bind9.html' title='Удаленное управление сервером имён BIND9'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-6041549151805700716</id><published>2009-02-27T10:42:00.000-08:00</published><updated>2009-02-27T10:43:15.128-08:00</updated><title type='text'>Automatic mounting of Samba shares</title><content type='html'>Here's a nice complement to using Likewise, which is in the Ubuntu repositories, to handle among other things, the mounting of Samba shares on logon: pam_mount. This article assumes that you've already done everything necessary to make Likewise work properly in your environment.&lt;br /&gt;&lt;br /&gt;Sadly, there was a lot of documentation about earlier versions of pam_mount, and very few (or few that I could find) about this newer version packaged in Ubuntu. Hopefully this will help people who have been struggling with making it work properly on their installs.&lt;br /&gt;&lt;br /&gt;Pam_mount is easy to install:&lt;br /&gt;&lt;br /&gt;    sudo apt-get install libpam-mount&lt;br /&gt;&lt;br /&gt;Once installed, you will want to edit /etc/security/pam_mount.conf.xml to uncomment a line:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;luserconf name=".pam_mount.conf.xml" /&gt;&lt;br /&gt;&lt;br /&gt;And perhaps the debug line just above it if you need to troubleshoot potential issues.&lt;br /&gt;&lt;br /&gt;Then, create a file in your home directory: .pam_mount.conf.xml. Here is mine, for example:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pam_mount&gt;&lt;br /&gt;    &lt;volume user="*" fstype="cifs" server="fileserver1" path="share34" mountpoint="~/share34" options="iocharset=utf8,file_mode=0700,dir_mode=0700,nodev,nosuid" /&gt;&lt;br /&gt;    &lt;volume user="*" fstype="cifs" server="fileserver1" path="share35" mountpoint="~/share35" options="iocharset=utf8,file_mode=0700,dir_mode=0700,nodev,nosuid" /&gt;&lt;br /&gt;    &lt;/pam_mount&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once you've enabled pam_mount by adding it in common-session and common-auth with the following line, this file will allow mounting on login \\fileserver1\share34 and \\fileserver2\share35 in ~/share34 and ~/share35 respectively, without having the enter your password if you were already using Likewise as an authentication mechanism. One interesting detail is precisely the tilde in the mountpoint path, since in the case of full paths and the pam_mount $(USER) variable for example, you may be catching other issues, such as how to transform a DOMAIN\user name in a /home/DOMAIN/user path. The good old '~' takes care of that issue. At the same time, 'user="*"' seems to resolve to the currently logged in user, so if you were deploying multiple systems from a kickstart or cloning; or keeping a generic .pam_mount.conf.xml in /etc/skel for mounting public shares, you can keep only one file that works for everyone. Keeping the generic volume tags in the main /etc/security/pam_mount.conf.xml can also be a good idea.&lt;br /&gt;&lt;br /&gt;So far, the tests we've been doing at work seem to indicate that these lines needs to be added in common-session and common-auth, though maybe it's possible to do it with fewer changes, or a slightly different line:&lt;br /&gt;&lt;br /&gt;For common-session, around the top, I guess:&lt;br /&gt;&lt;br /&gt;    session optional pam_mount.so nullok try_first_pass&lt;br /&gt;&lt;br /&gt;For common-auth, around the end, so that it's evaluated at the very least after pam_lwidentity.so:&lt;br /&gt;&lt;br /&gt;    auth optional pam_mount.so nullok try_first_pass&lt;br /&gt;&lt;br /&gt;I'm fairly confident that "nullok" could be omitted on both lines, since empty passwords are probably not allowed in your Windows domain.&lt;br /&gt;&lt;br /&gt;Also, pam_mount can also handle mounting different types of filesystems, such as truecrypt filesystems :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-6041549151805700716?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/6041549151805700716/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/automatic-mounting-of-samba-shares.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6041549151805700716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/6041549151805700716'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/automatic-mounting-of-samba-shares.html' title='Automatic mounting of Samba shares'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-5990409958923072308</id><published>2009-02-27T05:21:00.001-08:00</published><updated>2009-02-27T05:21:45.968-08:00</updated><title type='text'>Посмотрим PID процесса занявший базу apt по лок-файлу</title><content type='html'>$ sudo fuser /var/lib/dpkg/lock&lt;br /&gt;/var/lib/dpkg/lock:  22069&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-5990409958923072308?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/5990409958923072308/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/pid-apt.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5990409958923072308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5990409958923072308'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/pid-apt.html' title='Посмотрим PID процесса занявший базу apt по лок-файлу'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-5199563801298309790</id><published>2009-02-23T06:23:00.001-08:00</published><updated>2009-02-23T06:23:31.128-08:00</updated><title type='text'></title><content type='html'>Для установки генератора паролей pwgen выполните в консоли команду:&lt;br /&gt;sudo apt-get install pwgen&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-5199563801298309790?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/5199563801298309790/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/pwgen-sudo-apt-get-install-pwgen.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5199563801298309790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5199563801298309790'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/pwgen-sudo-apt-get-install-pwgen.html' title=''/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-3372885410054087800</id><published>2009-02-22T22:57:00.000-08:00</published><updated>2009-02-22T22:58:14.697-08:00</updated><title type='text'>Обновление Ubuntu для серверов с помощью сети (рекомендуется).</title><content type='html'>1. Установить update-manager-core, если он еще не установлен.&lt;br /&gt;&lt;br /&gt;sudo apt-get install update-manager-core&lt;br /&gt;&lt;br /&gt;2. Отредактируете /etc/update-manager/release-upgrades&lt;br /&gt;&lt;br /&gt;Prompt=normal&lt;br /&gt;&lt;br /&gt;3. Запустите upgrade tool&lt;br /&gt;&lt;br /&gt;sudo do-release-upgrade&lt;br /&gt;&lt;br /&gt;4. Следуйте инструкциям на экране.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-3372885410054087800?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/3372885410054087800/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/ubuntu.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3372885410054087800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3372885410054087800'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/ubuntu.html' title='Обновление Ubuntu для серверов с помощью сети (рекомендуется).'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-5691787031575767165</id><published>2009-02-22T08:11:00.001-08:00</published><updated>2009-02-22T08:11:38.985-08:00</updated><title type='text'>IMspector, перехват сообщений ICQ</title><content type='html'>Всем привет!&lt;br /&gt;Вот на работе поставили интересную задачу:&lt;br /&gt;&lt;br /&gt;    Требуется писать всю историю ICQ переписки сотрудников для руководства.&lt;br /&gt;&lt;br /&gt;Немного погуглив и почитав форумов наткнулся на замечательный проект IMspector&lt;br /&gt;&lt;br /&gt;Вот что это маленькое чудо умеет:&lt;br /&gt;&lt;br /&gt;    IMSpector is an Instant Messenger proxy with monitoring, blocking and content-filtering capabilities. Currently it supports MSN, Jabber/XMPP, AIM, ICQ, Yahoo, IRC and Gadu-Gadu to different degrees. MSN is the principle protocol, as it’s the most popular these days, at least in the UK where I’m based. The supported platforms are at present Linux and BSD when using the pf firewall, but porting to other UNIXs should be trivial. It is able to log to plain files, as well as several types of SQL database including MySQL, SQLite and PostreSQL.&lt;br /&gt;&lt;br /&gt;Иными словами эта штука работает с : MSN, Jabber/XMPP, AIM, ICQ, Yahoo, IRC and Gadu-Gadu протоколами, работает в Linux, *BSD системах и поддерживает СУБД.&lt;br /&gt;И умеет подсовывать свои сертификаты, что-бы самых умных с SSL обломать.&lt;br /&gt;Ещё можно отключить WEB камеры, пересылку файлов и блокировать сообщения.&lt;br /&gt;&lt;br /&gt;От себя добавлю что с Русским языком IMspector работает.&lt;br /&gt;&lt;br /&gt;Поскольку ICQ протокол меняется чуть-ли не каждый день я решил ставить IMspector из daily snapshots&lt;br /&gt;Скачиваем, компилируем устанавливаем:&lt;br /&gt;&lt;br /&gt;    cd /tmp&lt;br /&gt;    wget http://www.imspector.org/downloads/snapshots/imspector-20090221.tar.gz&lt;br /&gt;    tar xvfz imspector-20090221.tar.gz&lt;br /&gt;    cd imspector&lt;br /&gt;    make&lt;br /&gt;    make install&lt;br /&gt;&lt;br /&gt;Если нужны сертификаты выполните&lt;br /&gt;&lt;br /&gt;    make install-ca-cert&lt;br /&gt;&lt;br /&gt;Всё будет установлено в директорию /usr&lt;br /&gt;&lt;br /&gt;    * /usr/sbin/imspector - the imspector binary.&lt;br /&gt;    * /usr/lib/libimspector.so - a shared library that the main program and plugins share.&lt;br /&gt;    * /usr/lib/imspector/*protocolplugin.so - the protocol plugins.&lt;br /&gt;    * /usr/lib/imspector/*loggingplugin.so - the logging plugins.&lt;br /&gt;    * /usr/lib/imspector/*filterplugin.so - the filtering and content-manipulation plugins.&lt;br /&gt;    * /usr/etc/imspector/imspector.conf - an example config file, good enough for quick playing.&lt;br /&gt;    * /usr/etc/imspector/badwords.txt - an example list of swear words to block.&lt;br /&gt;    * /usr/etc/imspector/acl.txt - an example of a trivial and useless ACL.&lt;br /&gt;    * /usr/etc/imsepctor/servercert.pem - optional server ssl certificate.&lt;br /&gt;    * /usr/etc/imspector/serverkey.pem - optional server ssl key.&lt;br /&gt;    * /usr/etc/imsepctor/cacert.pem - optional ca ssl certificate.&lt;br /&gt;    * /usr/etc/imspector/cakey.pem - optional ca ssl key.&lt;br /&gt;&lt;br /&gt;И добавим NAT правила с этой странички.&lt;br /&gt;&lt;br /&gt;Поскольку меня интересует только ICQ я вписал:&lt;br /&gt;&lt;br /&gt;    ICQ/AIM: iptables -t nat -A PREROUTING -p tcp --destination-port 5190 -j REDIRECT --to-ports 16667&lt;br /&gt;&lt;br /&gt;И открыл NAT доступ для 5190 порта&lt;br /&gt;&lt;br /&gt;    -A POSTROUTING -s 192.168.1.0/255.255.255.0 -p tcp -m tcp --dport 5190 -j MASQUERADE&lt;br /&gt;&lt;br /&gt;И ещё закрыл ICQ доступ на проксе SQUID&lt;br /&gt;&lt;br /&gt;    acl icq_dom dstdomain .icq.com .aol.com&lt;br /&gt;    acl icq_addr src 64.12.0.0/255.255.0.0 255.188.0.0/255.255.0.0&lt;br /&gt;    http_access deny icq_dom&lt;br /&gt;    http_access deny icq_addr&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-5691787031575767165?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/5691787031575767165/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/imspector-icq.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5691787031575767165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/5691787031575767165'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/imspector-icq.html' title='IMspector, перехват сообщений ICQ'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-4408247838141968786</id><published>2009-02-22T07:52:00.000-08:00</published><updated>2009-02-22T07:53:13.919-08:00</updated><title type='text'>OpenVPN</title><content type='html'>Настраиваем OpenVPN-сервер (Ubuntu) и клиента (Gentoo).&lt;br /&gt;Сервер&lt;br /&gt;&lt;br /&gt;Во-первых, openvpn нужно поставить. На Debian-based дистрибутивах это делается командой&lt;br /&gt;&lt;br /&gt;apt-get install openvpn openvpn-blacklist&lt;br /&gt;&lt;br /&gt;Сертификаты&lt;br /&gt;&lt;br /&gt;Сразу скажу, что здесь я немного схалтурил: поскольку ко всем машинам, на которые мне нужно распространить сертификаты, у меня есть физический доступ, а делать отдельный сервер для CA (Certificate Authority) мне не хотелось (да и лишних железок у меня нет), я сгенерировал все сертификаты непосредственно на сервере, а потом раскидал их по scp куда надо.&lt;br /&gt;Нам понадобятся следующие сертификаты:&lt;br /&gt;&lt;br /&gt;   1. Корневой сертификат CA и его ключ.&lt;br /&gt;   2. Сертификат сервера и его ключ.&lt;br /&gt;   3. Сертификаты клиентов и соответсвующие им ключи.&lt;br /&gt;&lt;br /&gt;Так же нужно будет сгенерировать параметры Диффи-Хеллмана&lt;br /&gt;Все ключи - секретные, соответственно, нужно проявить осторожность в обращении с ними.&lt;br /&gt;В генерации ключей нам поможет пакет утилит easy-rsa, идущий в комплекте документации openvpn.&lt;br /&gt;Удобства для (и чтобы обновления пакета не перезаписали мои ключи), я скопировал набор скриптов в /etc/openvpn:&lt;br /&gt;&lt;br /&gt;cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/&lt;br /&gt;cd /etc/openvpn/easy-rsa/2.0/&lt;br /&gt;&lt;br /&gt;Для инициализации скриптов так же следует выполнить команды:&lt;br /&gt;&lt;br /&gt;. ./vars&lt;br /&gt;./clean-all #Опционально, она в основном удаляет сгенерированные ключи.&lt;br /&gt;#Кстати, осторожнее, когда понадобится добавить нового клиента - удалять&lt;br /&gt;#все сертификаты в этом случае, очевидно, не нужно.&lt;br /&gt;&lt;br /&gt;CA&lt;br /&gt;&lt;br /&gt;./build-ca&lt;br /&gt;&lt;br /&gt;Скрипт (вернее, вызванный из него openssl) задаст несколько простых вопросов, на которые труда ответить не составит. Здесь нужно иметь ввиду, что Common Name - это не имя хоста, а имя центра сертификации, и если имя сервера/любого клиента будет совпадать с CN CA, соединение будет отвергнуто.&lt;br /&gt;Пример результата работы скрипта (из OpenVPN HOWTO)&lt;br /&gt;&lt;br /&gt;Generating a 1024 bit RSA private key&lt;br /&gt;............++++++&lt;br /&gt;...........++++++&lt;br /&gt;writing new private key to 'ca.key'&lt;br /&gt;-----&lt;br /&gt;You are about to be asked to enter information that will be incorporated&lt;br /&gt;into your certificate request.&lt;br /&gt;What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;There are quite a few fields but you can leave some blank&lt;br /&gt;For some fields there will be a default value,&lt;br /&gt;If you enter '.', the field will be left blank.&lt;br /&gt;-----&lt;br /&gt;Country Name (2 letter code) [KG]:&lt;br /&gt;State or Province Name (full name) [NA]:&lt;br /&gt;Locality Name (eg, city) [BISHKEK]:&lt;br /&gt;Organization Name (eg, company) [OpenVPN-TEST]:&lt;br /&gt;Organizational Unit Name (eg, section) []:&lt;br /&gt;Common Name (eg, your name or your server's hostname) []:OpenVPN-CA&lt;br /&gt;Email Address [me@myhost.mydomain]:&lt;br /&gt;&lt;br /&gt;Сертификат сервера&lt;br /&gt;&lt;br /&gt;./build-key-server server&lt;br /&gt;&lt;br /&gt;Common Name желательно должно соответствовать имени сервера (в идеале - полное доменное имя).  На вопросы “Sign the certificate? [y/n]” и “1 out of 1 certificate requests certified, commit? [y/n]” нужно ответить положительно.&lt;br /&gt;Сертификаты клиентов&lt;br /&gt;&lt;br /&gt;./build-key client1&lt;br /&gt;./build-key client2&lt;br /&gt;./build-key client3&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;За исключением названия команды, все то же самое, что и в случае с сертификатом сервера. CN желательно соответствующим hostname клиента, хотя это не особо важно. Важнее чтобы не было совпадающих CN.&lt;br /&gt;Параметры Диффи-Хеллмана&lt;br /&gt;&lt;br /&gt;Вкратце, они нужны для обмена секретными ключами по незашифрованному соединению. Подробнее можно прочитать на википедии.&lt;br /&gt;&lt;br /&gt;./build-dh&lt;br /&gt;&lt;br /&gt;Распределение ключей&lt;br /&gt;&lt;br /&gt;На самом деле, здесь все довольно просто: все конечные точки (клиенты и сервер) должны иметь собственный сертификат, его ключ и сертификат центра сертификации (CA). Обращаю внимание, что самое слабое место во всей схеме - это ключ сертификата CA, ибо если будет скомпрометирован он, придется перегенерировать все сертификаты. Поэтому ключ сертификата CA нужно хранить как зеницу ока в недоступном для детей… то есть нехороших людей месте.&lt;br /&gt;&lt;br /&gt;В терминах файлов, лежащих теперь в /etc/openvpn/easy-rsa/2.0/keys:&lt;br /&gt;&lt;br /&gt;    * ca.crt должен быть в папке /etc/openvpn на сервере и на всех клиентах&lt;br /&gt;    * ca.key в идеале должен быть на шифрованном носителе в несгораемом сейфе.&lt;br /&gt;      На практике сойдет и где-нибудь попроще, в зависимости от степени вашей паранойи.&lt;br /&gt;    * server.crt должен быть в папке /etc/openvpn на сервере&lt;br /&gt;    * server.key должен быть в папке /etc/openvpn на сервере (и только там)&lt;br /&gt;    * clientN.crt должен быть на соответствующем клиенте&lt;br /&gt;    * clientN.key должен быть на соответствующем клиенте (и только на нем)&lt;br /&gt;    * dh1024.pem должен лежать на сервере в папке /etc/openvpn&lt;br /&gt;&lt;br /&gt;Покидать файлы можно, например, при помощи scp. На всякий случай можно сделать бэкапы ключей, но хранить их имеет смысл там же, где и ca.key, с теми же мерами предосторожности.&lt;br /&gt;Настройка сервера&lt;br /&gt;&lt;br /&gt;Настройка сервера достаточно тривиальна. Помимо подробной документации, есть примеры конфигурации, которыми я и рекомендую воспользоваться:&lt;br /&gt;&lt;br /&gt;cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn&lt;br /&gt;cd /etc/openvpn&lt;br /&gt;gunzip server.conf.gz&lt;br /&gt;$EDITOR server.conf&lt;br /&gt;&lt;br /&gt;Из соображений безопасности, я не стану приводить свой конфиг дословно, а просто укажу, какие параметры следует отредактировать.&lt;br /&gt;&lt;br /&gt;Во-первых, следует выбрать между tcp и udp, соответственно параметром&lt;br /&gt;&lt;br /&gt;proto tcp&lt;br /&gt;proto udp&lt;br /&gt;&lt;br /&gt;Если вас не устраивает адресация виртуальной сети по умолчанию (10.8.0.0/24), то нужно изменить параметр server:&lt;br /&gt;server ip_family netmask&lt;br /&gt;&lt;br /&gt;Например: server 192.168.0.0 255.255.255.0&lt;br /&gt;&lt;br /&gt;Далее, если вы хотите, чтобы VPN-клиенты “видели” друг друга, раскомментируйте параметр&lt;br /&gt;client-to-client&lt;br /&gt;&lt;br /&gt;Можно так же немного усилить безопасность, раскомментировав&lt;br /&gt;user nobody&lt;br /&gt;group nobody&lt;br /&gt;Клиент&lt;br /&gt;&lt;br /&gt;Как уже было упомянуто выше, я использовал в качестве тестовой клиентской машины Gentoo. Соответственно, нужно опять же, поставить OpenVPN:&lt;br /&gt;&lt;br /&gt;emerge -a openvpn&lt;br /&gt;&lt;br /&gt;Рекомендую USE=examples, однако можно обойтись и без этого.&lt;br /&gt;&lt;br /&gt;Далее мы (если еще этого не сделали) кидаем в /etc/openvpn сгенерированные на сервере сертификаты и ключ:&lt;br /&gt;&lt;br /&gt;    * ca.crt&lt;br /&gt;    * client1.crt&lt;br /&gt;    * client1.key&lt;br /&gt;&lt;br /&gt;Помимо этого, я утянул пример клиентской конфигурации с сервера (/usr/share/doc/openvpn/examples/sample-config-files/client.conf).&lt;br /&gt;&lt;br /&gt;В нем (/etc/openvpn/client.conf) необходимо исправить следующие параметры:&lt;br /&gt;&lt;br /&gt;    * proto (по умолчанию proto udp)&lt;br /&gt;    * remote your_server port&lt;br /&gt;      Порт по умолчанию - 1194, вместо your_server, естественно, вписать адрес/доменное имя OpenVPN-сервера.&lt;br /&gt;    * Возможно, осмысленно раскомментирвать&lt;br /&gt;      user nobody&lt;br /&gt;      group nobody&lt;br /&gt;    * cert client1.crt&lt;br /&gt;      key client1.key&lt;br /&gt;&lt;br /&gt;Собственно, это все. Настройка клиента закончена.&lt;br /&gt;&lt;br /&gt;Чтобы запустить OpenVPN-сессию, можно либо выполнить /etc/init.d/openvpn start либо перейти в /etc/openvpn и выполнить openvpn client.conf&lt;br /&gt;&lt;br /&gt;Второй вариант так же выводит много отладочной информации.&lt;br /&gt;Ссылки&lt;br /&gt;&lt;br /&gt;OpenVPN Official HOWTO можно найти по адресу http://openvpn.net/index.php/documentation/howto.html. Большая часть материалов - именно оттуда.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-4408247838141968786?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/4408247838141968786/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/openvpn.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4408247838141968786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4408247838141968786'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/openvpn.html' title='OpenVPN'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-9061017417461755868</id><published>2009-02-09T07:37:00.002-08:00</published><updated>2009-02-09T07:38:10.057-08:00</updated><title type='text'>Советы по Linux</title><content type='html'>1. Как быстро получить информацию о системе?&lt;br /&gt;&lt;br /&gt;Быстро получить информацию о системе можно используя команду procinfo. Если этого недостаточно - смотрите файловую систему /proc.&lt;br /&gt;Например: /proc/interrupts, /proc/cpuinfo...&lt;br /&gt;&lt;br /&gt;2. Еще один способ получить полезную информацию о системе&lt;br /&gt;&lt;br /&gt;Еще один способ получить полезную информацию о системе - команда vmstat. Она выводит информацию использовании памяти, процессора, областях swap и т.п.&lt;br /&gt;Команда free выдает информацию о памяти и swap.&lt;br /&gt;&lt;br /&gt;3. Как получить информацию о ваших загруженных модулях ядра&lt;br /&gt;&lt;br /&gt;lsmod - хороший способ получить информацию о ваших загруженных модулях ядра.&lt;br /&gt;&lt;br /&gt;4. Нужно посмотреть параметры и возможные опции для модуля ядра Linux?&lt;br /&gt;&lt;br /&gt;Воспользуйтесь командой modinfo. Например, Информация о авторе:&lt;br /&gt;modinfo -a модуль&lt;br /&gt;Список возможных параметров: modinfo -p модуль&lt;br /&gt;&lt;br /&gt;5. Полезная информация о ядре&lt;br /&gt;&lt;br /&gt;Левый или правый CTRL, ALT, или SHIFT + scrollock покажут вам полезную информацию о ядре.&lt;br /&gt;&lt;br /&gt;6. Как долго ваша система была запущена?&lt;br /&gt;&lt;br /&gt;Чтобы увидеть, как долго ваша система была запущена, наберите uptime.&lt;br /&gt;&lt;br /&gt;7. Как посмотреть какие порты открыты?&lt;br /&gt;&lt;br /&gt;netstat -a позволит вам увидеть все tcp и udp порты, которые открыты на вашей системе.&lt;br /&gt;&lt;br /&gt;8. Нужно узнать какой сокет заняла программа?&lt;br /&gt;&lt;br /&gt;lsof -i -U&lt;br /&gt;fuser port_num/tcp&lt;br /&gt;а также:&lt;br /&gt;netstat -pvlA inet&lt;br /&gt;&lt;br /&gt;9.Как посмотреть информацию о запущенных процессах?&lt;br /&gt;&lt;br /&gt;Обычно используется "ps -aux", и потом "kill &lt;номер процесса&gt;". Так же есть специальные программы - такие, как top, gtop и ktop.&lt;br /&gt;&lt;br /&gt;10. Как посмотреть свободное место на диске?&lt;br /&gt;&lt;br /&gt;Чтобы посмотреть свободное место на диске, используйте команду df. Так же в KDE есть программа kdf (KDiskFree).&lt;br /&gt;&lt;br /&gt;11. Как узнать размер всех директорий в данном каталоге?&lt;br /&gt;&lt;br /&gt;Чтобы узнать размер всех директорий в данном каталоге, выполните команду:&lt;br /&gt;&lt;br /&gt;find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn&lt;br /&gt;&lt;br /&gt;12. Как разбить один большой файл на несколько маленьких?&lt;br /&gt;&lt;br /&gt;Чтобы разбить один большой файл на несколько маленьких используйте команду:&lt;br /&gt;&lt;br /&gt;split --bytes=SIZE filename&lt;br /&gt;&lt;br /&gt;13. Как добавить конфигурации по умолчанию для программ?&lt;br /&gt;&lt;br /&gt;Если вы хотите добавить конфигурации по умолчанию для своих программ (которые размещаются в каждой домашней директории), копируйте эти конфигурационные файлы в /etc/skel. Каждый раз, когда вы добавляете нового пользователя, эти файлы будут скопированы в домашние директории пользователей.&lt;br /&gt;&lt;br /&gt;14. Как убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL?&lt;br /&gt;&lt;br /&gt;Убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL можно закомментировав строку&lt;br /&gt;&lt;br /&gt;ca::ctrlaltdel:/sbin/shutdown -t5 -rf now&lt;br /&gt;&lt;br /&gt;в файле /etc/inittab.&lt;br /&gt;&lt;br /&gt;15. Быстрый метод завершения перезапускаемого(respawning) процесса?&lt;br /&gt;&lt;br /&gt;Очень быстрый метод завершения перезапускаемого(respawning) процесса в вашем /etc/inittab - это переключение уровней исполнения. Например, если вы имеете строку:&lt;br /&gt;&lt;br /&gt;1:1235:respawn:/usr/sbin/mgetty /dev/ttyS1&lt;br /&gt;&lt;br /&gt;переключение на уровень 4 остановит перезапускаемый процесс.&lt;br /&gt;&lt;br /&gt;16. Как ограничить потребление ресурсов системы пользователями?&lt;br /&gt;&lt;br /&gt;Если вы запустили большую систему с большим количеством пользователей, может быть очень важно ограничить потребление ресурсов системы пользователями. Вы можете контролировать эти ограничения с помощью модуля PAM и файла /etc/pam.d/limits.conf. Большинство современных дистрибутивов используют PAM для аутентификации. Пример ограничений для группы users sample of limits for the users group.&lt;br /&gt;&lt;br /&gt;@users hard core 0&lt;br /&gt;&lt;br /&gt;@users hard nproc 50&lt;br /&gt;&lt;br /&gt;@users hard rss 5000&lt;br /&gt;&lt;br /&gt;Это не позволяет создавать файлы core, ограничивает пользователя до 50 процессов и по использованию памяти до 5МБ&lt;br /&gt;&lt;br /&gt;17. Как сделать дамп N-консоли?&lt;br /&gt;&lt;br /&gt;Команда cat /dev/vcsN сбрасывает дамп N-консоли.&lt;br /&gt;&lt;br /&gt;18. Как запретить вход всех пользователей в систему?&lt;br /&gt;&lt;br /&gt;Чтобы запретить вход всех пользователей в систему (кроме root) без перезагрузки создайте файл /etc/nologin. Содержимое этого файла будет отображаться когда пользователь попытается войти в систему.&lt;br /&gt;&lt;br /&gt;19. Ограничение на выполнение команды su&lt;br /&gt;&lt;br /&gt;Чтобы разрешить определенным пользователям делать su, что лучше чем всем по умолчанию, редактируйте /etc/login.defs и установите строку SU_WHEEL_ONLY в yes. Затем вам нужно добавить пользователей, которым нужно делать su в группу 0, что делается редактированием файла /etc/groups.&lt;br /&gt;&lt;br /&gt;20. Как примонтировать директорию из одной части файловой системы в другую?&lt;br /&gt;&lt;br /&gt;В linux 2.4.x ядрах:&lt;br /&gt;&lt;br /&gt;mount --bind какую_директорию_монтировать куда_монтировать&lt;br /&gt;&lt;br /&gt;21. Как установить точное время?&lt;br /&gt;&lt;br /&gt;Отличный способ установить на машине точное время - использовать каманду ntpdate:&lt;br /&gt;&lt;br /&gt;ntpdate&lt;br /&gt;&lt;br /&gt;Конечно, нужно иметь установленный пакет ntp и возможность соединения с сервером NTP. Вместо лучше использовать ip-адрес, чтобы избежать преобразования доменного имени в ip-адрес.&lt;br /&gt;&lt;br /&gt;22. Как установить время CMOS?&lt;br /&gt;&lt;br /&gt;Чтобы установить время CMOS системному используйте hwclock --systohc, а hwclock --hctosys - установит системное время, как время CMOS clock.&lt;br /&gt;&lt;br /&gt;23. Как быстро скомпилировать ядро&lt;br /&gt;&lt;br /&gt;Самый простой способ скомпилировать ядро это выполнить все команды make на одной строке набрав:&lt;br /&gt;&lt;br /&gt;make dep clean bzImage modules modules_install&lt;br /&gt;&lt;br /&gt;Если вы просто пропатчили свое ядро тогда просто сделайте:&lt;br /&gt;&lt;br /&gt;make oldconfig dep clean bzImage modules modules_install.&lt;br /&gt;&lt;br /&gt;24. System.map&lt;br /&gt;&lt;br /&gt;Вешь, о которой иногда забывают упомянуть, когда вы обновляете свое ядро - это файл System.map (обычно располагающийся в каталоге /boot), который не соответствует новому ядру. После перезагрузки вы увидите сообщения о некорректной версии ядра. После построения нового ядра не забудьте скопировать новый файл System.map из каталога /usr/src/linux в загрузочный каталог вашей системы (/boot).&lt;br /&gt;&lt;br /&gt;25. Как увидеть сообщения выдаваемы ядром?&lt;br /&gt;&lt;br /&gt;Увидеть сообщения, выдаваемые ядром на экран при загрузке системы можно набрав команду dmesg.&lt;br /&gt;&lt;br /&gt;26. Как посмотреть вывод команды и одновременно записать его в файл?&lt;br /&gt;&lt;br /&gt;Посмотреть вывод команды и одновременно записать его в файл можно с помощью команды:&lt;br /&gt;&lt;br /&gt;tee $ls | tee logfile.txt&lt;br /&gt;&lt;br /&gt;27. Как запретить хранитель экрана в текстовом режиме?&lt;br /&gt;&lt;br /&gt;Запретить хранитель экрана в текстовом режиме - напечатайте setterm -blank 0.&lt;br /&gt;&lt;br /&gt;28.Средство для более быстрого поиска файлов, чем find&lt;br /&gt;&lt;br /&gt;Средство для более быстрого поиска файлов, чем find - команда locate, которая использует базу данных для поиска. Для обновления этой базы часто используется cron. Или вручную - updatedb.&lt;br /&gt;&lt;br /&gt;29. Список всех исполняемых файлов в системе, которые присутствуют в вашем $PATH?&lt;br /&gt;&lt;br /&gt;Нажмите TAB + scroll-lock или еще проще - два нажатия на клавишу TAB. Результат один и тот же.&lt;br /&gt;&lt;br /&gt;30. Как отключить сигнал "beep" в течение автоматического завершения командной строки?&lt;br /&gt;&lt;br /&gt;Добавьте либо в ~/.inputrc или в /etc/inputrc для визуального звонка:&lt;br /&gt;&lt;br /&gt;set bell-style visible&lt;br /&gt;&lt;br /&gt;совершенно без сигнала:&lt;br /&gt;&lt;br /&gt;set bell-style none&lt;br /&gt;&lt;br /&gt;31. Как послать данные на желаемый терминал?&lt;br /&gt;&lt;br /&gt;Вы можете использовать все доступные терминалы, даже если они в применении, чтобы послать данные на тот терминал, на который хотите. Например:&lt;br /&gt;&lt;br /&gt;tail -f /var/log/messages &gt; /dev/tty12&lt;br /&gt;&lt;br /&gt;Для посылки любых сообщений на tty12.&lt;br /&gt;&lt;br /&gt;32. Циклическое переключение через все доступные консоли.&lt;br /&gt;&lt;br /&gt;Многие клавиатурные раскладки позволяют циклическое переключение через все доступные консоли используя Alt-RightArrow и Alt-LeftArrow.&lt;br /&gt;&lt;br /&gt;33. Как выполнить родную команду системы, если используются алиасы?&lt;br /&gt;&lt;br /&gt;Часто используете альясы shell (например, прописанные в ~/.bashrc), но иногда необходимо выполнить родную команду системы? Добавьте обратный слэш перед командой, это игнорирует псевдоним shell.&lt;br /&gt;&lt;br /&gt;34. Как найти все файлы в каталоге, которые содержат строку?&lt;br /&gt;&lt;br /&gt;Найти все файлы в каталоге, которые содержат строку:&lt;br /&gt;&lt;br /&gt;find . -type f -print | xargs grep -li "search string"&lt;br /&gt;&lt;br /&gt;35. Как сделать чтобы программа ожидала нажатия какой-либо клавиши пользователем?&lt;br /&gt;&lt;br /&gt;При написании скриптов shell часто возникает необходимость того, чтобы в процессе выполнения программа ожидала нажатия какой-либо клавиши пользователем. Это можно сделать таким способом:&lt;br /&gt;&lt;br /&gt;stty raw; dd if=$(tty) of=/dev/null bs=1 count=1; stty -raw&lt;br /&gt;&lt;br /&gt;36.Как перенаправить стандартный вывод и поток ошибок в один и тот же файл?&lt;br /&gt;&lt;br /&gt;Чтобы перенаправить стандартный вывод и поток ошибок в один и тот же файл, используйте `&amp;&gt;'.&lt;br /&gt;&lt;br /&gt;37. Как сохрать man-страницы в текстовый файл?&lt;br /&gt;&lt;br /&gt;Самый простой способ сохранения man-страницы в текстовый файл - " man name | col -b &gt; name.txt".&lt;br /&gt;&lt;br /&gt;38. Все символы в консоли стали нечитаемыми&lt;br /&gt;&lt;br /&gt;Если все символы в консоли стали нечитаемыми, наберите:&lt;br /&gt;&lt;br /&gt;"echo -ne "\017","stty sane" или просто "reset".&lt;br /&gt;&lt;br /&gt;39. Как перевести имена файлов в директории в нижний регистр?&lt;br /&gt;&lt;br /&gt;Самый простой способ перевода всех имен файлов из директории в нижний регистр:&lt;br /&gt;&lt;br /&gt;"for x in *; do mv $x `echo $x | tr [A-Z] [a-z]`; done".&lt;br /&gt;&lt;br /&gt;40. Как быстро переименовать файл?&lt;br /&gt;&lt;br /&gt;Чтобы быстро переименовать файл, используйте команду:&lt;br /&gt;&lt;br /&gt;"mv /usr/local/bin/{старое_имя,новое_имя}".&lt;br /&gt;&lt;br /&gt;41. Как удалить всю директорию без лишних запросов?&lt;br /&gt;&lt;br /&gt;Чтобы удалить сразу всю директорию без лишних запросов, используйте:&lt;br /&gt;&lt;br /&gt;rm -rf имя_директории&lt;br /&gt;&lt;br /&gt;42. Как создать сразу несколько директорий?&lt;br /&gt;&lt;br /&gt;Создание сразу нескольких директорий - "mkdir -p dir1/dir2/dir3".&lt;br /&gt;&lt;br /&gt;43. Как правильно выключить компьютер?&lt;br /&gt;&lt;br /&gt;Правильное выключение компьютера - команда "shutdown -h now".&lt;br /&gt;&lt;br /&gt;Перезагрузка - "shutdown -r now" или просто "init 5".&lt;br /&gt;&lt;br /&gt;44. Как передать весь вывод одной команды на вход другой команде?&lt;br /&gt;&lt;br /&gt;Чтобы передать весь вывод одной команды на вход другой команде, используется символ "|".&lt;br /&gt;&lt;br /&gt;Таким образом можно делать сложные конструкции (например, "ls | sort -r | less").&lt;br /&gt;&lt;br /&gt;45. Как следить за постоянно изменяющимися файлами?&lt;br /&gt;&lt;br /&gt;Чтобы следить за постоянно изменяющимися файлами (например, за системными логами), используйте команду tail.&lt;br /&gt;&lt;br /&gt;Пример: "tail -15 /var/log/syslog" - постоянно показывает последние 15 строк.&lt;br /&gt;&lt;br /&gt;46. Как следить за списком файлов в реальном времени?&lt;br /&gt;&lt;br /&gt;Слежение за списком файлов в реальном времени - "watch -n 0 ls -l".&lt;br /&gt;&lt;br /&gt;Команда watch осуществляет периодический запуск других команд.&lt;br /&gt;&lt;br /&gt;47. Как искать текст в файлах?&lt;br /&gt;&lt;br /&gt;Для поиска текста в файлах используется команда - "grep "ваш текст" /where/to/search".&lt;br /&gt;&lt;br /&gt;Если при поиске не нужно учитывать регистр - "grep -i "ваш текст" /where/to/search"&lt;br /&gt;&lt;br /&gt;48. Как заменить одно слово на другое во многих файлах?&lt;br /&gt;&lt;br /&gt;Для замены одного слова на другое сразу же во многих файлах можно использовать этот скрипт&lt;br /&gt;&lt;br /&gt;perl -pi -e 's/oneword/anotherword/g' *.&lt;br /&gt;Если нужно сделать это же с одним файлом, поставьте его имя вместо " * ".&lt;br /&gt;&lt;br /&gt;49. Как перейти из графического режима в текстовую консоль?&lt;br /&gt;&lt;br /&gt;Чтобы перейти из графического режима в текстовую консоль, нажмите Ctrl+Alt+F1. (Ctrl+Alt+F2 - на вторую консоль, Ctrl+Alt+F3 - на третью консоль, etc). Для того, чтобы вернуться обратно в Иксы, обычно используется комбинация клавиш Alt+F7.&lt;br /&gt;&lt;br /&gt;50. Как увидеть под Linux другой подключенный жесткий диск?&lt;br /&gt;&lt;br /&gt;Чтобы увидеть под Linux другой подключенный жесткий диск, надо примонтировать (командой mount) разделы, которые на новом винчестере есть. Для этого надо определить, каким винчестер стоит: hdb, hdc или hdd. Для этого нужно всего лишь сообразить, как он подключен: primary slave - это hdb, secondary master - это hdc, secondary slave - это hdd. Теперь надо просмотреть, какие диски на винте есть. Для этого запускаем cfdisk для того винта, который мы определили на предыдущем шаге, например, для hdb: cfdisk /dev/hdb. Глядим, какие разделы есть. Например есть FAT32 (или он еще обозначается как WIN95) диск /dev/hdb1. Мы хотим его подключить скажем к каталогу /mnt/disk. Тогда: mount -t vfat /dev/hdb1 /mnt/disk. Здесь: параметр "-t" указывает тип файловой системы, в нашем случае это vfat, что соответствует fat32.&lt;br /&gt;&lt;br /&gt;51. Работа с CD/R и CD/RW.&lt;br /&gt;&lt;br /&gt;Стираем так: cdrecord -v blank=fast(или all) dev=&lt;Ваш девайс&gt;.&lt;br /&gt;&lt;br /&gt;Образ делаем так: mkisofs -r -J -o &lt;имя_файла_образа.iso&gt; &lt;то_чего_в_образ_загоняем&gt;&lt;br /&gt;&lt;br /&gt;Пишем так: cdrecord -v -eject speed=8 dev=&lt;Ваш девайс&gt; file.iso.&lt;br /&gt;&lt;br /&gt;Если надо мультисессионный диск, то добавляем -multi.&lt;br /&gt;&lt;br /&gt;Так же существует много графических оболочек, которые в своей работе используют эти же простые команды.&lt;br /&gt;&lt;br /&gt;52. Запись CD диска&lt;br /&gt;&lt;br /&gt;Команды cdrecord, полезные при записи CDROM:&lt;br /&gt;&lt;br /&gt;mkisofs -V "volume_ID" -D -l -L -N -J -R -v -o cdrom.iso директория&lt;br /&gt;&lt;br /&gt;cdrecord -dev=0,1,0 -speed=4 -v cdrom.iso&lt;br /&gt;&lt;br /&gt;Для подключения IDE накопителя добавить в linux lilo append="hdc=ide-scsi"&lt;br /&gt;&lt;br /&gt;( hdc - ваш привод?) и включить в ядре поддержку эмуляции SCSI.&lt;br /&gt;&lt;br /&gt;-toc -atip -prcap - выдать полную информацию о накопителе.&lt;br /&gt;&lt;br /&gt;-scanbus - определить параметры для -dev (можно /proc/scsi/scsi)&lt;br /&gt;&lt;br /&gt;-dummy - запись в режие тестирования (без реального прожигания диска).&lt;br /&gt;&lt;br /&gt;-fix - исправить недописавшийся диск.&lt;br /&gt;&lt;br /&gt;-eject - после записи вытащить CD&lt;br /&gt;&lt;br /&gt;-blank=all очистить CR-RW перед записью.&lt;br /&gt;&lt;br /&gt;mkisofs -print-size - расчитать сколько потребуется места для записи директории&lt;br /&gt;&lt;br /&gt;53. Как смонтировать образ компак-диска?&lt;br /&gt;&lt;br /&gt;Смонтировать образ компакт-диска можно таким образом:&lt;br /&gt;&lt;br /&gt;#mkdir /mnt/iso&lt;br /&gt;&lt;br /&gt;#mount -t iso9660 -o loop cd-image.iso /mnt/iso&lt;br /&gt;&lt;br /&gt;(Разумеется, для операции монтирования нужно иметь права root). Теперь каталог /mnt/iso доступен для чтения содержимого образа компакт-диска.&lt;br /&gt;&lt;br /&gt;54. Как узнать метку компакт-диска?&lt;br /&gt;&lt;br /&gt;Узнать метку компакт-диска можно так:&lt;br /&gt;&lt;br /&gt;alias cdlabel='LABEL=`dd if=/dev/cdrom bs=1 count=32 skip=32808 2&gt;/dev/null` &amp;&amp; echo $LABEL'&lt;br /&gt;&lt;br /&gt;Удобно использовать альяс в инициализационных скриптах shell.&lt;br /&gt;Советы по “железу”&lt;br /&gt;&lt;br /&gt;1. Как получить список устройств на шине PCI?&lt;br /&gt;&lt;br /&gt;Получить список устройств на шине PCI можно таким образом:&lt;br /&gt;&lt;br /&gt;/sbin/lspci&lt;br /&gt;&lt;br /&gt;2. Как включить при загрузке клавиши numlock?&lt;br /&gt;&lt;br /&gt;Если вы хотите включить все клавиши numlock при загрузке, добавьте следущее в ваши загрузочные скрипты, например в rc.local:&lt;br /&gt;&lt;br /&gt;echo -n "Turning on numlock LEDs: "&lt;br /&gt;&lt;br /&gt;for tty in /dev/tty[1-6] /dev/tty1[2]; do&lt;br /&gt;&lt;br /&gt;setleds -D +num &lt; $tty &amp;&lt;br /&gt;&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;echo "done."&lt;br /&gt;&lt;br /&gt;3. Как посмотреть информацию полученную от мыши на стандартный вывод?&lt;br /&gt;&lt;br /&gt;Если у вас трудности с мышью, mev -i сбросит информацию полученную от мыши на стандартный вывод.&lt;br /&gt;&lt;br /&gt;4. Раздражают сигналы спикера вашего компьютера когда вы ошиблись?&lt;br /&gt;&lt;br /&gt;Попробуйте выполнить следующую команду bash:&lt;br /&gt;&lt;br /&gt;echo -ne '\033[11;0]'&lt;br /&gt;&lt;br /&gt;которая устанавливает продолжительность сигнала для консоли равным 0 секунд. Чтобы сделать это автоматически добавьте эти строки в /etc/profile или ваш~/.profile. Подробную информацию о том, как установить частоту и длительность гудка, читайте в Visual bell mini-Howto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-9061017417461755868?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/9061017417461755868/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/linux.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/9061017417461755868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/9061017417461755868'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/linux.html' title='Советы по Linux'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-655505578923294349</id><published>2009-02-09T07:37:00.001-08:00</published><updated>2009-02-09T07:37:37.386-08:00</updated><title type='text'>cамый простой интерфейс к netfilter</title><content type='html'>В данной статье я расскажу о самом простом интерфейсе для netfilter/iptables - ufw. Он стоит по умолчанию в последних версиях ubuntu. По умолчанию он выключен, для включения достаточно набрать:&lt;br /&gt;sudo ufw enable&lt;br /&gt;&lt;br /&gt;При этом все входящие соединения будут заблокированы, исходящие заблокированы не будут. При это файревол будет включен при загрузке машины.&lt;br /&gt;&lt;br /&gt;Чтоб разрешить входящие соединения например для почтового сервера достаточно сказать:&lt;br /&gt;ufw allow 25/tcp&lt;br /&gt;# или&lt;br /&gt;ufw allow smtp&lt;br /&gt;&lt;br /&gt;Вот как выглядят другие правила:&lt;br /&gt;# запретить подсети 10.0.0.0/8 соединяться с 192.168.0.1 на 25 порт по протоколу tcp&lt;br /&gt;ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25&lt;br /&gt;# разрешить любые соединения с сети 192.168.0.0/24&lt;br /&gt;ufw allow from 192.168.0.0/24&lt;br /&gt;# запретить 1.2.3.4 соединятся с данной машиной по udp с портом 514&lt;br /&gt;ufw deny proto udp from 1.2.3.4 to any port 514&lt;br /&gt;# разрешить соединение с 1.2.3.5:5469 к 1.2.3.4:5469 по udp&lt;br /&gt;ufw allow proto udp from 1.2.3.5 port 5469 to 1.2.3.4 port 5469&lt;br /&gt;&lt;br /&gt;правила применяются сразу и сохраняются при перезагрузке (/var/lib/ufw/user.rules), просмотреть текущую конфигурацию можно так:&lt;br /&gt;ufw status&lt;br /&gt;&lt;br /&gt;Для тонкой настройки можно отредактировать файлы лежащие в /etc/ufw/ например разрешить форвардинг, сделать маскарадинг или проброс порта.&lt;br /&gt;/etc/ufw/before.rules - правила применяемые до применения /var/lib/ufw/user.rules&lt;br /&gt;/etc/ufw/after.rules - правила применяемые после применения /var/lib/ufw/user.rules&lt;br /&gt;/etc/ufw/sysctl.conf - настройки опций ядра&lt;br /&gt;&lt;br /&gt;графическая обертка - http://gufw.tuxfamily.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-655505578923294349?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/655505578923294349/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/c-netfilter.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/655505578923294349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/655505578923294349'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/c-netfilter.html' title='cамый простой интерфейс к netfilter'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-3048276197274449973</id><published>2009-02-02T09:46:00.004-08:00</published><updated>2009-02-02T09:47:02.581-08:00</updated><title type='text'>Linux Traffic Shaping За 5 Минут При Помощи htb.init</title><content type='html'>Если у Вас есть Ваша собственная домашняя сеть с двумя или более компьютерами и она подключена к интернету, вы точно знаете о тех проблемах с одновременным доступом к сети, которые практически неизбежны при таком подключении. Самой большой и раздражающей проблемой является разделение ширины канала между всеми участниками сети: когда вы пытаетесь работать серез ssh с удаленным сервером, а в этот момент ваша wife/брат/друг решает поглядеть новый и очень классный видео клип с Google Video или YouTube, Ваше соединение замирает и вы можете забыть о комфортабельной работе . В этой маленькой статье я дам вам простое решение этой проблемы, которое позволит вам делать все, что угодно не думая о проблемах разделения трафика!&lt;br /&gt;&lt;br /&gt;Для начала замечу, что Ваша сеть должна быть подключена к Internet при помощи Linux сервера. Если Вы подключены через какой-то тупой аппаратный маршрутизатор, то Вам сильно не повезло и вы не сможете воспользоваться приведенным примером.&lt;br /&gt;&lt;br /&gt;Если же Ваш сервер работает под управлением Linux, тогда используйте слудеющие ниже интсрукции чтобы сделать вашу жизнь проще. Замечу, что у меня интернет подключен к интерфейсу eth0, а локальная сеть - к eth1, канал у меня - симметричное подслючение на 512Kbit/s, потому все примеры будут очновываться на этих параметрах:&lt;br /&gt;&lt;br /&gt;   1. Скачайте скрипт htb.init с сайта sourceforge.&lt;br /&gt;   2. Распакуйте его и положите в /sbin/htb.init, сменив ему аттрибуты, чтобы сделать его исполнимым:&lt;br /&gt;&lt;br /&gt;      # chmod +x /sbin/htb.init&lt;br /&gt;&lt;br /&gt;   3. Создайте каталоги для конфигурации и кеша htb.init:&lt;br /&gt;&lt;br /&gt;      # mkdir -p /etc/sysconfig/htb&lt;br /&gt;      # mkdir -p /var/cache/htb.init&lt;br /&gt;&lt;br /&gt;   4. Перейдите в каталог коныигурации htb.initи создайте следующие конфигурационные файлы для исходящего трафика:&lt;br /&gt;          * Файл ‘eth0′ со следующим содержимым:&lt;br /&gt;&lt;br /&gt;            DEFAULT=30&lt;br /&gt;            R2Q=100&lt;br /&gt;&lt;br /&gt;          * Файл ‘eth0-2.root’ со следующим содержимым:&lt;br /&gt;&lt;br /&gt;            # root class containing outgoing bandwidth&lt;br /&gt;            RATE=512Kbit&lt;br /&gt;&lt;br /&gt;          * Файл ‘eth0-2:10.ssh’ со следующим содержимым:&lt;br /&gt;&lt;br /&gt;            # class for outgoing ssh&lt;br /&gt;            RATE=256Kbit&lt;br /&gt;            CEIL=512Kbit&lt;br /&gt;            LEAF=sfq&lt;br /&gt;            RULE=*:22&lt;br /&gt;            PRIO=10&lt;br /&gt;&lt;br /&gt;          * И, наконец, файл ‘eth0-2:30.default’ со следующим содержимым:&lt;br /&gt;&lt;br /&gt;            # default class for outgoing traffic&lt;br /&gt;            RATE=256Kbit&lt;br /&gt;            CEIL=512Kbit&lt;br /&gt;            LEAF=sfq&lt;br /&gt;            PRIO=30&lt;br /&gt;&lt;br /&gt;   5. Теперь, создайте набор файлов для управления входящим трафиком:&lt;br /&gt;          * Файл ‘eth1′ со следующим содержимым:&lt;br /&gt;&lt;br /&gt;            DEFAULT=30&lt;br /&gt;            R2Q=100&lt;br /&gt;&lt;br /&gt;          * Файл ‘eth1-2.root’ со следующим содержимым:&lt;br /&gt;&lt;br /&gt;            # root class containing incoming bandwidth&lt;br /&gt;            RATE=512Kbit&lt;br /&gt;&lt;br /&gt;          * Файл ‘eth1-2:10.ssh’ со следующим содержимым:&lt;br /&gt;&lt;br /&gt;            # class for incoming ssh&lt;br /&gt;            RATE=256Kbit&lt;br /&gt;            CEIL=512Kbit&lt;br /&gt;            LEAF=sfq&lt;br /&gt;            RULE=*:22,&lt;br /&gt;            PRIO=10&lt;br /&gt;&lt;br /&gt;          * Файл ‘eth1-2:20.mytraf’ для конфигурирования параметров канала на Ваш компьютер:&lt;br /&gt;&lt;br /&gt;            # class for my incoming traffic&lt;br /&gt;            RATE=256Kbit&lt;br /&gt;            CEIL=512Kbit&lt;br /&gt;            LEAF=sfq&lt;br /&gt;            RULE=192.168.0.2 # this is my ip&lt;br /&gt;            PRIO=20&lt;br /&gt;&lt;br /&gt;          * И файл ‘eth1-2:30.default’ для параметров канала по умолчанию для остальных со следующим содержимым:&lt;br /&gt;&lt;br /&gt;            # default class for outgoing traffic&lt;br /&gt;            RATE=256Kbit&lt;br /&gt;            CEIL=512Kbit&lt;br /&gt;            LEAF=sfq&lt;br /&gt;            PRIO=30&lt;br /&gt;&lt;br /&gt;   6. Последний шаг - запуск системы контроля трафика при помощи следующей команды:&lt;br /&gt;&lt;br /&gt;      # /sbin/htb.init start&lt;br /&gt;      #&lt;br /&gt;&lt;br /&gt;Если все шаги были выполнены правльно и успешно, Вы можете использовать Ваш канал для работы через ssh, для скачивания файлов или для простого серфинга… Ваше соединение будет честно делиться между всеми участниками домашней сети. Если вы находитесь в сети один, Вы будете использовать всю ширину канала. Как только ваши соседи захотят что-то скачать, ширина канала будет разделена между вами поровну, но ваша работа будет настолько же комфортной, как и в тот момент, когда Вы были одни.&lt;br /&gt;&lt;br /&gt;Если хотите узнать больше, используйте следующие ресурсы:&lt;br /&gt;&lt;br /&gt;    * http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm&lt;br /&gt;    * http://www.docum.org/stef.coene/qos/faq/&lt;br /&gt;    * http://tldp.org/HOWTO/ADSL-Bandwidth-Management-HOWTO/index.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-3048276197274449973?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/3048276197274449973/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/linux-traffic-shaping-5-htbinit.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3048276197274449973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/3048276197274449973'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/linux-traffic-shaping-5-htbinit.html' title='Linux Traffic Shaping За 5 Минут При Помощи htb.init'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-2257408575224767943</id><published>2009-02-02T09:43:00.002-08:00</published><updated>2009-02-02T09:44:08.452-08:00</updated><title type='text'>Перенаправление сообщений из EventLog Windows на удалённый syslog</title><content type='html'>В предыдущей статье было показано как можно настроить сбор логов с различных серверов под управлением Linux и FreeBSD на один используя syslog. Однако что делать если в сети есть ещё и машина под Windows?&lt;br /&gt;&lt;br /&gt;Возникает разумное желание так же собирать EventLog из Windows на тот же сервер, что и логи с остальных серверов. Далее будет рассмотрено одно из возможных решений этой задачи.&lt;br /&gt;&lt;br /&gt;Начальные условия у нас практически такие же, как и в предыдущей статье, с одним дополнением: в сети присутствует один (или несколько - не суть важно) сервер под Windows.&lt;br /&gt;&lt;br /&gt;Самым удобным решением этой задачи является вариант с отсылкой сообщений из EventLog Windows в syslog на сервере сбора логов. Для этого можно использовать инструмент evtsys, разработанный в Purdue Univercity.&lt;br /&gt;&lt;br /&gt;Для установки нужно скачать архив со страницы проекта и распаковать его в директорию %systemroot%\system32 (Обычно это C:\Windows\system32).&lt;br /&gt;&lt;br /&gt;После распаковки нужно запустить командную строку: «Пуск» -&gt; «Программы» -&gt; «Стандартные» -&gt; «Командная строка». И выполнить в ней следующие команды:&lt;br /&gt;&lt;br /&gt;%SystemDrive%&lt;br /&gt;cd %SyetmRoot%\System32&lt;br /&gt;evtsys -i -h 192.168.2.1&lt;br /&gt;net start evtsys&lt;br /&gt;&lt;br /&gt;Первыми двумя командами осуществляется переход в директорию с файлами утилиты, третья устанавливает evtsys как системную службу (она получит имя "Eventlog to Syslog"). Последняя команда запускает эту службу.&lt;br /&gt;&lt;br /&gt;После этого системные логи из EventLog начнут дублироваться в удалённый Syslog.&lt;br /&gt;&lt;br /&gt;Если по какой-то причине нужно удалить evtsys то в командной строке нужно выполнить следующие команды:&lt;br /&gt;&lt;br /&gt;%SystemDrive%&lt;br /&gt;cd %SyetmRoot%\System32&lt;br /&gt;net stop evtsys&lt;br /&gt;evtsys -u&lt;br /&gt;del evtsys.*&lt;br /&gt;&lt;br /&gt;Здесь сначала останавливается служба, потом удаляется запись о ней из реестра системы и наконец удаляются сами файлы утилиты.&lt;br /&gt;&lt;br /&gt;Отдельно нужно оговориться о том, что в русской версии Windows сообщения пересылаются в кодировке cp1251, потому для чтения логов на сервере сбора логов имеет смысл воспользоваться примерно такой командой:&lt;br /&gt;&lt;br /&gt;iconv -f cp1251 192.168.2.201-notice.log | less&lt;br /&gt;&lt;br /&gt;На этом всё. Приятной работы!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-2257408575224767943?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/2257408575224767943/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/eventlog-windows-syslog.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/2257408575224767943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/2257408575224767943'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/eventlog-windows-syslog.html' title='Перенаправление сообщений из EventLog Windows на удалённый syslog'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-789720048709096873.post-4067757213168248562</id><published>2009-02-02T09:43:00.001-08:00</published><updated>2009-02-02T09:43:41.375-08:00</updated><title type='text'>Настройка syslog для сбора логов с серверов на одном сервере</title><content type='html'>При большом количестве сервером становится неудобно обходить все сервера чтобы просмотреть на них системный журнал и появляется желание системные журналы со всех серверов собрать в одном месте.&lt;br /&gt;&lt;br /&gt;В этом случае можно воспользоваться возможностью большинства реализаций syslog-демонов обмениваться информацией с другими syslog-серверами используя стандартный протокол. Далее будет показано как настроить сбор и хранение логов с нескольких серверов на один.&lt;br /&gt;&lt;br /&gt;Начальные условия:&lt;br /&gt;&lt;br /&gt;    * Серая сеть 192.168.2.0/24, в которой у каждого сервера есть IP-адрес.&lt;br /&gt;    * Сервер для сбора логов. Имеет адрес 192.168.2.1, работает под управлением Debian и на нём запущен syslog-ng.&lt;br /&gt;    * Некоторое количество серверов под управлением Debian, на всех установлен и запущен syslog-ng.&lt;br /&gt;    * Некоторое количество серверов под управлением FreeBSD, на всех установлен syslogd.&lt;br /&gt;&lt;br /&gt;Переходим к решению задачи. Для начала сконфигурируем syslog-ng на всех серверах под управлением Linux. Для этого нужно добавить в файл /etc/syslog-ng/syslog-ng.conf следующие строки:&lt;br /&gt;&lt;br /&gt;# Описываем новое хранилище логов.&lt;br /&gt;destination df_remote {&lt;br /&gt;    udp("192.168.2.1");&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;# Описываем фильтр, определяющий какие именно сообщения будут отсылаться на удалённый сервер.&lt;br /&gt;filter f_remote {&lt;br /&gt;    level(info,notice,warn);&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;# Настраиваем логгирование выбранной информации на удалённый сервер.&lt;br /&gt;log {&lt;br /&gt;    source(s_all);&lt;br /&gt;    filter(f_remote);&lt;br /&gt;    destination(df_remote);&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;И перезапускаем syslog-ng:&lt;br /&gt;&lt;br /&gt;invoke-rc.d syslog-ng restart&lt;br /&gt;&lt;br /&gt;Следующим шагом настраиваем syslogd на серверах под FreeBSD. Здесь всё чуть проще: нужно добавить в файл /etc/syslog.conf строку:&lt;br /&gt;&lt;br /&gt;*.*  @192.168.2.1&lt;br /&gt;&lt;br /&gt;И перезапустить syslogd:&lt;br /&gt;&lt;br /&gt;/etc/rc.d/syslogd restart&lt;br /&gt;&lt;br /&gt;Теперь остаётся только настроить сервер логов. Ранее, настраивая сбор логов с Wi-Fi точки, мы уже настраивали сбор логов с одного хоста, однако при большом количестве серверов затруднительно прописывать каждый из них отдельно, потому в этот раз поступим немного иначе.&lt;br /&gt;&lt;br /&gt;Сейчас мы настроем сбор логов со всех серверов сразу, для этого нужно добавить следующие строки в файл /etc/syslog-ng/syslog-ng.conf на сервере сбора логов:&lt;br /&gt;&lt;br /&gt;# Определяем новый источник: сеть.&lt;br /&gt;source s_udp {&lt;br /&gt; udp();&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Описываем фильтр, который будет из всей кучи сообщений выбрить сообщения от хостов из нашей сети.&lt;br /&gt;filter f_remote {&lt;br /&gt;    host("192.168.2.*");&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;# Описываем хранилизе логов.&lt;br /&gt;# Логи будут находится в директории /var/log/remote&lt;br /&gt;# и иметь имя: &lt;IP-хоста&gt;-&lt;уровень&gt;.log&lt;br /&gt;destination df_remote {&lt;br /&gt;    file("/var/log/remote/$HOST-$LEVEL.log");&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;# Настраиваем логгирование&lt;br /&gt;log {&lt;br /&gt;    source(s_udp);&lt;br /&gt;    filter(f_remote);&lt;br /&gt;    destination(df_remote);&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Создаём директорию для логов:&lt;br /&gt;&lt;br /&gt;mkdir /var/log/remote&lt;br /&gt;&lt;br /&gt;Перезапускаем syslog-ng:&lt;br /&gt;&lt;br /&gt;invoke-rc.d syslog-ng restart&lt;br /&gt;&lt;br /&gt;На этом настройка заканчивается. Через некоторое время в директории /var/log/remote начнут появляться файлы логов.&lt;br /&gt;&lt;br /&gt;Приятной работы!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/789720048709096873-4067757213168248562?l=ualinux.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ualinux.blogspot.com/feeds/4067757213168248562/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://ualinux.blogspot.com/2009/02/syslog.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4067757213168248562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/789720048709096873/posts/default/4067757213168248562'/><link rel='alternate' type='text/html' href='http://ualinux.blogspot.com/2009/02/syslog.html' title='Настройка syslog для сбора логов с серверов на одном сервере'/><author><name>zluka</name><uri>http://www.blogger.com/profile/07306213869591246429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
