Зеркало для Symantec Offline Updates
Многие знают о софтварных продуктах компании Symantec. Антивирус разработанный этой компанией используется у нас на работе. Оличительные черты данного антивируса пожалуй невсех впечатлят, но всеже:
- вменяемая корпоративная лицензия
- возможность централизированного управления и мониторинга
- неслабая тормознутьсть в работе
Есть еще много всяких плюшек и радостей. Мне, к примеру, нравится наличие так называемых Offline Updates. Это обычные exe файлы, предназначенные для обновления антивируса на машинах которые не имеют доступа к интернету. Такие экзешнички можно скачать из офсайта symantec или с ftp. Для того чтобы иметь актуальную версию этих обновлений — приходилось частенько их качать (они обновляются примерно раз в сутки). Поэтому сама собой появилась задача:
- сделать на своей машине зеркало нужных мне директорий с симантековского ftp
- роздать доступ к ним в сети по samba (поскольку клиенты восновном с WinXP)
Учитывая особенности моего доступа в интернет, нужно чтобы скрипт работал через http прокси-сервер http://my.proxy:3128 (тем у кого прямой доступ в интернет необходимо просто закомментировать первых 6 строчек скрипта, там где задаются переменные ftp_proxy и http_proxy)
Ну чтож, покопавшись немного с bash, родился вот такой скрипт под названием /root/scripts/symantec_update.sh
if [ -z ${ftp_proxy} ]; then
export ftp_proxy="http://my.proxy:3128"
fi
if [ -z ${http_proxy} ]; then
export http_proxy="http://my.proxy:3128"
fi
#URL="ftp://ftp.symantec.com/AVDEFS/symantec_antivirus_corp/"
WORK_DIR="/opt/symantec"
[ -d ${WORK_DIR} ] || mkdir ${WORK_DIR} ; mkdir ${WORK_DIR}/{SAV,SEP}
### <- Remove ALL OLD MD5 Summs -> ###
find ${WORK_DIR} -atime +1 -exec rm '{}' \;
cd ${WORK_DIR}
check_md5 () {
MD5_SYMANTEC="md5-hash.txt"
FILES=`ls |grep .exe`
for FILE in ${FILES}
do
if [ -f ${FILE/exe/md5} ]; then
continue
else
MD5_ORIG=`grep ${FILE} ${MD5_SYMANTEC} |tr [A-Z] [a-z] |cut -d' ' -f1`
echo "${MD5_ORIG} ${FILE}" > "${FILE/exe/md5}"
md5sum --check --status "${FILE/exe/md5}"
# echo "For file ${FILE} exit status = $?"
if [ $? -ne 0 ]; then
echo "${FILE} --- bad checksum !!!" > ../md5sum_${FILE}.log
else
[ -f ../md5sum_${FILE}.log ] && rm ../md5sum_${FILE}.log
fi
fi
done
}
get_updates_SAV () {
lftp -c 'open -e "mirror -e -c --no-recursion -i -x86.exe -i md5-hash.txt" hftp://ftp.symantec.com/AVDEFS/symantec_antivirus_corp'
}
get_updates_SEP () {
lftp -c 'open -e "mirror -e -c --no-recursion -i -v5i32.exe -i md5-hash.txt" hftp://ftp.symantec.com/AVDEFS/symantec_antivirus_corp'
}
cd SAV
get_updates_SAV
check_md5
cd ../
cd SEP
get_updates_SEP
check_md5
cd ../
Возможно, он далек от совершенства, но главное работает!
Добавляем запись в crontab для автоматического запуска каждых 8 часов в 53 минуты
Конфиг /etc/samba/smb.conf для роздачи этих двух директорий по samba выглядит так:
realm = MY.DOMAIN
netbios name = black
workgroup = WORK
security = ads
idmap uid = 10000-20000
idmap gid = 10000-20000
disable spoolss = Yes
show add printer wizard = No
template shell = /bin/bash
template homedir = /home/%D/%U
winbind use default domain = yes
[Symantec Updates]
comment = Symantec Offline Updates
path = /opt/symantec
browseable = yes
writable = no
create mask = 0664
directory mask = 0777
valid users = @"WORK\domain admins", @"WORK\domain users"
Обьяснения что к чему, думаю ненужны. Особенно учитывая то что в передыдущей записи я рассказывал о вводе своей машинки в домен
Ну вот и все! С заданием справились на 100% — апдейты автоматом качаются, и роздаются по samba с авторизацией в домене
Немного помешан на Linux, немного на BSD .... и совсем без ума от автомобилей марки BMW.
Очень интересная статья. Скажите, а могу ли я ее повесить на один из своих сайтов? Соотвественно с гиперсылкой на вас.
Конечно
P.S. Ссылка обязательна.