понедельник, 2 июня 2008 г.

Описание назначения переменных sysctl

Описание назначения переменных sysctl

Простой сетевой сканер на shell (from http://ylsoftware.com/)

Этот скрипт не является полноценным сканером сетей, а просто даёт список адресов, отвечающих на ICMP-запросы (пинги). Листинг скрипта приведён ниже:

#!/bin/sh

NET=${1}

if [ -z ${NET} ]; then
echo 'Usage:'
echo ' scan.sh first_3_octets'
echo ''
echo 'Example:'
echo ' scan.sh 192.168.0'
echo ''

else
echo "Finding hosts in net ${NET}.0/24"
echo ''
echo 'Found hosts:'
for host in `seq 1 254`; do
if (ping -c 3 ${NET}.${host} > /dev/null 2> /dev/null) then
echo ${NET}.${host}
fi
done
fi

exit 0

воскресенье, 1 июня 2008 г.

Конвертирование изображений в Perl

use Image::Magick;
my $image = Image::Magick->new; #новый проект
my $x = $image->Read("photo.jpg"); #открываем файл jpg
$x = $image->Write("photo.png"); #Сохраняем изображение png.

Обработка изображений в ImageMagick

Масштабирование:
convert -resize 320x200 in.jpg out.jpg

Вырезание блока:
convert -crop 660x528+320+200 in.jpg out.jpg

Вращение на 90 градусов:
convert -rotate 90 image_0001.tiff output.tiff

Переворот верх-низ:
convert -flip me.jpg me_flipped.jpg
convert -flop me.jpg me_flopped.jpg

Создание уменьшенного варианта:
mogrify -sample 80x60 *.jpg
mogrify -format png -sample 15%x15% *.jpg

Создание одного PDF из группы картинок и наоборот:
convert *jpg allinone.pdf
convert allinone.pdf img.png

Добавление текста:
convert -font helvetica -fill yellow -pointsize 25 \
-draw 'text 100,250 "Nandi Hills, Bangalore"' \
image.png text.png

convert -font helvetica -fill yellow -pointsize 36 \
-draw 'text 100,250 "Nandi Hills, Bangalore"' \
-fill green -draw 'text 150,300 Beautiful' \
image.png text.png

Обрамление рамкой:
convert -bordercolor blue -border 5x5 pic001.png border001.png

Мозаика:
convert -page +15+30 1.png -page +49+60 2.png \
-page +52+58 3.png \
-background wheat -mosaic mosaic.png

2D Logo:
convert basic.png -fill blue -draw 'color 0,0 reset' \
basic.png +matte -compose CopyOpacity -composite \
-font Helvetica -pointsize 20 -fill white \
-gravity center -annotate 0x0 "Blue Pill" 2D.png

3D эффекты:
Расплывание:
convert basic.png -blur 0x4 -blur 0x4 -blur 0x4 -blur 0x4 \
+matte blurred.png

Тень:
convert blurred.png -shade 90x0 -normalize light.png
convert blurred.png -shade 90x180 -normalize dark.png

3D Logo:

convert \( light.png \( +clone -fx 'rand()' -threshold -1 \) \
+swap +matte -compose CopyOpacity -composite \) \
\( dark.png \( +clone -threshold 100% \) \
+swap +matte -compose CopyOpacity -composite \) \
-compose Over -composite high_lighting.png

convert 2D.png high_lighting.png -compose ATop -composite 3D.png

convert 3D.png \( +clone -fx 'rand()' +matte -shade 120x45 \
-fill gray -fill beige -tint 120 \) \
-insert 0 -flatten bg_3D.png

четверг, 29 мая 2008 г.

отключение sendmail в freebsd

Для полного отключения sendmail необходимо прописать
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

в /etc/rc.conf.

Если нужно отключить только сервис входящей почты sendmail, установить
sendmail_enable="NO"

в /etc/rc.conf.

sendmail в freebsd

Файлы настройки sendmail:
/etc/mail/access Файл базы данных доступа sendmail
/etc/mail/aliases Синонимы почтовых ящиков
/etc/mail/local-host-names Список хостов, для которых sendmail принимает почту
/etc/mail/mailer.conf Настройки почтовой программы
/etc/mail/mailertable Таблица доставки почтовой программы
/etc/mail/sendmail.cf Основной файл настройки sendmail
/etc/mail/virtusertable Таблицы виртуальных пользователей и доменов

/etc/mail/access - база данных доступа
пример:
cyberspammer.com 550 We do not accept mail from spammers
FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAY
После изменения этого файла для обновления базы данных вам потребуется запустить make в каталоге /etc/mail/.

/etc/mail/aliases - база данных алиасов
пример:
root: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"
Имя почтового ящика слева от двоеточия сопоставляется назначению(ям) справа. В первом примере производится простое сопоставление почтового ящика root почтовому ящику localuser, для которого затем опять будет произведен поиск в базе данных синонимов. Если совпадений не обнаружится, сообщение будет доставлено локальному пользователю localuser. В следующем примере приведен список рассылки. Почта на адрес ftp-bugs рассылается на три локальных почтовых ящика: joe, eric и paul. Удалённый почтовый ящик может быть задан в виде . В следующем примере показана запись почты в файл, в данном случае /dev/null. И в последнем примере показано отправление почты программе, в данном случае почтовое сообщение переправляется через канал UNIX® на стандартный вход /usr/local/bin/procmail.
После обновления этого файла вам потребуется запустить make в каталоге /etc/mail/ для обновления базы данных.

/etc/mail/local-host-names - база данных хостов, рассматриваемых sendmail'ом как локальных.
Поместить в этот файл любые домены или хосты, для которых sendmail должен принимать почту. Например, если этот почтовый сервер должен принимать почту для домена example.com и хоста mail.example.com, его файл local-host-names может выглядеть примерно так:
example.com
mail.example.com
После обновления этого файла необходимо перезапустить sendmail(8), чтобы он смог перечитать изменения.

/etc/mail/sendmail.cf - основной конфиг sendmail
Основной файл настройки sendmail может быть собран из макроса m4, определяющего возможности и поведение sendmail.
Для применения изменений после правки файла необходимо перезапустить sendmail.

/etc/mail/virtusertable
Файл virtusertable сопоставляет виртуальные почтовые домены и почтовые ящики реальным почтовым ящикам. Эти почтовые ящики могут быть локальными, удаленными, синонимами, определенными в /etc/mail/aliases, или файлами.
пример:
root@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joe

воскресенье, 25 мая 2008 г.

mpd в freebsd (vpn-подключение)

1. Настроить конфигурацию сетевых параметров по DHCP через внешний сетевой интерфейс.
Для этого в файл /etc/rc.conf необходимо внести строчку:

ifconfig_ifname="DHCP"

где ifname - название интерфейса (например, fxp0, xl0, rl0 и т. п.).

Внимание! Ваш DHCP-клиент должен ументь воспринимать статические маршруты, выдаваемые сервером! Если это конфигурируемая опция, то она должна быть обязательно включена.

2. Установить пакет mpd с помощью утилиты pkg_add или (при наличии другого соединения с Интернет, либо непосредственно с адреса ftp://ftp.chelcom.ru/pub/FreeBSD/distfiles/) из портов:
# cd /usr/ports/net/mpd
# make install clean

3. Скачать конфигурационные файлы с адреса ftp://ftp.chelcom.ru/pub/FreeBSD/configs/mpdconf.tar и распаковать их в каталог /usr/local/etc/mpd:
# cd /usr/local/etc/mpd

# fetch ftp://ftp.chelcom.ru/pub/FreeBSD/configs/mpdconf.tar
# tar -xf mpdconf.tar

4. Отредактировать файлы mpd.conf и mpd.secret, заменив слова username и password на свой логин и пароль.

5. Включить автозапуск mpd. Для этого нужно сделать следующее:
# cp /usr/local/etc/rc.d/mpd.sh.sample

/usr/local/etc/rc.d/mpd.sh

6. Запустить mpd и удостовериться в работоспособности:
# /usr/local/etc/rc.d/mpd.sh start
mpd

# ifconfig ng0

ng0: flags=88d1 mtu 1300
inet 81.20.170.28 --> 81.20.169.252 netmask 0xffffffff

Приложение (листинги конфигурационных файлов)

mpd.conf:
default:

new -i ng0 intsv_vpn intsv_vpn
set iface disable on-demand

set iface up-script /usr/local/etc/mpd/link-up

set iface down-script /usr/local/etc/mpd/link-down

set link no acfcomp protocomp

set iface idle 0

set iface disable proxy-arp

set bundle disable multilink

set bundle authname username

set link accept pap chap

set link disable pap chap

set ipcp yes vjcomp

open iface

mpd.secret:
username password

mpd.links
intsv_vpn:

set link type pptp

set pptp peer vpn.chelcom.ru

set pptp enable originate outcall

linkupdown:
#!/bin/sh

VPNAME=vpn.chelcom.ru
PREFIX=/usr/local

export PATH=/sbin:/bin:/usr/bin:/usr/sbin:${PREFIX}/bin:/${PREFIX}/sbin

start() {

netstat -rn | grep '^default' | awk '{print $2}' > /tmp/defaultroute

for serverip in `host vpn | awk '{print $4}'`

do

route add -host $serverip `cat /tmp/defaultroute`

done

route change default $1 -ifp ng0

}

stop() {

route change default `cat /tmp/defaultroute`

for serverip in `host vpn | awk '{print $4}'`

do

route delete -host $serverip

done

}

link-up:
#!/bin/sh

. /usr/local/etc/mpd/linkupdown

start $4

exit 0

link-down:
#!/bin/sh

. /usr/local/etc/mpd/linkupdown

stop

exit 0

sudo кратко

Программа для редактирования списка пользователей в sudo - visudo.
Ситаксис записи :
пользователь хост =(фактический пользователь) команда
Примеры:
peter host1.domain.tld=(bind) /usr/sbin/rndc,/usr/sbin/named
Для задания длинного списка команд или пользователей используется команда alias. Алиас может использоваться вместо соответствующей записи любой строки конфига:
User_Alias ADMINS=usr1,usr2
User_Alias WEBMASTERS=usr1,usr3
Runas_Alias DAEMONS=bind,www
Host_Alias WEBSERVERS=www.domain.tld,web.domain2.tld
Cmd_Alias PROCS=/bin/kill,/usr/sbin/skill,/usr/bin/top
Cmd_Alias APACHE=/usr/local/apache/bin/apachectl
WEBMASTERS WEBSERVERS=(www) APACHE
ADMINS ALL=(DAEMONS) ALL

Для системных групп разрешения даются так:
%wwwadmin WEBSERVERS=(www) APACHE
Для запуска команд без ввода пароля используется флаг NOPASSWD:
usr ALL=(ALL) NOPASSWD: PROCS

Для автоматического запуска программ при старте системы из rc-файлов:
(cd /usr/local/mysql; sudo -u mysql ./bin/safe_mysqld &)
sudo -u www /usr/local/apache/bin/apachectl start
Для того, чтобы это работало, нужно, чтобы в конфиге sudo была строка root ALL=(ALL) ALL

пятница, 16 мая 2008 г.

Конфиг и компиляция ядра FreeBSD

1. cd /usr/src/sys/$ARCH/conf
2. cp GENERIC MYKERN
3. ee MYKERN
4. mv MYKERN /root/kernels/
5. ln -s /root/kernels/MYKERN MYKERN
6. cd /usr/src/sys/$ARCH/conf
7. config MYKERN
8. cd ../compile/MYKERN
9. make depend
10. make
11. make install
12. shutdown -r now

среда, 14 мая 2008 г.

Консоль восстановления WinXP

С узла http://support.microsoft.com/kb/307654/ru:
Для установки консоли восстановления выполните следующие действия.
1. Вставьте компакт-диск Windows ХР.
2. Нажмите кнопку Пуск и выберите команду Выполнить.
3. В окне Открыть введите команду d:\i386\winnt32.exe /cmdcons, где d – буква дисковода компакт-дисков.
4. Появится диалоговое окно программы установки Windows с кратким описанием консоли восстановления. Чтобы подтвердить установку, нажмите кнопку Да.
5. Перезагрузите компьютер. При последующем запуске компьютера в меню загрузки будет присутствовать пункт «Консоль восстановления Microsoft Windows».
Кроме того, установить консоль восстановления можно из общей сетевой папки, указав путь в формате UNC (Universal Naming Convention).