Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  начальная настройка
  Установка FreeBSD
  DUMMYNET
  Сборка ядра
  IPFW
  обновление
  portsnap
  CP1251 на FreeBSD
  loader.conf
  defaults/rc.conf
  jail
  Ntpdate/Ntpd
  diskless
  Обновление мира ("world")
  PBR & PF
  bsnmpd
  newsyslog
  if_bridge
  make.conf
  PBR & IPFW
  Работа с HDD
  sshd & AD
  Удаленное разбиение HDD
  Заметки об IPFW
  FreeBSD на VDS
  CVSUP и софт через Proxy
  i386=>amd64
  ALTQ в IPFW
  Виртуальный свитч
  VPN сервер по средствам mpd5.
  NTP
  sysupdate
  mpd5 L2TP
  freebsd + webcamera
  IPFW policy (PBR)
  RAID1 via LAN
  зеркальный RAID1 на ОС FreeBSD
  4.x => 7.x
  portdowngrade
  Быстрое обновление портов
  ipfw nat
  Использование csup
  UTF-8 console
  dump/restore
  hast carp zfs ucarp cluster
  ng_nat
  Wi-FI роутер + DHCP + DNS
  backup/restore & ZFS
  Обновление ОС и портов через SVN.
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> настройка —> diskless

Тонкие клиенты под FreeBSD

Автор: lissyara.


    Почти три года назад, я написал статью о создании тонких клиентов (бездисковые машины с загрузкой по сети) под FreeBSD. С той поры утекло много воды, из той организации я уволился, на новом месте этого не потребовалось. А вот на старом - первые-вторые пеньки продолжали работать, и есть не просили =)
   Так получилось, что в ту контору я вернулся, приходящим админом - между моими приходами там успело смениться три или четыре администратора - раскурочили всё что смогли, не считая пары серверов, в том числе и того с которого грузились тонкие клиенты. Стрёмно, видать - на нём висела почти вся контора =) После нескольких месяцев разгребания, восстановления и обновления добрался и до тонких клиентов. За прошедшее время появилось много новых и хороших идей у меня, ещё больше хорошего воплотили разработчики FreeBSD.

   Немного теории. Дано - куча старых тазиков, типа пни первые-вторые-третьи, без хардов, с количеством RAM около 64Mb (+64/-16). На первых пеньках стоят сетевухи с поддержкой загрузки по сети - PXE (fxp/xl). В BIOS вторых-третьих пней зашит загрузчик для сетеых карт типа RTL8139[a/b/c/d]. Машинки будут стягивать по TFTP загрузчик, он, уже по NFS будет вытаскивать ядро, модули и параметры. После загрузки ОС, запускаются иксы и rdesktop - подключаемся к виндовому терминал-серверу.
   Дополнительные задачи, которые не были реализованы вообще, или реализованы криво в предыдущей версии - корректное монтирование/отмонтирование флэшек на ходу, проброска звука из терминальной сессии на локальную машину, и, самое главное - возможность запуска X-сервера без конфигурационного файла - ибо именно прописывание разрешения, частоты развёртки, и т.п. для Win-админов было самым сложным.

   Итак, собирать будем на базе FreeBSD 7.2. Особенных требований к машине, откуда всё это грузиться будет, нет. Тока чтоб сама смогла загрузиться, да и всё =)) Чтоб меньше елозила диском, при работе и раздаче по сети файловых систем - побольше рамы (хотя бы 256Mb) - всё влезет в кэш, и к диску будет минимум обращений.
   Готовим машину для раздачи файловых систем по NFS и TFTP. Прописываем запуск NFS-сервера:
router$ grep --after-context=4 NFS /etc/rc.conf
# NFS
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 40"
rpcbind_enable="YES"
nfs_client_enable="YES"
router$  

   Прописываем файловые системы, расшаренные по сети:
router$ cat /etc/exports
# То, что расшариваем по NFS
#/usr/ports/distfiles -maproot=root -network 192.168 -mask 255.255.0.0
/usr/ports /usr/src  -maproot=root -network 192.168 -mask 255.255.0.0
#/pxeroot -maproot=root -network 192.168 -mask 255.255.0.0
#/usr/src -maproot=root -network 192.168 -mask 255.255.0.0
/shares/tftp/7.2/eliron -maproot=root -ro -network 192.168 -mask 255.255.0.0

router$  

   Раскомментируем, и немного подправляем строки запуска tftpd через inetd:
router$ grep shares /etc/inetd.conf
tftp dgram  udp wait   root /usr/libexec/tftpd tftpd -l -s \
/shares/tftp/7.2/eliron -u root
tftp stream tcp nowait root /usr/libexec/tftpd tftpd -l -s \
/shares/tftp/7.2/eliron -u root
router$

   Не забываем запустить сам inetd:
router$ grep inetd /etc/rc.conf
inetd_enable="YES"

   Прописываем запуск DHCP-сервера (у меня DHCP сервер (isc-dhcp30-server) находиться на этой же машине, у вас может находиться на другой):
router$ grep --after-context=5 DHCPd /etc/rc.conf
# DHCPd
dhcpd_enable="YES"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
#dhcpd_ifaces="fxp0 dc0 sk0"
dhcpd_ifaces="fxp0 sk0"
#dhcpd_flags="-d "
router$

   У меня, настройки для заданной сети выглядят в dhcpd.conf примерно так:
