среда, 8 декабря 2010 г.

четверг, 11 ноября 2010 г.

FreeBSD: Как убрать строки за # решеткой из файла!

Нужно выполнить команду
cat /usr/local/etc/squid/squid.conf | egrep -v "(^#)" | uniq > clsquid.conf


/usr/local/etc/squid/squid.conf - адресс файла который хотим почистить
clsquid.conf - имя нового файла

среда, 13 октября 2010 г.

FreeBSD: Aapche22 папка под паролем?

В какой-ир момент все изменилось и теперь это делается без .htaccsess

В начале создаем папку с файлом пароля

mkdir /usr/local/etc/htpswd/
cd /usr/local/etc/htpswd
htpasswd -c name.file name.user
New password: ******
Re-Type new password: ******

chmod 644 name.file

в конфиг апача22 в описание папки папки добавляем строки

AuthType Basic
AuthName "***"
AuthUserFile /usr/local/etc/htpswd/name.file
Require user name.user

Можно не указывать конкретного юзера написав
Require valid-user

Итого все вместе выглядит так


Options Indexes FollowSymLinks MultiViews
Order allow,deny
AuthType Basic
AuthName "***"
AuthUserFile /usr/local/etc/htpswd/name.file
Require user name.user
allow from all
DefaultLanguage ru
AddDefaultCharset WINDOWS-1251



Alias /netams /usr/local/www/netams

понедельник, 26 июля 2010 г.

FreeBSD: Как заблокировать ICQ?

Для этого надо иметь установленный pf

В pf.conf добавляем спсико IP ICQ серверов, их можно вычеслить в Windows коммандой netstat после подключения к ICQ

ext_if это внешний интерфейс сети

icq_servers="{ 95.100.114.70, 195.10.39.9, 195.10.39.90, 195.10.39.99, 64.12.202
.0/24, 64.12.202.12, 64.12.202.33, 205.188.7.72, 205.188.57.200, 195.10.39.106,
195.10.39.83, 77.234.201.89, 64.12.96.129, 205.188.251.0/24, 205.188.251.14, 205
.188.251.19, 64.12.202.0/24, 81.19.64.0/24, 81.19.65.0/24, 81.19.66.52, 81.19.69
.0/24, 81.19.70.2, 64.12.174.0/24, 152.163.208.0/24, 205.188.165.0/24, 64.236.4
7.0/24, 64.236.46.0/24, 205.188.1.0/24, 205.188.9.0/24, 205.188.153.0/24, 205.18
8.251.0/24, 64.12.31.0/24, 64.12.25.0/24, 64.12.161.0/24, 64.12.162.0/24, 64.12.
163.0/24, 64.12.164.247, 201.27.217.113, 200.117.138.206 }"

block out quick on $ext_if from any to $icq_servers

Чтобы кто то все таки смог входить в ICQ добавляем

pass out quick on $int_if from $icq_users to $icq_servers

понедельник, 12 июля 2010 г.

FreeBSD: Применение исправлений FreeBSD!

Читаем замечательный сайт узнаем что найдена уязвимость в системе:
http://www.opennet.ru/opennews/art.shtml?num=27287

В этой новости дается ссылка на пач который ну совершенно не понятно что надо сделать чтобы пропатчить систему. А сделать надо следующее, в консоле с правами рут набираем:

freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update2.FreeBSD.org... done.
Fetching metadata signature for 8.0-RELEASE from update2.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 39 patches.....10....20....30.... done.
Applying patches... done.

