1. В момент старта ОС и появления пунктов выбора загрузки grub нажимаю "е".
2. После появления правил загрузки ищу строку начинающуюуся со слова "linux ..." в строке меняю "ro quiet" на "rw quiet" и после добавляю "init=/bin/bash", т.е. в конце строки получаю "rw quiet init=/bin/bash". Жму "ctrl" + "x".
3. Если диск был шифрован, как у меня, ввожу пароль его расшифровки. В противном случаю сразу попдаю в cli с приветственной строкой bash - "root@(none):/#".
4. Делаю ремоунт корневой системы - "mount -n -o remount,rw /".
5. Даю команду - "passwd" и задаю новый root пароль.
6. Анмаунчу корень - "umount /".
7. Перегружаюсь в ОС - "reboot -f" с новым паролем root'а.
Debian: лабораторные записи
Мои попытки освоения Debian.
пятница, 7 мая 2021 г.
Сброс пароля root
вторник, 11 февраля 2020 г.
Подключение общих ресурсов Windows к Linux
Все
команды выполнялись от прав пользователя
root.
1. Устанавливаю необходимые пакеты:
apt-get install -y smbclient cifs-utils
2. Подключаю сетевой ресурс:
mount.cifs //winserver/shara /mnt -o user=username,domain=DOMAINNAME
3. Запрашивается пароль к доменной учетной записи username, после ввода которого, ресурс маунтится в /mnt.
1. Устанавливаю необходимые пакеты:
apt-get install -y smbclient cifs-utils
2. Подключаю сетевой ресурс:
mount.cifs //winserver/shara /mnt -o user=username,domain=DOMAINNAME
3. Запрашивается пароль к доменной учетной записи username, после ввода которого, ресурс маунтится в /mnt.
среда, 5 апреля 2017 г.
Установка Asterisk с FreePBX
Все команды выполнялись от прав пользователя root.
1. Устанавливаю необходимые пакеты:
apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libiksemel-dev libiksemel-utils libiksemel3 libmyodbc sudo
2. Скачиваю необходимые сырцы для установки Asterisk:
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
3. Распаковываю скачанное:
tar -zxvf libpri-current.tar.gz
tar -zxvf dahdi-linux-complete-current.tar.gz
tar -zxvf asterisk-14-current.tar.gz
4. Начинаю сборку и установку сырцов (собственно все как в инструкции самого Asteriska):
cd dahdi-linux-complete-2.11.1+2.11.1
make
make install
make config
cd ..
cd libpri-1.6.0
make
make install
5. До устанавливаю более новый протокол (по инструкции), наверно его можно не устанавливать, но вдруг захочется каких нибудь дополнительных настроек:
cd ..
wget http://www.pjsip.org/release/2.4.5/pjproject-2.4.5.tar.bz2
tar -xjvf pjproject-2.4.5.tar.bz2
cd pjproject-2.4.5
5.1. Правлю готовый конфиг для его сборки:
nano pjlib/include/pj/config_site.h
Вставляю "простыню"
/*
* Asterisk config_site.h
*/
#include
/*
* Defining PJMEDIA_HAS_SRTP to 0 does NOT disable Asterisk's ability to use srtp.
* It only disables the pjmedia srtp transport which Asterisk doesn't use.
* The reason for the disable is that while Asterisk works fine with older libsrtp
* versions, newer versions of pjproject won't compile with them.
*/
#define PJMEDIA_HAS_SRTP 0
#define PJ_HAS_IPV6 1
#define NDEBUG 1
#define PJ_MAX_HOSTNAME (256)
#define PJSIP_MAX_URL_SIZE (512)
#ifdef PJ_HAS_LINUX_EPOLL
#define PJ_IOQUEUE_MAX_HANDLES (5000)
#else
#define PJ_IOQUEUE_MAX_HANDLES (FD_SETSIZE)
#endif
#define PJ_IOQUEUE_HAS_SAFE_UNREG 1
#define PJ_IOQUEUE_MAX_EVENTS_IN_SINGLE_POLL (16)
#define PJ_SCANNER_USE_BITWISE 0
#define PJ_OS_HAS_CHECK_STACK 0
#define PJ_LOG_MAX_LEVEL 6
#define PJ_ENABLE_EXTRA_CHECK 1
#define PJSIP_MAX_TSX_COUNT ((64*1024)-1)
#define PJSIP_MAX_DIALOG_COUNT ((64*1024)-1)
#define PJSIP_UDP_SO_SNDBUF_SIZE (512*1024)
#define PJSIP_UDP_SO_RCVBUF_SIZE (512*1024)
#define PJ_DEBUG 0
#define PJSIP_SAFE_MODULE 0
#define PJ_HAS_STRICMP_ALNUM 0
/*
* Do not ever enable PJ_HASH_USE_OWN_TOLOWER because the algorithm is
* inconsistently used when calculating the hash value and doesn't
* convert the same characters as pj_tolower()/tolower(). Thus you
* can get different hash values if the string hashed has certain
* characters in it. (ASCII '@', '[', '\\', ']', '^', and '_')
*/
#undef PJ_HASH_USE_OWN_TOLOWER
/*
It is imperative that PJSIP_UNESCAPE_IN_PLACE remain 0 or undefined.
Enabling it will result in SEGFAULTS when URIs containing escape sequences are encountered.
*/
#undef PJSIP_UNESCAPE_IN_PLACE
#define PJSIP_MAX_PKT_LEN 6000
#undef PJ_TODO
#define PJ_TODO(x)
/* Defaults too low for WebRTC */
#define PJ_ICE_MAX_CAND 32
#define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * PJ_ICE_MAX_CAND)
/* Increase limits to allow more formats */
#define PJMEDIA_MAX_SDP_FMT 64
#define PJMEDIA_MAX_SDP_BANDW 4
#define PJMEDIA_MAX_SDP_ATTR (PJMEDIA_MAX_SDP_FMT*2 + 4)
#define PJMEDIA_MAX_SDP_MEDIA 16
5.2. Начинаю сборку:
./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG'
make dep
make
make install
ldconfig
5.3. Проверяю:
ldconfig -p | grep pj
Должно получиться что-то типа:
libpjsua2.so.2 (libc6,x86-64) => /usr/lib/libpjsua2.so.2
libpjsua2.so (libc6,x86-64) => /usr/lib/libpjsua2.so
libpjsua.so.2 (libc6,x86-64) => /usr/lib/libpjsua.so.2
libpjsua.so (libc6,x86-64) => /usr/lib/libpjsua.so
libpjsip.so.2 (libc6,x86-64) => /usr/lib/libpjsip.so.2
libpjsip.so (libc6,x86-64) => /usr/lib/libpjsip.so
libpjsip-ua.so.2 (libc6,x86-64) => /usr/lib/libpjsip-ua.so.2
libpjsip-ua.so (libc6,x86-64) => /usr/lib/libpjsip-ua.so
libpjsip-simple.so.2 (libc6,x86-64) => /usr/lib/libpjsip-simple.so.2
libpjsip-simple.so (libc6,x86-64) => /usr/lib/libpjsip-simple.so
6. Устанавливаю:
cd ..
git clone https://github.com/akheron/jansson.git
cd /usr/src/jansson
autoreconf -i
./configure
make
make install
cd ..
cd asterisk-14.3.0
./configure
contrib/scripts/get_mp3_source.sh
6.1. Вызываю конфигуратор:
make menuselect
И выбираю следующее:
Add-ons: format_mp3, res_config_mysql, app_mysql и cdr_mysql.
Core Sound Packages: русские звуки RU-WAV.
Music On Hold File Packages: звук WAV.
Extras Sound Packages: английский EN-WAV, русского нет.
6.2. Собираю с учетом выбранного:
make
make install
make config
7. Скачиваю и распаковываю FreePBX:
cd..
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
tar xvfz freepbx-13.0-latest.tgz
cd freepbx
pear install Console_Getopt
7.1. Создаю управляющего пользователя и задаю права:
useradd -m asterisk
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk
7.2. Убираю лишнее и немного конфигурирую Apache:
rm -rf /var/www/html
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
service apache2 restart
7.3. Настраиваю ODBC:
cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
EOF
cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
EOF
7.4. Устанавливаю FreePBX (остановив предварительно Asterisk):
cd freepbx
/etc/init.d/asterisk stop
./start_asterisk start
STARTING ASTERISK
Asterisk Started
./install -n --dbpass passMySQL
7.5. Толком не разобрался, но какой-то косяк по-умолчанию, пришлось пожертвовать безопасностью, иначе попасть в веб-интерфейс не получалось:
rm -rf /var/www/html/.htaccessy
/etc/init.d/apache2 restart
8. Вводим в браузере IP сервера Asterisk и попадаем на FreePBX.
пятница, 30 декабря 2016 г.
Установка Roundcube.
Почтовый сервер на базе Dovecot+Postfix+DKIM+MySQL+Postgrey устанавливал по инструкции с сайта. Автор разрешил опубликовать материал у себя (оформлю для публикации, как будет время), чтобы материал дублировался в моих записях на всякий случай.
В конфигах которые настраивал пришлось заменить localhost на 127.0.0.1 иначе кидало ошибку в syslog (увы не помню какую именно).
Все команды выполнялись от прав пользователя root.
В конфигах которые настраивал пришлось заменить localhost на 127.0.0.1 иначе кидало ошибку в syslog (увы не помню какую именно).
Все команды выполнялись от прав пользователя root.
1.
В
моем репозитории почему-то его не
оказалось, потому скачиваю сырцы во
временную папку:
cd /tmp/
wget
https://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.1.4/roundcubemail-1.1.4-complete.tar.gz
2. Распаковываю
архив:
tar xfvz
roundcubemail-1.1.4-complete.tar.gz
3. Удаляю
архив и перемещаю распакованные данные:
rm
roundcubemail-1.1.4-complete.tar.gz
mv
roundcubemail-1.1.4-complete /var/www/roundcube
4.
Перехожу в папку и задаю права на папки
temp
logs:
cd
/var/www/roundcube
chmod 777 temp
logs
5.
Вхожу и создаю
БД для Roundcube:
mysql -u root
-p
CREATE DATABASE
IF NOT EXISTS `roundcube`;
GRANT ALL
PRIVILEGES ON `roundcube` . * TO 'root'@'localhost' IDENTIFIED BY
'mySecretPassword';
FLUSH
PRIVILEGES;
quit
6.
Наполняю
созданную БД:
mysql
-u root
-p"mySecretPassword" roundcube <
SQL/mysql.initial.sql
7.
Настраиваю
apache:
nano
/etc/apache2/sites-enabled/mail.conf
Alias /mail
/var/www/roundcube/
RemoveHandler .php .php3 .php4 .phtml
AddType application/x-httpd-php .php .php3 .php4 .phtml
php_admin_value open_basedir /
AddType text/x-component .htc
php_flag display_errors Off
php_flag log_errors On
php_value error_log logs/errors
php_value upload_max_filesize 5M
php_value post_max_size 6M
php_value memory_limit 64M
php_flag display_errors Off
php_flag log_errors On
php_value error_log logs/errors
php_value upload_max_filesize 5M
php_value post_max_size 6M
php_value memory_limit 64M
Order allow,deny
Deny from all
Order deny,allow
Allow from all
RemoveHandler .php .php3 .php4 .phtml
AddType application/x-httpd-php .php .php3 .php4 .phtml
php_admin_value open_basedir /
AddType text/x-component .htc
php_flag display_errors Off
php_flag log_errors On
php_value error_log logs/errors
php_value upload_max_filesize 5M
php_value post_max_size 6M
php_value memory_limit 64M
php_flag display_errors Off
php_flag log_errors On
php_value error_log logs/errors
php_value upload_max_filesize 5M
php_value post_max_size 6M
php_value memory_limit 64M
Order allow,deny
Deny from all
Order deny,allow
Allow from all
8.
Перезапускаю
apache:
/etc/init.d/apache2
restart
9.
Создаю
вручную конфиг roundcube:
nano
/var/www/roundcube/config/config.inc.php
/* Local
configuration for Roundcube Webmail */
//
----------------------------------
// SQL DATABASE
//
----------------------------------
$config['db_dsnw']
= 'mysql://root:mySecretPassword@localhost/roundcube';
//
----------------------------------
// IMAP
//
----------------------------------
$config['default_host']
= 'localhost';
// provide an
URL where a user can get support for this Roundcube installation
// PLEASE DO
NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url']
= '';
// this key is
used to encrypt the users imap password which is stored
// in the
session record (and the client cookie if remember password is
enabled).
// please
provide a string of exactly 24 chars.
$config['des_key']
= '2dcd0f65ff91d3b2bcabcdc5';
//
----------------------------------
// PLUGINS
//
----------------------------------
// List of
active plugins (in plugins/ directory)
$config['plugins']
= array();
// the default
locale setting (leave empty for auto-detection)
// RFC1766
formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR
$config['language']
= 'ru_RU';
$rcmail_config['smtp_server']
= 'localhost';
$rcmail_config['smtp_user']
= '%u';
$rcmail_config['smtp_pass']
= '%p';
$rcmail_config['quota_zero_as_unlimited']
= true;
$rcmail_config['preview_pane']
= true;
$rcmail_config['read_when_deleted']
= false;
$rcmail_config['check_all_folders']
= true;
$rcmail_config['imap_auth_type']
= 'CRAM-MD5';
$rcmail_config['smtp_auth_type']
= 'CRAM-MD5';
10.
Удаляю
установщик коонфигурации (собственно
п. Можно делать через него):
rm
-rf /var/www/roundcube/installer/
11.
Включаю
автоматическое создание стандартных
папок, типа корзина-спам и т.д. Для это
в конфиге nano /var/www/roundcube/config/defaults.inc.php
меняю значение ключа:
$config['create_default_folders']
= true;
12.
Проверяю
введя в браузере:
в
качестве учетных данных ввожу e-mail
и
пароль.
четверг, 28 апреля 2016 г.
Настройка NFS-сервера на ZFS с включённой дедубликацией и сжатием
Все команды выполнялись от прав пользователя root.
1. Ставлю Debian 8.0 Jessie (важно!!! чтобы
версия была x64).
2. Устанавливаю
ZFS:
wget
http://zfsonlinux.org/4D5843EA.asc -O - | apt-key add -
wget
http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
dpkg -i
zfsonlinux_6_all.deb
apt-get update
apt-get install
lsb-release
apt-get install
debian-zfs
reboot
3. Создаю пул:
Проверяю что
установилось.
dpkg -l | grep
zfs
ii debian-zfs 7~jessie amd64 Nati ve ZFS filesystem metapackage for
Debian.
ii libzfs2 0.6.5.6-7 amd64 Nati ve ZFS filesystem library for Linux
ii zfs-dkms 0.6.5.6-7 all Nati ve ZFS filesystem kernel modules for
Linux
ii zfsonlinux 6 all arch ive.zfsonlinux.org trust package
ii zfsutils 0.6.5.6-7 amd64 comm and-line tools to manage ZFS
filesystems
Проверяю какие
диски есть
ls /dev/sd*
/dev/sda /dev/sda1
/dev/sda2 /dev/sda5 /dev/sdb
/dev/sdc
Проверяю есть ли
пул )))
zpool list
no pools
available
Создаю RAID-1
zpool create -f
pool mirror /dev/sdb /dev/sdc
Проверяю:
zpool list
NAME SIZE
ALLOC FREE EXPANDSZ
FRAG CAP DEDUP
HEALTH ALTROOT
pool 9,94G
187K 9,94G -
7% 0% 1.00x
ONLINE -
Проверяю статуса
пулов:
zpool status
pool: pool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
pool ONLINE 0
0 0
mirror-0 ONLINE
0 0 0
sdb ONLINE 0
0 0
sdc ONLINE 0
0 0
errors: No known
data errors
Проверяю его
наличии в системе
df -hT
Файловая система
Тип Размер Использовано Дост Использовано% Cмонтировано в
/dev/root ext4 1,9G 1,3G
424M 76% /
udev devtmpfs 10M 0
10M 0% /dev
tmpfs tmpfs 200M 4,6M
196M 3% /run
tmpfs tmpfs 500M 0
500M 0% /dev/shm
tmpfs tmpfs 5,0M 0
5,0M 0% /run/lock
tmpfs tmpfs 500M 0
500M 0% /sys/fs/cgroup
pool zfs 9,7G 128K
9,7G 1% /pool
4. Тюнингую ZFS:
Включаю сжатие
данных
zfs set
compression=on pool
zfs get compression pool
NAME PROPERTY VALUE SOURCE
pool compression on local
zfs get compression pool
NAME PROPERTY VALUE SOURCE
pool compression on local
Включаю
дедупликацию
zfs set dedup=on pool
zfs get dedup
NAME PROPERTY VALUE SOURCE
pool dedup on local
zfs get dedup
NAME PROPERTY VALUE SOURCE
pool dedup on local
5. Устанавливаю NFS-сервер:
apt-get install
nfs-kernel-server nfs-common
Назначаю права на
ZFS-пул
chown
nobody:nogroup /pool
chmod 777 /pool
Правлю конфиг
сервера (добавив строчку)
nano /etc/exports
/pool 192.168.0.0/24 (rw,async,no_subtree_check)
Перезагружаю NFS-сервер
/etc/init.d/nfs-kernel-server
restart
6. Проверка
подключения на базе Linux клиента:
Устанавливаю сам клиент
apt-get install nfs-common
Создаю папку куда
буду монтировать
mkdir -p /mnt/nfs
Собственно
монтирую
mount
192.168.0.10:/pool /mnt/nfs
Проверяю
df -hT
Файловая
система Тип Размер Использовано Дост Использовано% Cмонтировано в
/dev/root ext4 176G 985M
166G 1% /
udev devtmpfs 10M 0
10M 0% /dev
tmpfs tmpfs 200M 4,5M
196M 3% /run
tmpfs tmpfs 500M 0
500M 0% /dev/shm
tmpfs tmpfs 5,0M 0
5,0M 0% /run/lock
tmpfs tmpfs 500M 0
500M 0% /sys/fs/cgroup
192.168.0.10:/pool
nfs4
9,7G 128K 9,7G 1% /mnt/nfs
Размонтирование
делается обычно
umount /pool
7. Проверка
подключения на базе Windows:
Проверять буду
программой NekoDrive.
Таким образом
создается диск Е куда все и монтируется. Unicode нужно для корректного
отображения кириллицы.
Пример работы сжатия ZFS пула:
Залил на NFS виртуальную машину изначальный размер согласно свойствам Windows - 6,72 ГБ (7 219 906 743 байт).
Проверяю пул (показывает 4,2 Гб)
df -hT
Файловая система Тип Размер Использовано Дост Использовано% Cмонтировано в
/dev/root ext4 1,9G 1,3G 423M 76% /
udev devtmpfs 10M 0 10M 0% /dev
tmpfs tmpfs 200M 4,6M 196M 3% /run
tmpfs tmpfs 500M 0 500M 0% /dev/shm
tmpfs tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs tmpfs 500M 0 500M 0% /sys/fs/cgroup
pool zfs 9,7G 4,2G 5,5G 43% /pool
вторник, 25 августа 2015 г.
Samba с авторизацией через Active Directory
Все команды выполнялись от прав
пользователя root.
В статье
использованы следующие данные:
имя домена – fmd1.local
первичный контролер
домена c DNS (PDC) – srvc.fmd1.local, его IP 197.168.17.50
резервные
контролеры домена (BDС) 197.168.18.5, 197.168.17.110
настраиваемый
сервер – gateway, его IP 197.168.17.104
2. Проверяю и
при необходимости меняю имя сервера – 'nano /etc/hostname'? например у меня:
gateway
3. Проверяю и
редактирую 'nano /etc/hosts' чтобы в нем были записи полного и короткого доменного имени,
пример:
127.0.0.1 localhost
197.168.17.104 gateway.fmd1.local gateway
4. Правлю 'nano /etc/resolv.conf' до вида:
domain fmd1.local
search fmd1.local
nameserver
197.168.17.50
5. Устанавливаю
демона обновления времени 'apt-get install ntpdate' и настраиваю его 'nano /etc/default/ntpdate' в моем случае:
NTPSERVERS="0.debian.pool.ntp.org
1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
4.srvc.fmd1.local"
NTPOPTIONS=""
6. Запускаю
ручную синхронизацию 'ntpdate -s srvc.fmd1.local'
7. Устанавливаю необходимые пакеты и библиотеки 'apt-get install krb5-user samba winbind libpam-krb5 libpam-winbind libnss-winbind'
8. Обнуляю базовый конфиг 'cat /dev/null > /etc/krb5.conf' и пишу свой 'nano /etc/krb5.conf' получилось следующее:
7. Устанавливаю необходимые пакеты и библиотеки 'apt-get install krb5-user samba winbind libpam-krb5 libpam-winbind libnss-winbind'
8. Обнуляю базовый конфиг 'cat /dev/null > /etc/krb5.conf' и пишу свой 'nano /etc/krb5.conf' получилось следующее:
[libdefaults]
default_realm = FMD1.LOCAL # (обязательно большими)
ticket_lifetime = 24000
clock_skew = 300
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true
[realms]
FMD1.LOCAL = {
kdc = 197.168.17.50
kdc = 197.168.18.5
kdc = 197.168.17.110
admin_server = 197.168.17.50
}
[domain_realm]
.fmd1.local = FMD1.LOCAL
fmd1.local = FMD1.LOCAL
[login]
krb4_convert = true
krb4_get_tickets = false
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5dc.log
admin_server = FILE:/var/log/ksadmind.log
Внимание!!! Везде где имя домена прописано заглавными буквами оно должно быть прописано БОЛЬШИМИ буквами, чтобы потом не разбираться, почему не работает.
9. Создаю файлы для логов 'touch /var/log/krb5libs.log' 'touch /var/log/krb5dc.log' 'touch /var/log/ksadmind.log' и даю к ним права доступа 'chmod 777 /var/log/krb5libs.log' ' chmod 777 /var/log/krb5dc.log' ' chmod 777 /var/log/ksadmind.log'
10. Проверяю возможность авторизации в AD командой 'kinit username@DOMAIN.COM' Важно имя домена писать ЗАГЛАВНЫМИ буквами!!! Получиться должно как-то так:
root@gateway:/# kinit admin@FMD1.LOCAL
Password for admin@FMD1.LOCAL:
11. Проверяю получен ли билет от кербероса командой 'klist' должно получиться похожее на следующее:
root@gateway:/# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@FMD1.LOCAL
Valid starting Expires Service principal
19.08.2015 11:09:01 19.08.2015 17:48:57 krbtgt/FMD1.LOCAL@FMD1.LOCAL
12. Настраиваю дальше конфиг самбы, предварительно обнулив - 'nano /etc/samba/smb.conf' у меня получился он таким:
[global]
server string = Gateway
interfaces = eth2
wins server = 197.168.17.50
password server = *
realm = FMD1.LOCAL
workgroup = FMD1
security = ads
encrypt passwords = yes
admin users=admin
#Разрешить заводить учетки с пустыми паролями
null passwords = true
log file = /var/log/samba/log.%m
debug level = 2
log level = 1
max log size = 50
dns proxy = no
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
name resolve order = hosts bcast lmhosts
#Не контролировать чувствительность к регистру.
case sensitive = no
client use spnego = yes
client ntlmv2 auth = yes
client signing = yes
#Чтобы самба не пыталась стать главной в группе и домене или даже контролером домена
local master = no
domain master = no
preferred master = no
os level = 0
domain logons = no
unix charset = UTF-8
dos charset = 866
#Включить режим обработки симлинков сервером. Когда клиенты - это компьютеры с windows
unix extensions = no
follow symlinks = yes
auth methods = winbind
idmap config * : range = 10000-40000
idmap config * : backend = tdb
# winbind separator = »
winbind enum groups = yes
winbind enum users = yes
template homedir = /home/%D/%U
template shell = /bin/bash
winbind use default domain = yes
winbind refreshtickets = yes
# Возможность оффлайн-авторизации при недоступности контроллера домена
winbind offline logon = yes
winbind cache time = 300
# Отключить поддержку принтеров
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
#[printers]
# comment = All Printers
# browseable = no
# path = /var/spool/samba
# printable = yes
# guest ok = no
# read only = yes
# create mask = 0700
#[print$]
# comment = Printer Drivers
# path = /var/lib/samba/printers
# browseable = yes
# read only = yes
# guest ok = no
[cdrom]
comment = %h - CD-ROM
read only = yes
locking = no
path = /cdrom
guest ok = yes
[Upload]
comment = %h - Upload
path = /mnt/upload
browseable = yes
writeable = yes
directory mask = 0777
create mask = 0666
valid users = @"Domain admins", FMD1\admin
13. Проверяю конфиг командой 'testparm' получаю результат проверки:
root@gateway:/# testparm
Load smb config files from /etc/samba/smb.conf
WARNING: The "null passwords" option is deprecated
Processing section "[cdrom]"
Processing section "[Upload]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
Обращает внимание на параметр null passwords, но собственно он мне-нужен так что не страшно.
14. Рестартую samba и winbind командой '/etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start'
15. Ввожу сервер в домен – 'net ads join -U admin' спросил пароль - набрал. Бывает что не находит домен автоматически, помогает иногда принудительное указание командой 'net ads join -U admin -S srvc.fmd1.local'
16. Перезапускаю winbind для считывания доменных пользователей и групп - '/etc/init.d/winbind force-reload'
17. Проверяю считал ли с AD пользователей и групп:
'wbinfo -t' установил ли доверительные отношения с доменом:
root@gateway:/# wbinfo -t
checking the trust secret for domain FMD1 via RPC calls succeeded
'wbinfo –u' считал ли пользователей
'wbinfo -g' считал ли группы
Если все настроено нормально winbind покажет пользователей и группы прописанные в AD.
18. Интегрирую winbind в систему для возможности назначения пользователей и групп домена для доступа к файлам правя конфиг – 'nano /etc/nsswitch.conf' до вида:
passwd: compat winbind
group: compat winbind
shadow: compat winbind
gshadow: files
hosts: files dns mdns4_minimal[NotFoud=return] mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
19. Проверяю на сколько успешно прошла интеграция командами:
'getent passwd' должна вернуть перечень не только локальных но и доменных пользователей
'getent group' должна вернуть перечень не только локальных но и доменных групп
!!! При первоначальной настройке я не установил библиотеки libpam-winbind libnss-winbind в результате чего эти команды возвращали только локальных пользователей и групп.
20. Для настройки аутентификации и авторизации пользователей AD на сервере модифицирую PAM – 'nano /etc/pam.d/samba' добавив 2 строчки:
для х86 систем:
auth required /lib/security/pam_winbind.so
account required /lib/security/pam_winbind.so
для х64:
auth required /lib/x86_64-linux-gnu/security/pam_winbind.so
account required /lib/x86_64-linux-gnu/security/pam_winbind.so
У меня получился такой конфиг:
@include common-auth
@include common-account
@include common-session-noninteractive
auth required /lib/x86_64-linux-gnu/security/pam_winbind.so
account required /lib/x86_64-linux-gnu/security/pam_winbind.so
21. Перегружаю сервер, ввожу аккаунт и пароль доменного пользователя и попадаю в систему. Все работает.
22. Внимание, если настроен фаервол, то надо разрешить входящие UDP пакеты с 137-го порта. В iptables правило выглядит примерно так:
iptables -A INPUT -i eth2 -p udp --sport 137 -j ACCEPT
Подписаться на:
Сообщения (Atom)