Практика настройки домашнего/офисного сервера на Debian 6 Squeeze.

Автор Leo, 18 июля 2012, 18:44:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Leo

Примечание: данная статья - авторский опыт. Буду благодарен за конструктивные комментарии.

Имеем:
Комп не первой свежести, старый моник, клаву, мышь, Switch D-Link DES-1008D (обычный хаб), Мегафон модем Е352, который не заводится под шестой Дебиан, и несколько компов с linux/windows системами.

Задача:
Поднять сервер с подключением к инету через ОпСоСа и раздать его в локальную сеть. На сервере сделать samba-файлопомойку. В сети будут использоваться статичные ip-адреса, поэтому dhcp нам не понадобится.

Поехали...
Первым делом я установил Debian 6 Squeeze с рабочим столом lxde, разбивку разделов сделал примерно следующую (точно не помню):
/boot - ~300 mB
swap - ~2 Gb
/ - остальное
При инсталляции, как обычно, был создан один единственный пользователь.
Посде загрузки подключил репозиторий бэкпортов и обновил usb-modeswitch до версии 1.2.3, ибо более ранняя не поддерживает usb-модем E352.
В lxde настроил автоматический вход в систему через того самого, единственного пользователя (Меню - Параметры - Окно входа в систему вкладка Безопастность), в биосе настроил загрузку по умолчанию на определенное время (на утро) + восстановление исходного состояния при потере питания.
Установил wvdial со всеми необходимыми зависимостями, сгенерировал новый конфиг с помощью команды wvdialconf, затем отредактировал его (nano /etc/wvdial.conf) вот до такого состояния:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Auto Reconnect = on
Dial Command = ATM1L3DT
Dial Attempts = 0
Modem Type = USB Modem
Phone = *99#
ISDN = 0
Password = gdata
Stupid Mode = 1
New PPPD = yes
Username = gdata
Modem = /dev/ttyUSB0
Baud = 460800

Файл (nano /etc/network/interfaces) у меня выглядит вот так:

# Theloopback network interface
auto lo
iface lo inet loopback

Т.е. интерфейс eth0 не поднимается штатными стредствами, он поднимается из скрипта после поднятия ppp0 интерфейса. eth0 поднять перед ppp0 нельзя, т.к. на момент запуска будет существовать стандартный маршрут для eth0, а не PPP. Демон ppp не удаляет стандартный маршрут eth0 при старте, если тот уже был поднят.
Для осуществления автозапуска wvdial при загрузке был создан скрипт /etc/init.d/wvdial следующего содержания:
Открыть содержимое (спойлер)

#! /bin/sh
### BEGIN INIT INFO
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Provides:          wvdial
# Short-Description: wvdial boot-script
# Description:       This script establish ppp-connection via wvdial
### END INIT INFO

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/usr/bin
DESC="wvdial connection"
NAME=wvdial
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="--options args"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

case "$1" in
  start)
   /usr/bin/wvdial > /dev/null 2>&1 &
   ;;
  stop)
   killall wvdial
   killall pppd
   ;;
  *)
   echo "Usage: $SCRIPTNAME {start|stop}" >&2
   exit 3
   ;;
esac

:
[свернуть]
Далее добавляем скрипт в автозапуск:

update-rc.d wvdial start 2 stop 0 1 6

Причём использование sysv-rc-conf у меня почему-то не привело к желаемому результату, как и ln -s ...
Далее я подредактировал скрипт /etc/ppp/ip-up, добавив в его конец реакцию на поднятие подключения по интерфейсу ppp0:

# Up eth0 interface if ppp0 enabled
ifconfig eth0 up 192.168.0.1

# Adding MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

А также скрипт /etc/ppp/ip-down, добавив реакцию на завершение/обрыв связи по ppp0:

# Down eth0 interface if ppp0 disable
ifconfig eth0 down

Может быть у кого-то есть более изящное решение этой проблемы...
В заключение добавил в конец файла /etc/crontab следующие строки, отвечающие за выключение компьютера в определенное время в определенные дни недели:

