среда, 20 июня 2012 г.

Интернет-шлюз и торрент-сервак или вторая жизнь старого ПК

Интернет-шлюз и торрент-сервак из ничего.


  Для кого статья:  

- для энтузиастов желающим что-то сделать нужное, недорого и тем более собственноручно для себя любимого )) 

- если вы считаете, что это бред и напрасная потеря времени - эта статья не для Вас, далее не читайте, не нужно тратить свое драгоценное время.

 

 

Часть 1

Как известно оставлять стационарный ПК на круглосуточною роботу на закачках и раздачах экономически и эргономически не выгодно. Во-первых мощный ПК потребляет немало электроэнергии, во-вторых у гудящий ящик круглосуточно в углу как минимум четырмя ветиляторами тоже мало кому будет нравится. Как мне кажется, что не один пользователь уже задумывался: "Чтоб такое придумать??? "


 Есть не мало вариантов:

1.Промышленный роутер с возможностью подключения внешнего USB-винчестера. С дальнейшей настройкой на нем файл-сервера под управлением операционной системы Linux. Цена вопроса вытекает приблизительно 115..120 у.е. За роутер + внешний жесткий диск.
Плюсы: получаете WiFi точку доступа, свич для подключения еще 4х ПК, миниатюрные габариты, принт-сервер, малое энергопотребление. Минусы: ограниченные возможности по администрированию (по сравнению с ПК) и невысокая скорость при работе с жестким диском.
2.Старенький ноутбук. Здесь Ваши возможности будут ограничены самим аппаратом, т.е. наличием WiFi, если это надо. Возможность организации роутера и конечно объемом жесткого диска...........
3.Старенький ПК, который не используется и выбросить жалко. Здесь возможности не ограниченные. Он еще может Вам хорошо послужить. Вот этот пункт я и хочу более детально рассмотреть.



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



Системные требования:

  • Процессор: Intel Celeron 500, идеальней будет на ядре Coopermine (самый экономичный по энергопотреблению Pentium III 600Е), поскольку уже используют частоту шины 100\133 МГц, что положительно сказывается на общей производительности системы.
  • Оперативная память: на консольной операционке 128Mb больше чем достаточно (если будете использовать графический интерфейс – нужно 256…512Мб).
  • Видеокарта: не принципиальна поскольку нужна только для установки системы (идеально если интегрированна, нет вентилятора, нет шума, нет лишнего тепловыделения).
  • Жесткий диск: на Ваше усмотрение, может быть ограничен возможностями материнской платы, например старушка на чипсете intel-BX будет видеть диск максимум 130Гб. Но я так думаю что в таких завалявшихся системных блоках как минимум для начала какой-то диск уже есть. При этом вы должны помнить – напихивание в системник кучи мелкоразмерных винчестеров не удачный вариант! Это все лишние ватты вашего системника!
  • Сетевые картыдве (одна для получения интернета, вторая для раздачи интернета клиентской Windows-машине), или одна если вам шлюз не нужен. WiFi контроллер (опять же если нужно).
  • Дополнительно: расширитель USB2.0, контроллер SATA --- это дело наживное, по желанию, но сейчас обсуждение с малыми затратам, поэтому это обсуждаться пока не будет.

    Операционная система:

    Linux и только Linux, почему?
    1.один раз настроил и забыл;
    2.минимальный риск сетевой уязвимости;
    3.систему можно выбрать под минимальную конфигурацию Вашей машины;
    4.простота удаленного управления хоть с другой точки мира даже из сетей которые не позволяют это делать из под Windows (служба SSH). Притом способ выхода в интернет для управления не имеет значения, хоть с мобильного телефона.
    5.работа в локальной сети Windows – без проблем


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




Часть 2.


Для описанной выше конфигурации превосходно подходит операционка Linux Ubuntu Server 10.10.
И так на примере постройки моей системы:
имеется престарелый но укомплектованный пациент типа
Pentim III 733MHz (посчитал самым оптимальным, шина 133МГц)
256Mb RAM (какая была в наличии, шина 133МГц)
m\b intel D815(video+lan) (уже не первый вариант мною опробованный)
Жесткие диски: Disk-On-Module 2Gb IDE, Hitachi 160Gb SATA. Поскольку небыло в наличии вместительного харда с портом IDE пришлось прибегнуть к такой странной схеме, а внешний SATA-контроллер не позволяет загрузку с диска. Пришлось поставить : Disk-On-Module.
Lan PCI 3Com905TX
Controller VIA: USB2.0 4-ports, SATA single port
БП ATX 150W


. Все действия по настройке, которые я буду излагать применимы к 99% Линукс-систем.
Начнем заливку софта:

