Reborn

And from the ashes the Phoenix rose reborn
  • Начало
  • About

DHCP + TFTP + PXELINUX = Netinstall

Владимир | 12/06/2009

Disclaimer: Описаните техники в този документ могат да ви помогнат но не е задължително да са напълно вярни и изчерпателни. Не поемам отговорност за каквито и да било реални или нереални, вреди, ползи, пропуски, паднали къщи или каквото и да е произтичащи от ползването или неползването на този документ.

Мотивация
Преди около седмица в Linux-BG се появи молба за помощ, за един леко прецакан windows. Ситуацията беше, че MBR на системата беше заминал по дяволите, а машината нямаше нито CD, нито флопи, нито пък можеше да стартира от USB. Остава като решение само стартиране от мрежа. Помогнахме му на човека понеже си имам инсталиран такъв сървър в къщи. Тази комбинация от софтуер е полезна и при други ситуации (основно мързел) като инсталация на отдалечени машини, тестове, и някои други добрини.

Цел
Да получим сървър от който да може да се стартира инсталация на операционна система.
Ще демонстрираме как се прави това с Debian, а за други дистрибуции е аналогично.

Необходими компоненти

  • Инсталирана и работеща линукс система която ще ползваме за PXE сървър
  • DHCP сървър – тук ще опишем настройката му
  • TFTP сървър
  • PXELINUX – от syslinux системата
  • Интернет свързаност или локално копие на необходимите пакети за инсталация
  • Желание за работа и малко трезва мисъл

Изхождаме от презумпцията че цялото това нещо ще го реализирате в мрежа която е отделена от основната ви, тъй като едно дребно недоглеждане може да направи много поразии. Ще се постарая да ви спестя проблемите но никога не се знае.

Теория на работата
Доста машини могат да стартират през мрежа, било то за да работят като терминали или по други съображения. За целта мрежовата им карта трябва да поддържа PXE стандарта за предпочитане над версия 0.91. Макар че може да бъде излъгана и с по-ниски версии.
Самият процес протича доста елементарно и като цяло е доста прост:

  • Машината стартира и се инициализира биос подсистемата
  • Инициализира се PXE подсистемата на мрежовата карта
  • Мрежовата карта изпраща заявка за IP адрес
  • DHCP сървъра отговаря като в допълнение и предлага да стартира от мрежа и я насочва към следващия сървър (TFTP)
  • TFTP сървъра предоставя на мрежовия стек малък файл който играе ролята на boot мениджър
  • От този мениджър си избираме една от опциите и стартираме

За повече информация по темата:

  • http://syslinux.zytor.com/ – информация за syslinux комплекта от инструменти
  • PXE
  • DHCP в wikipedia
  • http://www.dhcp.org/

Настройка на DHCP сървър
Настройката не е нищо особенно има я подробно описана в документацията на sysllinux/pxelinux. Единственото което ни е необходимо в допълнение към нормален dhcp сървър са две допълнителни опции които ще обясним нагледно с пример.

/etc/dhcpd.conf

#
# Sample configuration file for ISC dhcpd for Debian
#
# $Id: dhcpd.conf,v 1.4.2.2 2002/07/10 03:50:33 peloy Exp $
#

# Задължително или няма да може да раздаваме адреси при нормална работа
authoritative;

# Да ще позволяваме стартирането на стари клиенти (идва от BOOTP протокола)
allow bootp;
# Да ще позволяваме стартирането на клиенти посредством PXE
allow booting;
# нашият следващ сървър от където ще си дръпнем boot loader
next-server 10.99.3.1;
# Как се казва нашият boot loader
filename "pxelinux.0";

default-lease-time 14400;
max-lease-time 86400;

# стандартна конфигурация на dhcp сървър
subnet 10.99.3.0 netmask 255.255.255.0 {
  range 10.99.3.10 10.99.3.200;
  option domain-name-servers 10.99.3.1;
  option domain-name "instalations.network";
  option routers 10.99.3.1;
  option subnet-mask 255.255.255.0;
  option broadcast-address 10.99.3.255;
  option default-ip-ttl 64;
  option default-tcp-ttl 64;
  option time-offset 7200;
  option time-servers 10.99.3.1;
  option ntp-servers 10.99.3.1;
  option netbios-name-servers 10.99.3.1;
  option netbios-node-type 8;
}

Ако нещо не ви е ясно ви съветвам да се обърнете към помощните страници на пакета dhcp

