Архив рубрики: freebsd 7

Настройка шлюза локальной сети под управлением freebsd 7.2 (часть3)

Шаг 7: Ставим самбу

Ставим Самбу и вводим в домен
Во избежание ошибок ввода в домен необходимо синхронизировать время присоединяемого компьютера с временем домена.
ntpdate system-itdc01.system-it.lh
cd /usr/ports/net/samba34/
make config && make && make install && make clean

[X]ADS
[X]WINBIND
[X]SYSLOG

Rehash

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Если самба при компиляции падает — помогает установка правильного времени в BIOS )))))))
После чего даем make clean
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Writing Makefile for Locale::gettext
==> Your Makefile has been rebuilt. <==
==> Please rerun the make command. <==
false
*** Error code 1

Stop in /usr/ports/devel/p5-Locale-gettext/work/gettext-1.05.
*** Error code 1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Samba используется только для работы с доменом, расшаренных ресурсов на сервере нет
cat /usr/local/etc/smb.conf

[global]
workgroup = system-it
realm = system-it.lh
password server = 192.168.25.101
netbios name = gatekeeper
server string = gateway
interfaces = em0
bind interfaces only = yes
socket address = 192.168.1.4
socket options = SO_RCVBUF=8192 SO_SNDBUF=8192 TCP_NODELAY
smb ports = 139
hosts allow = 192.168. 127.
security = ADS
idmap backend = tdb
idmap cache time = 604800
idmap uid = 1000000-2000000
idmap gid = 1000000-2000000
encrypt passwords = yes
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
load printers = no
log file = /var/log/samba34/log.%m
log level = 3
max log size = 1000
name resolve order = host bcast
local master = no
domain master = no
dns proxy = no
preferred master = no
display charset = koi8-r
unix charset = koi8-r
dos charset = cp866
deadtime = 5

Внесем в файл /etc/rc.conf строку, разрешающую запуск winbind:
winbindd_enable=»YES»

Проверим конфигурацию
Testparm
Теперь с помощью команды net производим присоединение компьютера к домену, указав имя доменного пользователя и его пароль
# net join -U gateadmin
Enter admins’s password:
Using short domain name — System-it.lh
Joined ‘gatekeeper’ to realm ‘system-it.lh’
6. Теперь необходимо внести изменения в конфигурационный файл системных баз данных и переключателя сервисов имен /etc/nsswitch.conf, чтобы указать системе, каким образом искать базы с именами доменных пользователей и доменными группами безопасности.
# nano -w /etc/nsswitch.conf
group: files winbind
passwd: files winbind
shadow: files winbind
group_compat: nis
hosts: files dns
networks: files
passwd_compat: nis
shells: files
services: compat
services_compat: nis
protocols: files
rpc: files

/usr/local/etc/rc.d/samba start

wbinfo -p
wbinfo -g
wbinfo -u

Всё. Домен видим!

Настройка шлюза локальной сети под управлением freebsd 7.2 (часть2)

Шаг 4: Установка Apache
gatekeeper # cd /usr/ports/www/apache22
gatekeeper # make install clean
Проверяем запуск apache
gatekeeper # /usr/local/sbin/apachectl start

Правим

gatekeeper # ee /usr/local/etc/apache22/httpd.conf
1) проверяем на всех ли сетевых интерфейсах прописаны IP
2) Вносим в httpd.conf строку ServerName localhost
echo ‘accf_http_load=»YES» ‘ >> /boot/loader.conf
kldload accf_http
Комментим mod_ssl
mod_unique
Запускаем ещё раз.

Проверяем

gatekeeper# ps -ax | grep htt
721 ?? Ss 0:00.04 /usr/local/sbin/httpd -k start
722 ?? I 0:00.01 /usr/local/sbin/httpd -k start
723 ?? I 0:00.01 /usr/local/sbin/httpd -k start
724 ?? I 0:00.01 /usr/local/sbin/httpd -k start
725 ?? S 0:00.02 /usr/local/sbin/httpd -k start
726 ?? I 0:00.01 /usr/local/sbin/httpd -k start
737 ?? S 0:00.01 /usr/local/sbin/httpd -k start
743 p0 R+ 0:00.00 grep htt

Соотв. Apache стартовал! Пробуем зайти на http://192.168.1.4

Вносим в /etc/rc.conf строку
apache22_enable=»YES»

Шаг 5: Ставим php

gatekeeper # /usr/ports/lang/php5
gatekeeper # make install clean
При установке отметим так же галочку

[X] Apache module

gatekeeper # cd /usr/local/etc/
gatekeeper # cp php.ini-dist php.ini

снова правим
gatekeeper # ee /usr/local/etc/apache22/httpd.conf

