четверг, 18 декабря 2008 г.

Subversion Server на Fedora Core 10

Инсталяция

Устанавливаем в ОС необходимые компоненты:
yum install httpd mod_dav_svn subversion

- это Apache, WebDAV для Apache и сам Subversion.

Также необходимо создать нужные каталоги:

mkdir /var/svn
mkdir /var/svn/repos
mkdir /var/svn/users
mkdir /var/svn/permissions


Папка repos - здесь будут лежать сами репозиатории. Папка users будет содержать файл пароля для авторизации пользователей. И папка permissioons будет хранить файл с разрешениями SVN.

Создаем несколько хранилищ:

cd /var/svn/repos
svnadmin create PUBLIC
svnadmin create PRIVATE
svnadmin create NET


PUBLIC - это хранилище будет доступно каждому, PRIVATE - доступно только пользователям прошедшим авторизацию и NET - доступ только для пользователей определенной сети (например, 192.168.254.0).

Владельцем папки svn должен быть пользователь Apache:
chown –R apache:apache /var/svn

После установки subversion, в директории conf.d Apache должен появиться новый файл.
Теперь исправляем его:
vi /etc/httpd/conf.d/subversion.conf


order deny, allow
allow from 192.168.254
deny from all



DAV svn
SVNParentPath /var/svn/repos
AuthzSVNAccessFile /var/svn/permissions/svnauthz.conf
AuthType Basic
AuthName "Auth required"
AuthUserFile /var/svn/users/passwords
Require valid-user
Satisfy any


Теперь создаем файл и заносим туда пользователей для авторизации:
cd /var/svn/users
htaccess –cb passwords user pass
htaccess –b passwords admin pass

Также необходимо создать файл svnauthz.conf и внести туда следующие изменения:
[groups]
admins = admin
users = user
[PUBLIC:/]
@admins = rw
* = r
[PRIVATE:/]
@admins = rw
[NET:/]
@admins = rw
@users = rw

Тестирование

Запускаем сервис Apache
service httpd start

И через web-браузер пытаемся зайти в хранилище:
http://ip_srv/subversion/PUBLIC
http://ip_srv/subversion/PRIVATE
http://ip_srv/subversion/NET