Настройка на TFTP сървър
За тфтп сървър ще използваме tftp hpa работещ в режим на демон.
той се инсталира пределно просто (при debian)

apt-get install tftpd-hpa

Конфигурацията му се намира в /etc/default/tftpd-hpa и е следната:

# ще работим като демон
RUN_DAEMON="yes"
# опциите са
# -l - работим в режим на демон
# -v - записваме подробна информация
# -s - работим в сигурен режим като сервираме само от тази директория
OPTIONS="-l -v -s /tftpboot"

Все още не стартирайте сървъра. Препоръчва се файловете както и директорията /tftpboot да са собственост на root и да са само за четене (от всички)

Настройки на PXELINUX
PXELINUX се намира в серята програми наречена syslinux. Не е необходимо да инсталирате целия пакет тъй като от него ще ползваме само pxelinux.0 и евентуално memdisk ако искате да стартирате дос

Конфигурацията му е до някъде сложна но ще се постарая да я обясня като хората. Самият pxelinux се конфигурира от един текстов файл който указва какво и с какви настройки да бъде стартирано. Също така поддържа възможност различните машини да получават различна конфигурация. Документацията в пакета syslinux е много добра макар и длъжка така че наистина я прочетете поне диагонално.
Нашата инсталация на pxeilinux ще живее в директорията /tftpboot и има следната структура:

/tftpboot/
/tftpboot/initrd/
/tftpboot/kernels/
/tftpboot/pxelinux.0
/tftpboot/pxelinux.cfg/
# нашата конфигурация
/tftpboot/pxelinux.cfg/default
/tftpboot/texts/

В случая ще демонстрираме една единствена конфигурация за всички машини. За разнообразни конфигурации моля погледнете в документацията. Следва и примерната конфигурация:
/tftpboot/pxelinux.cfg/default

# по подразбиране стартираме от локален диск
# прави се за да не стане гаф и да унищожим информация
default local
# закъснение при стартиране (5 секунди)
timeout 50
# да покажем ли промпт
prompt 1
# да покажем определен текст
display texts/menu.txt

label local
        localboot 0

# етикет за този кернел
label deb26n
# самият кернел
        kernel kernels/deb-testing-26.kernel
# допълнителни опции
        append initrd=initrd/deb-testing-26.initrd \
           vga=normal \
           ramdisk_size=16384 \
           root=/dev/rd/0 \
           devfs=mount,dall rw

label deb26e
        kernel kernels/deb-testing-26.kernel
        append initrd=initrd/deb-testing-26.initrd \
           DEBCONF_PRIORITY=low \
           vga=normal \
           ramdisk_size=16384 \
           root=/dev/rd/0 \
           devfs=mount,dall rw

Забележка: редовете append са разпределени на няколко реда от съображения за четимост, но в конфигурацията трябва да са на един ред.

Кернелът и initrd файла са взети от проекта дебиан и по точно от секцията му нетбоот. Добавени са с лека адаптация и допипване на командния ред

Заключение
Като цяло това е всичко. Не е особенно трудно да се постигне. Евентуален проблем който може да срещнете е че PXE агента на мрежовата карта е малко стар и не иска да работи с tftp сървър а задължително изисква pxe сървър, но това е лесно решимо.
За тези които искат готово решение без много много да си играят ето пакетирано всичко необходимо. Необходимо е само да имате инсталиран dhcp и tftp сървър.

Очаквам въпроси, коментари, предложения и каквото ви хрумне в коментарите.

Коментари
1 Коментар »
Категории
Статии
Tags
Code, debian, dhcp, dhcpd, installation, netboot, Option, pxe, PXELINUX, syslinux, tftp
RSS коментари RSS коментари
Trackback Trackback

The Perfect SOHO router – Part 5

Владимир | 12/06/2009

Това е петата част от серия от статии в които ще обясня как да създадем перфектният SOHO рутер. Държа да отбележа че това е моята идея за рутер със всичките и предимства и недостатъци.

