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

Почтовый сервер на *NIX

Определения MX-записей:
host -t mx www.ru
Более подробно:
nslookup -type=mx www.ru
Чем выше число MX, тем ниже его приоритет.

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

Backup с помощью RSYNC

/usr/local/etc/rc.d/rsyncd reload Перезапуск на freeBSD
rsync -avz /etc /local/backup/etc/ Синхронизирует данные с /etc с /lacal/backup/etc
rsync -avz /etc -e "ssh -p 1984" vital@192.168.7.1:/home/vital/192.168.7.24 Синхронизирует данные на 192.168.7.1 по ssh на порту 1984, под пользователем vital
Для Backup системы 192.168.7.24(suse) на 192.168.7.1(freeBSD) необходимо:
1. Сделать ssh без пароля с 192.168.7.24 на 192.168.7.1
На машине 192.168.7.24 генерируем ключи(я сделал root):
ssh-keygen -t rsa Не вводя ни каких паролей по запросу.
2. Открытый ключ /rootl/.ssh/id_rsa.pub копируем на 192.168.7.1
3. На 192.168.7.1 выполняем:
cat /home/vital/files/id_rsa.pub >> /home/vital/.ssh/authorized_keys
Теперь будет безпаролевый вход.
4. Создаю скрипт для сжатия /etc каталога
tar'ом и синхронизация архива с backup на архивном сервере:
#!/bin/sh
CUR_DATE=`/bin/date +%m-%d`
RSYNC="/usr/bin/rsync"
TAR="/bin/tar"
$TAR -czf /local/backup/7.24_$CUR_DATE.tar.gz /etc/*
$RSYNC -avz "/local/backup/7.24_$CUR_DATE.tar.gz" -e "ssh -p 1984" vital@192.168.7.1:/home/vital/backup
Архивируется архив по дате дня и месяца
5. Вношу задание в cron:
45 19 1 * * /local/vital/sh/rsync.sh
Задание будет выполняться кажое первого числа месяца, в 19:45

Аналогично проделываю и на другом сервере, где установлен freeBSD.
Небольшие отличия в rsync.sh
#!/bin/sh
CUR_DATE=`/bin/date +%m-%d`
RSYNC="/usr/local/bin/rsync"
TAR="/usr/bin/tar"
$TAR -czf /home/vital/backup/7.1_$CUR_DATE.tar.gz /etc/* /usr/local/*
$RSYNC -avz "/home/vital/backup/7.1_$CUR_DATE.tar.gz" -e "ssh -p 1984" vital@192.168.7.24:/local/backup
ВСЁ БЛАГОПОЛУЧНО РАБОТАЕТ ))
Cсылки:
http://iar.spb.ru/rsync
http://www.nestor.minsk.by/sr/2003/02/30209.html

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

Сброс пароля на root

С похмелья меняли пасс на рута, а потом нельзя под рутом зайти? Не беда...

Загрузитесь с диска, затем выполните команды:
Код:
# mkdir /media/myhard
# mount -t ext3 /dev/sda2 /media/myhard
# chroot /media/myhard
Здесь ext3 - файловая система на корневом разделе, а /dev/sda2 - раздел, куда монтируется /, узнать как он называется у Вас можно например командой fdisk -l /dev/sda.
Далее просто меняете пароль root-а (командой passwd).
Ссылки по теме
http://www.phn.nm.ru/articl_11.html
http://en.opensuse.org/Recover_Root_Password
http://ubuntueasy.com/administrirovanie/sbros-parolja-polzovatelja

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

DHCP на Linux с привязкой по MAC:
Установил dhcp v.3.0.6
Вначале прописал в /etc/sysconfig/dhcpd:
DHCPD _INTERFACE="eth0" # на каком интерфейсе будет сервис

Настройки /etc/dhcpd.conf:
authoritative; #main DHCP on Lan
ddns-update-style none;
option domain-name "west.lan";
option domain-name-servers 192.168.7.1, 195.14.50.1;
# Arenda IP 1 mount
default-lease-time 2592000;
max-lease-time 2592000;
log-facility local7;

subnet 192.168.7.0 netmask 255.255.255.0 {
#range 192.168.7.9 192.168.7.100; # не стал использовать
option routers 192.168.7.1;

host pc_02
{
hardware ethernet 00:04:61:A5:FD:09;
fixed-address 192.168.7.23;
}

host IN
{
hardware ethernet 00:1E:58:2C:32:94;
fixed-address 192.168.7.25;
}

host secretar
{
hardware ethernet 00:10:22:FF:59:C3;
fixed-address 192.168.7.10;
}

host sokolov
{
hardware ethernet 00:1E:58:45:6B:2C;
fixed-address 192.168.7.22;
}

host urist_artur
{
hardware ethernet 00:1E:8C:7E:AC:01;
fixed-address 192.168.7.90;
}
}

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

Установка и настройка squid

./configure --enable-delay-pools Конфигурация с поддержкой пулов
./configure --enable-arp-acl Конфигурация с поддержкой MAC адресов.
/usr/local/squid/sbin/squid -z При 1-м запуску создаем кеш для squid
/usr/local/squid/sbin/squid start Запускаем squid
ps -waux | grep squid Проверяем запущенный сквид
/usr/local/squid/sbin/squid -k reconfigure Перезагрузка конфигурации squid
Для прозрачного прокси:
ядро компилировать с опциями :
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_FORWARD_EXTENDED
options IPDIVERT

# отправляем всех на прозрачный squid
$cmd 050 fwd 127.0.0.1,3129 tcp from 192.168.7.0/24 to any 21,80,443,5190 out via re1
deny_info - выдает собственный текст

Задача:

Прокси сервер создан на базе squid+sarg
Общий ежемесячный выкупаемый трафик на интернет 3 Гб
10 сотрудников имеет доступ до интернета
Все сотрудники разбиты на 5 групп:
1. Полный доступ до интернета без ограничений и квот.
Леонид Александрович(192.168.7.88)
Ирина Николаевна(192.168.7.25)
2. Полный доступ до интернета с отключением развлекательных сайтов, без квот.
Менеджер(192.168.7.23)
Юрист 1 (192.168.7.90)
Юрист 2 (192.168.7.92)
Алексей Юрьевич(192.168.7.22)
3. Квотируемы полный доступ до интернета с отключением развлекательных сайтов.
Сист. администратор (192.168.7.24) квота-400 МБ
Секретарь(192.168.7.10) квота-400 МБ
4. Квотируемый доступ сотрудников с ограниченным кол-вом допустимых сайтов
Анна Евгеньевна(192.168.7.16) квота-400 МБ
Марина Николаевна(192.168.7.15) квота-400 МБ
5. Группа сотрудников, которым отключен интернет из-за перерасходования квоты.
Просмотр статистики происходит по адресу: http://192.168.7.1


Решение:
Мой /usr/local/squid/etc/squid.conf (внесены данные)

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8

#Allow admin full inet (I grups)
acl admin_users src "/usr/local/squid/etc/adminusers"

#Allow Users Inet in Office with restrict sait, but no quota (II grups)
acl inet_users src "/usr/local/squid/etc/internetusers"

#Allow Users Inet with restrict sait, with quota 500Mb(III groups)
acl quota_users src "/usr/local/squid/etc/quotausers"

#deny url
acl deny_url url_regex "/usr/local/squid/etc/denyurl"

#deny domain name
acl deny_domain dstdomain "/usr/local/squid/etc/denydomain"

#Restrict Inet for Users with quota 400Mb (IV grups)
acl inet_restrict src "/usr/local/squid/etc/restrictusers"
acl sait_restrict dstdomain src "/usr/local/squid/etc/restrictsait"

# Deny Inet for user which in quots(V grups)
acl deny_inet src "/usr/local/squid/etc/denyusers"

#Files for deny: video and sound
acl media urlpath_regex -i \.mp3$\.acf$\.wma$\.avi$\.mpeg$\.mpeg4$

# Files download
acl files urlpath_regex -i \.exe$\.rar$\.zip$

# pools
delay_pools 2
delay_class 1 1
delay_parameters 1 1000/1000
#acl files urlpath_regex -i \.exe$\.rar$\.zip$

#http_access allow files
http_access allow inet_users files
delay_access 1 allow files
delay_access 2 deny all
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
#
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 25 # SMTP
acl Safe_ports port 110 # Pop3
acl Safe_ports port 143 # IMAP
acl CONNECT method CONNECT

#Default:
# http_access deny all

# blocking banners
#acl nobanners src 0/0
#acl banners url_regex "/usr/local/squid/etc/banners.acl"
#http_access deny nobanners banners

##########################################
### I grups
#Allow Inet for admin grups
http_access allow admin_users

### II grups
# deny url for office all users
http_access deny inet_users deny_url

# deny domain
http_access deny inet_users deny_domain

# deny media files for inet_users
http_access deny inet_users media

# allow inet office users
http_access allow inet_users

### V grups
#Deny inet users
http_access deny deny_inet

### III grups
http_access deny quota_users deny_domain
http_access allow quota_users

### IV
http_access allow inet_restrict sait_restrict
http_access deny inet_restrict

http_access deny all
#############################################

Примечание: запрет домена легко обходится с помощью порталов free proxy, например, http://hidemyass.com/
____________
SARG
sarg --help Помощь по sarg'у
sarg -d 16/11/2008-18/11/2008 Создает отчет с 16.11 по 18.11

/usr/local/etc/sarg/sarg.conf:

language English

access_log /var/log/squid/access.log

graphs yes
graph_days_bytes_bar_color orange

output_dir /var/log/squid-reports #Куда выгружать отчеты html

per_user_limit /usr/local/squid/etc/denyusers 400 #quota 400 MB
__________________________________
Скрипт для crona:
#!/bin/sh
/bin/rm /usr/local/squid/etc/denyusers #Удаляем файл
denyusers, т.к. sarg только добавлет ip
/bin/rm -R /var/log/squid-reports/* #Удаляем отчеты sarg
CUR_DATE=`/bin/date +%d/%m/%Y`
#echo $CUR_DATE
/usr/local/bin/sarg -d 01/12/2008-$CUR_DATE #Создаем отчет sarg до сегодняшнего дня
/usr/local/squid/sbin/squid -k reconfigure #Перезапускаем squid, что бы применить настройки
__________________________________

Cron
00 9,11,13,15,17 * * * /sarg.sh # каждые 9,11,..,17 часов выполнять sarg.sh
__________________________________
Apache
Apache HTTP сервера устанавливается в /usr/local/etc/apache/httpd.conf
ServerAdmin you@your.address - Адрес, на который должны будут отправляться сообщения о проблемах с сервером.
DocumentRoot "/usr/local/www/data" - Каталог, внутри которого будут храниться документы. Здесь лучше указать на файлы SARGA.
#
/usr/local/sbin/apachectl start(stop/restart) Запуска APACHE
#
/usr/local/sbin/apachectl graceful Для перезапуска Apache без прерывания имеющихся соединений
Для запуска Apache при старте системы в /etc/rc.conf:
apache_enable="YES"
Проверка работы сервера:
telnet webserver 80
И ввести: HEAD
/ НТТР/1.0