LINUX!!! Равенство?! БРАТСТВО!!!

Linux-сервер для дома.

Эта статья описывает мой собственный опыт построения Linux-сервера для домшнего использования. Статья ориентирована как на новичков в мире Linux, так и на знакомых с Linux людей, но не имеющих опыта использования его в сети, которым в сжатые сроки понадобилось установить Linux-сервер. Я постарался описать лишь ключевые(по моему мнению) моменты установки Все примеры файлов конфигураций, приведенные здесь, не претендуют на "идеологическую верность". Они получены опытным путем, путем чтения документаций и FAQ. Они могут быть даже неверны, тем не менее они работают :)

В мою задачу входило обеспечить доступ в Интернет с двух компьютеров,плюс создание файлохранилища с торрент качалкой!!!!

В качестве дистрибутива мной был выбран Debian Lеnny, который я сменил после Mandrake 9.0.

И так приступим!!!!! Провайдер предоставляет внутреннюю сеть с адресами 10.0.0.0,а доступ в Интернет осуществляется через pppoE.Более того в доме имеется два компьютера,котрым надо "ходить" в Интернет.Покупать роутер - жаба задушила!!!!Потому как очень хотелось МФУ,а не огрызок минимум за 1000 рублей!!!Кароче,взял я старенькую материнку с атлоном 1800+ на борту,нашел три сетевушки D-Link(С ними я лоханулся пополной,но это другая история),диск WD на 750Гб и адаптер PCI-SATA на VIA6421 ну и корпусок за 1000р с вентилируемой корзиной на борту.Затратил:диск 2800р.,сетевухи - 540 за 3 шт.,контроллер 600р.,ну и корпусок 1000р.,итого около 5000р!!!Почти цена ASUS WL500deluge!!!!

Собрал,поставил старенький СиДюк с образом Debian Lenny 5.0.1/
 
 

Установка системы.

Вот собственно про установку писать не хочется,потому как это уже разжевано до безобразия.Отмечу только,что у меня диск имеет три раздела;системный(10 гигов),swap(700Мб),остальное под файлы...Разбивал штатными средствами дистрибутива.Проблем возникнуть не должно!Один момент - точки монтирования!Системный,естественно,"/",А файлопомойка "/share2/For_ALL"
Устанавливаем только систему!!!Ни каких десктопов и окон!В дистре имеется определение сетевых интерфесов.Я предпочитаю автоматом обнаруживать внешний,оставив в нем сетевой провод провайдера,потому что у меня айпишник динамический.

получаем сетевой адрес по DHCP,
сохраняем настройки
заводим пароль root(типа Администратора в Винде)

и создаем юзера(пользователя)
Все шаги установки я опустил из-за банальной просторы вопросов-ответов.

И так,перезагрузка и lоgin:

Входим root'ом,для настройки систему,хотя более правильно юзером через команду SU -m. Первым делом установим связь с миром,то есть необходимо поднять pppoE.Два простых пути:aptitude с выбором устанавливаемых пакетов,или apt-get install (имя пакета). Необходимо установить pppoe и pppoeconfig.
apt-get install pppoe
apt-get install pppoeconfig

Дальше приступаем к конфигурации соединения ррр0:
./pppoeconfig

отвечаем на не сложные вопросы и в конце вводим именя и пароль для доступа в Интернет,данный Вам вашим провайдером.
./reboot

Логинимся root и делаем ping -c5 ya.ru.Если пинги проходят и вы видите статистику,значит все прошло удачно и Ваша машина имеет выход в Интернет!!!!!!!

Далее я ставлю MidNight Commander,аналог Виндозного Нортона.Ну нравится и я привык к удобству перемещения по каталогам.Ставлю "ручками",так как его исключили из репозитория!!
dpkg -i mc
mc

Далее,настройка остальных сетевых интерфесов.Идем /etc/network и смотрим intefaces.eth0 - первая сетевая карта,смотящая в сеть провайдера! Настраиваем другие интерфейсы eth1 и eth2.
auto eth1
iface eth1 inet static
adresse 192.168.1.1
netmask 255.255.255.0

 