Серията се състои от следните статии:

  • Общи насоки, идеи, нужни услуги и размисли – тук ще се постарая аргументирано да обоснова защо съм избрал този комплект от софтуер и услуги
  • Инсталация на базовата система - ще опиша методът по който ще инсталираме и минимизираме нашата система
  • Конфигуриране на DNS и DHCP услугите – тук ще опиша обосновано конфигурациите които смятам за оптимални
  • Конфигуриране на рутирането – като цяло тук е сърцето на нашият рутер. Ще предложа някои трикове за улесняване на живота, както и насоки към по-специфични задачи
  • Конфигуриране на елементарна система за наблюдение и статистика
  • Разширяване възможностите на нашият рутер – ще опиша някои дреболии които могат да направят живота ни много по лесен, удобен и приятен

В тази част ще изградим една много проста система за наблюдение и диагностика на нашият рутер.
Защо
За да знаем какво се случва с нашият рутер. Винаги е полезно да знаем в какво състояние е нашият рутер и то да можем да достигнем до тази информация бързо.

Какво ще има
Личното ми предложение за елементарна система е както следва:

  • Web базирана – за лесен достъп от всякъде
  • Проверка на състоянието на интернет свързаността – за да може с един поглед да се каже дали имаме връзка и дали проблема е някъде при нашият доставчик
  • Проверка на състоянието на мрежовите карти – дали са включени, да не би кабелчето да е избягало и т.н.
  • Проверка на използването на паметта – да не би случайно да сме влезнали в swap зоната и харда да траши
  • Проверка броя активни сесии – за да видим до къде е стигнало използването
  • Трафик статистика с помощта на mrtg
  • Пълна системна информация от phpsysinfo

Скрипт за проверка на състоянието на интернет свързаността
Това е един много прост скрипт който ще се опита да направи няколко пинг-а до определен адрес който сме сигурни че е винаги на линия. Използваме ип адрес а не име за да избегнем проблема с пропаднал DNS.
За да работи коректно този скрипт е необходимо да имаме ping, tail, cut, php

<?php
// simple checking of connectivity
// vvitkov
// 02.11.2006
?>
<html>
<head>
<title>Connection check</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link REL=StyleSheet HREF="style.css" TYPE="text/css" MEDIA=screen>
</link></head>
<body>
<?php include "header.php"; ?>
<center><br /><br /><h2>Checking Conection with
<?php
$target="194.145.63.12";
if (isset($_REQUEST['t'])){
        $target=$_REQUEST['t'];
}
echo "<font color=#000000>" . $target . "</h2><br /><br />";
$OK="<div class=ok>CONNECTION IS UP</div>";
$NO="<div class=no>CONNECTION DOWN</div>";

$status=exec("ping -q -c3 $target | tail -n 1 | cut -d' ' -f1");

if ($status == "rtt") { echo $OK; } else { echo $NO; }
?>
<br /><br />
<div class=sub><a href="?t=www.abv.bg">Check with abv.bg</a>&nbsp;<a href="?t=www.google.com">Check with Google</a></div>

<?php include "footer.php"; ?></center>

Самият скрипт изобщо не е красив а да не говорим и че не е много сигурен но върши работа. Ето примерен изглед на успешна и неуспешна проверка.
pingcheck-ok
pingcheck-no
както забелязвате ако подадем хост който не съществува за проверка ще ни върне отговор че нямаме интернет, което може да не е вярно. Поради тази причина освен проверка с ip са сложени два популярни сайта които се очаква че са винаги на линия.

Скрипт за проверка на състоянието на мрежовите карти
Идеята на този скрипт е да установи дали имаме физическа свързаност. Не винаги е полезен но върши работа.
За да работи скрипта имаме нужда от sudo, mii-tool.

<?php
// simple checking of network cards
// vvitkov
// 02.11.2006
?>
<html>
<head>
<title>NIC check</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link REL=StyleSheet HREF="style.css" TYPE="text/css" MEDIA=screen>
</link></head>
<body>
<?php include "header.php"; ?>
<center><br /><br /><h2>Checking Network Cards</h2><br />
<?php
$status=exec("sudo /sbin/mii-tool eth0 | md5sum | cut -d' ' -f1");
if ($status === '011d899f145c89793888771019335049'){
        echo "<div class=ok>External network is UP";
} else {
        echo "<div class=no>External network is DOWN<br />Please check Cable (eth0)</div>";
}
$status=exec("sudo /sbin/mii-tool eth1 | md5sum | cut -d' ' -f1");
if ($status === 'e413ff927a35f4df4c8bdecd70111902'){
        echo "<div class=ok>Internal network is UP</div>";
} else {
        echo "<div class=no>Internal network is DOWN<br />Please check Cable (eth1)</div>";
}
?>
</center>

