Интернет-шлюз и торрент-сервак из ничего.
Для кого статья:
- для энтузиастов желающим что-то сделать нужное, недорого и тем более собственноручно для себя любимого ))
- если вы считаете, что это бред и напрасная потеря времени - эта статья не для Вас, далее не читайте, не нужно тратить свое драгоценное время.
Часть 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.
Если система установилась, вы увидите приглашение ввести логин и пароль. Теперь будем заливать все нужное.
- Проверяем наличие сети:
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. из нового железа (корпус из старого видеомагнитофона)