The following files will be updated as part of updating to 8.0-RELEASE-p4:
/etc/mtree/BSD.var.dist
/lib/libzpool.so.2
/libexec/ld-elf.so.1
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup
/usr/bin/nsupdate
/usr/lib/libopie.a
/usr/lib/libopie.so.6
/usr/lib/libssl.a
/usr/lib/libssl.so.6
/usr/lib/libzpool.a
/usr/sbin/dnssec-dsfromkey
/usr/sbin/dnssec-keyfromlabel
/usr/sbin/dnssec-keygen
/usr/sbin/dnssec-signzone
/usr/sbin/freebsd-update
/usr/sbin/jail
/usr/sbin/lwresd
/usr/sbin/named
/usr/sbin/named-checkconf
/usr/sbin/named-checkzone
/usr/sbin/named-compilezone
/usr/sbin/ntpd
/usr/sbin/rndc-confgen
/usr/share/man/man2/mount.2.gz
/usr/share/man/man2/nmount.2.gz
/usr/share/man/man2/unmount.2.gz
/usr/src/sys/cddl/compat/opensolaris/sys/vnode.h
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
/usr/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h
/usr/src/sys/conf/newvers.sh
/usr/src/sys/kern/uipc_mbuf.c
/usr/src/sys/kern/vfs_lookup.c
/usr/src/sys/netinet/ip_mroute.c
/usr/src/sys/netinet/raw_ip.c
/usr/src/sys/netinet/sctp_input.c
/usr/src/sys/netinet6/raw_ip6.c
/usr/src/sys/nfsclient/nfs_vfsops.c
/usr/src/sys/rpc/clnt_vc.c
/var/db/freebsd-update
/var/db/mergemaster.mtree
Server# freebsd-update install
Installing updates... done.


в этом списке замечаем /usr/src/sys/kern/uipc_mbuf.c как раз о нем шла речь в новостях
далее набираем

freebsd-update install

Installing updates... done.


Всё патчи установлены

суббота, 3 июля 2010 г.

FreeBSD: Mysql основные комманды

Войти в Mysql

mysql -u root -p
(пароль mysql администратора)

Создать базу
CREATE DATABASE name;

Заход через phpmyadmin
Имя: root
Пароль: (пароль mysql администратора)

Добавление пользователя

adduser mysqldb
new_name_user_pass

Сделать его пользователем MySQL

mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO mysqldb@localhost
IDENTIFIED BY 'new_name_user_pass_mysql' WITH GRANT OPTION;



CREATE, SELECT, INSERT, DELETE и UPDATE, DROP

_______________________

1. Как сделать дамб (копию) базы MySQL?
Для этого надо зайти на сайт по Shell, вы окажется в ОС FreeBSD или в каком нибуть Linux. Пишите следующею строчку:

mysqldump -uЛОГИН_К_БАЗЕ -pПАРОЛЬ_К _БАЗЕ -hИМЯ_localhost ИМЯ_БАЗЫ > dump.sql

Если база большая и памяти не хватает то

mysqldump --opt -uимя_пользователя -pПАРОЛЬ_К _БАЗЕ -hимя_сервера_БД имя_базы > dump.sql

2. Как восстановить дамб (копию) базы MySQL?
Тоже самое что и в первом вопросе но тольео меняется стрелочка:
mysql -uЛОГИН_К_БАЗЕ -pПАРОЛЬ_К _БАЗЕ -hИМЯ_localhost ИМЯ_БАЗЫ < dump.sql

Примечание: Дамб вы сделали но как перекинуть его на другой хост?
Для этого на новом хосту тоже по Shell запускаете программу wget:

wget http://www.data.ru/test.sql

Файл быстро перекинертся, если конечно .htaccess не запрешен хотлинк.

Примичание 2: У MySQL разные версии и как правило не совместимые, возможно потребуются дополнительные ключи:

--compatible=mysql40 (переход c 5 на 4)

Но на это вопрос в подержке просто обязаны ответить, какими бы вонючками они не были!

3. Как насильно в базе изменить в столбце все значение на заданные в заданной строке?
Например когда надо всем членам форума(phpBB) поставить новое время в свявзи с переводом, автоматический это почемуто не делается. Для этого надо в PHPmyAdmin выполнить следующий SQL запрос:

update phpbb_users set user_timezone='3'

4. Как насильно в базе в столбце найти все "А" и изменить на "Б"?
Для этого надо в PHPmyAdmin выполнить следующий SQL запрос:
UPDATE столбец SET поле = REPLACE(поле, 'то_что_надо_найти', 'то_на_что_надо_заменить');


5. Символ перехода на следующую строку в MySQL, аналог
в HTML?

\n

среда, 23 июня 2010 г.

FreeBSD: Перезагрузка сервера по одному нажатию в Windows!

Задачи
- Предоставить возможность перезагружать сервер пользователям из под Windows по одному нажатию без ввода пароля и комманд
- Ограничить учетку из под которой происходит перезагрузка

1. Устанавливаем lshell