<?php include "footer.php"; ?>

Проверката на картите не е универсална поради използваните md5 суми, но това може да се коригира особенно лесно. Напълно достатъчно е да се търси в изхода на командата mii-tool стринга link ok. За да работи този скрипт е необходимо потребителят от чието име вървъ нашият web сървър да има достъп до mii-tool. Това става посредством следният ред в /etc/sudoers

www-data ALL=(ALL) NOPASSWD: /sbin/mii-tool

Проверка на използването на паметта
Този скрипт е полезен за проверка на използваната памет. При рутери е особенно важно системата да не използва swap тъй като това краде процесорни цикли и като цяло затормозва машината. За да работи скрипта ни е необходима командата free

< ?php
// simple checking of memory utilisation
// vvitkov
// 02.11.2006
?>
< html >
<head>
<title>Memory Usage</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link REL=StyleSheet HREF="style.css" TYPE="text/css" MEDIA=screen>
</link></head>
< ?php include "header.php"; ?>
< body ><center><br /><h2>Memory Usage</h2><br /></center>
< ?php
$stat=explode(" ", shell_exec("free -m| head -2|tail -1|awk '{print $2\" \"$3\" \"$4}'"));
$stat2=explode(" ", shell_exec("free -m| head -4|tail -1|awk '{print $2\" \"$3\" \"$4}'"));
$tresh=30;
?>
<table border=0 align=center>
        <tr>
                <th>Mem type</th>
                <th>Used</th>
                <th>free</th>
                <th>Total</th>
        </tr>
        <tr>
                <th>RAM</th>
                <td>< ?php echo $stat[1]; ?></td>
                <td>< ?php echo $stat[2]; ?></td>
                <td>< ?php echo $stat[0]; ?></td>
        </tr>
        <tr>
                <th>SWAP</th>
                <td>< ?php
                        if ($stat2[1] > $tresh) {
                                echo "<font color=red weight=bold>$stat2[1]</font>" ;
                        } else {
                                echo $stat2[1];
                        }
                ?>
                </td>
                <td>< ?php echo $stat2[2]; ?></td>
                <td>< ?php echo $stat2[0]; ?></td>
        </tr>
        <tr>
                <th>TOTAL</th>
                <td>< ?php echo ($stat[1]+$stat2[1]); ?></td>
                <td>< ?php echo ($stat[2]+$stat2[2]); ?></td>
                <td>< ?php echo ($stat[0]+$stat2[0]); ?></td>
        </tr>
        <tr>
                <td>&nbsp;</td>
                <th>< ?php
                        if ($stat2[1] > $tresh) {
                                echo "<font color=red weight=bold>^^^</font>" ;
                        } else {
                                echo "&nbsp";
                        }
                ?>
                </th>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
        </tr>
</table>
<div class="sub">If there is a red number ... that is a problem</div>
< ?php include "footer.php"; ?>

Единствената променлива която трябва да се коригира е $tresh. Тя се използва за да извади предупреждение че използването на swap е нарастнало над някакво ниво. Възможно е да бъде нагласена на примерно 20% но смятам че е по удачно да бъде въведена на ръка.

Проверка броя активни сесии
Ако има проблеми с отваряне на страници, това може да е индикация на изхабени сесии. Тъй като знаем че някои доставчици лимитират броя сесии, този инструмент може да бъде полезен. Трябва да се отбележи че числата които са отчетени не са строго меродавни, тъй като не се отчита състоянието на сесията а просто наличието и. Тоест ако сесията е в състояние CLOSE_WAIT въпреки че може да бъде оползотворена тя се включва в бройката.
За да работи коректно скрипта са ни необходими sudo, netstat-nat

<?php
// simple checking of connectivity
// vvitkov
// 02.11.2006
?>
<html>
<head>
<title>Connection statistics</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link REL=StyleSheet HREF="style.css" TYPE="text/css" MEDIA=screen>
</link></head>
<?php include "header.php"; ?>
<body ><center><br /><h2>Connection statistics</h2><br /></center>
<table border=0 align=center>
        <tr>
                <th>Proto</th>
                <th>Clients</th>
                <th>Ruter</th>
        </tr>
        <tr>
                <th>TCP</th>
                <td><?php echo exec("sudo netstat-nat -n -S -p tcp | grep ESTABLISHED | wc -l"); ?></td>
                <td><?php echo exec("sudo netstat-nat -n -L -p tcp | grep ESTABLISHED | wc -l"); ?></td>
        </tr>
        <tr>
                <th>UDP</th>
                <td><?php echo exec("sudo netstat-nat -n -S -p udp | grep ESTABLISHED | wc -l"); ?></td>
                <td><?php echo exec("sudo netstat-nat -n -L -p udp | grep ESTABLISHED | wc -l"); ?></td>
        </tr>
