<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Настройка шлюза (HOWTO)]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=6611&amp;type=atom" />
	<updated>2010-09-16T11:06:39Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=6611</id>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=92548#p92548" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>CyberDaemon пишет:</cite><blockquote><p>Хорошо бы было упямянуть в этом опусе про NIS и сетевые группы.</p></blockquote></div><p>не, это для другого опуса:</p><div class="quotebox"><blockquote><p>Схема работы NIS построена по принципу многих клиентов и нескольких серверов. В домене NIS существуют один главный и несколько подчиненных серверов, но клиенты не различают главный и подчиненный серверы. Поскольку в сети NIS могут быть разные системы, следует придерживаться стандартной схемы, при которой в каждом сегменте сети есть по крайней мере один сервер NIS, для того, чтобы клиенты могли отправить ему широковещательный запрос. Однако в Solaris это не требуется, и если вся сеть построена на Solaris (этих принципов также придерживаются многие Linux-системы), то это требование не является обязательным. Впрочем, в любом случае наличие &quot;своего&quot; сервера NIS в сегменте сети улучшит производительность.</p><p>Смысл работы NIS состоит в том, чтобы сделать некую конфигурационную информацию общедоступной в пределах группы компьютеров. <strong>Большая группа компьютеров вместе со своими пользователями и группами </strong>называется доменом NIS. В домен NIS, например, могут входить все компьютеры и сотрудники организации.</p></blockquote></div><p>(<a href="http://www.intuit.ru/department/os/sysadmsolaris10/8/">http://www.intuit.ru/department/os/sysadmsolaris10/8/</a>)</p><p>А я изначально вёл речь о группе из <strong>ДВУХ домашних компьютеров</strong> (ну ладно, трёх, считая друга с ноутом). Зачем мне тут группы? Речь идёт о внутренней, изолированной сети для личного использования. Политика безопасности очень проста: запрещён ЛЮБОЙ вход во внутреннюю сеть. Ну разве что по SSH с авторизацией по ключу. </p><p>ЗЫЖ<br />Автомонтирование (как мне советовал <strong>system-root</strong>), я пытался сделать, но что-то не получилось - ну НЕ НУЖНО оно мне (в данном случае).</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2010-09-16T11:06:39Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=92548#p92548</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=92539#p92539" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p><strong>Настройка NFS.</strong></p><p>Вторая машина у меня служит файлопомойкой (в т.ч.), в частности там у меня лежит музыка. И тут ВНЕЗПНО выяснилось, что мой плеер не умеет играть с FTP (анализ показал, что виноват в этом я сам... я-же его собирал...). Пересобирать мне было лениво, потому я поднял NFS. Вот что <a href="http://drbatty.ru/slackbook/network-configuration-nfs.html#NETWORK-CONFIGURATION-NFS-NFS">сказано в букваре</a>.</p><p><strong>Что такое NFS?</strong></p><p>Ну это общие папки. Прямо как в маздае. Только древние. Проблема в NFS в том, что любой может зайти на хост прикинувшись тем, кому это можно - просто устанавливаем имя компьютера как у легального юзера, и свободно заходим и качаем (и даже правим/удаляем, если легальному это разрешено). Для домашней локальной сети - самое отличное решение (конечно необходимо прикрыть снаружи это фаерволом, а точнее - не открывать).</p><p><strong>Настройка сервера.</strong></p><p>Сервером NFS называется тот компьютер, на котором лежат доступные (с других компов) каталоги. Настраивается на сервере всё очень просто:</p><p>1) Ставим <strong>nfs-utils-1.1.4-i486-1</strong> и <strong>portmap-6.0-i486-1</strong>.<br />2) Редактируем&nbsp; <span class="bbu">/etc/exports</span><br /></p><div class="codebox"><pre><code># See exports(5) for a description.
# This file contains a list of all directories exported to other computers.
# It is used by rpc.nfsd and rpc.mountd.

/home/aranei/music      bx(rw,root_squash,subtree_check)
/home/aranei/video      bx(rw,root_squash,subtree_check)</code></pre></div><p>т.е. добавляем открытые каталоги. Здесь всё довольно просто: первым идёт полное имя каталога, затем имя компа (HOSTNAME) которому можно, затем опции. root_squash для того, что-бы рут с bx не имел прав рута на сервере.<br />3) ставим права доступа 700 на <span class="bbu">/etc/rc.d/rc.rpc</span> и <span class="bbu">/etc/rc.d/rc.nfsd</span>.<br />4) Запускаем <br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">/etc/rc.d/rc.nfsd start</div><br />5) Сервер настроен <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /></p><p><strong>Настройка клиента.</strong></p><p>Настроить клиент для меня было несколько сложнее, чем обычно. Проблема в том, что клиент у меня поставлен на шлюзе, а шлюз является сервером. Т.е. всё перепутано. Ну да ладно, вот как я сделал:</p><p>1) На клиенте устанавливаются те же пакеты <strong>nfs-utils-1.1.4-i486-1</strong> и <strong>portmap-6.0-i486-1</strong>.<br />2) ставим права доступа 700 на <span class="bbu">/etc/rc.d/rc.rpc</span>. А на rc.nfsd не надо (если вам не нужно шарить папки и там и там. Если нужно, то у вас будет и там и там и сервер и клиент).<br />3) теперь правим <span class="bbu">/etc/fstab</span>, добавляем туда расшаренные каталоги.<br /></p><div class="codebox"><pre><code>aranei:/home/aranei/music /home/doc/music/aranei nfs             noauto 0 0
aranei:/home/aranei/video /home/doc/video        nfs             noauto 0 0</code></pre></div><p>Как обычные каталоги, только перед источником ставится имя машины ОТКУДА каталог, и тип - nfs.<br />Отдельно стоит отметить noauto - этот атрибут для того, что-бы в <span class="bbu">/etc/rc.d/rc.inet2</span> НЕ происходило монтирование каталогов - ибо в данный момент сеть поднята &quot;не до конца&quot;. А смонтируются наши каталоги уже в самом конце загрузки,<br />4) В файле <span class="bbu">/etc/rc.d/rc.local</span><br />Добавленны сл. строки:<br /></p><div class="codebox"><pre><code>mount /home/doc/music/aranei
mount /home/doc/video</code></pre></div><p>Примечание: это не нужно в том случае, если сеть на NFS сервере подымается ДО сети на клиенте. Например в моём случае я мог-бы расшарить файлы на шлюзе, который и раздаёт сеть на клиента. Но я вот так вот извратился. В данном случае видимо невозможно (точнее сложно) будет сделать общую папку /usr, если конечно она не на шлюзе.<br />Вот. Теперь музыку спокойно слушаю...</p></blockquote></div><p>Хорошо бы было упямянуть в этом опусе про NIS и сетевые группы.<br />В плане, напрмер такой записи:<br />/home/aranei/music&nbsp; &nbsp; &nbsp; @trusted(rw,root_squash,subtree_check)</p>]]></content>
			<author>
				<name><![CDATA[CyberDaemon]]></name>
				<uri>https://linuxforum.ru/profile.php?id=2674</uri>
			</author>
			<updated>2010-09-16T10:38:38Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=92539#p92539</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=92513#p92513" />
			<content type="html"><![CDATA[<p><strong>Настройка NFS.</strong></p><p>Вторая машина у меня служит файлопомойкой (в т.ч.), в частности там у меня лежит музыка. И тут ВНЕЗПНО выяснилось, что мой плеер не умеет играть с FTP (анализ показал, что виноват в этом я сам... я-же его собирал...). Пересобирать мне было лениво, потому я поднял NFS. Вот что <a href="http://drbatty.ru/slackbook/network-configuration-nfs.html#NETWORK-CONFIGURATION-NFS-NFS">сказано в букваре</a>.</p><p><strong>Что такое NFS?</strong></p><p>Ну это общие папки. Прямо как в маздае. Только древние. Проблема в NFS в том, что любой может зайти на хост прикинувшись тем, кому это можно - просто устанавливаем имя компьютера как у легального юзера, и свободно заходим и качаем (и даже правим/удаляем, если легальному это разрешено). Для домашней локальной сети - самое отличное решение (конечно необходимо прикрыть снаружи это фаерволом, а точнее - не открывать).</p><p><strong>Настройка сервера.</strong></p><p>Сервером NFS называется тот компьютер, на котором лежат доступные (с других компов) каталоги. Настраивается на сервере всё очень просто:</p><p>1) Ставим <strong>nfs-utils-1.1.4-i486-1</strong> и <strong>portmap-6.0-i486-1</strong>.<br />2) Редактируем&nbsp; <span class="bbu">/etc/exports</span><br /></p><div class="codebox"><pre><code># See exports(5) for a description.