cd /usr/ports/shells/lshell
make
make install

2. Приводим файл /usr/local/etc/lshell.conf к виду (разрешаем только выполнение комманды shutdown)

# lshell.py configuration file
#
# $Id: lshell.conf,v 1.24 2010/04/17 23:14:58 ghantoos Exp $

[global]
##  log directory (default /var/log/lshell/ )
logpath         : /var/log/lshell/
##  set log level to 0, 1, 2 or 3  (0: no logs, 1: least verbose)
loglevel        : 2
##  configure log file name (default is %u i.e. username.log)
logfilename     : %y%m%d-%u

[default]
##  a list of the allowed commands or 'all' to allow all commands in user's PATH
allowed         : ['shutdown']

##  a list of forbidden character or commands
forbidden       : ['su','ls','cd','cd','rm','chmod','[',';', '&', '|','`','>','<', '$(', '${']

##  a list of allowed command to use with sudo(8)
#sudo_commands   : ['reboot']

##  number of warnings when user enters a forbidden value before getting
##  exited from lshell
warning_counter : 3

##  command aliases list (similar to bash\xe2\x80\x99s alias directive)
#aliases         : {'ll':'ls -l', 'vi':'vim'}

##  introduction text to print (when entering lshell)
#intro           : "== My personal intro ==\nWelcome to lshell\nType '?' or 'hel
p' to get the list of allowed commands"

##  a value in seconds for the session timer
#timer           : 5

##  list of path to restrict the user "geographicaly"
#path            : ['/home/bla/','/etc']

##  set the home folder of your user. If not specified the home_path is set to
##  the $HOME environment variable
#home_path       : '/home/bla/'

##  update the environment variable $PATH of the user
#env_path        : ':/usr/local/bin:/usr/sbin'

##  allow or forbid the use of scp (set to 1 or 0)
scp             : 0

## forbid scp upload
scp_upload       : 0

## forbid scp download
scp_download     : 0

##  allow of forbid the use of sftp (set to 1 or 0)
sftp            : 1

##  list of command allowed to execute over ssh (e.g. rsync, rdiff-backup, etc.)
overssh         : ['shutdown']

##  logging strictness. If set to 1, any unknown command is considered as
##  forbidden, and user's warning counter is decreased. If set to 0, command is
##  considered as unknown, and user is only warned (i.e. *** unknown synthax)
#strict          : 1

##  force files sent through scp to a specific directory
#scpforce        : '/home/bla/uploads/'

##  history file maximum size
#history_size     : 100

##  set history file name (default is /home/%u/.lhistory)
#history_file     : "/home/%u/.lshell_history"

3. Создаем пользователя
adduser
Name: rebooter

4. Добавляем его в группу operator

pw usermod rebooter -G operator

5. Меняем шелл пользователя на lshell

chpass rebooter

изменяем строчку на
Shell: /usr/local/bin/lshell


6. В Windows делаем файл rebooter.bat
а в нем строки
@echo off
plink.exe -ssh 10.10.30.75 -l rebooter -pw mypass shutdown -r now
pause

в папку с этим файлом кладем plink.exe
(берем его здесь http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html )

7. При первом запуске plink попросить нажать y чтобы добавить открытый ключ потом просить не будет

суббота, 24 апреля 2010 г.

FreeBSD: Оптимизация MySQL

Имеем VPS
CPU 4×1000
Memory 2G
База форум phpBB3 1.2 Gb + 0.18 Gb нагурзка 30-150 пользователей на форуме по данным за последние 5 минут

Замечено: При изменении настроек my.cnf и перезагрузки MySQL база убивается, видимо это связано с нагрузкой форума. После убиения можно восстановить работу базы если отключить форум через ACP phpBB и прогнать в PhpMyadmin оптимизацию(10 минут) и восстановление(15-20 минут) базы, не включая форума перезагрузить MySQL и после этого включить форум!

Чтобы хоть как-то понять что происходит с MySQL сколько она памяти использует надо прогнать утилитку mysql tuner

fetch http://mysqltuner.com/mysqltuner.pl
perl mysqltuner.pl
далее во FreeBSD надо ввести пароль администратора MySQL