</table>
<br />
<div class=sub>Only active connections are visible</div>
<?php include "footer.php"; ?>

Заключение
В тази статия не е показана настройка на mrtg и phpsysinfo, тъй като те са относително елементарни. С това приключва нашата елементарна система за наблюдение и статистика. Самата система е наистина доста проста но върши работа.
Прилагам цялата система в архивиран вид. За да работи е необходимо да си настроите mrtg посредством cfgmaker и indexmaker от инсталацията на mrtg и phpsysinfo посредством пакетната система на дебиан.

monitoring system

Трябва да се отбележи че системата има възможност да показва съобщения настроени от администратора в основният си изглед. Това се постига благодарение на файла header.php

Серията продължава в The Perfect SOHO router – Part 6

Коментари
Няма коментари »
Категории
Статии
Tags
class, Code, debian, dhcp, firewall, Head, installation, iproute, iptables, management, mrtg, network, php, ping, router, secure, simple, soho, web, web swap
RSS коментари RSS коментари
Trackback Trackback

The Perfect SOHO router – Part 2

Владимир | 12/06/2009

Това е втората част от серия от статии в които ще обясня как да създадем перфектният SOHO рутер. Държа да отбележа че това е моята идея за рутер със всичките и предимства и недостатъци.

Серията се състои от следните статии:

  • Общи насоки, идеи, нужни услуги и размисли – тук ще се постарая аргументирано да обоснова защо съм избрал този комплект от софтуер и услуги
  • Инсталация на базовата система - ще опиша методът по който ще инсталираме и минимизираме нашата система
  • Конфигуриране на DNS и DHCP услугите – тук ще опиша обосновано конфигурациите които смятам за оптимални
  • Конфигуриране на рутирането – като цяло тук е сърцето на нашият рутер. Ще предложа някои трикове за улесняване на живота, както и насоки към по-специфични задачи
  • Конфигуриране на елементарна система за наблюдение и статистика
  • Разширяване възможностите на нашият рутер – ще опиша някои дреболии които могат да направят живота ни много по лесен, удобен и приятен

В тази част ще инсталираме нашият рутер, ще изхвърлим абсолютно всичко излишно и инсталираме необходимият ни софтуер. Идеята зад целият процес е да минимизираме както използваното дисково пространство така и самата употреба на диска. По този начин също така ще намалим количеството използван софтуер което ще улесни нашата поддръжка.

Желязото
За този проект използваме следният хардуер

Compaq Deskpro series small factor machine
CPU: 333 mhz
RAM: 256 mb
HDD: 6,4 GB
LAN: 1 x Intel Ether Express (onboard), 1 x Davicom.

Като цяло това е една доста мършава машина по сегашни стандарти но за целта е напълно достатъчна. Поради факта че мрежовата карта на Davicom като цяло е голям боклук ще я ползваме за вътрешна, тъй като там ще се справя с по малко проблеми.

Инсталация на базова система
Това е като цяло прост процес. Намерете си любимото CD с дебиан 3.1 и да започваме. Първата важна точка в дневният ред е по какъв начин да разделим диска. Аз лично препоръчвам следната конфигурация:

/boot – 100 MB
/ – 2 GB
swap – 256 MB
/home – REST

Това разделяне ще ни даде относително голяма свобода на работа както и възможност за по нататъшно развитие.

Друг важен момент е в коя лан карта да сложим мрежа. Както обосновахме по-горе поради ниското качество на едната карта ще я използваме за вътрешна, а вградената ще използваме за външна. Общият принцип е че тази карта която ще използваме за външна трябва да бъде с мрежа по време на инсталация. Не е невъзможно това да се пренебрегне но в последствие има доста повече работа.

Следва да инсталираме системата. Аз препоръчвам клона testing, тъй-като в него има по нови версии на софтуера и е достатъчно стабилен за нашите цели. По време на самата инсталация не избирайте никакъв профил от предложените ви. Изберете сигурна парола за root и не създавайте допълнителен потребител.