# server1 only commands
00 18   * * 1-5 root    shutdown -h now
30 8    * * 0,6 root    shutdown -h now

Samba-сервер поднимается сам после установки. Для администрирования установил интерфейс gadmin-samba и расшарил через него папку, без паролей.
Остаётся настроить iptables и т.д.
Интересно ваше мнение и опыт по поводу всего вышеизложенного.

p.s.: после настройки прошла неделя - полёт нормальный

rayanAyar

Цитата: Leo от 18 июля 2012, 18:44:10samba и расшарил через него папку, без паролей.
Остаётся настроить iptables
Samba без пароля, не прикрытая iptables... Надеюсь личных файлов там нет. А если соседи по модемам удалят какие-то файлы в шаре или виря подкинут это не страшно, это мелочи жизни. :)

Leo

Цитата: Leo от 18 июля 2012, 18:44:10это не страшно, это мелочи жизни. :)
я над этим работаю ;) вчера ssh прикрутил, сегодня буду через него iptables настраивать :) ssh уже с паролем! ;D
просто прямого постоянного доступа к компу нет вот и приходится каждый вечер после работы по чайной ложке... )))

Василий

        Всё, что ни происходит, всегда так, как нужно и только к лучшему.

Leo

Цитата: Leo от 18 июля 2012, 18:44:10eth0 не поднимается штатными стредствами, он поднимается из скрипта после поднятия ppp0 интерфейса. eth0 поднять перед ppp0 нельзя, т.к. на момент запуска будет существовать стандартный маршрут для eth0, а не PPP. Демон ppp не удаляет стандартный маршрут eth0 при старте, если тот уже был поднят.
Может быть кто-нибудь подскажет как корректно автоматически переподключаться к инету без косяков с локальным интерфейсом в случае если этот самый инет отвалился? Конечно самый банальный метод - использовать для этого /etc/ppp/ip-down... буду пробовать - пока не нашёл реального решения.

Leo

Проблему с обрывом связи решил так: контролирую пинг в скрипте - если пинга на внешние сервера нет - программно перезагружаю сервер. Работает без вмешательств с момента настройки (см. дату первого поста) - проблем с компом нет, единственная проблема - когда у оператора сот. связи нет интернета - у нас тоже нет. Думаю теперь рассмотреть вариант с двумя модемами разных операторов :)

gardarea51

Я бы тоже хотел написать нечто подобное о том, как сделано у меня. Но когда думаю сколько писать - мне сразу становится лень. Автор молодец, что начал.

ogost

автор безусловно молодец. а мне наоборот про домашний "сервак" и писать то неинтересно - старый полудохлый ноут, локалку ловит через старый же PCMCIA вайфай карточку, проводом воткнут в телек. поднят minidlna и поставлена торрентокачалка с вебмордой. настроен нат, чтобы с телека можно было в эти ваши фэйсбуки заходить и онлайн радио слушать. всё. настроилось всё с полпинка. скучно даже как-то.

Leo

Цитата: gardarea51 от 10 апреля 2013, 19:29:01
Но когда думаю сколько писать - мне сразу становится лень.
просто время идёт... забывается что куда засунуто было - сегодня понадобилось припомнить чё куда писал, думаю в этот же комп (сервак) ещё одну локальную плату поставить, рядом ещё комп подключить к нему - поднял эту ветку на форуме - вспомнил что делал... самому же помогает эта писанина...

BULATUS

Цитата: gardarea51 от 10 апреля 2013, 19:29:01Я бы тоже хотел написать нечто подобное о том, как сделано у меня. Но когда думаю сколько писать - мне сразу становится лень. Автор молодец, что начал.
как вариант начать писать на черновике, в день по строчке или по пять  :) к концу месяца может и тема родится...  :)

Цитата: ogost от 10 апреля 2013, 20:06:15а мне наоборот про домашний "сервак" и писать то неинтересно - старый полудохлый ноут
Истории успеха очень интересные темы  :)