subnet 192.168.110.0 netmask 255.255.255.0 {
        range 192.168.110.1 192.168.110.199;
        option routers 192.168.110.254;
        option subnet-mask 255.255.255.0;
        option netbios-name-servers 192.168.0.19, 192.168.0.251;
        option netbios-dd-server 192.168.110.253;
        option netbios-node-type 8;
        option broadcast-address 192.168.110.255;
        option ntp-servers 192.168.0.253;
        next-server 192.168.110.254;
#       option root-path "192.168.130.254:/shares/tftp/4.11/gp";
        option root-path "192.168.110.254:/shares/tftp/7.2/eliron";
        filename "/boot/pxeboot";
        option domain-name-servers 192.168.0.19;
        option domain-name "grand-prix";
        option domain-name-servers 192.168.0.251, 192.168.0.19;
        }

   Заливаем сорцы (csup) выбранного релиза, и собираем мир и ядро в директорию, которая будет расшарена по NFS/TFTP, устанавливаем системные конфиги:
router$ mkdir -p /shares/tftp/7.2/eliron
router$ cd /usr/src/
router$ make buildworld && make buildkernel && make installworld \
? DESTDIR=/shares/tftp/7.2/eliron && make installkernel \
? DESTDIR=/shares/tftp/7.2/eliron && \
? make distribution DESTDIR=/shares/tftp/7.2/eliron

   После сборки мира и ядра, монтируем по nullfs порты и исходные коды ядра, относительно корневой директории будущих тонких клиентов:
router$ mount -t nullfs /usr/ports /shares/tftp/7.2/eliron/usr/ports
mount: /shares/tftp/7.2/eliron/usr/ports: No such file or directory
router$ mkdir -p /shares/tftp/7.2/eliron/usr/ports
router$ mount -t nullfs /usr/ports /shares/tftp/7.2/eliron/usr/ports
router$ mount -t /usr/src /shares/tftp/7.2/eliron/usr/src/

   Также, монтируем файловую систему устройств (понадобиться при сборке некоторых портов):
router$ mount -t devfs devfs /shares/tftp/7.2/eliron/dev

   Сразу же, копируем некоторые файлы, которые нам понадобяться при дальнейшей работе - или для удобства дальнейшей работы:
router$ cp /root/.cshrc  /shares/tftp/7.2/eliron/root/

   И рисуем конфиги - резольвера:
router$ cat /shares/tftp/7.2/eliron/etc/resolv.conf
search  grand-prix
nameserver 192.168.0.251
nameserver 192.168.0.19

router$   

   Системного файла сборочной информации - make.conf:
router$ cat /shares/tftp/7.2/eliron/etc/make.conf

# kernel config
KERNCONF=NFSBOOT

# added by lissyara 2007-07-19 in 01:08
PORTSDIR?=      /usr/ports

.if ${.CURDIR} == ${PORTSDIR}/mail/exim
# Дефолтовая кодировка заголовков
WITH_DEFAULT_CHARSET?=  koi8-r
# Отключаем IPv6
WITHOUT_IPV6=           yes
# Версия BDB - в чём ведёт свои БД подсказок
WITH_BDB_VER=           1
# Подержка перекодировки (для заголовков)
WITH_ICONV=             yes
.endif

# vim
.if ${.CURDIR} == ${PORTSDIR}/editors/vim
WITHOUT_X11=yes
NO_GUI=yes
.endif

# GD
.if ${.CURDIR} == ${PORTSDIR}/graphics/gd
WITH_ICONV=yes
.endif

# rdesktop
.if ${.CURDIR} == ${PORTSDIR}/net/rdesktop
WITH_ICONV=     yes
.endif

router$

   Собственно, на этом моменте я попробовал загрузить одну машину с новой фрёй, но - обломался =) Я собрал GENERIC ядро, а оно по сети не грузиться =) Поэтому, чуть ниже будет ещё одна пересборка ядра, уже из chroot.

   Теперь можно делать chroot в корневую директорию тонких клиентов, и собирать необходимый софт:
router$ chroot /shares/tftp/7.2/eliron
router$

   Ставим rdesktop - для подключения клиента к виндовому серверу терминалов:
router$ setenv BATCH yes
router$ cd /usr/ports/
router$ make -C net/rdesktop install clean

   Иксы - полностью:
router$ make -C x11/xorg install clean

   Ставим monitord - он будет отслеживать падения rdesktop и перезапускать его при необходимости:
router$ make -C sysutils/monitord install clean

   Где-то между делом - пока собираются порты - пересобираем ядро (это я пересобирал - а вы могли просто не собирать на этапе инсталляции клиента). Рисуем конфиг для ядра - оно мало отличается от GENERIC:
router$ mkdir -p /root/scripts
router$ cd /usr/src/sys/i386/conf/
router$ ln -s /root/scripts/NFSBOOT
router$ cat /root/scripts/NFSBOOT
# thin clients kernel config

include GENERIC

ident           NFSBOOT-GENERIC

# цвет консоли - кому как удобней, и буфер консоли
options         SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
options         SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK)
options         SC_HISTORY_SIZE=2022
# как раз опции для поддержки бездисковых клиентов
options BOOTP
options BOOTP_NFSROOT
options BOOTP_COMPAT