Ищем строки AddType applications

добавляем туда 2 новые

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Ищем
DirectoryIndex index.html

Превращаем в
DirectoryIndex index.html index.php

Рестартим Apache

gatekeeper # /usr/local/sbin/apachectl restart
gatekeeper # cd /usr/local/www/apache22/data/
gatekeeper # ee info.php

Вносим в него следующий код

Сохраняем!

Открываем в браузере http://192.168.1.4/info.php

На этом установка php окончена.
Ушел курить…. продолжение следует Время 1:32 31 03 2010

Шаг6 : Устанавливаем MySQL

# cd /usr/ports/databases/mysql51-server
#make install clean
# /usr/local/bin/mysql_install_db
# chown -R mysql /var/db/mysql/
# chgrp -R mysql /var/db/mysql/

/usr/local/bin/mysqld_safe —user=mysql &
/usr/local/bin/mysqladmin -u root password toor
В rc.conf mysql_enable=»YES»
cd /usr/ports/databases/php5-mysql
make install clean
Осталось проверить как оно всё работает, а я устал и пошел спать 2:10 31.03.2010
Проверяем создав скрипт db.php в папке data

gatekeeper# cat db.php
<?php
$test=mysql_connect(«localhost»,»mysql»,»»);
if(!$test)
{
print «blya no connect»;
}
else
{
print «YES MYSQL connected»;
}
?>
gatekeeper#

Настройка шлюза локальной сети под управлением freebsd 7.2 (часть1)

Description:
будет использоваться
Имя компьютера — GATEKEEPER,
Домен — SYSTEM-IT.LH
Контроллер домена system-itdc01.system-it.lh IP 192.168.25.101
Уполномоченный доменный пользователь — gateadmin, пароль pass2domain
Внутренний сетевой интерфейс ale0 ip 192.168.1.4 сеть 192.168.0.0/16
Внешний сетевой интерфейс em0 ip 172.16.1.3 gw 172.16.1.1 dns 172.16.1.1 сеть 172.16.1.1/24
Сервер под управлением FreeBSD 7.2-RELEASE
кэширующий прокси — squid-3.0.24
winbind в составе samba34-3.4.5_ 1

Шаг 1: Предварительная настройка
Если компьютер имеет прямое подключение к интернет (не через proxy) данный шаг пропускаем!
Ввиду того, что выход в интернет в данный момент осуществляется через proxy пропишем в константы данные для аутентификации на proxy

gatekeeper # setenv HTTP_PROXY http://192.168.0.4:8080
gatekeeper # setenv HTTP_PROXY_AUTH basic:www:P@ssword
gatekeeper # setenv FTP_PROXY http://192.168.0.4:8080
gatekeeper # setenv FTP_PROXY_AUTH basic:www:P@ssword
Ввиду того, что в 7.2 при обновлении портов через portsnap возникает ошибка
metadata corrupt прописываем именно так!!!
Шаг 1.5 Настраиваем сеть и Firewall
gatekeeper# cat /etc/rc.conf

# — sysinstall generated deltas — # Wed Mar 31 07:10:22 2010
# Created: Wed Mar 31 07:10:22 2010
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
defaultrouter=»172.16.1.1″
gateway_enable=»YES»
firewall_enable=»YES»
natd_enable=»YES»
natd_interface=»ale0″
hostname=»gatekeeper.system-it.lh»
ifconfig_ale0=»inet 172.16.1.3 netmask 255.255.255.0″
ifconfig_em0=»inet 192.168.1.4 netmask 255.255.0.0″
inetd_enable=»YES»
linux_enable=»YES»
sshd_enable=»YES»

cat /etc/rc.d/rc.fw
gatekeeper# cat /etc/rc.d/rc.fw
ipfw -q -f flush
ipfw -q add divert natd ip from 192.168.0.1/16 to any out via ale0
ipfw -q add divert natd ip from any to 172.16.1.3 in via ale0
ipfw -q add pass all from any to any

chmod +x /etc/rc.d/rc.fw

halt -p now

Шаг 2:Обновление портов
Чтобы не ставить дырявые порты и удовлетворить все зависимости для начала обновим дерево портов
gatekeeper # portsnap fetch && portsnap extract && portsnap fetch update
Сейчас и в будущем для объединения команд используем &&
Если обновление прошло без ошибок идем дальше! Иначе http://google.ru
Шаг 3: Установка Midnight commander
gatekeeper # cd /usr/ports/misc/mc
gatekeeper # make install clean
gatekeeper # rehash
gatekeeper # mc
Жмем [F10] для выхода из Midnight commander’а

Установка freebsd по сети

Устанавливаем и настраиваем DHCP-сервер

