Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера use Catalyst;/Записи в блоге |
use Catalyst;
Голосов: 1 Адрес блога: http://xeim.blogspot.com/ Добавлен: 2008-02-19 12:50:23 блограйдером Lurk |
|
Nullmailer — пересылка локальной почты на почтовый шлюз
2008-09-29 09:37:00 (читать в оригинале)Часто в организации имеется почтовый шлюз на базе одного этих почтовых серверов (MTA):
courier
exim
postfix
qmail
sendmail
Предположим что у нас имеется ещё один linux-сервер, с которого мы хотим отправлять почту. Конечно, можно использовать любую из вышеперечисленных программ, соответствующим образом настроенную для пересылки почты основному шлюзу. Но так лучше не делать, т.к. это большие, тяжелые и универсальные почтовые сервера, занимают много места в оперативной памяти, работают медлено и их труднее настроить. Для решения этой задачи существует класс программ, называемых relay-only MTA. Отличительные особенности этих MTA:
- Не умеют получать почту по SMTP. Исходящая почта формируется только локально через интерфейс командной строки утилиты sendmail.
- Доставка почты осуществляется заранее заданному удаленному SMTP серверу.
- Как правило, не умеют больше ничего. Вообще ничего из того, что вы можете вспомнить из функций больших MTA. За счет этого работают максимально быстро.
Представители этого класса программ:
esmtp
masqmail
nullmailer
nbsmtp
ssmtp
Я использую nullmailer, т.к.:
- Nullmailer очень прост в настройке. Фактически вся конфигурация, это несколько текстовых файлов в каждый из которых нужно поместить одну строчку.
- Nullmailer не настолько примитивен, чтобы после получения почты, сразу в этом же процессе программы пытаться доставить почту удаленному SMTP серверу. Вместо этого он помещает письмо в локальную очередь доставки, что даёт нам сразу два преимущества. Первое, доставка почты идет быстрее, т.к. управление возвращается вызвавшей отправку почты программе. Дальнейшая обработка почты идет из отдельного процесса-демона nullmailer. Второе, при проблемах в сети или на почтовом шлюзе почта никогда не будет потеряна и будет доставлена сразу после устанения неполадок.
Покажем, как работать с nullmailer, на примере операционной системы Ubuntu. Допустим, мы хотим отправлять почту с машины webserv.localnet через почтовый шлюз mail.localnet. Соответсвенно все действия выполняются на машине webserv.
Установка:
xeim@webserv:~$ sudo aptitude install nullmailer
Минимальная настройка:
В файл /etc/nullmailer/remotes помещаем адрес почтового шлюза — «mail.localnet smtp».
В файл /etc/nullmailer/adminaddr помещаем адрес системного администратора — «admin@mycompany.ru» для получения локальной почты, например для root@localhost или user@webserv.localnet.
Запуск:
xeim@webserv:~$ sudo /etc/init.d/nullmailer start
Пример отправки почты:
xeim@webserv:~$ sendmail -f somebody@mycompany.ru To: anybody@mail.ru Subject: test test
Журнал работы в /var/log/mail.log:
Sep 29 15:36:58 webserv nullmailer[14760]: Trigger pulled. Sep 29 15:36:58 webserv nullmailer[14760]: Rescanning queue. Sep 29 15:36:58 webserv nullmailer[14760]: Starting delivery, 1 message(s) in queue. Sep 29 15:36:58 webserv nullmailer[14760]: Starting delivery: protocol: smtp host: mail.localnet file: 1222663016.14762 Sep 29 15:37:04 webserv nullmailer[14760]: smtp: Succeeded: 250 ok 1222663024 qp 2803 Sep 29 15:37:04 webserv nullmailer[14760]: Sent file. Sep 29 15:37:04 webserv nullmailer[14760]: Delivery complete, 0 message(s) remain.
Если мы видим такие строки, значит сообщение передано почтовому шлюзу. Дальше это уже его забота — доставить сообщение получателю.
Таким образом, с использованием nullmailer возможно просто организовать отправку электронной почты через почтовый сервер организации.
Windows scripting: отправка электронной почты
2008-08-19 04:47:00 (читать в оригинале)К сожалению, в реальной жизни системному администратору приходится работать не только с unix-подобными системами. Иногда нужно решать задачи системного администрирования на плохо приспособленных и слабодокументированных операционных системах семейства windows. О таких хорошо зарекомендовавших себя инструментах как bash, perl или даже простой grep говорить не приходится. Что же мы имеем в наличии? Фактически имеется технология Windows Script Host с возможностью писать скрипты на языках JScript и VBScript. Мда, ну и выбор... и чтобы усугубить глубину собственного падения далее будем использовать язык VBScript.
Задача. Довольно часто встречается ситуация, когда скрипт должен уведомить администратора по электронной почте о наступлении какого-либо события или ситуации. Для примера напишем скрипт, посылающий уведомление о загрузке windows сервера.
Теория. Составной частью оперционных систем windows 2000/xp/2003 является динамическая библиотека сdosys.dll. Эта библиотека выдрана из почтового сервера MS Exchange и её функциональность сильно урезана. Тем не менее, с ее помощью можно сформировать сообщение электронной почты и отправить его внешнему почтовому серверу (MTA). Называется это счастье «CDO for Windows 2000», по ссылке доступна подробная документация из MSDN.
Решение. Исходный код скрипта email_notify.vbs:
Set email = CreateObject("CDO.Message") With email.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _ = "mail.localnet" .Update End With email.From = "robot@mycompany.ru" email.To = "admins@mycompany.ru" Set wshNetwork = WScript.CreateObject("WScript.Network") email.Subject = wshNetwork.ComputerName & " включен" email.Textbody = "" email.TextBodyPart.charset = "koi8-r" email.Send
Надеюсь, вам не составит труда пробится через синтаксис VBScript. Сам скрипт короткий и достаточно прозрачный для понимания. В основном используются методы объекта CDO.Message, они документированы по приведенной выше ссылке. Конечно, по сравнению с linux реализацией той же функциональности:
echo "" | mailx -s "`hostname` is up" admins@mycompany.ru
мы получили монстроподобного уродца, но тут уж ничего не поделаешь, такова участь несчастных администраторов windows.
На этом собственно задача отправки электронных писем из windows скриптов решена. По двойному клику на файле email_notify.vbs скрипт выполнится. Однако, нам еще осталось рассмотреть тонкий момент запуска скрипта при загрузке операционной системы. Ярлык на такой скрипт нельзя помещать в меню «Startup» («Автозагрузка»). Ведь такие ярлыки обрабатываются не при загрузке операционной системы, а при начале сеанса конкретного пользователя. По той же причине не подходят и прочие места автозапуска, которые в большом количестве могут быть обнаружены на просторах реестра windows. Некорректно такой скрипт запускать и как системную службу. Вот правильное решение:
Выполняем команду «Start > Run...» и вводим магическую команду «gpedit.msc»:
В открывшемся окне с заголовком «Group Policy Object Editor» выбираем ветку «Local Computer Policy > Computer Configuration > Windows Settings > Scripts (Startup/Shutdown)»:
Дважды кликаем на элемент «Startup» в правой части окна и появляется диалоговое окно «Startup Properties»:
Нажимаем кнопку «Add...». Во вновь отрывшемся диалоговом окне «Add a Script» задаем полный путь к нашему скрипту email_notify.vbs. Официально рекомендованный путь для размещения загрузочных скриптов — «C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup».
Нажимаем кнопку «OK», чтобы закрыть диалоговое окно «Add a Script». В списке скриптов диалогового окна «Startup Properties» появляется новый скрипт автозапуска.
Нажимаем кнопку «OK», чтобы закрыть диалоговое окно «Startup Properties». Закрываем программу «Group Policy Object Editor». Все, можно проверять запуск скрипта при загрузке.
Выводы. Не смотря на то, что вам придется писать уродливые скрипты на бейсике, а также не помешают навыки скоростного кликанья мышкой, операционная система windows худо-бедно поддается автоматизации системного администрирования.
IP прокси средствами фаервола Linux
2008-07-22 10:57:00 (читать в оригинале)Здесь я покажу пример проксирования IP пакетов средствами межсетевого экрана операционной системы Linux.
Как известно, фаервол в Linux один — netfilter. И так как он давно встроен в ядро linux, то не понадобится устанавливать никаких дополнительных программ. Используемый дистрибутив Linux также не имеет значения.
Сначала несколько слов о том, зачем все это нужно. Например у нас есть две сети: «Сеть A» и «Сеть B» соединенные linux-маршрутизатором. Компьютеру клиента из «Сети A» необходимо получить доступ к серверу в «Сети B». Причем обе сети имеют сложную организацию, не являются простыми ethernet сегментами. У нас имеется контроль над компьютерами клиента, сервером и маршрутизатором. Над остальными частями сетей контроль отсутствует.
Проксирование ip трафика осуществляется с помощью следующих команд, выполняемых на linux-маршрутизаторе:
iptables -t nat -I PREROUTING \ -s 172.18.247.24 -d 172.18.55.17 \ -j DNAT --to-destination 192.168.19.3 iptables -t nat -I POSTROUTING \ -s 172.18.247.24 -d 192.168.19.3 \ -j SNAT --to-source 192.168.19.218
Первая команда создает правило фаервола, заставлюящее менять адрес назначения (destination) пакетов на адрес сервера в «Сети B». Второй вызов iptables меняет адрес источника пакетов (source) на адрес маршрутизатора в «Сети B».
С компьютера клиента нужно будет обращаться на ip адрес маршрутизатора. Например использовать URL http://172.18.55.17 или выполнить команду:
ping 172.18.55.17
Фактически же на запросы будет отвечать не маршрутизатор, а сервер. Причем со стороны сервера будет казаться что запросы поступают от ip адреса маршрутизатора в «Сети B», т.е. от 192.168.19.218. Таким образом в каждой из сетей будут бегать пакеты только между разрешенными хостами в данной сети и все будут жить долго и счастливо.
Развертывание типового (эталонного) образа Ubuntu Linux
2008-07-04 03:24:00 (читать в оригинале)В конторе периодически закупаются новые компьютеры и сотрудникам IT-отдела приходится отрываться от более интересных дел и заниматься рутиной в виде установки и настройки операционной системы. Установка Ubuntu традиционным способом с помощью компакт-диска, установка драйверов, обновлений и дополнительных программ из интернета, настройка всего занимают слишком много времени. Одним из способов оптимизации процесса является создание типового образа операционной системы и затем быстрое его развертывание на новых компьютерах.
Создание эталонного образа.
Прежде всего необходимо создать эталонный образ Ubuntu. Для этого нам потребуется эмулятор виртуальных машин, например VirtualBox или VMWare. Далее:
- Устанавливаем Ubuntu в виртуальной машине.
Настраиваем установленную операционную систему. Например так:
- включить основные и дополнительные репозитарии и произвести обновление пакетов;
- установить полную локализацию системы;
- установить мультимедийные кодеки;
- установить пакеты с драйверами для видео карт nvidia и ati;
- установить flash плугин для браузера;
- установить плугин для открытия документов MSOffice 2007 (*.docx и др.) в OpenOffice;
- установить необходимые программы и утилиты: ssh сервер, vnc сервер, unrar, wine, virtualbox и много чего ещё...;
- указать сетевые настройки, например адреса dns и ntp серверов, маршруты;
- отключить загрузку не нужных демонов;
- отключить запуск не нужных заданий по расписанию cron;
- любые другие программы и/или настройки.
Настройка профиля пользователя по умолчанию. Для этого создаем пользователя, например testuser, логинимся под ним и производим настройку. Например:
- отключить эффекты рабочего стола;
- разрешить удаленный доступ к рабочему столу (vnc) и задать пароль для него;
- прописать настройки соединения в браузере: проски-сервер и прочее;
- в редакторе меню отключить запуск некоторых программ, например подменю "Игры";
- в настройках сеанса, отключить запуск не нужных программ;
- любые другие настройки.
После завершения настройки профиля, копируем содержимое /home/testuser в /etc/skel. Делаем владельцом пользователя root:
sudo chown -R root:root /etc/skel
Просматриваем директорию /etc/skel, удаляем все лишнее, заменяем в файлах абсолюный путь /home/testuser на относительный ~/.
Теперь при создании нового пользователя в его домашнюю директорию будет копироваться содержимое /etc/skel.
Для создания образа будем использовать livecd дистрибутив System Rescue CD.
После загрузки, поднимаем сеть:
sysresccd ~ # net-setup
Монтируем директорию по сети, куда мы будем копировать образ:
sysresccd ~ # mkdir /mnt/etalon
пример для sftp:
sysresccd ~ # mount -t fuse sshfs#login@192.168.0.1:/etalon /mnt/etalon
пример для smb:
sysresccd ~ # mount -t cifs -o user=login //192.168.0.2/etalon /mnt/etalon
Далее, монтируем жесткий диск виртуальной машины:
sysresccd ~ # mkdir /mnt/sda1 sysresccd ~ # mount /dev/sda1 /mnt/sda1
Создаем образ обычной утилитой tar:
sysresccd ~ # cd /mnt/sda1 sysresccd sda1 # tar cvzf /mnt/etalon/etalon-ubuntu8.04-20080704.tar.gz *
Образ операционной системы создан. У меня файл образа занимает около 1,5 Гб. Остается только записать его на dvd болванку.
Развертывание эталонного образа на новом компьютере
Развертывание образа эта операция ради которой и затевалось создание самого образа. Здесь нас снова поможет незаменимый инструмент системного администратора System Rescue CD. Загружаем новый компьютер с его помощью, при загрузке вводим опции, чтобы после можно было освободить dvd привод:
rescuecd docache doeject
Вытаскиваем livecd, устанавливаем в привод болванку с образом. Далее:
Разметка диска. Например: все место под корневой раздел, файловая система reiserfs, под swap 2ГБ:
sysresccd ~ # сfdisk /dev/sda sysresccd ~ # mkfs.reiserfs /dev/sda1 sysresccd ~ # mkswap /dev/sda2
Монтируем диски и разворачиваем эталон:
sysresccd ~ # mkdir /mnt/sda1 sysresccd ~ # mount /dev/sda1 /mnt/sda1 ... sysresccd ~ # mkdir /mnt/etalon sysresccd ~ # mount /dev/cdrom /mnt/etalon ... sysresccd ~ # tar -С /mnt/sda1 xvzf /mnt/etalon/etalon-ubuntu8.04-20080704.tar.gz
Правим файлы /mnt/sda1/etc/fstab и /mnt/sda1/boot/grub/menu.lst чтобы UUID метки дисков соответствовали новым томам. UUID метки можно узнать с помощью команды:
sysresccd ~ # blkid
Устанавливаем загрузчик grub в mbr область нового диска:
sysresccd ~ # grub-install --root-directory=/mnt/sda1 /dev/sda
Если все прошло успешно, то мы уже можем загрузить с операционную систему с жесткого диска. Дальше:
Сконфигурируем видео драйвер (в эталоне должен быть установлен универсальный драйвер vesa):
administrator@etalon:~# sudo dpkg-reconfigure -phigh xserver-xorg
После перезапуска иксов (Ctrl-Alt-Backspace) должен подняться нормальный видео драйвер.
Сменим имя хоста и сетевые настройки:
administrator@etalon:~# sudo gedit /etc/hostname administrator@etalon:~# sudo gedit /etc/network/interfaces
Компьютер готов к работе. После установки на рабочее место пользователя ещё потребуется настроить принтера, но это уже отдельная история.
После приобретения некоторого опыта установка операционной системы на новый компьютер занимает около 20 минут. Конечно предварительно должно быть потрачено время на создание эталонного образа и периодическое его обновление, но при больших количествах новых компьютеров оно окупается. Данный способ успешно применяется уже 1,5 года.
Установка 1С Предприятие 7.7 на WINE@Etersoft
2008-06-03 07:24:00 (читать в оригинале)Установка 1С Предприятие 7.7 (сетевая версия) на Ubuntu Linux Desktop 8.04 LTS с использованием коммерческой версии WINE@Etersoft SQL 1.0.8.
По большому счету, используемый дистрибутив Linux не имеет значения, но желательно чтобы он был в списке поддерживаемых. Предполагается что установка не эмулятора wine и драйвера ключей защиты Aladdin HASP 4 уже произведена:
admin@zam:~$ wine --version WINE@Etersoft 1.0 SQL (1.0.8), registration number is XXXX-XXXX. Legality check is available on the page http://sales.etersoft.ru/product/. admin@zam:~$ sudo /etc/init.d/haspd status [sudo] password for admin: Hardware protection keys support bundle. Etersoft (c) 2007 : haspd.init,v 1.102 2007/11/15 17:39:03 lav Exp $ Aladdin HASP 4/HL driver status: -e kernel module aksparlnx is loaded -e aksusbd is running -e winehasp is running -e hasplm is running Daemon version: 1.8.1 - key API (USB) version: 3.85, key API (parallel driver) version: 3.86 Smartkey 3 USB/LPT driver status: -e skeyd is running skeymon v11.5 - Smartkey server monitor Copyright (C) 2004 Eutron==================================================== Smartkey server statistics ==================================================== Opens keys: 0 servers: 1 ==================================================== Messages received: 0 sent: 0 error: 0 ==================================================== Clients logged: 0 removed: 0 ==================================================== SafeNet Sentinel status: -e usbdaemon is running -e SntlKeysSrvrlnx is running
Обязательно копируем дистибутив 1С в директорию диска C: — ~/wine_c. В противном случае можем нарваться на сообщение об ошибке:
Устанавливаем 1C Предприятие:
admin@zam:~$ wine ~/wine_c/1s/P770025/entrm/DISK1/setup.exe
Дальше установка идет обычным способом, как в Windows, просто серия скриншотов:
Устанавливаем конфигурацию, например такую:
admin@zam:~$ wine ~/wine_c/1s/conf/482/R770482/DISK1/setup.exe
Ещё скриншоты:
Далее запускаем из стартового меню «Приложения >> Wine >> Программы >> 1С Предприятие 7.7 >> 1С Предприятие» Первый запуск делаем в монопольном режиме и отвечаем на все задаваемые вопросы. После этого можно запускать 1С в обычном пользовательском режиме.
admin@zam:~$ wine "C:\\Program Files\\1Cv77\\BIN\\1cv7"
+265 |
299 |
MicheL1102 |
+238 |
257 |
Темы_дня |
+230 |
258 |
Bisdiv.com |
+220 |
259 |
Дневник |
+177 |
284 |
Пофигист |
-2 |
149 |
Журнал пользователя alexfox2011@mail.ru |
-4 |
147 |
Auto Motive Group Ltd. |
-6 |
240 |
Kia K3 | Cerato - Forte |
-8 |
119 |
News Formula 1 |
-10 |
135 |
BMW-guide |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.