router$   

   Также, пишем такие конфигурационные файлы/скрипты - для старта/работы тонкого клиента. Для начала реализуем монтирование/отмонтирование флэшек в тонких клиентах - через devd:
router$ diff -Nru /etc/devd.conf  /etc/devd.by.lissyara.conf
--- /etc/devd.conf      2009-07-22 18:01:02.000000000 +0000
+++ /etc/devd.by.lissyara.conf  2009-07-22 21:01:02.000000000 +0000
@@ -325,3 +325,16 @@
        action                  "/etc/acpi_ac $notify";
 };
 */
+
+# added by lissyara 2009-07-02 in 10:45 MSK
+# if inserted flash - mount it
+attach 100 {
+       device-name "umass[0-9]+";
+       action "/root/scripts/mount.da0.sh &";
+};
+# if usb flash removed - force umount it
+detach 100 {
+       device-name "umass[0-9]+";
+       action "/root/scripts/umount.da0.sh &";
+};
+
router$   

   Собственно, скрипт монтирования - не забываем сделать исполняемым:
router$ more /root/scripts/mount.da0.sh
#!/bin/sh

# ждём устаканивания системы
sleep 2
# опции монтирования - шоп русские имена файлов показало
# и запись была синхронной
options="-o sync -L ru_RU.KOI8-R -D CP866"

# c флэшкой возможны два варианта - da0s1 и da0 - смотря как
# оно форматировалось. чаще всего первый, но попадается и второй
# добавлено через пару недель: попался и третий вариант =))
if test -r /dev/da0s1
then
        device="/dev/da0s1"
else
        if test -r /dev/da0s2
        then
                device="/dev/da0s2"
        else
                device="/dev/da0"
        fi
fi

# запускаем fsck - чтоб не материлось
/sbin/fsck_msdosfs -y -p $device
# монтируем флэшку
/sbin/mount_msdosfs $options $device /mnt
# через пару секунд рестартуем hald - бывает виснет =(
sleep 2 && /usr/local/etc/rc.d/hald restart &
# запускаем sync раз в секунду
/root/scripts/sync.sh &

router$  

   Кладём файл делающий sync раз в секунду:
router$ more /root/scripts/sync.sh
#!/bin/sh

echo $? > /tmp/sync.pid

while true
do
        sync
        sleep 1
done

router$  

   Скрипт выполняющий отмонтирование:
router$ more /root/scripts/umount.da0.sh
#!/bin/sh

# на всякий случай
sync
# принудительно отмонтируем флэшку
umount -f /mnt &
# ждём пару секунд
sleep 2
# убиваем скрипт выполняющщий синхронизацию
kill `cat /tmp/sync.pid`
# рестартуем hald
/usr/local/etc/rc.d/hald restart

router$   

   Рисуем главный конфигурационный файл системы - rc.conf:
router$ cat /etc/rc.conf
# rc.conf

# Русский язык в консоли
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
scrnmap="koi8-r2cp866"

# Убираем запуск sendmail (я вообще поставил на тонких клиентов exim :))
sendmail_enable="NONE"
sendmail_submit_enable="NO"
exim_enable="YES"
exim_flags="-q60m -oP /var/run/exim.pid"

# имя хоста
hostname="thin-client"

# rootfs in read-only
root_rw_mount="NO"
# чтоб не пытался сохранять энтропию в файл
entropy_file="NO"
# файл с hostid
hostid_file="/tmp/hostid"
# чтоб не обновляло сообщение дня
update_motd="NO"
# нет устройств для дампа
dumpdev="NO"

# мышь
moused_enable="YES"
# var on memory
varmfs="YES"
varsize="2m"
populate_var="YES"
# tmp on memory
tmpmfs="YES"
tmpsize="1m"

# ssh
sshd_enable="YES"
# на всякий случай - вдруг хард подключу =)
fsck_y_enable="YES"

# hald and other
gnome_enable="YES"
hald_enable="YES"
#hald_flags="--verbose=yes --daemon=no"
dbus_enable="YES"
polkitd_enable="YES"

# start X trough monitord(8)
#monitord_enable="YES"

# указываем свой конфиг вместо штатного
devd_flags="-f /etc/devd.by.lissyara.conf"

# пара задумок на будущее. ещё года через три реализую =)
# BlueTooth
#hcsecd_enable="YES"
#
#fusefs_enable="YES"


# bugs =)
mkdir -p /var/cache/hald/                               >/dev/null 2>&1
mkdir -p /var/run/PolicyKit                             >/dev/null 2>&1
/usr/sbin/chown :polkit /var/run/PolicyKit              >/dev/null 2>&1
/bin/mkdir -p /var/lib/misc                             >/dev/null 2>&1
/usr/bin/touch -f /var/lib/misc/PolicyKit.reload        >/dev/null 2>&1
/usr/sbin/chown :polkit /var/lib/misc/PolicyKit.reload  >/dev/null 2>&1
/bin/chmod 0664 /var/lib/misc/PolicyKit.reload          >/dev/null 2>&1
mkdir -p /var/log/exim                                  >/dev/null 2>&1
/usr/sbin/chown 26:6 /var/log/exim                      >/dev/null 2>&1

   По последней секции - пара пояснений. Все указанные директории, права, и владельцы выдернуты из инсталляционных скриптов dbus, hald и прочей хиромантии. На тонком клиенте раздел /var создаётся в памяти, и, разумеется, там указанные директори отсутствуют. Конечно, можно было поправить файл /etc/mtree/BSD.var.dist. Тока лениво, да и при обновлениях придётся его снова править. Так проще и надёжней =)
   Создаём файл монтирования файловых систем - fstab следующего содержания:
router$ cat /etc/fstab
# fstab for diskless clients
# Device                             Mountpoint      FStype  Options Dump Pass#
192.168.110.254:/shares/tftp/7.2/eliron /               nfs     ro 0 0
#192.168.110.254:/usr/ports             /usr/ports      nfs     rw 0 0
proc                                    /proc           procfs  rw 0 0
tmpfs                                   /etc/X11        tmpfs   rw 0 0

router$   

   Опять же - пара пояснений - procfs используется monitord(8), для отслеживания работы приложений. Файловая система в памяти - tmpfs, с любопытной точкой монтирования, используется для хранения конфигурационного файла X-сервера - когда его приходиться запускать с ним (последние иксы достаточно умные, чтобы в 80% случаев работать вообще без конфигурационного файла).
   Создаём конфиг для monitord, следующего содержания:
router$ more /usr/local/etc/monitord.conf
#
# my email (only for test, after - to /dev/null)
#email = root
#smtp-server = localhost

# user  options  delay  service   start script            parameters
# up X
root    auto     10     rdesktop  /root/scripts/rdesktop.sh

router$ 

   Пишем скрипт инициализации тонкого клиента, и делаем его исполняемым:
router$ cat /usr/local/etc/rc.d/start.thin.client.sh
#!/bin/sh

# conf
domain="grand-prix"
mac_addr_file="/tmp/mac.addr.txt"
user_settings_dir="/root/scripts/thin_configs"


PATH="/sbin:/bin:/usr/sbin:/usr/bin:\
/usr/local/bin:/usr/local/sbin"


# Если завершение работы - ничё не делаем.
case "$1" in
stop)
        # нихрена не делаем :)
        # Просто, без этого пункта, при остановке тонкого клиента,
        # снова запускаются иксы
;;

        # Если старт - запускаем rdesktop
start)
        # start monitord
        sleep 5 && /usr/local/etc/rc.d/monitord forcestart &
        # start dhclient
#       for iface in `ifconfig -l`
#       do
#               /etc/rc.d/dhclient start $iface
#       done
        # синхронизация времени
        ntpdate -b $domain &
        # get user MAC adderess
        client_mac=`ifconfig | grep ether | awk '{print $2}' | \
                        tr -d ":" | tail -1`
        # save MAC to /tmp - for configuration X server
        echo $client_mac > $mac_addr_file
        # достаём персональный конфиг пользователя - если он есть.
        if [ -s ${user_settings_dir}/${client_mac}.conf ]
        then
                . ${user_settings_dir}/${client_mac}.conf
        else
                . ${user_settings_dir}/defaults.conf
        fi

        # set hostname
        hostname ${user_name}.${domain}

        # set volume to maximum
        for mix in `mixer | grep currently | awk '{print $2}'`
        do
                mixer $mix 100:100
        done

;;

# справка по использованию
*)
        echo ""
        echo "Usage: `basename $0` { start | stop }"
        echo ""
        exit 64
;;
esac


router$ 

   Создаём стартовый скрипт для rdesktop - его задача - запуск иксов с нужными параметрами:
router$ cat /root/scripts/rdesktop.sh
#!/bin/sh

# conf
domain="grand-prix"
mac_addr_file="/tmp/mac.addr.txt"
user_settings_dir="/root/scripts/thin_configs"
usb_flash="NO"

PATH="/sbin:/bin:/usr/sbin:/usr/bin:\
/usr/local/bin:/usr/local/sbin"

client_mac="`cat $mac_addr_file`"



# достаём конфиги юзера
if [ -s ${user_settings_dir}/${client_mac}.conf ]
then
        . ${user_settings_dir}/${client_mac}.conf
else
        . ${user_settings_dir}/defaults.conf
fi

# проверка - надо ли флэшку
if [ $usb_flash = "YES" ]
then
        part="-r disk:flash=/mnt"
else
        part=""
fi

export DISPLAY=:0

# пишем конфиг .xinitrc
echo "exec sleep 5 && /usr/local/bin/setxkbmap \
        -layout us,ru -variant ,winkeys -option grp:ctrl_shift_toggle &
exec /usr/local/bin/rdesktop -c /tmp -d $domain -n `hostname -s`-bsd    \
        -k en-us -f -L koi8-r -N                                \
        -r sound:local $part -u `hostname -s` $ts"      > /tmp/.xinitrc
# создаём конфиг для клавы
echo "-layout us,ru -variant ,winkeys \
        -option grp:ctrl_shift_toggle" > /tmp/.Xkbmap
# назначаем хомяком /tmp
export HOME=/tmp

# рисуем конфиг иксов, если надо
. /root/scripts/create.xorg.conf.sh
# стартуем иксы
sleep 3 && /usr/bin/nice -n -20 /usr/local/bin/startx &

   Пишем скрипт для создания конфигурационнго файла X-сервера - если есть необходимость вручную выставить параметры (как уже упоминалось - в большинстве случаев, он сам корректно всё определяет):
router$ cat /root/scripts/create.xorg.conf.sh
#!/bin/sh