# portinstall isc-dhcp3-server (из опций указывем только WITH_DHCP_PARANOIA)

В /etc/rc.conf добавляем:

# for PXE
dhcpd_enable="YES"
dhcpd_ifaces="em0"
dhcpd_chroot_enable="YES"

В /usr/local/etc/dhcpd.conf пишем

option domain-name “example.ru”;
option domain-name-servers 192.168.1.2, 192.168.1.3;

authoritative;

ddns-update-style none;

log-facility local4;

subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
use-host-decl-names on;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.100 192.168.1.200;
# адрес сервера на котором работает инсталлятор
next-server 192.168.1.5;
filename "pxeboot";
option root-path "192.168.1.5:/spool/pxe";
}

В /etc/syslog.conf добавляем

local4.* /var/log/dhcpd.log

В /etc/newsyslog.conf

/var/log/dhcpd.log 644 3 900 * JC
/etc/rc.d/syslogd reload

Копируем содержимое install CD в папку на диске

mdconfig -a -f /path/to/dist.iso
mount_cd9660 /dev/md0 /mnt/cdrom/
cp -r /mnt/cdrom/ /spool/pxe

tftp-сервер

mkdir /var/tftproot
cp /spool/pxe/boot/pxeboot /var/tftpboot
chown nobody /var/tftpboot
chmod 640 /var/tftpboot

В /etc/hosts.allow пишем

# tftp server for remote install
tftpd: 192.168.1.0/255.255.255.0 : allow
tftpd: ALL : deny

В /etc/inetd.conf пишем

tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /var/tftpboot -u nobody
/etc/rc.d/inetd reload

NFS сервер

В /etc/exports пишем

/spool/pxe -ro -network=192.168.1.0 -mask=255.255.255.0

В /etc/rc.conf

nfs_server_enable="YES"
rpcbind_enable="YES"

И запускаем все это

rpcbind
nfsd -u -t -n 4
mountd -r
# showmount -e
Exports list on localhost:
/spool/pxe 192.168.1.0

Редактируем loader.conf

Примерно так:

# cat > /spool/pxe/boot/loader.conf
mfsroot_load="YES"
mfsroot_type="mfs_root"
mfsroot_name="/boot/mfsroot"
autoboot_delay="5"
vfs.root.mountfrom="ufs:/dev/md0c"

Ключевым моментом является наличие последней строчки.

В принципе после всего этого можно уже ставить систему.

install.cfg

Для того, чтобы не отвечать вручную на все вопросы sysinstall это можно автоматизировать составив файл install.cfg

Файл install.cfg должен находиться внутри mfsroot.gz, скопировать его туда можно так:

cd /spool/pxe
gzip -d boot/mfsroot.gz
mdconfig -a -t vnode -f boot/mfsroot -u 9
mount /dev/md9 /mnt/tmp
cp install.cfg /mnt/tmp
umount /mnt/tmp
mdconfig -d -u 9
gzip boot/mfsroot

(этот набор команд лучше оформить в виде Makefile)

Пример install.cfg

Чтобы при установке ставилися набор пакетов их нужно создать:

cd /spool/pxe/packages/All/
pkg_crete -b bash-3.1.10
pkg_crete -b sudo-1.6.8.12_1
pkg_crete -b smartmontools-5.33_5

И прописать из в INDEX, например таким скриптом:

#!/bin/sh

dir=/spool/pxe/packages

cd $dir/All

rm $dir/INDEX

for file in *; do
echo ${file%.tgz}
egrep ^${file%.tgz} /usr/ports/INDEX-6 >> $dir/INDEX
done

Недостатки данного способа

  • Нужно прописывать в install.cfg имя интерфейса и имя диска, что неудобно, если железо не однотипное.
  • Нельзя установить систему на gmirror
  • Нужно прописывать полные (включая версию) имена всех устанавливаемых пакетов, после их обновления приходится прописывать все в install.cfg заново.
  • Конфиги, которые нужно скопировать на новый сервер нужно оформлять в виде пакета, что повышает трудоемкость задачи.

Доп параметры в ядрышко

options GEOM_BDE # поддержка шифрованых дисков
device md # Memory «disks»

Создаем директорию с диском

mkdir /usr/disk/
Ф
айл, где будет файловая система (размером 1000 мегабайт)

dd if=/dev/zero of=diskkrypt bs=1m count=1000

создаем девайс

mdconfig -a -t vnode -f /usr/disk/diskkrypt -u 0
disklabel -r -w md0 auto

Инициируем gbde

gbde init /dev/md0c -i -L /usr/disk/diskkrypt.lock

На экране появится конфиг для диска
Редактируем под себя после чего сохраняем.
Вводим пароль а лучше парольную фразу