1.Если у Вас нет отдельного винчестера но попробовать есть желание – это не проблема, даже если у Вас там стоит Виндовз и с ним нет желания расстаться. Воспользуйтесь любой программой для работы с разделами диска и высвободите 10Гб свободного места (расположение на диске не имеет значения), для системы это более чем достаточно. Установленный Линукс занимает около 800Мб (от 2Гб до 4Гб с графическим интерфейсом.).
2.Если у Вас отдельный винчестер, пункт №1 пропускаем
3.Загружаемся с CD дистрибутива Линукс, выбираем язык «Русский», выбор раскладки клавиатуры «Рус».
4.Выбор локации
5.Далее самый щекотливый раздел меню это «Разметка диска». Выбираем «Вручную» или «Эксперт» (в разных версиях по-разному). В моем случае я весь раздел диска hda1 отдал под систему (т.е. 2Гб), тип файловой системы – ext3 или ext4. Далее нужно выбрать точку монтирования, выбираем «/», это и будет системный раздел или root. На диске 160Гб создаю раздел подкачки sda1 300Мб, а оставшееся место под раздел sda2 с точкой монтирования «/home», т.е. домашний раздел, в нем будут храниться торренты. И он останется нетронутым в случае неудачной настройки\установки или просто переустановки. Далее по диску все, система отформатирует созданный Вами раздел. 6.Далее все банально просто. Система спросит дать имя пользователю\машине и пароли. Минимум 6 символов, придумывайте хороший пароль, поскольку он будет и паролем админа. Пересчитывание пакетов, выберите по умолчанию минимум «g», далее «q» для выхода, подтвердить действие и … пошла установка. В конце перезагрузка. Выключаете системник, отключаете CD-ROM , он вам более не нужен. И первый запуск.




Часть 3.


Если система установилась, вы увидите приглашение ввести логин и пароль. Теперь будем заливать все нужное.
  1. Проверяем наличие сети:
ifconfig


получаем на подобии


eth0 Link encap:Ethernet HWaddr 80:0A:E9:53:AA:2D
inet addr:170.26.49.67 Bcast: 170.26.49.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:208554 errors:0 dropped:0 overruns:0 frame:0
TX packets:125071 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:40664531 (38.7 MiB) TX bytes:45919980 (43.7 MiB)
Interrupt:21 Base address:0x4c00


eth1 Link encap:Ethernet HWaddr 05:7A:E4:56:AA:28
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:208554 errors:0 dropped:0 overruns:0 frame:0
TX packets:125071 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:40664531 (658.7 MiB) TX bytes:45919980 (477.7 MiB)
Interrupt:21 Base address:0x4c00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:18511 errors:0 dropped:0 overruns:0 frame:0
TX packets:18511 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:537155 (524.5 KiB) TX bytes:537155 (524.5 KiB)


если ваш интернет через мак-адрес, можете сделать подмену:
ifconfig eth0 hw ehter XXXXновый макXXXX

2. проверяем наличие интернета

 ping www.google.com.ua


получаем на выходе


PING www.l.google.com (209.85.148.104) 56(84) bytes of data.


64 bytes from fra07s07-in-f104.1e100.net (209.85.148.104): icmp_req=1 ttl=53 time=47.4 ms


64 bytes from fra07s07-in-f104.1e100.net (209.85.148.104): icmp_req=2 ttl=53 time=48.1 ms


64 bytes from fra07s07-in-f104.1e100.net (209.85.148.104): icmp_req=3 ttl=53 time=47.5 ms



3. Теперь ставим софт.


sudo apt-get update (обновление списка пакетов)
sudo apt-get install mc rtorrent dhcp3-server samba (двухпанельный файл-менеджер Midnigth Commander, торрен-клиент, DHCP-сервер для раздачи адресов в вашу подсеть и Самба-сервер чтоб можно было свободно перекачивать из сервака Виндовз-машинам)
Если есть желание, можно доставить консольные веб-браузеры lynx или elinks.


Полезная прога screen ------- мультиэкранный менеджер, заменит Вам сотни «рабочих столов», установлена по-умолчанию. Если ее не использовать, то при запуске какого-либо приложения запуженный процесс не даст вам больше ничего делать. Запускаете screen, и создаете дополнительные столы, сколько нужно Ctrl+A+C, прокрутка столов Ctrl+O(N)

4. Запускаем DHCP-сервер: (если вы не собираетесь использовать вашу машину как шлюз – этот пункт пропускаете)

Редактируем конфиг sudo nano /etc/dhcp3/dhcpd.conf


dns-updates off;


option T150 code 150 = string;


deny client-updates;


one-lease-per-client false;


allow bootp;


ddns-update-style none;


subnet 192.168.1.0 netmask 255.255.255.0 {


option routers 192.168.1.1;


option subnet-mask 255.255.255.0;


option domain-name "homeland.net";


option domain-name-servers 193.24.25.1;






range dynamic-bootp 192.168.1.24 192.168.1.30;


default-lease-time 21600;


max-lease-time 43200;


}


Сохраняем.


Перезапуск:
sudo /etc/init.d/dhcp3-server restart



