Зайдите на Самый добрый сайт на свете!!!. Зачетно - поднимает настроение :)
вторник, 21 октября 2008 г.
среда, 15 октября 2008 г.
Скрипт на perl для создания паролей
- #!/usr/bin/perl -w
- my @a=("a".."z","A".."Z","0".."9");
- for (1..32) { print $a[int rand @a]; };
- print "\n";'
Автор:
Князь
на
10:00
7
коммент.
вторник, 14 октября 2008 г.
Dovecot: Шифруем IMAP и POP3
- Первым делом создаем сертификат и секретный ключ. На вопрос о CN (Common Name) вписываем имя сервера – например «
mail.pupkin.ru
». В противном случае почтовый клиент может отказаться работать с сервером$ openssl req -new -outform PEM -out dovecot.crt -newkey rsa:2048 -nodes -keyout dovecot.key -keyform PEM -days 9999 -x509
Вывод будет примерно такимGenerating a 2048 bit RSA private key
Жирным шрифтом отмечены ответы.
..........................................................................+++
................................+++
unable to write 'random state'
writing new private key to 'dovecot.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Moscow Region
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Pupkin & Co.
Organizational Unit Name (eg, section) []:IT Department
Common Name (eg, YOUR name) []:mail.pupkin.ru
Email Address []:vasya@pupkin.ru - Перемещаем созданные ключи в папку Dovecot и устанавливаем права доступа к ним
$
sudo -s
# mkdir /etc/dovecot/ssl
#
mv dovecot.crt /etc/
dovecot/
ssl/dovecot.crt
#
mv dovecot.
key /etc/dovecot/ssl/dovecot.key
#
chown root
/etc/
dovecot/
ssl/dovecot.
*#
chmod 0600
/etc/dovecot/ssl/dovecot.key
- Правим конфигурационный файл «
/etc/dovecot/dovecot.conf
»- protocols = imaps pop3s
- ssl_disable = no
- ssl_cert_file = /etc/dovecot/ssl/dovecot.crt
- ssl_key_file = /etc/dovecot/ssl/dovecot.key
- Перезапускаем Dovecot
# /etc/init.d/dovecot restart
- Проверяем работу сервера с сертификатом
$ openssl s_client -connect mail.pupkin.ru:imaps -debug
Если все корректно настроили в ответ выйдет куча текста с диагностикой устанавливаемого защищенного соединения.
В конце у меня вышло-----END CERTIFICATE-----
subject=/C=RU/ST=Moscow Region/L=Moscow/O=Pupkin & Co./OU=IT Department/CN=mail.pupkin.ru/emailAddress=vasya@pupkin.ru
issuer=/C=RU/ST=Moscow Region/L=Moscow/O=Pupkin & Co./OU=IT Department/CN=mail.pupkin.ru/emailAddress=vasya@pupkin.ru
---
No client certificate CA names sent
---
SSL handshake has read 1684 bytes and written 316 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 13053ADF84C8157032B21A241E46398D4837A38F9AAA86095E32F1FDB55B704A
Session-ID-ctx:
Master-Key: 5CFEF98B3BF13B13C0D8BD98EDD74D827847FE2D6B2240F4BE083C54B696681901829BFC35D838FB7F64D96CA815C7AA
Key-Arg : None
Start Time: 1224018874
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
--- - Настраиваем почтовый клиент на работу по
pop3s
/imaps
(порты 995 и 993 соответственно)
четверг, 2 октября 2008 г.
Локальное зеркало обновлений NOD32 в Ubuntu
- Ставим
wget
,bsdmainutils
,unrar
,apache2
$ sudo apt-get install wget bsdmainutils unrar apache2
- Скачиваем архив со скриптами тут.
- Создаем директорию веб-зеркала и пользователя
www-nod32
$ sudo mkdir -p /www/nod32-updates
$ sudo adduser --home /scripts/NOD32 --no-create-home --shell /bin/bash --disabled-password www-nod32
$ sudo chown -R www-nod32:www-nod32 /www/nod32-updates - Распакуем скачанный архив в
/scripts
(должна появиться директорияNOD32
) - Меняем владельца директории
$ sudo chown -R www-nod32:www-nod32 /scripts/NOD32/mirror
- Правим
updates3.sh
- # Путь к скриптам
- path_prog=/scripts/NOD32
- # Путь до баз на веб
- path_html=/www/nod32-updates
- Правим
NOD32_3UPDATE.sh
- # Путь к базам данных
- PATHN=/scripts/NOD32/mirror
- # Имя пользователя (для беcплатных серверов - пусто)
- login_name=
- # Пароль (для беcплатных серверов - пусто)
- password=
- # Адреса платных серверов обновлений (адреса дб без /nod_upd)
- #URLN=http://89.202.157.136
- #URLN=http://89.202.157.137
- #URLN=http://89.202.157.138
- #URLN=http://89.202.157.139
- #URLN=http://www.nod32.com
- #URLN=http://u20.eset.com
- #URLN=http://89.202.157.139
- #URLN=http://u20.eset.com
- # Адреса бесплатных серверов обновлений
- # Оставляю без изменения, т.к. не знаю на каких серверах будут
- # лежать обновления
- URLN=http://ved.metroland.ru/updates/nod32/
- Проверим работу скрипта
$ sudo -u www-nod32 /scripts/NOD32/update3.sh
Apache
- Создадим новый
VirtualHost
# cat > /etc/apache2/sites-available/nod32-updates
- <VirtualHost *>
- DocumentRoot /www/nod32-updates
- ServerName nod32-updates.your.domain.ru
- CacheNegotiatedDocs On
- ErrorLog /var/log/apache2/nod32-updates.your.domain.ru-error_log
- CustomLog /var/log/apache2/nod32-updates.your.domain.ru-access_log common
- <Directory "/www/nod32-updates">
- Options FollowSymLinks -Indexes
- AllowOverride None
- </Directory>
- </VirtualHost>
# ln -s ../sites-available/nod32-updates /etc/apache2/sites-enabled/050-nod32-updates
- Перезагрузим Apache с новыми настройками
$ /etc/init.d/apache2 restart
Настроим
crontab
$ sudo crontab -u www-nod32 -eДобавим строку
По мотивам статьи на сайте www.volmed.org.ru
- 0 8,13,17 * * * /scripts/NOD32/update3.sh
пятница, 12 сентября 2008 г.
Доступ к серверу, прикрытому неподконтрольным брандмауером.
Вызвался настроить школьный сервер своему другу. В сельскую школу, где он работает, в рамках общероссийской программы провели интернет и там встал вопрос, как проконтролировать сетевую активность новоявленных интернет-пользователей (в лице школьников). Заодно привести в порядок локальную сеть школы.
Под сервер оперативно выделили компьютер. В выборе операционной системы остановились на Ubuntu. Но я, так как находился в километрах двухстах, нуждался в удаленном доступе. Проконсультировал через аську установку ОС и настройку удаленного доступа по ssh. Дальше меня ждал неприятный сюрприз – невозможность прямого соединения с сервером.
Решение было найдено в man-странице ssh. Спасением стали ключ «-R
», создающий туннель c порта удаленной машины на локальный порт, и подконтрольный мне сервер («MY
»), доступный со школы («SCHOOL
»).
- На «
MY
» создаем пользователя «user_my
» и задаем ему пароль.
SCHOOL
»- Создаем пользователя «
user_school
» и добавляем его в список пользователейsudo
. - Устанавливаем
openssh-server
иscreen
$ sudo aptitude install openssh-server screen
- Запускаем сервер SSH
$ sudo /etc/init.d/ssh start
- В домашней папке нового пользователя создаем скрипт «
~/bin/remote-access.sh
»
Сделаем скрипт исполняемым- #!/bin/sh
- screen -d -m -S remote-access -- \
- sh -c 'while true; \
- do ssh -R 2222:localhost:22 -C \
- user_my@my.server.ru; done'
$ chmod +x ~/bin/remote-access.sh
Данный скрипт создаёт фоновую сессиюscreen
и устанавливает ssh-соединение с «MY
». - Создаем ключ беспарольной аутентификации. Пароль (passphrase) для ключа не задается. Нужен для скрипта «
remote-access.sh
»$ ssh-keygen -b 2048
Копируем ключ с «SCHOOL
» на «MY
»$ ssh-copy-id user_my@my.server.ru
- Добавляем задание для cron, чтобы соединение с «
MY
» устанавливалось сразу после включения «SCHOOL
»$ crontab -e
- @reboot /home/user_school/bin/remote-access.sh
- Запустим наш скрипт на «
SCHOOL
»$ /home/user_school/bin/remote-access.sh
$ screen -ls
There are screens on:
5140.remote-access (Detached)
1 Socket in /var/run/screen/S-user_school. - На стороне «
MY
» должен появиться новый порт$ netstat -tln | grep :2222
tcp 0 0 127.0.0.1:2222 0.0.0.0:* LISTEN - Теперь мы можем соединиться с сервером «
SCHOOL
» по созданному туннелю$ ssh -p 2222 user_school@localhost
Удаленное управление сервером имён BIND9
Управление сервером имён BIND9 производится с помощью команды rndc
. С его помощью можно удаленно обновить (или принудительно перезагрузить) зоны, сбросить кеш сервера или заморозить обновление динамических зон.
Сперва настраиваем BIND9
- Сгенерируем ключ «
/etc/namedb/rndc.key
»# rndc-confgen -u bind -a -b 256
- Создадим конфигурационный файл «
/etc/namedb/rndc.conf
»- include "/etc/namedb/rndc.key";
- options {
- default-key "rndc-key";
- default-server 127.0.0.1;
- default-port 953;
- };
- Отредактируем файл «
/etc/namedb/named.conf
» и добавим
где «- include "/etc/namedb/rndc.key";
- controls {
- inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; };
- inet 192.168.0.xxx port 953 allow { 192.168.0.yyy; } keys { "rndc-key"; };
- };
192.168.0.xxx
» – ip-адрес сервера в сети, а «192.168.0.yyy
» – ip-адрес компьютера администратора. - Перезагружаем сервер имён
# /etc/rc.d/named restart
- Проверяем
# rndc reload
server reload successful
- Копируем с сервера файлы для
rndc
$ sudo scp -p admin@192.168.0.xxx:/etc/namedb/rndc.'*' /etc/namedb/
- Отредактируем файл «
/etc/namedb/rndc.conf
»- include "/etc/namedb/rndc.key";
- options {
- default-key "rndc-key";
- # default-server 127.0.0.1;
- default-server 192.168.0.xxx;
- default-port 953;
- };
- Проверяем
# rndc reload
server reload successful
- На стороне администратора сохраняем ключи с именами вроде «
/etc/namedb/server-name.key
» и редактируем- key "rndc-server-name-key" {
- algorithm hmac-md5;
- secret "super-secret-password-hash=";
- };
- В файл «
/etc/namedb/rndc.conf
» добавим строки для каждого сервера
«- include "/etc/namedb/server-name.key";
- server "server-name" {
- key "rndc-server-name-key";
- };
server-name
» может быть именем сервера или его ip-адресом. - Проверяем
# rndc -s server-name reload
Если опустить параметр «
server reload successful-s
» то будем «рулить» сервером, заданным по умолчанию в секции «options
»
Автор:
Князь
на
10:44
0
коммент.