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.
Дальше приступаем к конфигурации соединения ррр0:
отвечаем на не сложные вопросы и в конце вводим именя и пароль для доступа в Интернет,данный Вам вашим провайдером.
Логинимся root и делаем ping -c5 ya.ru.Если пинги проходят и вы видите статистику,значит все прошло удачно и Ваша машина имеет выход в Интернет!!!!!!!
Далее я ставлю MidNight Commander,аналог Виндозного Нортона.Ну нравится и я привык к удобству перемещения по каталогам.Ставлю "ручками",так как его исключили из репозитория!!
Далее,настройка остальных сетевых интерфесов.Идем /etc/network и смотрим intefaces.eth0 - первая сетевая карта,смотящая в сеть провайдера!
Настраиваем другие интерфейсы eth1 и eth2.
Точно такую же секцию,но для eth2.Не забудьте сетевой адрес заменить!
Поднимаем сетки ...
Снова выполните ifconfig
Теперь у Вас должно быть ПЯТЬ итерфесов:lo,eth0,eth1,eth2,ppp0
Теперь можно подключить другие компьютеры,назначив им адреса вида 192.168.1.2 со шлюзом 192.168.1.1 и 192.168.2.2 со шлюзом 192.168.2.1 .
Samba.
Применим apt-get для получения пакета samba
В стандартный файл конфигурации samba мне понадобилось изменить секцию аутентификации:
####### Authentication #######
Укажите интерфейсы, на которые будет работать
samba. И для предотвращения проблем с русских - client code page и character
set. Далее идут описания расшареных ресурсов.
В секции Share Definitions
Настройка iptables и маскарадинга.
Это необходимо для того,чтобы наши машины ходили наружу,а чужие машины не могли пользоваться нашим каналом,плюс ограничить доступ к нашим файлам.
Вот самое необходимое,но не полный файл rc.iptables
Помещаем его в /etc/init.d.Делаем его исполняемым:
Добавим его в автозапуск:
После этих манипуляций ваши машины имеют доступ к внутренним ресурсам сети и доступ в Интернет!
Хочется обратить внимание на один нюанс...После включения файервола сервер по командам halt,poweroff или reboot ОЧЕНЬ,НУ ОЧЕНЬ долго выключается или перезагружается!!!!!!!Связано это со службой NFS,точнее с portmaperom.Я его отключил, удалив автозагрузку командой update-rc.d -f portmap remove.После этой команды сервер выключается в отличные 20 секунд!!!
На этом можно было бы и закончить,но я же хотел МНОГОФУНКЦИОНАЛ!!!!
Торрент качалка с автоматическим подхватом торренов.
Здесь два пути. Простой или занимательный.Я выбрал простой, установку из репозитория "что есть", т.к. компиляция свежей версии нужна только для правильного отображения веб-морды. Применим apt-get для получения пакета rtorrent и screen
C официального сайта rtorrent берем "рыбу"-конфиг,правим в нем ПУТИ сохранения файлов,сессий и торрентов.У меня это папка на файлопомойке!!!Так проще обеспечить свободный доступ домашним.
Там же берем файл автостарта.Так же правим имя юзера от кого будет работать торрент.Предупрежу,что от root это не айс!!!Скрипт автостарта кладем все туда же /etc/init.d.Делаем его исполняемым:
Добавим его в автозапуск:
После перезагрузки наберите ps -aux .Это позволит увидеть процессы.Должен быть screen и rtorrent.
Теперь Ваши домочадци смогут скачать торрент файл в спец папку(у меня папка автозагрузки доступна через самбу,то есть находится в сетевом доступе для всех!!!) ,он автоматически подхватится рторрентом!!!При этом постоянно будет раздача!!!
Для наглядности и упрощения "жизни" жителей с Винды можно установить веб морду. У меня rutorrent. Скачал исходники, бросил в /var/www и по обращению 192.168.2.1/rutorrent будет Щастие, в виде веб морды в стиле мюторрент!!!
By Makc, 11-06-2010
Все шаги установки я опустил из-за банальной просторы вопросов-ответов.
apt-get install pppoe
apt-get install pppoeconfig
./pppoeconfig
./reboot
dpkg -i mc
mc
auto eth1
iface eth1 inet static
adresse 192.168.1.1
netmask 255.255.255.0
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
На подключаемых компьютерах необходимо выключить и установить адрес вручную, например:
192.168.1.10 маска 255.255.255.0 шлюз 192.168.1.1
Аналогично для другой сетевой карты!!!!
apt-get install samba
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
[pomoika]
comment = Main pomoika ...
path = /share2/For_ALL
guest ok = yes
guest only = Yes
writable = Yes
create mask = 0777
#!/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
chmod +x ./rc.iptables
update-rc rc.iptables defaults
reboot
apt-get install rtorrent
apt-get install screen
chmod +x ./rc.rtorrent
update-rc rc.rtorrent defaults
reboot
На главную
Вопросы, комментарии и критика приветствуются!!!