5. Настраиваем торрент-клиент rtorrent


Нужно создать каталог /session по пути /home/<user>/session, в нем хранятся работающие сессии. И текстовый конфигурационный файл .rtorrent.rc по пути /home/<user>/


Содержимое файла:


#минимальное число пиров на торрент


min_peers = 1






#максимальное число пиров на торрент


max_peers = 1000






#максимальная скорость загрузки


download_rate = 0






#максимальная скорость отдачи. 0 - не ограничена


upload_rate = 0






#каталог для сохранения закачек или откуда буду сидироваться торренты.


directory = /home/<user>/share/






#каталог куда будет сохраняться состояние торрентов.


#Здесь, в этом примере, они сохраняются в папку session


session = /home/<user>/session/






#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы


#и если они есть то ставит их на закачку


schedule = watch_directory,5,5,load_start=/home/<user>/share/*.torrent






#проверяет каталоги 2 и 3 на новые *.torrent файлы и сохраняет закачки в соответствующие папки


#schedule = watch_directory_2,5,5,"load_start=/home/user/torrent_auto_load_2/*.torrent,


#d.set_directory=/home/user/download2"


#schedule = watch_directory_3,5,5,"load_start=/home/user/torrent_auto_load_3/*.torrent,


#d.set_directory=/home/user/download3"






#номер порта (или нескольких портов) который открывает клиент для обмена данными


port_range = 41830-41830










#случайный выбор порта для обмена данными. В данном случае он отключён


port_random = yes






#проверять хэш торрента после закачки


check_hash = yes




#сохранять сессию


session_save = yes






#принимать зашифрованные входящие соединения, устанавливать незашифрованные исходящие соединения,


#если возвращает ошибку, повторять с шифрованием, предпочитать открытый текст после установления


#зашифрованного соединения


encryption = allow_incoming,enable_retry,prefer_plaintext






#использовать udp


use_udp_trackers = yes

6. Правила iptables


Создаем текстовый файл, например ip_tables
и делаем его исполняемым
sudo chmod +x ip_tables
Заливаем в него содержимое правил на примере моего:


#!/bin/sh


iptables -F


iptables -t nat -F


iptables -X


iptables -P INPUT DROP


iptables -P FORWARD DROP


iptables -P OUTPUT ACCEPT


iptables -A INPUT -p ALL -i eth0(интерфейс с доступом в мир) -m state --state ESTABLISHED,RELATED -j ACCEPT


; далее перечень открытых портов
iptables -A INPUT -p tcp -m tcp --dport 41830 -j ACCEPT


iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT


iptables -A INPUT -p tcp -m tcp --dport 135 -j ACCEPT


iptables -A INPUT -p udp -m udp --dport 137 -j ACCEPT


iptables -A INPUT -p udp -m udp --dport 138 -j ACCEPT


iptables -A INPUT -p tcp -m tcp --dport 139 -j ACCEPT


iptables -A INPUT -p tcp -m tcp --dport 445 -j ACCEPT


iptables -A INPUT -p icmp -j ACCEPT


iptables -A FORWARD -i eth1(внутр. подсеть) -o eth0(мировая сеть) -s 192.168.1.0/24 -j ACCEPT


iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT


iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT






iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


iptables -t nat -A POSTROUTING -p ALL -o eth0 -j SNAT --to-source 140.156.12.45(ваш мировой адрес)


далее файл с правилами нужно разместить чтоб он загружался автоматически, например можно в /etc/network/if-up.d/

7. Теперь нужно открыть доступ других пользователей к интернету через ваш новый шлюз, редактируем файл /etc/sysctl.conf .

Раскомментирум строку


net.ipv4.ip_forward=1





8. Теперь нужно настроить, чтоб ваши другие машины подсети или медиацентры имели доступ к серваку.

Если без всяких парольных доступов, то все проще простого. Редактируем конфиг /etc/samba/smb.conf


[global]


workgroup = название вашей рабочей группы
server string = Samba Server Version %v






netbios name = сетевое имя для Виндовс сети




;interfaces = lo eth0 192.168.1.24 192.168.1.25 192.168.1.30 192.168.1.26 192.168.1.27 192.168.1.28
(если раскомментировать, будет доступ у указанных адресов)
; hosts allow = 127. 192.168.12. 192.168.13.






# logs split per machine


log file = /var/log/samba/log.%m


# max 50KB per log file, then rotate


max log size = 50






security = share


passdb backend = tdbsam




local master = yes




[имя расшаренного рессурса]


comment = что угодно
path = /home/путь к расшаренной папке


public = yes


guest ok = yes


browseable = yes


writable = yes


printable = no






Сохранить и запустить:
sudo /etc/init.d/smbd start


например что имеем на выходе:
1. из старого железа
 



 

2. из нового железа (корпус из старого видеомагнитофона)

 


Комментариев нет:

Отправить комментарий