Для работы с хранилищем с рабочий машины с ОС Windows, можно использовать TortoiseSVN (http://tortoisesvn.tigris.org/).

Стандартные пароли для коммутаторов 3COM

* security/security
* admin/synnet
* write/synnet
* debug/synnet
* manager/manager
* admin/-
* user/user

четверг, 27 ноября 2008 г.

Postfix: продалжаем бороться со спамом

Столкнулся с наплывом спама в котором поменяется домен отправителя на мой.

Задача: отправлять сообщения от имени домена company.ru могут только пользователи, которые находятся в доверенной сети, либо прошли авторизацию.
ОS: FC5, Postfix-2.4.5-2.fc6

Решение:
в файле main.cf

smtpd_restriction_classes = OnlyUsers
OnlyUsers = permit_mynetworks,
permit_sasl_authenticated,
reject

smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/list/access_sender

в файле access_sender
company.ru OnlyUsers

не забыть сделать: postmap /etc/postfix/list/access_sender

четверг, 13 ноября 2008 г.

Окошки в Microsoft Office

На нескольких компьютерах появилась следующая проблема: окошки офиса на панель задач отображаются в виде одной панельки, переключение возможно только через закладку "Окна".
Решение: изменить параметр HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options на ShowWindowsInTaskbar (DWORD) : 1

среда, 12 ноября 2008 г.

отключение проверки GPG-KEY

Понадобилось установить с помощью yum пакет из неофициального репрезеатория. При попытке установки выдавалось следующее предупреждение warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 6b85f346 public key not available.

Проверяьт или не проверять подпись настраивается в конфигурационных файлах расположенных /etc/yum.repos.d/
в нем необходимо изменить параметр gpgcheck=0
соответственно проверка отключена, если 1 то включена.

среда, 29 октября 2008 г.

Включаем форвардинг (FC8)

Необходимо в настройках указать, что включать форвадинг пакетов операционной системе надо при загрузке.
1. Открываете файл /etc/sysctl.conf
2. Устанавливаете параметр net.ipv4.ip_forward=1
3. Сохраняете файл.

понедельник, 27 октября 2008 г.

SSH: Аутентификация пользователя по его публичному ключу.

Механизм аутентификации удаленного пользователя по ключу заключён в проверке ключа клиента и имени пользователя. Пользователю на сервере может соответствовать его публичный ключ, тогда клиент, имея секретный ключ сможет заходить на сервер без пароля.

Для генерации пары ключей используем программу ssh-keygen.
ssh-keygen -t rsa -b 2048 -f $HOME/.ssh/id_rsa
-t {RSA DSA} - указания типа ключа;
-f - указание файла для хранения ключа;
-b - указание длины ключа в битах.

В результате работы программа запросит ввод пароля для шифрования секретного ключа, чтобы исключить использование его при попадании к посторонним лицам, не знающим пароля (пароль рекомендовано выбирать не короче 10-и символов).

После работы ssh-keygen создается пара ключей: один секретный (зашифрованный введенным паролем), а другой публичный с расширением .pub (id_rsa.pub). Публичный ключ необходимо скопировать в домашнюю директорию сервера $HOME/.ssh/authorized_keys. После этого сервер будет знать ключ данного пользователя и сможет аутентифицировать вас без пароля. Файл authorized_keys может содержать несколько публичных ключей, допустимых для данного пользователя: просто поместите их в данный файл по порядку. После этих операций вы сможете входить, имея секретный ключ, на сервер, где размещен ваш публичный ключ, причем под тем пользователем, в чьем домашнем каталоге данный ключ находится. Пароля удаленного пользователя не требуется, необходимо только знать пароль расшифровки секретного ключа. Для переноса своего публичного ключа на сервер надо использовать только безопасные источники, иначе ваш ключ могут подменить. Для переноса публичного ключа клиента служит программа ssh-copy-id. Для начала необходимо сделать следующее:

# ssh-copy-id -i public_key_file user@machine

После соединения с севером machine и передачей имени пользователя user (необходимо указывать, если удаленное имя отличается от локального) происходит парольная аутентификация заданного пользователя(или текущего) на удаленной машине, затем происходит копирование ключа public_key_file (или $HOME/.ssh/identity.pub, если имя файла не указано) на сервер в $HOME/.ssh/authorized_keys. После этого можно входить на сервер, не используя пароль пользователя.

вторник, 7 октября 2008 г.

Синтаксис комманды gpupdate

Синтаксис
gpupdate [/target:{computer|user}] [/force] [/wait:значение] [/logoff] [/boot]
Параметры

/target:{computer|user} Обрататывает только параметры компьютера или параметры текущего пользователя. По умолчанию обрабатываются и параметры компьютера, и параметы пользователя.
/force Игнориует все оптимизации в процессе обработки и восстанавливает все предыдущие настройки.
/wait:значение Время ожидания окончания обработки политики в секундах. По умолчанию это время составляет 600 секунд. 0 означает «без ожидания»; -1 означает «время ожидания не ограничено».
/logoff Задает выход из системы по завершении обновления. Это необходимо для тех клиентских расширений оснастки «Групповая политика», которые обрабатываются не в фоновом режиме, а при входе пользователя в систему, например, при установке программного обеспечения и перенаправлении папок. Этот параметр не работает, если вызываемые расширения, необходимые для выхода пользователя из системы, отсутствуют.
/boot Перезапускает компьютер после завершения обновления. Это необходимо для тех клиентских расширений оснастки «Групповая политика», которые обрабатываются не в фоновом режиме, а при входе пользователя в систему, например, при установке программного обеспечения и перенаправлении папок. Этот параметр не работает, если вызываемые расширения, необходимые для перезапуска компьютера, отсутствуют.
/? Вывод справки в командной строке.

среда, 1 октября 2008 г.

Error 1718

Ставил тут на досуге VMware-server-2.0.0-116503.exe на Windows Server 2003 Standart R2. И столкнулся с такой ошибкой "Error 1718. File was rejected by digital signature policy". Проблема решилась следующим способом http://support.microsoft.com/kb/925336.
Может кому полезно будет :)