# set defaults, if not set
horiz_sync=${horiz_sync:-no}
vert_refresh=${vert_refresh:-no}
vga_driver=${vga_driver:-no}
resolution=${resolution:-no}

# need or not wrote config
if [ "$horiz_sync" != "no"              \
        -o "$vert_refresh" != "no"      \
        -o "$vga_driver" != "no"        \
        -o "$resolution" != "no" ]
then
        # reset defaults
        if [ "$horiz_sync" = "no" ]
        then
                horiz_sync="30.0 - 81.0"        # for 1280x1024, LCD
        fi

        if [ "$vert_refresh" = "no" ]
        then
                vert_refresh="56.0 - 75.0"      # for 1280x1024, LCD
        fi

        if [ "$vga_driver" = "no" ]
        then
                vga_driver="vesa"
        fi

        if [ "$resolution" = "no" ]
        then
                resolution='"1024x768"'
        fi

        cat /root/scripts/xorg.conf.tpl         |\
        sed -e "s/__horiz__/$horiz_sync/g"      |\
        sed -e "s/__vert__/$vert_refresh/g"     |\
        sed -e "s/__driver__/$vga_driver/g"     |\
        sed -e "s/__modes__/$resolution/g" > /etc/X11/xorg.conf

fi


router$   

   Кладём шаблон конфигурационного файла иксов:
router$ cat /root/scripts/xorg.conf.tpl
#
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
        Load  "extmod"
        Load  "record"
        Load  "dbe"
        Load  "glx"
        Load  "dri"
        Load  "dri2"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        #DisplaySize      340   270     # mm
        Identifier   "Monitor0"
        HorizSync    __horiz__ #30.0 - 81.0
        VertRefresh  __vert__ #56.0 - 75.0
#       Option      "DPMS"
EndSection

Section "Device"
        Identifier  "Card0"
        Driver      "__driver__"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
#       SubSection "Display"
#               Viewport   0 0
#               Depth     15
#               Modes      __modes__
#       EndSubSection
#       SubSection "Display"
#               Viewport   0 0
#               Depth     16
#               Modes      __modes__
#       EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes      __modes__
        EndSubSection
EndSection

router$   

   Кладём дефолтовый конфиг для тонких клиентов:
router$ mkdir -p /root/scripts/thin_configs/
router$ cat /root/scripts/thin_configs/defaults.conf
# thin clients configurations

# user name
user_name="change_user_name_in_config"
# terminal server
ts="TS2"

# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# use next variable only if incorrect display size, or no screen
# need set all options!
#
# Настройки иксов.
# Горизонтальная развёртка
# horiz_sync="30-200"
# Частота обновления кадров
# vert_refresh="60-100"
# Драйвер видеокарты
# vga_driver="vesa"
# Разрешение моника (именно в одинарных и двойных кавычках!!)
# resolution='"1024x768"'


router$   

   Ну, и, наконец, кладём конфигурационный файл лоадера:
router$ cat /boot/loader.conf
# loader configuration

loader_logo="beastie"
autoboot_delay="2"

libiconv_load="YES"
#cd9660_iconv_load="YES"
msdosfs_iconv_load="YES"
#ntfs_iconv_load="YES"
#udf_iconv_load="YES"

tmpfs_load="YES"

drm_load="YES"

# sound
snd_driver_load="YES"
sound_load="YES"

router$   

   Для корректной работы sshd необходимо сгенерить ключи. Проще всего это сделать прям в chroot:
router$ chroot /shares/tftp/7.2/eliron
router$ /etc/rc.d/sshd start; /etc/rc.d/sshd stop
Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:
ff:f8:5c:c7:20:02:c1:4f:0f:61:f0:51:25:7d:c6:eb root@router.local
The key's randomart image is:
+--[RSA1 1024]----+
|       .o.+ooo.. |
|        .+o. .. +|
|        .o.o   o.|
|         .. .  . |
|        S . . o  |
|         . . . E |
|          .   . o|
|           + . . |
|          ..+    |
+-----------------+
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
9a:f7:6d:63:a3:d2:cb:5b:75:f0:f6:dd:0d:e1:8d:ea root@router.local
The key's randomart image is:
+--[ DSA 1024]----+
|                 |
|                 |
|              o  |
|             . * |
|        S     = =|
|       o     o +=|
|      o ..  o   =|
|       ..o.+=    |
|         .**Eo   |
+-----------------+
Generating public/private rsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
48:28:1d:27:8f:57:89:72:4d:0e:7c:78:ea:41:4c:f7 root@router.local
The key's randomart image is:
+--[ RSA 2048]----+
|    o++=+.       |
|   ..BB==.       |
|  . ++++. E      |
|   . oo.         |
|     ...S        |
|      .          |
|                 |
|                 |
|                 |
+-----------------+
Starting sshd.
sshd not running? (check /var/run/sshd.pid).
router$   

   Вот и всё. Для работы машинке (тонкому клиенту) требуется около 64 метров памяти (у меня работали на 64+16 - на 64Mb иксы стартуют, но сразу же убиваются ядром - памяти мало, а иногда нормально запускались и работали на 64. Думаю, зависит памяти ушедшей на диски в памяти), процессор - наверно не важно какой - из тех тазиков что выжили есть первый пень на 233 чтоли мегагерца - загружается и работает. Грузиться чуть медленней, чем предыдущая версия, на базе 4.11 и XFree - но, это операция разовая. Перезапуск осуществляется быстрей, monitord в течение 10-15 секунд подымает иксы при падении. Если на тазике есть звуковушка - то звук с сервера пробрасывается на локальную машину, можно музычку послушать =))). За работу флэшек отвечает параметр