Точно такую же секцию,но для eth2.Не забудьте сетевой адрес заменить!
auto eth2
iface eth2 inet static
adresse 192.168.2.1
netmask 255.255.255.0

 
Теперь надо "поднять" эти сетевые интерфейсы. Для начала выполните команду ifconfig.Вы должны увидеть три итнерфеса!lo,eth0 и ppp0.
 
 

Поднимаем сетки ...
ifconfig eth1 up
ifconfig eth2 up

Снова выполните ifconfig

Теперь у Вас должно быть ПЯТЬ итерфесов:lo,eth0,eth1,eth2,ppp0

Теперь можно подключить другие компьютеры,назначив им адреса вида 192.168.1.2 со шлюзом 192.168.1.1 и 192.168.2.2 со шлюзом 192.168.2.1 .
На подключаемых компьютерах необходимо выключить и установить адрес вручную, например:
192.168.1.10 маска 255.255.255.0 шлюз 192.168.1.1
Аналогично для другой сетевой карты!!!!
 
 

Samba.

Применим apt-get для получения пакета samba
apt-get install samba

В стандартный файл конфигурации samba мне понадобилось изменить секцию аутентификации:

####### Authentication #######
        guest account = nobody
        guest ok = yes
        map to guest = bad user
        security = SHARE
        null passwords = yes
        passdb backend = smbpasswd
        dos charset = cp866
        unix charset = utf8
        dns proxy = no
        wins support = yes
        interfaces = 192.168.1.1/24 192.168.2.1/24 127.0./16
        security = share

Укажите интерфейсы, на которые будет работать samba. И для предотвращения проблем с русских - client code page и character set. Далее идут описания расшареных ресурсов.

В секции Share Definitions
      [pomoika]
        comment = Main pomoika ...
        path = /share2/For_ALL
        guest ok = yes
        guest only = Yes
        writable = Yes
        create mask = 0777
 
 

Настройка iptables и маскарадинга.

Это необходимо для того,чтобы наши машины ходили наружу,а чужие машины не могли пользоваться нашим каналом,плюс ограничить доступ к нашим файлам.

Вот самое необходимое,но не полный файл rc.iptables
   #!/bin/sh
   # Задаем некоторые переменные:
   # Переменная, задающая путь к файлу запуска iptables.
     IPT="/sbin/iptables"
   ;# Ваш сетевой интерфейс. Это нужно, чтобы не писать в правилах одно и тоже.
     INET_IFACE="ppp0"
   ;# Номера непривилегированных портов
     UNPRIPORTS="1024:65535"
     start_fw()
     {
   ;# Включить перенаправление пакетов через ядро.
     
     echo "1" > /proc/sys/net/ipv4/ip_forward
    # всякий раз очищаем все цепочки правил в используемых таблицах
      $IPT -F INPUT
      $IPT -F FORWARD
      $IPT -F OUTPUT
      $IPT -t nat -F POSTROUTING
      # устанавливаем правила (политики) по умолчанию
      $IPT -P INPUT ACCEPT
      $IPT -P OUTPUT ACCEPT
     $IPT -P FORWARD DROP
      # Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
      # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
     $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
     $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
     #принимаем все из своей сети
      $IPT -A FORWARD -s 192.168.1.0/24 -j ACCEPT
      $IPT -A FORWARD -d 192.168.1.0/24 -j ACCEPT
      $IPT -A FORWARD -s 192.168.2.0/24 -j ACCEPT
      $IPT -A FORWARD -d 192.168.2.0/24 -j ACCEPT
     #разрешаем хождение пакетов между интерфейсами
      $IPT -I FORWARD -i eth0 -o eth1 -j ACCEPT
      $IPT -I FORWARD -i eth1 -o eth0 -j ACCEPT
      $IPT -I FORWARD -i eth2 -o eth1 -j ACCEPT
      $IPT -I FORWARD -i eth1 -o eth2 -j ACCEPT
      $IPT -I FORWARD -i ppp0 -o eth1 -j ACCEPT
      $IPT -I FORWARD -i eth1 -o ppp0 -j ACCEPT
      $IPT -I FORWARD -i ppp0 -o eth2 -j ACCEPT
      $IPT -I FORWARD -i eth2 -o ppp0 -j ACCEPT
     #Включаем маскарад!
      $IPT -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/16 -j MASQUERADE
      # этим же машинам можно ходить в интернет
    $IPT -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
      # но нам не надо, что они маскарадились и при заходе в нашу реальную сеть !!!!Разобрать эту строку!!!
    $IPT -t nat -A POSTROUTING -s 192.168.1.1 -d ! 192.168.0.0/16 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s 192.168.2.1 -d ! 192.168.0.0/16 -j MASQUERADE
       }
       
       case "$1" in
       start) echo -n "Starting firewall: iptables"
        start_fw
        echo "."
        ;;
       stop) echo -n "Stopping firewall: iptables"
        iptables -F
        iptables -X
        echo "."
        ;;
       save) echo -n "Saving firewall: iptables"
        iptables-save > /etc/rules-save
        echo "."
        ;;
       restart) echo -n "Restarting firewall: iptables"
        iptables -F
        iptables -X
        cat /etc/rules-save | iptables-restore
        echo "."
        ;;
       reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
        echo "."
        ;;
       *) echo "Usage: /etc/init.d/rc.iptables start|stop|restart|reload|force-reload"
        exit 1
        ;;
       esac
       exit 0
       