вторник, 23 сентября 2008 г.

Полезные вещи

w : Полезная комбинация команд who+uptime, показывает залогиненных юзеров, и нагрузку на процессор. Нагрузка (load average) считается, что меньше 3 это хорошо, больше - плохо.

Диск
df -h : Показывает, какие файловые системы смонтированы, их размер и сколько есть свободного места.
du -sh /directory: Показывает размер директории.
hdparm -t /dev/hda1 : скорость чтения/записи на диск.
smartctl -A /dev/hda1 : Показывает информацию о диске. Из важных параметров нужно отметить Power_On_Hours - показывает сколько часов проработал диск. В случае, если Current_Pending_Sector или Offline_Uncorrectable не равны нулю - готовьтесь к скорой смерти сервера.
pwd : показывает текущую директорию.

Память
free -m - показывает свободную и занятую память.
top - интеркативно показывает процессы, память, использование процессора, что-то вроде таск-менеджера для виндовс. Для того чтобы поменять порядок процессов в списке, нажимать Shift+O.
Замечание, актуальное для Fedora Core > 5: на одном сервере у меня по умолчанию оказался запущен tmpfs, виртуальный диск, который сожрал целый гигабайт памяти. Увидеть это можно с помощью df -h, а чтобы умерить его аппетиты, нужно сделать так: в файле /etc/fstab найти tmpfs и в 4й колонке после defaults написать “,size=100M” (например). После этого запустить mount -o remount /dev/shm.

Сеть
iptables -L : Показывает настройки юниксового “файрволла”. Чтобы забанить адрес, нужно написать что-то вроде: iptables -I INPUT -s 38.100.225.0/24 -j DROP (забанится вся подсеть).
netstat -a : Показывает список всех открытых соединений.
netstat -ant|grep ESTABLISHED : Показывает список всех установленных соединений.
ifconfig : показывает сетевые карты и их настройки.

четверг, 18 сентября 2008 г.

Автоматизируем резервное копирование