Минимизиране
След като вече сме завършили инсталацията време е да я минимизираме. За целта ще използваме пакета deborphan. Той се използва за да покаже пакети които не се използват. Нашата цел с неговото инсталиране е да премахнем абсолютно всичко което не ни е нужно. За целта ще се наложи неколкократно извикване на следният ред

apt-get remove --purge \
`deborphan -a --no-show-section --guess-all | \
grep -v "ssh\|deborphan\|bash\|apt\|nano\|kernel\|ssl"`

Редът е разделен на няколко реда за четимост
Идеята на този ред е да изчисти абсолютно всички пакети които не са необходими или не се използват като пропусне пакетите които имат ssh, deborphan, apt, nano, kernel, ssl или bash в името си.
Необходимо е тази команда да се изпълни няколко пъти тъй като софтуерът не е рекурсивен. Тази стъпка не е строго необходима но помага.
Допълнително инсталираме пакета localepurge с чиято помощ ще отстраним ненужните локали. С него изберете същите езици/локали които сте избрали при инсталацията.

Инсталиране на необходимият ни софтуер
Първо нека да доведем системата до най-новото състояние в клона който сме избрали

apt-get update
apt-get --purge dist-upgrade
apt-get --purge dist-upgrade -f

Следва да премахнем всички налични за момента кернели и да инсталираме такъв който ние искаме. Специално за дебиан кернелът се намира в пакет с име от типа kernel-image, linux-image. Открийте и премахнете всички подобни пакети

apt-get remove --purge [package list]

Сега следва да инсталираме кернел по наше желание. Ще използваме такъв който се предоставя от проекта дебиан тъй като конфигурацията му е достатъчно добра за нуждите ни.

apt-get install linux-image-2.6.18-4-686

Кернелът е достатъчно бърз и има всичко което ще ни трябва.Поради изборът ни на услуги ще се налоги да инсталираме малко допълнителен софтуер

apt-get install iptables iproute bind9 bind9-host dhcp lighttpd php4-cgi php4-cli phpsysinfo mrtg samba ntp ntpdate proftpd ncftp vim logwatch rkhunter denyhosts iptraf mtr-tiny snmp snmpd iputils-ping lsof openssh-server sudo

В процеса на инсталация ще бъдат инсталирани допълнителни пакети от които зависи работата на желаните от нас.Последната задача която стои пред нас на този етап от инсталацията е да добавим собствен потребител със негов собствен ssh ключ за повишаване на сигурността и да му гарантираме правото да изпълнява команди посредством sudo.

adduser managementuser
cd ~managementuser/
mkdir .ssh
cat /root/managementuser-key.pub > .ssh/authorized_keys2
chown -R managementuser:managementuser .ssh
usermod -G sudo managementuser
visudo

Забележка: файлът /root/managementuser-key.pub е публичният ssh ключ който сме генерирали предварително и копирали по някакъв начин на нашият рутер. Ключове се генерират най-лесно със ssh-keygen.
Командата visudo редактира файла /etc/sudoers. Там трябва да добавим/откоментираме редът

%sudo ALL=NOPASSWD: ALL

който позволява на всички принадлежащи в групата sudo да изпълняват всички команди без парола.

Заключение
Като цяло в това се състои нашата базова инсталация. От тук на сетне тя трябва да бъде настроена. Всички останали задачи ще изпълняваме посредством ssh като първо се свързваме с нашият потребител managementuser и в последствие ставаме root посредством sudo su -

Серията продължава в The Perfect SOHO router – Part 3

Коментари
Няма коментари »
Категории
Статии
Tags
bash, cd 3, Code, compaq deskpro, debian, deborphan, dhcp, firewall, installation, intel ether express, LAN, lang, management, mb hdd, ram 256, router, secure, simple, soho, ssh
RSS коментари RSS коментари
Trackback Trackback

Абонирай се

Your email:

 

Разни Лични

  • Play a Game baby
  • На море
  • Шумилницата

Blogroll

  • Summerborn

Етикети

Конкурс bash Code debian dhcp dhcpd dns dnsmasq encryption firewall Ghost ghost norton gnupg initrd installation iproute iptables iso jabber linux lqlqlq management memdisk mrtg netboot new Norton norton ghost ntp php ping port quot reborn router routing secure shaper simple soho squid ssh tftp web webserver
rss RSS коментари valid xhtml 1.1 get firefox