usb_flash="YES"

в конфигурационном файле каждого конкретного клиента. Без него - флэшка всё равно монтируется, но - в терминальную сессию диск не пробрасывается.

   Принцип работы - на старте системы запускается rc.d скрипт start.thin.client.sh. Он задёт имя хоста, запускает monitord (ну, до кучи выставляет звук на полную - бывает тихо он стоит и из терминалки это не поправишь).
   Далее, уже запущенный monitord видит, что приложение rdesktop не запущщено - соответсвенно, выполянет скрипт /root/scripts/rdesktop.sh. Он, считывает конфигурационный файл конкретной машины (имя файла состоит из MAC-адреса, типа 00c0265c5c15.conf), создаёт конфигурационные файлы - для запуска иксов - если надо, файл .xinitrc - c указанием что именно запускать X-серверу, и файл с указанием языковой раскладки клавиатуры - .Xkbmap. После всех подготовительных операций, запускаются иксы.
   При втыкании флэшки, происходит следующее - devd, заметив что что-то воткнули, и оно совпало с условием в его конфигурационном файле, выполняет указанный там скрипт - /root/scripts/mount.da0.sh. Скрипт проверяет флэшку при помощи fsck_msdosfs и монтирует её. При выдёргивании, всё тот же devd выполняет скрипт отмонтирвоания /root/scripts/umount.da0.sh. Юзеров лучше приучить чтоб ждали секунд несколько после того как записали чего-то. Данные целей будут.

   Ну, и, о грустном - куда ж без этого.
1. Забраковалось несколько старых машинок - после загрузки ядра, перед монтированием по NFS корневой файлвоой системы, лезет в консоль такое:
rl0: watchdog timeout

Никакие бубны с ручной раздачей прерываний и прочего непомогают. Помогает отключение acpi через лоадер - но, тогда теряется некоторый функционал, который тоже хотелось окучить - отключение в 10 вечера всех тазиков по планировщику =( Решается установкой нормальной сетевухи - типа fxp, xl, em и прочия. Все машины, на которых была такая бага, с материнками под SLOT1.
2. Кушают много рамы - старая версия требовала мегабайт 40 для работы. Впрочем - это расплата за возможность использовать USB мышки/клавы, и не париться с конфигурацией иксов - в подавляющем большинстве случаев. Минимум, на котором у меня заводилось (настройки по статье, вернее - статья с тех настроек =)) - это ~58 мегабайт (на машине 64 рамы, 8 отдано встроенной видеокарте).
3. Не получилось смонтировать корневую файловую систему в read-only режиме. Хоть ты тресни - пытается в rw монтировать, и монтирует. При этом не понимает что по NFS оно расшарено в режиме тока чтения - на клиентах показывает что оно якбы rw - но записать ничё не получается. Бага задокументирована. Ждём ответа.

   Вроде всё. Ушло - вечер на работу - скрипты писал пока компилялось, полчаса на отладку, и два дня на написание статьи =)



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=19300.

размещено: 2009-08-18,
последнее обновление: 2011-07-20,
автор: lissyara

оценить статью:

Клец, 2009-08-18 в 22:09:01

Классный перец

MetiS1977, 2009-08-18 в 23:44:22

Спасибо. Надо будет попробовать.

Wlkatz, 2009-08-20 в 12:24:02

Гениально! Уважение и почете.

Andy2k, 2009-08-20 в 16:10:13

Отличная статья, спасибо. Когда то делал почти то же самое, но потом перешел на это http://itadvisor.ru/pts

Причина перехода - даже эникейщики, не говоря уже о Win-админах способны воткнуть в сеть новую машинку и (если нужно) прописать специфичные для нее параметры (имя/пароль пользователя терм. сервера, параметры экрана, флешка, проброс принтера и проч.).

Wlkatz, 2009-08-20 в 16:52:30

А я как раз отказываюсь от Thinstation, так как в версии 2.2 старый Xorg, а когда выйдет 2.4 неизвестно.

Dorlas, 2009-08-20 в 20:00:56

Отличная статья - большое спасибо!

Сам уже года 3 пользуюсь LTSP 4.2 - когда встала задача сделать такое же - но с FreeBSD-сервером - просто перенес каталог /opt/ltsp и настроил isc-dhcp, nfs и tftp :)

Год назад стал часть машин переводить на ThinStation - сейчас в сети есть и то и другое :)

PS: Думаю - скоро дойдут руки попробовать повторить Ваш путь! :)
PSS: Больше решений - больше возможностей! :)

cool-bmb, 2009-09-08 в 16:30:07

интересно, а как насчет того что бы в инет-клуб?? что посоветуете ??

Romikus, 2009-09-13 в 21:49:08

Статья хорошая.

Одну проблему только словил, которую можно исправить двумя путями:
1. Добавить в rc.conf в хаки следующую строчку
mkdir -p /var/lib/xkb >/dev/null 2>&1

2. На машине, с которой происходит стягивание клиента  по пути /usr/local/share/X11/xkb заменить симлинк compiled на папку с таким же именем.