>> MySQLTuner 1.0.1 - Major Hayden
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.77
[OK] Operating on 32-bit architecture with less than 2GB RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: -Archive -BDB -Federated -InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 797M (Tables: 134)
[!!] Total fragmented tables: 18

-------- Performance Metrics -------------------------------------------------
[--] Up for: 12h 42m 34s (1M q [25.057 qps], 114K conn, TX: 4B, RX: 140M)
[--] Reads / Writes: 85% / 15%
[--] Total buffers: 1.4G global + 3.6M per thread (110 max threads)
[!!] Maximum possible memory usage: 1.8G (88% of installed RAM)
[OK] Slow queries: 0% (25/1M)
[OK] Highest usage of available connections: 45% (50/110)
[OK] Key buffer size / total MyISAM indexes: 1.2G/1.0G
[OK] Key buffer hit rate: 99.3% (39M cached / 291K reads)
[OK] Query cache efficiency: 36.5% (262K cached / 718K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (3 temp sorts / 39K sorts)
[!!] Joins performed without indexes: 270
[OK] Temporary tables created on disk: 6% (2K on disk / 44K total)
[OK] Thread cache hit rate: 95% (5K created / 114K connections)
[OK] Table cache hit rate: 94% (512 open / 540 opened)
[OK] Open file limit used: 56% (650/1K)
[OK] Table locks acquired immediately: 99% (629K immediate / 632K locks)

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Reduce your overall MySQL memory footprint for system stability
Enable the slow query log to troubleshoot bad queries
Adjust your join queries to always utilize indexes
Variables to adjust:
join_buffer_size (> 2.0M, or always use indexes with joins)


Обычно утилита дает рекомендации по увеличению чего-то

На что следуют обратить внимание
[--] Total buffers: 1.4G global + 3.6M per thread (110 max threads)
[!!] Maximum possible memory usage: 1.8G (88% of installed RAM)

Показан максимально возможный уровень использования памяти. Вторая часть первой строки вычисляется по формуле (read_buffer + sort_buffer + join_buffer_size) * max_connections

Строка
[OK] Highest usage of available connections: 45% (50/110)

Показывает максимальное количество подключений к базе - зная всё это можно предположить справится ли сервер с пиковой нагрузкой (если будет 110 подключений) - в моём случае не справится потому что в теории будет использует 1.8 G - при этом мало останется для Apache и прочего.

Строка
[OK] Key buffer size / total MyISAM indexes: 1.2G/1.0G

Утилита просит чтобы Key buffer size был выше MyISAM indexes - жаль не понятно как он используется потому что вроде бы никогда до конца не наполняется но при этом память сразу резервируется вся

Строка
[!!] Joins performed without indexes: 270

Вот это совершенно непонятная строка потому что увеличение join_buffer_size не помогает но сильно сжирает память

Конфигурация my.cnf при которой MySQL пока справляется с нагрузкой

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

key_buffer=1274M
table_cache=512
read_buffer=128K
sort_buffer=1M
join_buffer_size=2M
max_connections=110
wait_timeout=10
max_connect_errors=10
query_cache_limit=1M
query_cache_size=128M
query_cache_type=1
tmp_table_size=256M
thread_cache_size=4
connect_timeout=10
interactive_timeout=120
skip-innodb
skip-bdb
old_passwords=1

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

суббота, 13 марта 2010 г.

FreeBSD: Обзор сервера Depo Storm

Каждый системный администратор рано или поздно задается вопросом а почему ПК от Depo перестают включатся по кнопке Power и реагируют только на копку Reset... Ответ прост - не надо было покупать технику у специалистов по наклеиванию наклеек. Ведь что делают такие компании как Depo compюters покупают ПК наклеивают свою наклейку и продают в два раза дороже это рашин ноухау - рашин бизнес!

Живой пример берем сервер SuperMicro SuperServer 5015M-MT / 5015M-MTB так нет же это сервер Depo Storm!!!
Оригинал: http://www.supermicro.com/products/system/1U/5015/SYS-5015M-MT.cfm

За титанический труд по наклейке наклеек Depo просит где-то в полтора раза больше чем Supermicro и я бы не жалел потраченных денег но посмотрите на эту наклейку ОНА УЖЕ ОТВАЛИВАЕТСЯ!!!!!!!!! Попутно оцение жесткий диск - ничем иным как желанием содрать с клиента дополнительное бабало выбор этой модель оправдать нельзя... им мало оказывается своих наценок!



Но тем не менее у подающего большие надежды китайского производителя SuperMicro получился не плохой сервер - не плохой для своей настоящей цены конечно же!


Внутри все продуманно


И тут Depo проделала поразительную доводку до ума китайской техники - наклейка на каждом кулере - теперь за них можно быть спокойным!


С комплектацией у Depo конечно не очень... КОНЕЧНО с такой наценкой на голую платформу, предлагать достойные комплектующие просто не хватает уже диапазона цены!

FreeBSD: Обзор корпуса Zalman GS1000

Более качественные фотки и красивые схемки есть на сайте производителя
http://www.zalman.co.kr/ENG/product/Product_Read.asp?idx=310

Теперь из опыта личного общения!

Корпус Zalman GS1000 большой и тяжелый, боковые поверхности матовые шороховатые, а вот верх лицо и низ - убийственно глянцевые. За 200 уе вы получаете не просто корпус но и опцию "Собери отпечатки всех своих друзей" при этом в комплекте отсутствует набор дактилоскопический - специальная кисточка, пудра и пленки ОЧЕНЬ ЖАЛЬ! В комплекте идут ножки, их можно ставить можно не ставить - но если не ставить то никаких других ножек поменьше нет, а если будете ставить нижние вентиляторы то тогда конечно надо ставить обязательно.


С левой стороны корпуса оставленно место под кабели. Так как размеры корпуса большие многие кабели не дотянутся у меня не дотянулся кабель питания 8 пин, но в комплекте к корпусу был удлинитель CPU 12V Extend Cable!


Сзади все по последней моде. На крышках несъемные болты под цвет корпуса - по началу это дико радует, но один сразу начал прокручиваться а заменить его уже не получится никак!


На лицевой стороне проклятый глянец во всей красе


Спереди имеются два окна с крышками для 6 жестких дисков, в нижнем окне диски с горячей заменой. Харды вставляются в симпатичных пластмассовых салазках и никак не крепятся в корпусе при этом болтаются!!! Пришлось в верхней корзине прикрутить их транспортными болтами длинными.



В основных стойках тоже не съемные болты, имеются два посадочных места под 3.5 устройства


Внутри получается очень просторно и все кабели спрятаны

четверг, 4 марта 2010 г.

FreeBSD: Как перезагрузить FreeBSD в определенное время?

Для этого надо в crontab добавить запись... но не простую (reboot) а особую!

Для начала узнаем какое время на сервере сейчас
\date
четверг, 4 марта 2010 г. 14:50:34 (MSK)

Заходим в crontab
\crontab -e

добавляем запись делается это командами редактора vi
Подробнее о vi: FreeBSD: Как писать удалять в доисторическом текстовом редакторе vi?

13 7 * * * /sbin/shutdown -r now

в 13 минут в 7 часов каждый день месяца каждого месяца каждого дня недели сервер будет перезагружаться!


Подробнее о crontab: FreeBSD: Crontab запуск заданий по расписанию?

среда, 17 февраля 2010 г.

FreeBSD: Общая адресная книга на openLdap

Заранее оговорюсь что это полноценно работает только для Thunderbird 2 (для 3-го нет пока этого дополнений) с дополнением ContacSide Bar - авто подбор адресов по первым буквами email, вывод всего списка, централизованный ввод адресов.

В outlook работает только поиск, больше ничего нет потому что outlook умеет работать только с технологией VLV (Virtual List View) которая реализована только в MS Server Exchange - если вы фанат MS и хотите централизованный список адресов смело покупайте за несколько тысяч евро Exchange :")))

Для работы должны быть установлены Aapche22, php5, php5-extensions
с опцией OpenLDAP support эта опция за собой потянет openldap24-client (тоже нужен)

далее ставим
//> cd /usr/ports/net/openldap23-server/
/usr/ports/net/openldap23-server/> make config

выбираем опции

[X] TCP_WRAPPERS With tcp wrapper support
[X] BDB With BerkeleyDB support
[X] DYNAMIC_BACKENDS Build dynamic backends
[X] SLURPD Build slurpd replication daemon

/usr/ports/net/openldap23-server/> make clean install
Генерируем пароль администратора OpenLDAP командой slappasswd, хеш которого мы ниже добавим в конфиг OpenLDAP

//> slappasswd -s vash_parol
{SSHA}HaXoFVeJ5HOmvVbFnSB00lCYjIw8N0y+

Правим конфиг OpenLDAP
//>vi /usr/local/etc/openldap/slapd.conf

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/misc.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/openldap.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

# Load dynamic backend modules:
modulepath /usr/local/libexec/openldap

moduleload back_bdb
# moduleload back_ldap
# moduleload back_ldbm
# moduleload back_passwd
# moduleload back_shell

# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to *
by self write
by users read
by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn. (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!
#######################################################################
# BDB database definitions
#######################################################################

database bdb
suffix "dc=mail,dc=local"
rootdn "cn=root,dc=mail,dc=local"

# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw {SSHA}HaXoFVeJ5HOmvVbFnSB00lCYjIw8N0y+

# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /var/db/openldap-data

loglevel 256

# Indices to maintain
index objectClass eq
index cn eq

Добавляем в автозагрузку /etc/rc,conf

slapd_enable="YES"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"

и перезагружаемся
//> reboot

Проверяем запустился ли OpenLDAP

//> ps axw | grep openldap
1671 ?? Is 0:00,44 /usr/local/libexec/slapd -h ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0 -u ldap -g ldap

5874 p1 DL+ 0:00,00 grep openldap


//> netstat -nap tcp | grep 389
tcp4 0 0 *.389 *.* LISTEN


Создаем КОРЕНЬ

//> vi /var/db/openldap-data/base.ldif

dn: dc=mail, dc=local
objectClass: dcObject
objectClass: organization
objectClass: top
dc: mail
o: mail

//> cd /var/db/openldap-data/
//> ldapadd -x -D "cn=root,dc=mail,dc=local" \
-h 0.0.0.0 -W -f base.ldif
Enter LDAP Password:
тут тот пароль что вводился в начале (символами буквами и пр)


Установка phpLdapadmin
//> cd /usr/ports/net/phpldapadmin
/usr/ports/net/phpldapadmin/> make install clean

Но скорей всего с версией из портов openLDAP не будет корректно работать
надо скачать свежий разархивировать и кинуть в ту же папку что и этот
http://sourceforge.net/projects/phpldapadmin/files/

Добавляем
//> vi /usr/local/etc/apache/httpd.conf

Alias /phpldapadmin "/usr/local/www/phpldapadmin/htdocs/"

Options none
AllowOverride none
Order Deny,Allow
Deny from all
Allow from 10.10.30.0/24 .domain.local


10.10.30.0/24 - айпи вашей сети
http://ip_server/phpldapadmin - ссылка по который вызываем phpLdapadmin

Слегка правим конфиг
//> vi /usr/local/www/phpldapadmin/config/config.php

$ldapservers->SetValue($i,'server','host','ip_server');

Заходим в папку скриптов LDAP и копируем \templates\creation в \templates\modification без этого некоторые шаблоны нельзя будет редактировать


Настраиваем адрессную книгу

заходим http://ip_server/phpldapadmin
имя: cn=root,dc=mail,dc=local
пароль: тут тот пароль что вводился в начале (символами буквами и пр)

dc=mail,dc=local > Создать потомка > Organisation Unit
назовем addressbook

dc=mail,dc=local > ou=addressbook > Создать потомка > Address Book Entery
и здесь уже забиваем личные данные

В почтовых клиентах выбираем
Имя пользователя: cn=root,dc=mail,dc=local
Имя сервера: ip_servera
Корневой каталог: ou=addressbook,dc=mail,dc=local (в Outlook это каталог поиска)
Порт: 389



В настройках ContacSide Bar во вкладке ПОИСК надо поставить LDAP надо поставить галочку и заменить * на @



Экспорт в phpldapadmin не работает, точнее не работает тот единственный который нужен в VCARD - когад надо сделать экспорт всех выдается только один из контактов, Outlook отображает готовый файл в неправильнйо кодировки хотя Notepad все конктретно видит!

В любом случае в экспорте есть фильтр!

Если нужны только адреса с определенного домена надо набрать в "Фильтр поиска"
(mail=*@mail.ru)