Для этого выбрал софтинку BackupPC (http://backuppc.sourceforge.net/). Устанавливал я ее на FedoraCore9.

Для ее работы потребовался следующий софт: Perl, Apache, Samba. Также нужны дополнительные модули к Compress::Zlib, Archive::Zip и File::RsyncP. Их наличие можно проверить командой perldoc [имя модуля].

Установка банальна до безобразия... yum install backuppc -y и все что вам еще не хватает из этого.

среда, 17 сентября 2008 г.

Samba с авторизацией в AD (upd:24.09.2008)

Было использовано на Fedora 7-9 c AD поднятом на Windows Server 2003.

Проверяем и если необходимо устанавливаем

# yum install -y samba samba-common krb5-workstation

Правим файл /etc/hosts:

# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.254.254 ads.domain.local ads

Теперь настроим Керберос для добавления linux-сервера в windows-домен

# cat /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]javascript:void(0)
default_realm = DOMAIN.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
DOMAIN.LOCAL = {
kdc = ads.domain.local:88
admin_server = ads.domain.local:749
default_domain = domain.local
}

[domain_realm]
.domain.local = DOMAIN.LOCAL
domain.local = DOMAIN.LOCAL

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

Необходимо провести синхронизацию времени с контролером домена
net time set ads
и желательно сие действо прописать в cron

# kinit administrator@DOMAIN.LOCAL
Password for administrator@DOMAIN.LOCAL:


Hастройка samba

[root@vm01 ~]# /etc/samba/smb.conf
[global]
workgroup = DOMAIN
netbios name = srvfile
server string = Samba Server
security = ads
encrypt passwords = yes
realm = DOMAIN.LOCAL
password server = ads.domain.local
winbind enum users = yes
winbind enum groups = yes
winbind cache time = 1800
winbind use default domain = yes
winbind refresh tickets = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
template homedir = /home/%U
printing =
load printers = no


Входим в домен

# net ads join -U administrator
administrator's password:
Using short domain name -- DOMAIN
Joined 'srvfile' to realm 'DOMAIN.LOCAL'


Добавить описание pam_winbind.so модуля для аутентификации в системе. Модуль pam_mkhomedir.so для автоматического создания домашней директории при первом присоединении пользователя.

vim /etc/pam.d/system-auth
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_winbind.so use_first_pass
auth required pam_deny.so

account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_winbind.so
account required pam_permit.so

password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_winbind.so use_authtok
password required pam_deny.so

session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022


Настраиваем nsswitch, для того чтобы он мог использовать данные (о пользователях и групппах) AD с помощью winbind-сервиса и стартуем сервис

vim /etc/nsswitch.conf
passwd: files winbind
shadow: files
group: files winbind

/etc/init.d/winbind start
Starting Winbind services: [ OK ]
chkconfig winbind on

суббота, 13 сентября 2008 г.

4 метода отключения SELinux (update 10.02.2012)

SELinux (англ. Security-Enhanced Linux — Linux с улучшенной безопасностью) — реализация системы принудительного контроля доступа, которая может работать параллельно с классической дискреционной системой контроля доступа. Входит в стандартное ядро Linux. Также для функционирования SELinux требуются модифицированные версии некоторых утилит (ps, ls, и тд), которые обеспечивают поддержку новых функций ядра, и поддержка со стороны файловой системы.

Метод 1: Временное отключение SELinux

Для временного отключения SELinux вы можете модифицировать файл /selinux/enforce. Обратите внимание, это временное отключение, и после перезагрузки системы SELinux будет работать снова.

# cat /selinux/enforce
1
# echo 0 > /selinux/enforce
# cat /selinux/enforce
0
  Также можно использовать команду setenforce, как показано в примере ниже. Возможные параметры команды setenforce таковы: Enforcing , Permissive, 1 (включить) or 0 (отключить).
# setenforce 0

Метод 2: Постоянное отключение SELinux

Для постоянного отключения SELinux, измените файл /etc/selinux/config и установите SELINUX=disabled как показано ниже. После этого перезагрузите сервер.

# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0

Метод 3: Отключение SELinux в загрузчике Grub

Третий способ использует возможности загрузчика системы GRUB для отключения SELinux. Добавьте в конец строки selinux=0

# cat /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet selinux=0
initrd /boot/initrd-2.6.18-92.el5PAE.img
title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet selinux=0
initrd /boot/initrd-2.6.18-92.el5.img

Метод 4: Отключаем SELinux только для определенных сервисов – HTTP/Apache

Если вам необходимо не целиком отключить SELinux, а только для определенных служб, у вас есть такая возможность. Для примера отключим SELinux для HTTP/Apache, изменив значение переменной httpd_disable_trans в файле /etc/selinux/targeted/booleans.
 
# grep httpd /etc/selinux/targeted/booleans
httpd_builtin_scripting=1
httpd_disable_trans=1
httpd_enable_cgi=1
httpd_enable_homedirs=1
httpd_ssi_exec=1
httpd_tty_comm=0
httpd_unified=1
  Установите переменную также используя команду setsebool. После этого перезапустите httpd для вступления изменений в силу.

# setsebool httpd_disable_trans 1
# service httpd restart



И вуа-ля