playnet, 2009-09-14 в 12:09:17

Статья хорошая...
Но загнал бы в ворд сначала чтоли...
Нету слова "понадобяТЬся", как и десятка других. (что сделаТЬ - понадобяТЬся, так чтоли?) Читать противно и за твою школу совестно... не научить таким вещам...

lissyara, 2009-09-14 в 12:19:40

M$ ворд, есть тока у вас, господа виндузятники.
А в тексте не слова смотрите. А смысл. Иначе за деревьями леса не увидите.

Comatoz, 2009-09-25 в 11:36:36

Хороша статья.
Но поддерживать такой зоопарк старого железа и необходимостью иметь админа который сможет в этом разобраться через год всё больше останавливает.
Смотрим в сторону чего-то типа http://ncomputing.com.ua/ или http://www.kingsem.ru/

lissyara, 2009-09-27 в 19:27:43

а в чём собсно проблема разобраться?
в нежелании документировать? вообще-то, это прямая обязанность админа.
========
а по факту - предыдущая версия без меня проработала 3 года. сменилось 3 или 4 админа... никаких проблем.

filier, 2009-10-02 в 21:53:04

подправил пару строк
# стартуем иксы
sleep 3 && /usr/bin/nice -n -20 /usr/local/bin/startx &


на
# стартуем иксы
sleep 3 && /usr/bin/nice -n -20 /usr/local/bin/xinit &

иксы не запускалиь на клиенте

и

# пишем конфиг .xinitrc
echo "exec sleep 5 && /usr/local/bin/setxkbmap \

на
# пишем конфиг .xinitrc
echo "/usr/local/bin/setxkbmap \

разрешение и клава не успевала за rdesktop


В остальном Фсе отлично
ПАСИБО lissyara

Paul_ls, 2009-10-09 в 0:33:15

Респект и уважуха автору!

FOX, 2009-11-25 в 18:39:10

Добрый День Лис!
Нарисуй пожалусто принципиальную схему такого офиса, какой адрес чему отвечает что бы наглядней было а то что то я начал курить не могу чотко понять! Буду признателен если ты нарисуеш схему ip адресов серверов для наглядности!

Avraam, 2010-01-08 в 23:54:56

Лис, СУПЕР! Столько секса...заслуживают хвалы имхо!

receptor, 2010-05-01 в 2:15:16

Молодцом!!!111

Товарищщи!, 2010-05-01 в 2:15:54

  Товарищщи!  Это поля для ввода комментариев к статье, а не для вопросов.  Сюда пишите найденные баги, или какие-то фичи :)
 Для вопросов есть форум!

adre, 2010-05-28 в 21:25:46

есть еще 4 вариант монтирования влешки /dev/da0a - крайне редко и не понятно как =/

Евгений, 2010-08-23 в 10:53:23

День добрый. Отличная статья интересная идея, но возникла проблемка. Всё работает отлично толь тормозит 1С особенно когда производишь перемещение внутри справочника наменклатуры. Может кто встречался с такой проблемой.

ZooBastik, 2010-11-18 в 15:00:26

При разметке диска на сервере загрузки тонких клиентов заранее выделите отдельный раздел для /shares. Иначе по статье будет собираться в /. Так как обычно / делается мелким, он будет переполнен еще где-то на стадии инсталляции приложений из портов.

Michael Shigorin, 2012-03-06 в 18:17:53

Забросили ссылку сюда — на всякий и вдруг кому пригодится, есть наработки по дистрибутиву, который после установки на хост с двумя эзернетами сразу пригоден к загрузке бездисковых клиентов.

Ссылки:
http://www.altlinux.org/LTSP
http://gvy.livejournal.com/2477.html?thread=142765#t142765

Злобный Деклопер, 2012-06-18 в 15:04:20

нихрена в этом сГаном LTSP не работает как надо
напихали туда кучу всякого гомна, типа "всё в одном"
и перловых инсталяторов, хрен знает как работающих
аля LAMP, пестец, плять, насокращали..
аццкий дебелизм..

Michael Shigorin, 2012-06-18 в 17:21:49

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

Злобный Деклопер, 2012-06-19 в 6:55:45

признаюсь, по ссылкам не ходил, но только что открыл http://www.altlinux.org/LTSP/About и..
"доказывать" ничо не надо..
Ваши собственные "слоганы" говорят сами за себя..
занимайтесь сикасом сами.. с ежами и ужами..

Michael Shigorin, 2012-06-19 в 11:21:49

Так, уже хорошо — а теперь сделайте над собой ещё одно усилие, возьмите исошку и покрутите в руках (на виртуалке или стенде).

По ссылке уточнил специально для профнепригодных и аллергетиков, что никаких ужастей вроде того, что Вы выше понаписывали — там нет: нам с led@ тоже не нравится убунтушный подход "оригинального" LTSP5, поэтому реализован гибрид.

Ну и взрослейте уже наконец: наш математик в 145-ке лет восемнадцать тому говаривал иному стоявшему у исписанной доски: "железная логика, а теперь докажите".  Учитесь аргументировать.

Или мне обязательно надо пригласить сюда кого-нить из матёрых BSD-шников вроде Нечаева или Чеусова, чтоб Вам доступно объяснили отличие между дискуссией и истерикой?

Злобный Деклопер, 2012-06-19 в 12:41:17