Подключаем шифрованый раздел

gbde attach /dev/md0c -l /usr/disk/diskkrypt.lock

Создадим файловую систему на разделе

newfs -U /dev/md0c.bde

Создаём точку монтирования

mkdir /mnt/diskkrypt

Монтируем

mount /dev/md0c.bde /mnt/diskkrypt


END))) Удачной приватности

Скрипт для автоматического монтирования шифрованого раздела

#!/bin/sh

case "$1" in
start)
/sbin/mdconfig -a -t vnode -f /usr/disk/diskkrypt -u 0
/sbin/gbde attach /dev/md0c -l /usr/
disk/diskkrypt.lock
/sbin/mount /dev/md0c.bde /usr/cert/sslcert
;;
stop)
/sbin/umount /usr/cert/sslcert
/sbin/gbde detach /dev/md0c
/sbin/mdconfig -d -u 0
;;
*)
echo ""
echo "Usage: `basename $0` { start | stop }"
echo ""
exit 64
;;
esac


По вопросам man gbde man mdconfig

Не стартует Xorg на freebsd Nvidia

Когда-то давно была у меня проблемка со стартом иксов на freebsd .
Карта Nvidia дрова проприетарные
Объем оперативки 4гб

А причина была в глюке дров для карты, при объеме оперативки больше 3 гб иксы не стартуюут!!!

Решение:
добавить в /boot/loader.conf строчку:
machdep.disable_mtrrs=1

Бездисковая загрузка RDP к 2003 server Или настраиваем PXE на freebsd 7.2

Задача: Настроить бездисковые рабочие станции чтобы они загружались из сети и грузились сразу в терминальную сессию.
Качаем загрузочный образ с сайта http://nixts.org
http://nixts.org/doku.php?id=downloads

нам необходим тот, который pxe.

Настройка DHCP-сервера

cd /usr/ports/net/isc-dhcp30-server && make install clean
[X] DHCP_PARANOIA
mkdir -p /usr/local/etc && touch /usr/local/etc/dhcpd.conf

cat /usr/local/etc/dhcpd.conf
ddns-update-style none;
subnet 172.16.0.0 netmask 255.255.255.0 {
range 172.16.0.123 172.16.0.153;
next-server 172.16.0.1
filename «pxelinux.0»
}
Параметр next-server задаёт IP-адрес TFTP-сервера, параметр filename задаёт имя загрузчика. Так же следует указать правильные subnet, mask и range — адрес сети, маску сети и диапазон выдаваемых адресов соответственно.
добавим в /etc/rc.conf следующие строки:
dhcpd_enable=»YES»
dhcpd_ifaces=»em0″
это строки разрешают запуск DHCP-сервера и указывают имя сетевого интерфейса (em0), на котором следует принимать запросы от DHCP-клиентов. Узнать имена сетевых интерфейсов можно при помощи команды ifconfig.

/usr/local/etc/rc.d/isc-dhcpd start

Настройка TFTP-сервера

Откройте файл /etc/inetd.conf любым текстовым редактором и найдите в нем такую строку:
#tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot
и раскомментируйте её
Создайте корневой каталог TFTP-сервера и каталог для конфигурационных файлов загрузчика:
mkdir /tftpboot
mkdir /tftpboot/pxelinux.cfg
Скопируйте в каталог /tftpboot файлы из архива загрузчика
Разрешите запуск inetd. Для этого откройте файл /etc/rc.conf добавьте в конец файла следующую строку:
inetd_enable=»YES»
Запустите inetd, который в свою очередь запустит TFTP-сервер:
/etc/rc.d/inetd start

На машине, которая загружается с сервера ставим загрузку с сети. Всё…

Осталось поправить конфигурационные файлы в папке pxeboot/
Тут нет ничего сложного. Все параметры интуитивно понятны. А на сайте есть полное описание.

Убираем сообщения DHCPD с консоли и messages

Надоели сообщения об ошибке dhcpd падающие на консоль. Убираем.

ee /usr/local/etc/dhcpd.conf

Ищем строку log-facility local7;
если нет то добавляем.

Рестартим dhcpd

правим syslog.conf
ee /etc/syslog.conf

Смотрим на первые строчки

*.err;kern.warning;auth.notice;mail.crit;local7.none /dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err;local7.none /var/log/messages

local7.none это мы туда добавили
Добавляем в конец файла
!dhcpd
*.notice /var/log/dhcpd.log

Сохраняем закрываем

touch /var/log/dhcpd.log
chown root:wheel /var/log/dhcpd.log
chmod 600 /var/log/dhcpd.log

/etc/rc.d/syslogd reload

Всё.