# This file contains a list of all directories exported to other computers.
# It is used by rpc.nfsd and rpc.mountd.

/home/aranei/music      bx(rw,root_squash,subtree_check)
/home/aranei/video      bx(rw,root_squash,subtree_check)</code></pre></div><p>т.е. добавляем открытые каталоги. Здесь всё довольно просто: первым идёт полное имя каталога, затем имя компа (HOSTNAME) которому можно, затем опции. root_squash для того, что-бы рут с bx не имел прав рута на сервере.<br />3) ставим права доступа 700 на <span class="bbu">/etc/rc.d/rc.rpc</span> и <span class="bbu">/etc/rc.d/rc.nfsd</span>.<br />4) Запускаем <br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">/etc/rc.d/rc.nfsd start</div><br />5) Сервер настроен <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /></p><p><strong>Настройка клиента.</strong></p><p>Настроить клиент для меня было несколько сложнее, чем обычно. Проблема в том, что клиент у меня поставлен на шлюзе, а шлюз является сервером. Т.е. всё перепутано. Ну да ладно, вот как я сделал:</p><p>1) На клиенте устанавливаются те же пакеты <strong>nfs-utils-1.1.4-i486-1</strong> и <strong>portmap-6.0-i486-1</strong>.<br />2) ставим права доступа 700 на <span class="bbu">/etc/rc.d/rc.rpc</span>. А на rc.nfsd не надо (если вам не нужно шарить папки и там и там. Если нужно, то у вас будет и там и там и сервер и клиент).<br />3) теперь правим <span class="bbu">/etc/fstab</span>, добавляем туда расшаренные каталоги.<br /></p><div class="codebox"><pre><code>aranei:/home/aranei/music /home/doc/music/aranei nfs             noauto 0 0
aranei:/home/aranei/video /home/doc/video        nfs             noauto 0 0</code></pre></div><p>Как обычные каталоги, только перед источником ставится имя машины ОТКУДА каталог, и тип - nfs.<br />Отдельно стоит отметить noauto - этот атрибут для того, что-бы в <span class="bbu">/etc/rc.d/rc.inet2</span> НЕ происходило монтирование каталогов - ибо в данный момент сеть поднята &quot;не до конца&quot;. А смонтируются наши каталоги уже в самом конце загрузки,<br />4) В файле <span class="bbu">/etc/rc.d/rc.local</span><br />Добавленны сл. строки:<br /></p><div class="codebox"><pre><code>mount /home/doc/music/aranei
mount /home/doc/video</code></pre></div><p>Примечание: это не нужно в том случае, если сеть на NFS сервере подымается ДО сети на клиенте. Например в моём случае я мог-бы расшарить файлы на шлюзе, который и раздаёт сеть на клиента. Но я вот так вот извратился. В данном случае видимо невозможно (точнее сложно) будет сделать общую папку /usr, если конечно она не на шлюзе.<br />Вот. Теперь музыку спокойно слушаю...</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2010-09-16T09:34:00Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=92513#p92513</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=91423#p91423" />
			<content type="html"><![CDATA[<p>По умолчанию proftpd (а именно его я и буду использовать в качестве сервера, а конкретно <strong>proftpd-1.3.2-i486-1</strong> (вышла <a href="http://forum.drbatty.ru/viewtopic.php?f=71&amp;t=5271">новая версия)</a>) поставляется настроенным в качестве сервера который вызывается супер-сервером. Это достаточно долго, я предпочитаю что-бы сервер сразу работал. Впрочем, это дело вкуса. Я опишу процесс настройки именно как постоянно висящего процесса.</p><p>Вот конфиг - я вырезал из него комментарии, и почти ничего не осталось&nbsp; :wink: <br /></p><div class="codebox"><pre><code>aranei@aranei:~$ sed -r &#039;s/\s*#.*//; /^\s*$/d&#039; /etc/proftpd.conf
ServerName                      &quot;LISM station&quot;
ServerType                      standalone
DefaultServer                   on
UseIPv6                         off
Port                            21
Umask                           022
DefaultRoot                     ~
MaxInstances                    30
User                            nobody
Group                           nogroup
SystemLog                       /var/log/proftpd.log
TransferLog                     /var/log/xferlog
&lt;Directory /*&gt;
        AllowOverwrite          on
&lt;/Directory&gt;</code></pre></div><p>Имеется 2 основных отличия от конфига по умолчанию: во первых standalone (постоянно висит, а не подгружается когда необходимо), во вторых DefaultRoot ~, что-бы все юзвери были заперты в домашнем каталоге. Секцию анонимуса я вырезал, ибо мне это не нужно. Доступ к серверу имеют все юзеры, НЕ перечисленные в<br /></p><div class="codebox"><pre><code>$ cat /etc/ftpusers
ftp
root
uucp
news</code></pre></div><p>Юзверь ftp - это тот-же ананимус. Рута надо суда вбить ОБЯЗАТЕЛЬНО. Во избежание...</p><p>Сам демон я запускаю вот таким скриптом <span class="bbu">/etc/rc.d/rc.proftpd</span>:<br /></p><div class="codebox"><pre><code>#!/bin/sh                               

FTPD=&quot;/usr/sbin/proftpd&quot;
FTPD_OPTIONS=&quot;&quot;

function ftpd_start()
{
        echo &quot;$FTPD starting...&quot;
        $FTPD $FTPD_OPTIONS
}

function ftpd_stop()
{
        echo &quot;$FTPD stopping...&quot;
        FTPD_PID=`ps uax|sed -rn &#039;s~^(\S+\s+)([0-9]+)\s+(\S+\s+){8}(proftpd:\s+.*)$~\2~p&#039;`
        if [ -z &quot;$FTPD_PID&quot; ]; then
                echo &quot;$FTPD not runing.&quot;
        else
                echo &quot;PID=$FTPD_PID&quot;
                kill $FTPD_PID
        fi
}

case $1 in
        start)
                ftpd_start
                ;;
        stop)
                ftpd_stop
                ;;
        restart)
                ftpd_stop
                sleep 1
                ftpd_start
                ;;
        status)
                ps uax|sed -rn &#039;s~^(\S+\s+)([0-9]+)\s+(\S+\s+){8}(proftpd:\s+.*)$~&amp;~p&#039;
                ;;
        *)
                echo &quot;Usage: &quot;`basename $0`&quot; start|stop|restart|status.&quot;
                ;;
esac</code></pre></div><p>ничего интересного... А запуск этого скрипта я прописал в <span class="bbu">/etc/rc.d/rc.inet2</span>:<br /></p><div class="codebox"><pre><code>if [ -x /etc/rc.d/rc.proftpd ]; then
        /etc/rc.d/rc.proftpd start
fi</code></pre></div><p>(в самый конец).<br />В первый раз вызывать нужно ручками, а потом оно работает само.</p><p>Попробуем локально (используя <strong>lftp-3.7.14-i486-1</strong>):<br />(конечно я не совсем локально делал, а по ssh)<br /></p><div class="codebox"><pre><code>aranei@aranei:~$ lftp
lftp :~&gt; open -u aranei localhost
Пароль:
lftp aranei@localhost:~&gt; ls
-rwxr-xr-x   1 aranei   users       58265 Sep  8 23:06 htop-0.8-i486-1ant.tgz
-rwxr-xr-x   1 aranei   users        1222 Sep  9 00:07 lang.sh
-rwxr-xr-x   1 aranei   users         213 Sep  9 00:06 rc.font
-rwxr-xr-x   1 aranei   users         658 Sep  9 00:06 rc.keymap
drwxr-xr-x   8 aranei   users        4096 Sep  9 00:01 slackware
-rw-r--r--   1 0        0              45 Sep  8 23:11 welcome.msg
lftp aranei@localhost:/&gt; exit</code></pre></div><p>Работает. Если не работает, или нефиг делать, первой командой наберите <strong>debug 10</strong> - будет много букв.<br />Теперь можно попробовать и удалённо:<br /></p><div class="codebox"><pre><code>doc@bx:~$ lftp]lftp :~&gt; open -u aranei aranei
lftp aranei@aranei:~&gt; ls
-rwxr-xr-x   1 aranei   users       58265 Sep  8 23:06 htop-0.8-i486-1ant.tgz
-rwxr-xr-x   1 aranei   users        1222 Sep  9 00:07 lang.sh
-rwxr-xr-x   1 aranei   users         213 Sep  9 00:06 rc.font
-rwxr-xr-x   1 aranei   users         658 Sep  9 00:06 rc.keymap
drwxr-xr-x   8 aranei   users        4096 Sep  9 00:01 slackware
-rw-r--r--   1 0        0              45 Sep  8 23:11 welcome.msg
lftp aranei@aranei:/&gt;</code></pre></div><p>вот, даже пароля не спросила. Это не дыра, у вас спросят - просто я его вбил в <span class="bbu">~/.netrc</span>, чтоб по 20 раз не набирать:<br /></p><div class="codebox"><pre><code>machine aranei
login aranei
password мой_пароль</code></pre></div><p>PS: да, FTP, это единственный нормальный протокол, который поддерживает Windows для обмена файлами. Ежели придёт друг с ноутом, это самый быстрый и простой способ обменяться файлами - поднимать samba-сервер ИМХО не рационально, да и весит он сотни мегабайт... А в венде даже проводник умеет FTP, хотя конечно и жутко криво.</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2010-09-14T05:25:04Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=91423#p91423</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=91418#p91418" />
			<content type="html"><![CDATA[<p><strong>Настройка SSH.</strong></p><p>Вообще говоря, SSH нужно настроить в первую очередь, что-бы не бегать от компьютера к компьютеру. SSH сервер нужно подымать на том компьютере, который удалённый (не важно, шлюз это или клиент), а SSH клиент ставится на локальный компьютер (в Linux это <strong>openssh-5.2p1-i486-1</strong> (это сервер и клиент сразу), для венды есть клиент - <strong>putty</strong>). Ну про настройку ssh я уже подробно расписал <a href="http://forum.drbatty.ru/viewtopic.php?f=19&amp;t=4966&amp;start=0">здесь</a>. Для начала(когда мы только начали настраивать, и у клиента не было даже IP) просто чутка подредактируем <span class="bbu">/etc/ssh/sshd_config</span>:<br /></p><div class="codebox"><pre><code>PasswordAuthentication yes</code></pre></div><p>теперь для входа достаточно лишь пароля. И теперь локально создаём ключи (если они конечно ещё не созданы) - <strong>ssh-keygen</strong>. Далее:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">doc@bx:~$ scp .ssh/id_rsa.pub aranei:<br />aranei@aranei&#039;s password:<br />id_rsa.pub&nbsp; 100%&nbsp; 395&nbsp; &nbsp; &nbsp;0.4KB/s&nbsp; &nbsp;00:00<br />doc@bx:~$ ssh aranei<br />aranei@aranei&#039;s password:<br />Last login: Thu Sep&nbsp; 9 06:34:32 2010 from 192.168.1.1<br />Linux 2.6.29.6-smp.<br />aranei@aranei:~$ mkdir .ssh<br />aranei@aranei:~$ mv id_rsa.pub .ssh/authorized_keys<br />aranei@aranei:~$ logout<br />Connection to aranei closed.<br />doc@bx:~$ ssh aranei<br />Enter passphrase for key &#039;/home/doc/.ssh/id_rsa&#039;:<br />Last login: Thu Sep&nbsp; 9 14:01:24 2010 from 192.168.1.1<br />Linux 2.6.29.6-smp.<br /></div><br />тут я отправил свой ключ со шлюза на клиент, и перелогинился. Теперь вместо пароля меня просят набирать парофразу. Осталось запретить вход по паролю, что-бы никто кроме нас не смог войти:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">aranei@aranei:~$ su -&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />Password:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />root@aranei:~# vim /etc/ssh/sshd_config&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /># нужно перезагрузить sshd демон. Т.к. мы вошли по ssh, нас выкинет:<br />root@aranei:~# /etc/rc.d/rc.sshd restart<br />WARNING: killing listener process only.&nbsp; To kill every sshd process, you must<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;use &#039;rc.sshd stop&#039;.&nbsp; &#039;rc.sshd restart&#039; kills only the parent sshd to<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;allow an admin logged in through sshd to use &#039;rc.sshd restart&#039; without<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;being cut off.&nbsp; If sshd has been upgraded, new connections will now<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;use the new version, which should be a safe enough approach.<br /># в данном случае рестарта не получилось, о чём нас и предупреждают.<br /># задаём stop и start в одной команде, что-бы потом можно было войти.<br />root@aranei:~# /etc/rc.d/rc.sshd stop; /etc/rc.d/rc.sshd start<br />Connection to aranei closed by remote host.<br />Connection to aranei closed.<br /># выкинули <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /><br /></div><br />Теперь нужно проверить, пустят-ли кого-то другого. Например root&#039;а с bx (выше показано, что doc&#039;а с bx пускают).<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />doc@bx:~$ su -<br />Password: *******<br /># для рута не прописана конфигурация хоста aranei, приходится явно всё писать<br />root@bx:~# ssh -p66666 aranei@192.168.1.10<br />The authenticity of host &#039;[192.168.1.10]:66666 ([192.168.1.10]:66666)&#039; can&#039;t be established.<br />RSA key fingerprint is 08:cb:e9:d1:75:df:c8:34:9d:96:79:32:c5:38:ba:84.<br />Are you sure you want to continue connecting (yes/no)? yes<br /># я впервые захожу как рут, на этот хост, потому меня спрашивают, уверен-ли я, что это именно тот хост?<br /># злоумышленник может подменить хосты, и я введу пароль/публичный ключ<br /># не туда. Если аутенофикация по паролю - то я уже взломан.<br /># Но у нас по ключу. Соглашаемся, врагов вроде нет...<br />Warning: Permanently added &#039;[192.168.1.10]:66666&#039; (RSA) to the list of known hosts.<br />Permission denied (publickey,keyboard-interactive).<br /># облом. доступ закрыт. Что и требовалось.<br />root@bx:~# logout<br />doc@bx:~$ ssh aranei<br />Enter passphrase for key &#039;/home/doc/.ssh/id_rsa&#039;:<br />Last login: Thu Sep&nbsp; 9 14:03:29 2010 from 192.168.1.1<br />Linux 2.6.29.6-smp.<br />aranei@aranei:~$<br /># а вот doc&#039;а с bx&#039;а пускают...<br /></div></p><p>Советую сразу задать какой-нить нестандартный порт, что-бы боты не долбились и не пачкали логи. Ну и естественно следует запретить вход для root&#039;а.</p><p>Теперь можно настраивать удалённо, хоть с Америки <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /></p><p>PS: на самом деле - неудобно. Мой идентификационный файл используется для связи с боевыми серверами, и естественно защищён сложной парафразой. Конечно нет никакого смысла вводить такую парафразу для связи со своим-же компом, который рядом (и со своего). Потому я сделал вторую пару ключей, написав<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">ssh-keygen -f aranei</div><br />После чего я отправил <strong>публичный</strong> ключ на второй комп, и встроил его в файл <strong>~/.ssh/authorized_keys</strong>. Теперь можно отредактировать конфиг на клиенте ssh, указав там, что используется другой ключ:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">$ cat ~/.ssh/config<br />Host aranei<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Hostname aranei<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Port 66666<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; User aranei<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IdentityFile ~/.ssh/aranei</div><br />Теперь можно входить без паролей и парафраз.</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2010-09-14T05:07:01Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=91418#p91418</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=91413#p91413" />
			<content type="html"><![CDATA[<p><strong>Настройка роутинга и файрвола на шлюзе.</strong></p><p><strong>Клиент.</strong></p><p>С клиентом всё понятно: фаервол там не нужен (в нашем случае. Клиент-то мой, кто его атаковать будет? Только шлюз... Или через шлюз), а с роутингом вопросов нет - у нас всего один интерфейс, и именно туда мы будем роутить все пакеты:</p><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">root@aranei:~# route -n -e<br />Kernel IP routing table<br />Destination&nbsp; &nbsp; &nbsp;Gateway&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Genmask&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Flags&nbsp; &nbsp;MSS Window&nbsp; irtt Iface<br />192.168.1.0&nbsp; &nbsp; &nbsp;0.0.0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;255.255.255.0&nbsp; &nbsp;U&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 eth0<br />169.254.0.0&nbsp; &nbsp; &nbsp;0.0.0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;255.255.0.0&nbsp; &nbsp; &nbsp;U&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 eth0<br />127.0.0.0&nbsp; &nbsp; &nbsp; &nbsp;0.0.0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;255.0.0.0&nbsp; &nbsp; &nbsp; &nbsp;U&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 lo<br />0.0.0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;192.168.1.1&nbsp; &nbsp; &nbsp;0.0.0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;UG&nbsp; &nbsp; &nbsp; &nbsp; 0 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 eth0<br /></div><br />Как видите, таблица роутинга очень простая. UG это не <span style="color: red"><strong>[CENSORED]</strong></span>, а путь по умолчанию <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> Он задаётся в скрипте <strong>/etc/rc.d/rc.inet1</strong>, точнее этот скрипт запускает <strong>dhcpcd</strong>, и если клиент получит себе IP, он ещё и прописывает в таблицу роутинга путь к шлюзу. Причём как путь по умолчанию.<br /></p><ul></ul><p><strong>Шлюз.</strong></p><p>На шлюзе всё сложнее.<br />Таблица роутинга без глобальной сети такая:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">root@bx:~# route -n -e<br />Kernel IP routing table<br />Destination&nbsp; &nbsp; &nbsp;Gateway&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Genmask&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Flags&nbsp; &nbsp;MSS Window&nbsp; irtt Iface<br />192.168.1.0&nbsp; &nbsp; &nbsp;0.0.0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;255.255.255.0&nbsp; &nbsp;U&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 eth1<br />127.0.0.0&nbsp; &nbsp; &nbsp; &nbsp;0.0.0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;255.0.0.0&nbsp; &nbsp; &nbsp; &nbsp;U&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 lo<br /></div><br />А когда подключается глобальная Сеть, <strong>kppp</strong> добавляет в таблице путь по умолчанию к шлюзу провайдера.</p><p>Кроме того я использую фаервол. Фаервол стандартный, взятый с известной доки по настройке <strong>iptables</strong>:<br />вот с вырезанными комментами:<br /></p><div class="codebox"><pre><code>DHCP_NOIPV4LL[0]=&quot;yes&quot;</code></pre></div><p>Скрипт представляет собой слегка переделанный скрипт от Copyright (C) 2001&nbsp; Oskar Andreasson &lt;bluefluxATkoffeinDOTnet&gt;<br /></p><ol class="decimal"><li><p>я слегка изменил загрузку модулей. (в оригинале они просто загружались, а у меня в цикле).</p></li><li><p>я определяю сервер DNS. (об этом ниже)</p></li></ol><p>Как указывает сам Оскар, включение forwarding&#039;а (строчка echo &quot;1&quot; &gt; /proc/sys/net/ipv4/ip_forward) следует перенести в конец скрипта по соображениям безопасности (существует момент, между включением форвардинга и записью правил, когда злоумышленник может пробраться в нашу сеточку).&nbsp; Но мне лень менять...</p><p>PS: поменял-таки.</p><div class="codebox"><pre><code>INET_IFACE=&quot;ppp0&quot;                                               
DHCP=&quot;no&quot;                                                       
DHCP_SERVER=`sed -rn &#039;s/^nameserver ([0-9.]+).*$/\1/;T;p;q&#039; /etc/resolv.conf`
if [ -n &quot;$DHCP_SERVER&quot; ]; then                                               
        echo &quot;Found DHCP_SERVER=$DHCP_SERVER&quot;                                
        DHCP=&quot;yes&quot;                                                           
        sed -ri &quot;/^\s*forwarders \{$/{; N; s/(\n\s*)([0-9.]{7,16})/\1$DHCP_SERVER/; }&quot; /etc/named.conf
fi                                                                                                    
PPPOE_PMTU=&quot;no&quot;                                                                                       
LAN_IP=&quot;192.168.1.1&quot;                                                                                  
LAN_IP_RANGE=&quot;192.168.1.0/24&quot;                                                                         
LAN_IFACE=&quot;eth1&quot;                                                                                      
LO_IFACE=&quot;lo&quot;                                                                                         
LO_IP=&quot;127.0.0.1&quot;                                                                                     
IPTABLES=&quot;/usr/sbin/iptables&quot;                                                                         
MOD_INIT=&quot;&quot;                                                                                           
for MOD in ip_conntrack ip_tables iptable_filter iptable_mangle iptable_nat ipt_LOG     ipt_limit ipt_MASQUERADE
do                                                                                                              
        /sbin/lsmod | grep -q &quot;$MOD&quot;                                                                            
        if [ $? != 0 ]; then                                                                                    
                echo &quot;load $MOD&quot;                                                                                
                if [ -z &quot;MOD_INIT&quot; ]; then                                                                      
                        /sbin/depmod -a                                                                         
                        MOD_INIT=&quot;yes&quot;                                                                          
                fi                                                                                              
                /sbin/modprobe $MOD                                                                             
        fi                                                                                                      
done                                                                                                            
echo &quot;1&quot; &gt; /proc/sys/net/ipv4/ip_forward                                                                        
$IPTABLES -P INPUT DROP                                                                                         
$IPTABLES -P OUTPUT DROP                                                                                        
$IPTABLES -P FORWARD DROP                                                                                       
$IPTABLES -N bad_tcp_packets                                                                                    
$IPTABLES -N allowed                                                                                            
$IPTABLES -N tcp_packets                                                                                        
$IPTABLES -N udp_packets                                                                                        
$IPTABLES -N icmp_packets                                                                                       
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \                                               
-m state --state NEW -j REJECT --reject-with tcp-reset                                                          
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \                                       
--log-prefix &quot;New not syn:&quot;                                                                                     
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP                                        
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
$IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
if [ $DHCP == &quot;yes&quot; ] ; then
        $IPTABLES -A udp_packets -p UDP -s $DHCP_SERVER --sport 67 \
        --dport 68 -j ACCEPT
fi
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix &quot;IPT INPUT packet died: &quot;
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix &quot;IPT FORWARD packet died: &quot;
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix &quot;IPT OUTPUT packet died: &quot;
if [ $PPPOE_PMTU == &quot;yes&quot; ] ; then
        $IPTABLES -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN \
        -j TCPMSS --clamp-mss-to-pmtu
fi
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE</code></pre></div>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2010-09-14T05:00:45Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=91413#p91413</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=91410#p91410" />
			<content type="html"><![CDATA[<p><strong>Настройка шлюза.</strong></p><p>На шлюзе используются несколько другие программы, или по другому настроены. Для начала разберёмся с самим понятием &quot;шлюз&quot;. Шлюзом я называю компьютер, имеющий более одного IP адреса. Шлюз связывает как минимум две сети. Подразумевается, что у нас уже есть настроенный и подключённый к Сети компьютер, в моём случае я использовал обычный компьютер с Slackware Linux, и инетом через мобильный телефон. Сеть у меня включается утилиткой <strong>kppp</strong>, причём настройка сети примитивна - всё по умолчанию. Единственное, что надо настраивать у моего опсоса(tele2) - номер телефона. Конечно нужно указать и интерфейс (его можно узнать выполнив <strong>dmesg</strong> после подключения девайса. Работает это всё через USB, но этот USB эмулирует COM интерфейс. Т.о. в железе это USB, но ПО работает с файлом /dev/tty* так, как будто это древний COM порт. Сама мобила тоже эмулирует некий древний дайлапный модем, т.е. туда можно отправлять разные команды и получать на них ответы. Правда смысл имеют всего 2 команды: Во первых ATZ (сброс), во вторых ATDPномер - набор номера телефона. Как только связь установится, сетевой интерфейс будет видно в ifconfig, в моём случае это <strong>ppp0</strong>. Ещё мне какой-нить IP дают, не обращал внимание какой именно. Сам адрес видимо постоянно меняется (динамический), и кроме того - &quot;серый&quot;, т.е. входящие ко мне соединения невозможны. По этой (в частности) причине и такое наплевательское отношение к безопасности.</p><p><strong>Настройка второго сетевого интерфейса.</strong></p><p>Второй интерфейс у нас будет смотреть в нашу локальную сеть из двух компьютеров (шлюза и клиента). Подключив карточку и включив оба компьютера (глобальную сеть <s>можно</s> нужно не включать) надо прежде всего узнать командой ifconfig -a номер нашего интерфейса, у меня это eth1. Теперь правим <span class="bbu">/etc/rc.d/rc.inet1.conf</span> - изменяем значение переменных соответствующего индекса (у меня eth1, потому индекс 1)<br /></p><div class="codebox"><pre><code>    # Config information for eth1:
    IPADDR[1]=&quot;192.168.1.1&quot;       
    NETMASK[1]=&quot;255.255.255.0&quot;   
    USE_DHCP[1]=&quot;&quot;               
    DHCP_HOSTNAME[1]=&quot;&quot;           </code></pre></div><p>Тут адрес жёстко задан, потому-что шлюз у нас будет иметь вполне конкретный адрес (впрочем можно и плавающий адрес сделать, всё равно клиенты найдут шлюз, вот только - зачем?)<br />Перезапускаем сеть:</p><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">/etc/rc.d/rc.inet1 restart</div></p><p>И смотрим наш интерфейс:</p><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br /># ifconfig<br />eth1&nbsp; &nbsp; &nbsp; Link encap:Ethernet&nbsp; HWaddr 00:80:ad:8c:cc:f1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet addr:192.168.1.1&nbsp; Bcast:192.168.1.255&nbsp; Mask:255.255.255.0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet6 addr: fe80::280:adff:fe8c:ccf1/64 Scope:Link<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UP BROADCAST RUNNING MULTICAST&nbsp; MTU:1500&nbsp; Metric:1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX packets:83967 errors:1 dropped:0 overruns:0 frame:1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TX packets:2788372 errors:6 dropped:0 overruns:0 carrier:6<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collisions:0 txqueuelen:1000<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX bytes:10069550 (9.6 MiB)&nbsp; TX bytes:4169453506 (3.8 GiB)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Interrupt:12 Base address:0x6000</p><p>lo&nbsp; &nbsp; &nbsp; &nbsp; Link encap:Local Loopback<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet addr:127.0.0.1&nbsp; Mask:255.0.0.0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet6 addr: ::1/128 Scope:Host<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UP LOOPBACK RUNNING&nbsp; MTU:16436&nbsp; Metric:1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX packets:29792 errors:0 dropped:0 overruns:0 frame:0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TX packets:29792 errors:0 dropped:0 overruns:0 carrier:0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collisions:0 txqueuelen:0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX bytes:2928900 (2.7 MiB)&nbsp; TX bytes:2928900 (2.7 MiB)</div><br />Как видите интерфейс удачно поднялся и ему присвоился IP 192.168.1.1. Можно также и ручками подымать опускать интерфейсы той-же <strong>ifconfig</strong>. До клиента нам пока не достучатся, ибо у него ещё нет IP, что-бы он его получил нам надо поднять DHCP сервер.</p><p><strong>Настройка DHCP</strong></p><p>Я использовал стандартный сервер из пакета <strong>dhcp-3.1.2p1-i486-1</strong>. Сначала его надо настроить, для нашего случая настройки такие:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br /># sed &#039;s/^#.*//;/^$/d&#039; /etc/dhcpd.conf<br />ddns-update-style ad-hoc;<br />option domain-name &quot;bx&quot;;<br />option domain-name-servers 192.168.1.1;<br />default-lease-time 600;<br />max-lease-time 7200;<br />authoritative;<br />subnet 192.168.1.0 netmask 255.255.255.0 {<br />&nbsp; &nbsp; &nbsp; &nbsp; option domain-name &quot;bx&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; option broadcast-address 192.168.1.254;<br />&nbsp; &nbsp; &nbsp; &nbsp; option domain-name-servers 192.168.1.1;<br />&nbsp; &nbsp; &nbsp; &nbsp; option subnet-mask 255.255.255.0;<br />&nbsp; &nbsp; &nbsp; &nbsp; option routers 192.168.1.1;<br />&nbsp; &nbsp; &nbsp; &nbsp; range 192.168.1.50 192.168.1.60;<br />&nbsp; &nbsp; &nbsp; &nbsp; default-lease-time 600;<br />&nbsp; &nbsp; &nbsp; &nbsp; max-lease-time 7200;</p><p>&nbsp; &nbsp; &nbsp; &nbsp; host aranei {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hardware ethernet 00:80:48:46:98:15;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fixed-address 192.168.1.10;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />}<br /></div><br />смысл данного конфига такой: <br /></p><ul><li><p>приходит клиент, и запрашивает IP адрес (используется широковещательный запрос на фиктивный IP .255)</p></li><li><p>сервер имеет пул IP от .50, до .60, он выдаёт первый свободный IP из этого пула.</p></li><li><p>имеется исключение: если MAC адрес клиента равен 00:80:48:46:98:15, то сервер выдаёт такому клиенту IP .10</p></li></ul><p>Для запуска демона используется специальный скрипт (не помню где взял <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /> надеюсь он под GPL...)<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"># cat <span class="bbu">/etc/rc.d/rc.dhcpd</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; #!/bin/sh&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; #&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; # /etc/rc.d/rc.dhcpd&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; #&nbsp; &nbsp; &nbsp; This shell script takes care of starting and stopping&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; #&nbsp; &nbsp; &nbsp; the ISC DHCPD service&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; #&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><p>&nbsp; &nbsp; # Put the command line options here that you want to pass to dhcpd:<br />&nbsp; &nbsp; #DHCPD_OPTIONS=&quot;-q eth0&quot;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; DHCPD_OPTIONS=&quot;-q eth1&quot;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><p>&nbsp; &nbsp; [ -x /usr/sbin/dhcpd ] || exit 0</p><p>&nbsp; &nbsp; [ -f /etc/dhcpd.conf ] || exit 0</p><p>&nbsp; &nbsp; start() {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Start daemons.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo -n &quot;Starting dhcpd:&nbsp; /usr/sbin/dhcpd $DHCPD_OPTIONS &quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /usr/sbin/dhcpd $DHCPD_OPTIONS&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; stop() {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Stop daemons.<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo -n &quot;Shutting down dhcpd: &quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; killall -TERM dhcpd<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; status() {<br />&nbsp; &nbsp; &nbsp; PIDS=$(pidof dhcpd)<br />&nbsp; &nbsp; &nbsp; if [ &quot;$PIDS&quot; == &quot;&quot; ]; then<br />&nbsp; &nbsp; &nbsp; &nbsp; echo &quot;dhcpd is not running!&quot;<br />&nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; echo &quot;dhcpd is running at pid(s) ${PIDS}.&quot;<br />&nbsp; &nbsp; &nbsp; fi<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; restart() {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stop<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start<br />&nbsp; &nbsp; }</p><p>&nbsp; &nbsp; # See how we were called.<br />&nbsp; &nbsp; case &quot;$1&quot; in<br />&nbsp; &nbsp; &nbsp; start)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />&nbsp; &nbsp; &nbsp; stop)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stop<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />&nbsp; &nbsp; &nbsp; restart)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stop<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />&nbsp; &nbsp; &nbsp; status)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; status<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />&nbsp; &nbsp; &nbsp; *)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo &quot;Usage: $0 {start|stop|status|restart}&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;<br />&nbsp; &nbsp; esac<br />&nbsp; &nbsp; exit 0<br /></div></p><p>В принципе вся настройка скрипта сводится (при необходимости) к смене номера интерфейса в первой не закомментированной строке.<br />Создадим скрипт, установим его права 700, и запустим. Запускается он молча, но можно посмотреть его работу в <span class="bbu">/var/log/messages</span><br /></p><div class="codebox"><pre><code>Sep  9 08:33:01 bx dhcpd: Wrote 0 deleted host decls to leases file.
Sep  9 08:33:01 bx dhcpd: Wrote 0 new dynamic host decls to leases file.
Sep  9 08:33:01 bx dhcpd: Wrote 2 leases to leases file.</code></pre></div><p>а теперь проверим его работу. вместе с DHCP сервером в комплекте идёт и клиент, причём в клиентском компе я использовал <strong>dhcpcd</strong>, а здесь у нас <strong>dhclient</strong> (это разные вещи на самом деле). Запустим его:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />dhclient<br />Internet Systems Consortium DHCP Client V3.1.2p1<br />Copyright 2004-2009 Internet Systems Consortium.<br />All rights reserved.<br />For info, please visit <a href="http://www.isc.org/sw/dhcp/">http://www.isc.org/sw/dhcp/</a></p><p>Listening on LPF/eth1/00:80:ad:8c:cc:f1<br />Sending on&nbsp; &nbsp;LPF/eth1/00:80:ad:8c:cc:f1<br />Sending on&nbsp; &nbsp;Socket/fallback<br />DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 7<br />DHCPOFFER from 192.168.1.1<br />DHCPREQUEST on eth1 to 255.255.255.255 port 67<br />DHCPACK from 192.168.1.1<br />bound to 192.168.1.51 -- renewal in 256 seconds.</div><br />вот... что-то произошло. ifconfig пишет, что:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br /># ifconfig<br />eth1&nbsp; &nbsp; &nbsp; Link encap:Ethernet&nbsp; HWaddr 00:80:ad:8c:cc:f1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet addr:192.168.1.51&nbsp; Bcast:192.168.1.254&nbsp; Mask:255.255.255.0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet6 addr: fe80::280:adff:fe8c:ccf1/64 Scope:Link<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UP BROADCAST RUNNING MULTICAST&nbsp; MTU:1500&nbsp; Metric:1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX packets:83984 errors:1 dropped:0 overruns:0 frame:1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TX packets:2788393 errors:6 dropped:0 overruns:0 carrier:6<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collisions:0 txqueuelen:1000<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX bytes:10072626 (9.6 MiB)&nbsp; TX bytes:4169457736 (3.8 GiB)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Interrupt:12 Base address:0x6000</p><p>lo&nbsp; &nbsp; &nbsp; &nbsp; Link encap:Local Loopback<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet addr:127.0.0.1&nbsp; Mask:255.0.0.0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet6 addr: ::1/128 Scope:Host<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UP LOOPBACK RUNNING&nbsp; MTU:16436&nbsp; Metric:1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX packets:33483 errors:0 dropped:0 overruns:0 frame:0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TX packets:33483 errors:0 dropped:0 overruns:0 carrier:0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collisions:0 txqueuelen:0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX bytes:3272154 (3.1 MiB)&nbsp; TX bytes:3272154 (3.1 MiB)</div><br />как видно, сервер выдал новый адрес (в данном случае самому себе, что конечно приведёт к нарушению работы шлюза). Этот клиент тоже настраивается, но нам он нужен лишь для проверки, потому мы обойдёмся пустым конфигом по умолчанию.<br /><strong>Важно!</strong> не забудьте выключить этот клиент, а то он каждые несколько минут IP переписывает.</p><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />root@bx:~# ps uax | grep &quot;dhcl&quot;<br />root&nbsp; &nbsp; &nbsp; 4956&nbsp; 0.0&nbsp; 0.2&nbsp; &nbsp;2208&nbsp; &nbsp;596 ?&nbsp; &nbsp; &nbsp; &nbsp; Ss&nbsp; &nbsp;09:12&nbsp; &nbsp;0:00 dhclient<br />root&nbsp; &nbsp; &nbsp; 6072&nbsp; 0.0&nbsp; 0.3&nbsp; &nbsp;2412&nbsp; &nbsp;832 pts/2&nbsp; &nbsp; S+&nbsp; &nbsp;09:48&nbsp; &nbsp;0:00 grep --color dhcl<br />root@bx:~# kill 4956<br />root@bx:~# ps uax | grep &quot;dhcl&quot;<br />root&nbsp; &nbsp; &nbsp; 6075&nbsp; 0.0&nbsp; 0.3&nbsp; &nbsp;2412&nbsp; &nbsp;832 pts/2&nbsp; &nbsp; S+&nbsp; &nbsp;09:48&nbsp; &nbsp;0:00 grep --color dhcl<br /></div></p><p>Теперь нужно прописать запуск <strong>dhcpd</strong> я это сделал в скрипте <span class="bbu">/etc/rc.d/rc.inet1</span><br /></p><ul><li><p>Примечание: по замыслу Патрика, сеть в слаке подымается двумя скриптами:<br /></p><ol class="decimal"><li><p>Скрипт <span class="bbu">/etc/rc.d/rc.inet1</span> подымает саму сеть.</p></li><li><p>А скрипт <span class="bbu">/etc/rc.d/rc.inet2</span> подымает сетевые демоны.</p></li><li><p>Есть ещё опциональный скрипт <span class="bbu">/etc/rc.d/rc.inetd</span>, этот поднимает одноимённый демон суперсервера, который запускает не слишком нужные сетевые серверы. К примеру так обычно запускается FTP, если этот FTP нужен раз в году.</p></li></ol><p>Я решил, что для DHCP сервера самое место именно в <span class="bbu">/etc/rc.d/rc.inet1</span>. Впрочем, вы можете это изменить.</p></li></ul><p>Вот отличия нового файла от старого:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />root@bx:~#diff etc/rc.d/rc.inet1.new /etc/rc.d/rc.inet1 -c<br />*** etc/rc.d/rc.inet1.new&nbsp; &nbsp; &nbsp; &nbsp;2009-08-25 08:37:21.000000000 +0400<br />--- /etc/rc.d/rc.inet1&nbsp; 2010-09-09 09:33:10.000000000 +0400<br />***************<br />*** 211,220 ****<br />--- 211,226 ----<br />&nbsp; &nbsp; &nbsp; if_up $i<br />&nbsp; &nbsp; done<br />&nbsp; &nbsp; gateway_up<br />+&nbsp; &nbsp; &nbsp; &nbsp;if [ -x /etc/rc.d/rc.dhcpd ]; then<br />+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/etc/rc.d/rc.dhcpd start<br />+&nbsp; &nbsp; &nbsp; &nbsp;fi<br />&nbsp; }</p><p>&nbsp; # Function to stop the network:<br />&nbsp; stop() {<br />+&nbsp; &nbsp; &nbsp; &nbsp;if [ -x /etc/rc.d/rc.dhcpd ]; then<br />+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/etc/rc.d/rc.dhcpd stop<br />+&nbsp; &nbsp; &nbsp; &nbsp;fi<br />&nbsp; &nbsp; gateway_down<br />&nbsp; &nbsp; for i in ${IFNAME[@]} ; do<br />&nbsp; &nbsp; &nbsp; if_down $i<br /></div></p><p>Подразумевается, что клиент подключён. Теперь опять рестартанём сеть, и посмотрим что получилось:<br />(в <span class="bbu">/var/log/messages</span>)</p><div class="codebox"><pre><code>    Sep  9 09:52:20 bx dhcpd: DHCPREQUEST for 192.168.1.10 from 00:80:48:46:98:15 via eth1
    Sep  9 09:52:20 bx dhcpd: DHCPACK on 192.168.1.10 to 00:80:48:46:98:15 via eth1</code></pre></div><p>Видно, что наш DHCP сервер принял запрос от клиента, и выдал ему адрес .10.<br />Набрав <br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />root@bx:~# ping 192.168.1.10<br />PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.<br />64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.442 ms<br />64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.277 ms<br />64 bytes from 192.168.1.10: icmp_seq=3 ttl=64 time=0.305 ms<br />64 bytes from 192.168.1.10: icmp_seq=4 ttl=64 time=0.281 ms<br />^C<br />--- 192.168.1.10 ping statistics ---<br />4 packets transmitted, 4 received, 0% packet loss, time 2999ms<br />rtt min/avg/max/mdev = 0.277/0.326/0.442/0.068 ms</div><br />убеждаемся в нормальной работе сети.</p><p><strong>А если не работает?</strong></p><p>Не работать может по многим причинам (я всю ночь не мог сделать - выяснилось, что просто сетевая карта не рабочая). Самое простое, ИМХО, идти к клиенту, останавливать там сеть, и поднимать её ручками:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">root@bx:~# /etc/rc.d/rc.inet1 stop<br />Shutting down dhcpd:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />root@bx:~# ifconfig <br /># нет ответа - интерфейсы не подняты<br />root@bx:~# ifconfig eth1 up 192.168.1.10<br />root@bx:~# ifconfig&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />eth1&nbsp; &nbsp; &nbsp; Link encap:Ethernet&nbsp; HWaddr 00:80:ad:8c:cc:f1&nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet addr:192.168.1.10&nbsp; Bcast:192.168.1.255&nbsp; Mask:255.255.255.0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet6 addr: fe80::280:adff:fe8c:ccf1/64 Scope:Link&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UP BROADCAST RUNNING MULTICAST&nbsp; MTU:1500&nbsp; Metric:1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX packets:84467 errors:1 dropped:0 overruns:0 frame:1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TX packets:2788575 errors:6 dropped:0 overruns:0 carrier:6&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collisions:0 txqueuelen:1000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX bytes:10224282 (9.7 MiB)&nbsp; TX bytes:4169487324 (3.8 GiB)&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Interrupt:12 Base address:0x6000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /># поднял интерфейс (только я это на сервере делал - ходить к клиенту мне лень <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /><br /># теперь пропингуем клиентом самого себя - это я могу сделать и отсюда:<br />root@aranei:~# ping 192.168.1.10<br />PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.<br />64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.176 ms<br />64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.117 ms<br />64 bytes from 192.168.1.10: icmp_seq=3 ttl=64 time=0.103 ms<br />^C<br />--- 192.168.1.10 ping statistics ---<br />3 packets transmitted, 3 received, 0% packet loss, time 2000ms<br />rtt min/avg/max/mdev = 0.103/0.132/0.176/0.031 ms<br /># сам себя пингует, и если провода и сетевухи нормальные, то должен пинговаться и с сервера:<br />root@bx:~# ping 192.168.1.10<br />PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.<br />64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.430 ms<br />64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.276 ms<br />64 bytes from 192.168.1.10: icmp_seq=3 ttl=64 time=0.293 ms<br />^C<br />--- 192.168.1.10 ping statistics ---<br />3 packets transmitted, 3 received, 0% packet loss, time 1999ms<br />rtt min/avg/max/mdev = 0.276/0.333/0.430/0.068 ms</div></p><p>Если не получается, посмотрите журналы (и на сервере и на клиенте), возможно процесс какой-то мешает, или ещё что. Должно получится <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /></p><p>Как я уже писал, внешнюю сеть подключать пока НЕ надо, что-бы она не мешалась.</p><p>Итого: мы подняли сеть, и она даже работает <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /> Конечно этого мало, ведь кроме ping больше ничего пока не работает.</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2010-09-14T04:55:09Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=91410#p91410</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=91409#p91409" />
			<content type="html"><![CDATA[<p>пожалуйста. дык эта не вся тема, будет вам и NFS.<br />вот оригинал: <a href="http://forum.drbatty.ru/viewtopic.php?f=77&amp;t=5262&amp;p=11646#p11646">http://forum.drbatty.ru/viewtopic.php?f … 646#p11646</a><br />я так быстро не могу, движки форумов не идентичны, и копипастить не так просто <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /></p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2010-09-14T04:51:06Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=91409#p91409</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=91404#p91404" />
			<content type="html"><![CDATA[<p><strong>drBatty</strong>, спасибо, но вступление запутало =)<br />офтоп:<br />FTP??? в линукс сети? почему не бедный NFS?</p>]]></content>
			<author>
				<name><![CDATA[system-root]]></name>
				<uri>https://linuxforum.ru/profile.php?id=521</uri>
			</author>
			<updated>2010-09-14T04:40:19Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=91404#p91404</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Настройка шлюза (HOWTO)]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=91395#p91395" />
			<content type="html"><![CDATA[<p>Задумал я включить второй компьютер (на самом деле пятый) к первому. Причём так, что-бы у меня всё работало (ну вообще всё). На первом компьютере у меня был интернет, а на втором тоже естественно хотелось. Причём второй был задуман как вспомогательная тестовая машинка (хотя с другой стороны, обычно все делают наоборот). Итак, для начала определимся с оборудованием, нужно:<br /></p><ol class="decimal"><li><p>Шлюз.<br /></p><ol class="alpha"><li><p>Процессор пойдёт Pentium (наверное любой, но я использовал третий).</p></li><li><p>Оперативная память - думаю достаточно будет 128Мб, однако у меня было 256Мб.</p></li><li><p>HDD - вполне достаточно 500Мб, однако лучше использовать хотя-бы 2Гб диск.</p></li></ol></li><li><p>Клиент.<br />В принципе любая машина с одной сетевой картой. Я использовал Celeron 400MHz+RAM-128Mb+HDD-10Gb+Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10).</p></li></ol><p><strong>Операционная Система</strong></p><p>Какая ОС будет на клиенте - решать вам, думаю вполне можно использовать Windows, однако я использовал Slackware 13. Настройка клиента тривиальна:<br /></p><ol class="decimal"><li><p>В Slackware для настройки сети имеется скрипт netconfig (в пакете n/network-scripts*, этот пакет конечно надо поставить), и настраивать клиента можно именно этим скриптом. Скрипт задаёт вопросы:<br /></p><ol class="decimal"><li><p>host name: выбираете имя своего хоста (имя компьютера-клиента).</p></li><li><p>domainname: выбираете имя домена(имя вашей сети).<br />желательно выбирать и то, и другое маленькими нерусскими буквами, и только ими (что-бы не было проблем в дальнейшем).</p></li><li><p>Дальше будет выбор - пишете USE DHCP</p></li><li><p>DHCP HOSTNAME - пусто</p></li><li><p><span class="postimg"><img src="http://forum.drbatty.ru/download/file.php?id=69" alt="http://forum.drbatty.ru/download/file.php?id=69" /></span></p></li></ol></li><li><p><strong>Список пакетов.</strong></p><p>Ну и конечно необходимо установить ПО:<br /></p><ul><li><p>Slackware Linux. Я использовал предпоследнюю версию, но (как я уже отметил) можно использовать хоть венду. Но как настраивать венду я не помню (впрочем там просто, сами разберётесь. Принцип прост: всё брать в DHCP. Кроме DHCP_HOSTNAME, его брать там не надо).<br />Далее следует список пакетов для шлюза. (OPT) означает - не обязательный пакет.</p></li><li><p>(REC)<strong>dhcpcd-3.2.3-i486-1</strong><br />Это DHCP-клиент. Его задача, обратится к DHCP серверу на шлюзе, и получить IP адрес. Запускается из <span class="bbu">/etc/rc.d/rc.inet1</span>, настраивается в <span class="bbu">/etc/rc.d/rc.inet1.conf</span>, в принципе я его без всяких настроек использую.</p></li><li><p>(REC)<strong>dialog-1.1_20080819-i486-2</strong><br />вспомогательный пакет для псевдографики. используется скриптом netconfig.</p></li><li><p>(OPT)<strong>inetd-1.79s-i486-8</strong><br />Супер-демон сети. Запускает другие демоны. На самом деле, я его не использую, ну пусть будет...</p></li><li><p><strong>(OPT)iptraf-3.0.0-i486-2</strong><br />Монитор состояния сети:<br /><span class="postimg"><img src="http://forum.drbatty.ru/download/file.php?id=70" alt="http://forum.drbatty.ru/download/file.php?id=70" /></span><br />ну я не знаю, удобная вообще-то штука. Но НЕ необходимая.</p></li><li><p>(REC)<strong>iputils-s20070202-i486-2</strong><br />разные утилиты. в том числе программа <strong>ping</strong></p></li><li><p>(OPT)<strong>lftp-3.7.14-i486-1</strong><br />консольный FTP клиент.</p></li><li><p>(REC)<strong>lsof-4.78-i486-1</strong><br />программа для мониторинга файлов и интернет соединений.</p></li><li><p>(OPT)<strong>mc-20090714_git-i486-1</strong> *заменён на <a href="http://forum.drbatty.ru/viewtopic.php?f=75&amp;t=5265">mc-4.7.4</a><br />Командная строка рулит, однако можно использовать и mc.</p></li><li><p>(REC)<strong>net-tools-1.60-i486-2</strong><br />Разные сетевые утилиты. Тут базовые утилиты, без них сеть не настроить.</p></li><li><p>(REC)<strong>network-scripts-13.0-noarch-2</strong><br />Настроечные скрипты. Необходимо поставить.</p></li><li><p>(OPT)<strong>ntp-4.2.4p7-i486-1</strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />Система настройки времени по сети. Её я ещё не настроил...</p></li><li><p>(REC)<strong>openssh-5.2p1-i486-1</strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />SSH. Защищённая командная строка. Позволяет управлять клиентом со шлюза (и наоборот).</p></li><li><p>(OPT)<strong>proftpd-1.3.2-i486-1</strong> *заменён на <a href="http://forum.drbatty.ru/viewtopic.php?f=71&amp;t=5271">1.1.3b</a><br />FTP сервер. Вообще-то файлы можно передавать на клиент и по ssh (команда <strong>scp</strong>), однако это не очень удобно - для внутренней передачи шифрование не нужно, и если компьютеры слабые, то шифрование может их тормозить. Передавать гигабайты удобнее и быстрее именно по FTP. Кроме того, по FTP протоколу можно смотреть кино.</p></li><li><p>(OPT)<strong>screen-4.0.3-i486-1</strong><br />Эта утилитка используется для удалённого администрирования. Фактически это тоже командная строка, но от неё можно отключатся и подключатся. Т.е. можно будет выключать сервер, но сеанс на клиенте сохраняется (в данном случае клиент является сервером). Необходима при неустойчивой связи, например без проводов. Для витой пары - иногда удобно.</p></li><li><p>(REC)<strong>glibc-2.9-i486-3</strong><br />Библиотека. Содержит огромное количество разных функций и утилит. Без неё ничего не работает.</p></li><li><p>(REC)<strong>sed-4.1.5-i486-1</strong><br />Потоковый редактор. Нужная программка.</p></li><li><p>(REC)<strong>sudo-1.6.8p12-i486-1</strong><br />Настраивать сеть мы будем под рутом, но вот пользоваться конечно под обычным юзером. Некоторые вещи обычный юзер не может делать принципиально (например монтировать устройства), потому на понадобится эта утилитка, что-бы юзеру дать возможность этим всем пользоваться.</p></li><li><p>(OPT)<strong>vim-7.2.245-i486-1</strong><br />Удобный и мощный текстовый редактор. Нужен для правки конфигов. Ну конечно можно и заменить... Но лучше не надо.</p></li></ul><p>Ну мы пока поставили ПО, а его настройка несколько позже.</p></li></ol>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2010-09-14T04:22:44Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=91395#p91395</id>
		</entry>
</feed>