Да не люблю я дискутировать на тему "какой дистрибутив лучше"..
===
зы. вот "что-то мне подсказывает", чтоб заработал Ваш мод LTSP "искаропке", придется мне сносить свой центос к ипиням и ставить каропку (altlinux)..
и так оно во всём..
вот нах выкосили хен из 5-го центоса..?
достало велосипедостроение (ламп, лтсп,..)
апач, тфтп, нфс ты изобрёл?
ну ты напили мануал, как всем этим пользоваться (для не умеющих читать оригинальные маны)
что, собсно, и сделано автором статьи.

Michael Shigorin, 2012-06-19 в 13:39:56

Ну так и не дискутируйте — выбирайте или создавайте инструмент под задачу, если он будет реюзабельный и полезный другим — вообще замечательно.

Этот вариант действительно заточен под альт, хотя мы предприняли заметные усилия по upstream merge и допилить его под другие поддерживаемые LTSP5 дистрибутивы должно быть относительно просто.  Впрочем, не вижу, чем бы центос как десктоп был лучше альта — а терминальный сервер в первую очередь является десктопом.  Ну и для него не отменяли LTSP4.2 без всех этих X11-в-ssh и ldm.

Не знаю, чем имено Вас так зацепил несчастный LAMP — это всего лишь полумаркетинговое название минимум трёх расхожих стеков технологий для реализации веб-сервера.  К LTSP оно отношения скорее не имеет: в аббревиатурах общая аж первая буковка ("L"inux).

Мануалов я перевёл и написал с 1998, поверьте или проверьте, достаточно.  Для некоторых задач лучше оказалось сделать и выложить дистрибутив — например, школьные учителя за адаптированный вариант благодарили, при этом морочиться с простынями описаний многим попросту некогда — надо ж детей учить, домашние проверять...

kozlov_ao, 2013-01-03 в 20:15:10

Пока не добавил -alldirs:
/shares/tftp -alldirs -maproot=root -network 172.50.0.0 -mask 255.255.0.0

машина грузиться не хотела....

uname -a
FreeBSD ThinkSRV 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:15:25 UTC 2012     root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

adre, 2013-05-30 в 17:26:30

уже три года прошло =)

glukDeLuxe, 2014-09-26 в 13:18:52

router$ more /root/scripts/sync.sh
#!/bin/sh
echo $? > /tmp/sync.pid

Видимо имелось ввиду
echo $$ > /tmp/sync.pid

Мфынф, 2021-03-24 в 0:35:02

АЛЕКС КЕДА ЛОХЪ


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга

Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff

Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа

Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL

Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)

Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP

Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools

Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP

Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network

Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem

В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID

Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN

Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS

В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL

Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)

Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external

mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid

Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
2009-03-18, LHC
Установка Zabbix-1.6

Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
2009-03-16, Cancer
Принт-Сервер Samba+LPD & AD

Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
2009-03-04, Mad_caterpillar
ipsec_vpnc

Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
2009-02-18, Andy
Free-SA

Программа анализирует log файлы Squid'а и формирует по ним отчет.
2009-02-02, Cancer
Openfire Jabber Server

Установка Jabber сервера на примере Openfire
2009-01-28, Cancer
mpd5 + сжатие и шифрование

Установка VPN сервера mpd5 + сжатие и шифрование
2009-01-26, vp
freebsd + webcamera

Подключение и настройка вебмкамеры для работы с freebsd на примере Logitech QCam STX
2009-01-10, Grishun_U_S
конфиг для офисов

В статье разбирается конфиг для офиса, пользователи которого имеют строгие ограничения по портам. Заворачиваем www трафик на транспарентный прокси, а остальное NAT'им. Эффективно делим канал интернет
2008-12-27, Storoge
sftp+chroot

Возникла необходимость дать возможность нескольким пользователям заливать на сервер контент для своих сайтов через sftp, чтобы при этом не страдала безопасность.
2008-12-13, Morty
PurefFTPd

Администрирование pureftpd-сервера с помощью вэб интерфейса Usermanager
2008-12-11, lissyara
termlog

Небольшая простая утилита, использующаяся для записи в файл всего что происходит на терминалах системы. Полезно, когда есть доступ по ssh у тех, кому не очень доверяете. Паранойя - это не плохо =)
2008-11-26, Cancer
SQUID+SAMS +Rejik-(ADLDAP)

Установка Прокси сервера SQUID с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf,РЕЖИК собственно рубит банеры и запрещает пользователям ходить на запрещенные сайты,
2008-11-22, dvg_lab
php5-oci8

Решение проблем segmentation fault (core dumped) при работе с oracle8-client и php5-oci8
2008-11-21, m0ps
NTP

Пример настройки NTP сервера для локальной сети и клиента, для синхронизации времени с локальный NTP сервером. Обновление ntpd из портов.
2008-11-20, Cancer
SQUID+SAMS +Rejik-(NTLM)

Установка Прокси сервера SQUID с аутентификацией по NTL с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf, РЕЖИК собственно рубит банеры и запрещает пользователям хо
2008-11-20, UA
Hotspot

Настройка безпроводной точки доступа (WiFi) на freebsd
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 58 чел.
За последние 30 мин было: 215 человек
За сегодня было
4154 показов,
1058 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0998 секунд
Из них PHP: 62%; SQL: 38%; Число SQL-запросов: 77 шт.
Исходный размер: 242365; Сжатая: 44397