Помещаем его в /etc/init.d.Делаем его исполняемым:
chmod +x ./rc.iptables

Добавим его в автозапуск:
update-rc rc.iptables defaults
reboot

После этих манипуляций ваши машины имеют доступ к внутренним ресурсам сети и доступ в Интернет!

Хочется обратить внимание на один нюанс...После включения файервола сервер по командам halt,poweroff или reboot ОЧЕНЬ,НУ ОЧЕНЬ долго выключается или перезагружается!!!!!!!Связано это со службой NFS,точнее с portmaperom.Я его отключил, удалив автозагрузку командой update-rc.d -f portmap remove.После этой команды сервер выключается в отличные 20 секунд!!!

На этом можно было бы и закончить,но я же хотел МНОГОФУНКЦИОНАЛ!!!!

Торрент качалка с автоматическим подхватом торренов.

Здесь два пути. Простой или занимательный.Я выбрал простой, установку из репозитория "что есть", т.к. компиляция свежей версии нужна только для правильного отображения веб-морды. Применим apt-get для получения пакета rtorrent и screen
apt-get install rtorrent
apt-get install screen

C официального сайта rtorrent берем "рыбу"-конфиг,правим в нем ПУТИ сохранения файлов,сессий и торрентов.У меня это папка на файлопомойке!!!Так проще обеспечить свободный доступ домашним.

Там же берем файл автостарта.Так же правим имя юзера от кого будет работать торрент.Предупрежу,что от root это не айс!!!Скрипт автостарта кладем все туда же /etc/init.d.Делаем его исполняемым:
chmod +x ./rc.rtorrent

Добавим его в автозапуск:
update-rc rc.rtorrent defaults
reboot

После перезагрузки наберите ps -aux .Это позволит увидеть процессы.Должен быть screen и rtorrent.
 

Теперь Ваши домочадци смогут скачать торрент файл в спец папку(у меня папка автозагрузки доступна через самбу,то есть находится в сетевом доступе для всех!!!) ,он автоматически подхватится рторрентом!!!При этом постоянно будет раздача!!!

Для наглядности и упрощения "жизни" жителей с Винды можно установить веб морду. У меня rutorrent. Скачал исходники, бросил в /var/www и по обращению 192.168.2.1/rutorrent будет Щастие, в виде веб морды в стиле мюторрент!!!
 
На главную

By Makc, 11-06-2010
Вопросы, комментарии и критика приветствуются!!!


KoHTaKTHaЯ информация
Е-mail: makcikm@narod.ru

Используются технологии uCoz