Главная

Маленькие хитрости с Windows и Linux

Вариант борьбы с распространением вирусов

Наверно уже всем знакома ситуация, придя домой, находишь на своей флэшке странные файлы: autorun.inf и другие непрошеные. Это значит флэшка побывала на заражённом компьютере. Такие же файлы могут появиться в фотоаппарате, сотовом телефоне.(Если они соединялись с компьютером посредством USB-кабеля) Причем самое плохое, что они получают атрибуты скрытых файлов. При подключении заражённой флэшки к компьютеру, начинает выполняться autorun.inf (в нем как правило прописан путь к вирусу или трояну). Вирус или троян иногда для своего удобства вносит в реестр windows запись о запрещении просмотра проводником скрытых или системных файлов. Поэтому пользователь может сразу и не узнать, что его компьютер заражён. Файлы эти "селятся" на жёстких дисках в корне. И при открытие проводником диска С например, они не видны. Сам файл autorun.inf был придуман для автоматического запуска программ со сменных носителей. Например, с диска с MP3 запускался winamp и играла музыка. Если пожертвовать автозапуском, можно хоть немного защитить свой компьютер от такого рода напасти. Для этого нужно внести в реестр следующую информацию:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff

Можно скачать файл отсюда и запустить его, предварительно получив права администратора. Если компьютер уже заражён, его соответственно нужно сначала "вылечить". Можно использовать Dr.Web LiveCD. Утилита бесплатная. Затем внести информацию в реестр:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden]
"Type"="group"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\NOHIDDEN]
"Type"="radio"
"CheckedValue"=dword:00000000
"DefaultValue"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
"Type"="radio"
"CheckedValue"=dword:00000001
"DefaultValue"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden]
"Type"="checkbox"
"CheckedValue"=dword:00000000
"UncheckedValue"=dword:00000001
"DefaultValue"=dword:00000000
Или скачать файл отсюда и его запустить. Это восстановит просмотр скрытых файлов в проводнике windows.

Если вдруг "выскакивает" окошко "Generic Host Process for Win32 Services - обнаружена ошибка....", после этого пропадает "сеть" (пинг однако проходит), значит скорее всего в вашей сети появился компьютер, заражённый червём Net-Worm.Win32.Kido. Сначала нужно "лечить" компьютеры, на которых были подобные сообщения. Мы, например, ставили сервис-паки: SP3, MS08-067, MS-8-068 и MS09-001. Затем все компьютеры проверили утилитой КК.exe лаборатории Касперского, скачанной отсюда. Там же есть подробное описание борьбы с таким недугом. Так мы нашли заражённый компьютер. Процедуры обновления лучше провести со всеми машинами в сети.


Смена MAC-адреса на сетевой карте (OS Linux CentOS 4.6):


Пример: сменить MAC-адрес на устройстве eth0.
Правим файл /etc/sysconfig/network-scripts/ifcfg-eth0

Добавить MACADDR=XX:XX:XX:XX:XX:XX
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.2.1
NETMASK=255.255.255.0
#HWADDR=00:08:3F:26:Af:10
MACADDR=00:09:3D:14:62:9F
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes

Запуск pppoe-сервера на linux CentOS 4.6:


Скачать и установить rp-pppoe-3.10 . Старый пакет, если он установлен, удалить.
Редактировать файл /etc/ppp/options:
Добавить строку - plugin rp-pppoe.so

Файл pppoe.conf редактировать:
ETH=eth1 # Выбираем интерфейс

Файл pppoe-server-options:
#name pppoe
logfile /var/log/log.pppoe
lock
local
require-chap
default-mru
default-asyncmap
proxyarp
ktune
login
lcp-echo-interval 20
lcp-echo-failure 2
nobsdcomp
noccp
noendpoint
noipdefault
noipx
novj
receive-all 
# прописываем здесь DNS адрес, который будет выдаваться клиентам
#ms-dns 192.9.200.1
Файл chap-secrets:
user * user *
Файл pap-secrets:
user * user *
или так:
user * user 192.168.2.12 # выдаём пользователю определённый IP
Запуск:
/usr/sbin/pppoe-server -I "устройство сети" -L "адрес сервера" -R "с какого адреса раздавать клиентам"

Пример:
/usr/sbin/pppoe-server -I eth1 -L 192.168.2.1 -R 192.168.2.10

Установка kuickshow в fedora 11:

Есть такая замечательная программка в linux просмотрщик изображений - kuickshow. Лёгкая и быстрая. Входила во многие популярные дистрибутивы. Но вот в KDE 4 она уже не встречается, по крайней мере в fedora 10-12 ее точно нет. Но это можно поправить, скачав пакет и откомпилировав его. Есть подводные камни: после компиляции программа вместо изображения выводит "чёрный квадрат". Решение: в конец файла /etc/profile добавить строку export XLIB_SKIP_ARGB_VISUALS=1. Скачать пакет можно отсюда. Требует imlib.



Возвращение классического меню в windows 7.

Есть проект Classic Shell. Просто скачать пакет посвежее и установить.

Как включить в windows 7 просмотр скрытых файлов и расширений.

"Панель управления", выбрать режим просмотра "крупные значки", "Параметры папок", вкладка "Вид". Там выбрать нужные опции.

Обновление Microsoft Security Essentials.

Ситуация: в организации развернута сеть с компьютерами с OS Windows XP. В интернет имеют доступ через прокси squid. Установлено Microsoft Security Essentials. Если каждый компьютер обновлять через интернет, то может оказаться накладно. Многие организации платят помегобайтно. Есть решение: скачивать обновления на один компьютер, а уже с него обновлять остальные. Очень удобно, если компьютер, раздающий интернет, работает под линуксом и имеет http-сервер. На него устанавливаем wget и пишем скрипт, который будет запускаться в определённое время, например раз в неделю, в воскресенье.

#!/bin/sh
# download_updates
# ссылка верна для 32-х разрядной Windows XP
wget -N -P /home/wwwroot http://go.microsoft.com/fwlink/?LinkID=87342
Обновления копируются в каталог /home/wwwroot. Этот же каталог является корнем для нашего web-сервера
В файл crontab добавляем строку:
0 2 * * 0 user /etc/rc.d/download_updates
В 2 часа ночи каждое воскресенье запускаем наш скрипт от имени пользователя user, имеющий право писать в каталог /home/wwwroot.
На клиентских машинах устанавливаем wget для windows. Создаем каталог, например c:\updates.
Создаём скрипт такого содержания:
cd "C:\Program Files\GnuWin32\bin"
wget -N -P C:\updates http://адрес нашего веб-сервера/mpam-fe.exe 
cd "C:\updates"
mpam-fe.exe
Обновления копируются в c:\updates и оттуда инсталлируются. Далее идем в планировщик windows: "Пуск"->"Программы"->"Стандартные"->"Служебные"-> "Назначенные задания". Там по желанию выставляем время запуска нашего скрипта.

Обработка скриптом множество фотографий в linux.

Ситуация: Вы приехали с отпуска с кучей фоток. И Вам все это надо выложить на сайте. Как правило необходимо фотографии уменьшить в размерах. Если фотографии всего две-три, то можно воспользоваться программой Gimp. Но если их сотни, то есть смысл работу автоматизировать (если фото конечно не надо править именно вручную (работа с RAW)). Уверен, что такую работу можно проделать и в Gimp-е, но например мне не захотелось разбираться, да грузить сам Gimp не хочется. Вдруг эту работу надо делать удаленно. Поэтому воспользовался Perl. В дистрибутивах perl ставиться как правило по умолчанию. К нему только надо доставить библиотеку Image::Magick. В случае с Fedora 12-14 этого пакет ImageMagick-perl. Например для FC14 это ImageMagick-perl-6.6.4.1-14.fc14.1.i686.rpm. Скрипт получился такой:

#!/usr/bin/perl -w

use Image::Magick;

my ($opendir, $size, $flag);
$k = 0;
$i = 0;
$opendir = $ARGV[0];
$size = $ARGV[1];
$flag = $ARGV[2];

if ($#ARGV < 0) {
    print "$#ARGV \n";
    print "Введите параметры: \n";
    print "ПУТЬ_к_каталогу_с_картинками РАЗМЕР ФЛАГ_обрезать_имя \n";
    exit;
}

if ($#ARGV == 0) {
    $size = 140;
}

if ($#ARGV == 2) {
    $flag = 1;
} else {
    $flag = 0;
}

opendir FDIR,"$opendir";
chdir "$opendir";
@files= grep { (/\.jpg$/) || (/\.JPG$/)} readdir FDIR;

foreach(@files) {
  $name=$files[$i];
  unless (($name eq ".") || ($name eq "..") ) {
    $image_file=$name;
    #$len=length($name);
    $position=rindex($name,'.');
    if ($flag == 1) {
        $name_cut=substr($name,4,$position-4);
    } else {
	$name_cut=substr($name,0,$position);
    }
    print "Обрабатываем $name \n";
    if ($size == 800) {
        $outfilename=$name_cut.".jpg";
    } else {
	$outfilename=$name_cut."_mini.jpg";
    }
    $outim = Image::Magick->new;
    $im = $outim->Read($image_file);
    ($width, $height) = $outim->Get('base-columns','base-rows');
    $k = $width/$height;
    $newwidth = $size;
    $newheight = $size/$k;
    $outim->Resize(geometry=>"geometry", width=>$newwidth, height=>$newheight);
    $im = $outim->Write($outfilename);
  }
  $i = $i + 1;
}
closedir FDIR;
Пример использования:
[user@komp ~]$ ./resize_pic.pl /home/user/tmp/photos 800
Первый параметр скрипта - путь до каталога с фотографиями. Они должны быть в формате JPG. Второй параметр - разрешение. Если он отсутствует, то разрешение устанавливается 140 px. Внимание! Привязка размеров делается к ширине. Третий параметр - флаг. Использовать, если нужно обрезать имя получаемого файла. Например: Исходное имя DSC03310.JPG. Получится 3310.jpg. Скачать скрипт можно здесь resize_pic.pl.

Если после очередного обновления Ваша FC10-FC14 (Fedora Core) при загрузке ОС стала "ругаться" квадратиками, вместо русских букв, достаточно дать команду в терминале:
[root@komp ~]# /usr/libexec/plymouth/plymouth-update-initrd

VoIP-GSM шлюз для Asterisk на USB модеме HUAWEI E1550.

Задача: Есть город Х с дешевой сотовой связью, сами мы находимся в городе Y с дорогой сотовой связью. Нам необходимо совершать звонки по городу Х, находясь при этом в городе Y. А платить за это по тарифам города Х. Также в городе Х у нас имеется сервер с установленной linux ОС Fedora Core 11. С ним мы имеем связь посредством OpenVPN. Мы выбрали модем HUAWEI E1550, купленный в Евросети. Модем универсальный, не привязанный к какому либо оператору, с включенными голосовыми функциями (стоимость ~1450 рублей на 20.08.11). Итак на сервер устанавливаем из исходников asterisk. Скачиваем с сайта исходники. На момент установки была версия asterisk-1.8.5.0.tar.gz.

# ./configure --prefix=/usr
# make install
# make config
# make samples
Затем ставим модуль канала chan_datacard
# svn co http://www.makhutov.org/svn/chan_datacard/trunk/ chan_datacard
# cd ~/chan_datacard/
# ./configure
# make install
# cp ~/chan_datacard/etc/datacard.conf /etc/asterisk
Устанавливаем usb-modeswitch (необходим для переключения в режим модема). Скачиваем с сайта На момент установки была версия usb-modeswitch-1.1.9.tar.bz2.
# make install
Заполняем /etc/usb_modeswitch.conf
DisableSwitching=0
EnableLogging=0

# Huawei E1550
DefaultVendor = 0x12d1
DefaultProduct = 0x1446
MessageEndpoint = 0x01
MessageContent = "55534243000000000000000000000011060000000000000000000000000000"
Теперь вставляем наш модем в USB порт, контролируя процесс обнаружения системой:
# tail -F /var/log messages
Также нужно убедиться, что в каталоге /dev появились файлы ttyUSB0, ttyUSB1, ttyUSB2. Если нет, пробуем ввести команды:
# usb_modeswitch -c /etc/usb_modeswitch.conf
# echo 'SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd"' | sudo tee  /etc/udev/rules.d/45-huawei1550.rules
После этого может быть потребуется "передернуть" модем. Удаленно можно попробовать так:
# echo suspend > /sys/bus/usb/devices/<device_id>/power/level
# echo on > /sys/bus/usb/devices/<device_id>/power/level
Далее проверить прошивку (Firmware), если будет прошивка версии 11.608.12.10.209, то у нас все это работать не будет. Потребуется перепрошивка. Версию прошивки можно узнать утилитой скачанной отсюда, ею также можно проверять состояние модема (включены/отключены ли звуковые функции), или узнать IMEI модема. Скачать прошивку можно тут. Проверять состояние модема и перепрошивать нужно на машине с windows XP. Также для перепрошивки потребуется flash-code. Его можно узнать на этом сайте. В поле ввести IMEI модема. Процедура прошивки опасная для модема, Вы действуете на свой страх и риск!
Теперь необходимо отключить в модеме ненужные функции (накопитель и cd-rom):
# minicom -s
Выбираем нужный порт: ttyUSB0, и вводим команду:
Ok
AT^U2DIAG=0
Ok
Выходим из терминала CTRL-A Z.
Настраиваем asterisk:
Приводим файл /etc/asterisk/sip.conf к такому виду:
[general]
context=default
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
srvlookup=yes
[100]
type=friend
host=dynamic
username=100
secret=parol
nat=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=g723.1
context=sip-dialout
callerid=100
insecure=yes
Этим самым добавляем пользователя в систему.
Редактируем datacard.conf, добавляя в него информацию о нашем модеме:
[general]
interval=15                     ; Number of seconds between trying to connect to devices
language=ru                     ; Default language setting for all devices
                                ; This may also be set for individual device
[datacard0]
audio=/dev/ttyUSB1              ; tty for audio connection
data=/dev/ttyUSB2               ; tty for AT commands
group=1                         ; calling group
context=datacard-incoming       ; context for incoming calls
rxgain=3                        ; increase the incoming volume
txgain=3                        ; increase the outgoint volume
Редактируем extension.conf, добавляя наши правила:
[general]
static = yes
writeprotect = no
clearglobalvars = no
[globals]
CONSOLE = Console/dsp
IAXINFO = guest
TRUNK = DAHDI/G2
TRUNKMSD = 1
FEATURES = 
DIALOPTIONS = 
RINGTIME = 20
FOLLOWMEOPTIONS = 

[datacard-incoming]
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD} - ${CALLERID(num)}: ${SMS}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD}: ${USSD}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()
exten => s,1,Dial(SIP/100,,)
exten => s,n,Hangup()

[sip-dialout]
exten => _X.,1,Dial(Datacard/g1/${EXTEN})
Осталось запустить asterisk как службу и пользоваться. Контролировать работу можно, запустив в терминале команду:
# asterisk -r
В качестве клиента лично я использовал Ekiga. Есть версии как под Linux, так и под Windows. За основу была взята эта статья - http://asterisk-pbx.ru/wiki/doku.php/new2

P.S.

Особенности использования asterisk на CentOS 6

В CentOS 6 на 23.01.12 последнее официальное стабильное ядро 2.6.32, а разработчики модуля chan_datacard рекомендуют использовать 2.6.33+. Значит надо обновить ядро. Лично я сделал так: подключил репозиторий elrepo.
rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm
В файле /etc/yum.repos.d/elrepo.repo в разделе [elrepo-kernel] установил enabled=1. Удалил 2 пакета:
rpm -e kernel-headers-2.6.32-220.2.1.el6.x86_64 kernel-firmware-2.6.32-220.2.1.el6.noarch --nodeps
Установил новое ядро:
yum install kernel-ml kernel-ml-devel kernel-ml-firmware kernel-ml-headers
После перегрузки можно устанавливать asterisk. Также можно поставить альтернативный модуль chan_datacard:
svn co https://datacard.googlecode.com/svn/trunk/ /usr/src/datacard
cd /usr/src/datacard
autoconf
automake -a
./configure
make
make install
Если абонент, звонящий на сервер будет слышать с искажениями, можно попробовать удалить строки в файле datacard.conf:
;rxgain=3                        ; increase the incoming volume
;txgain=3                        ; increase the outgoint volume
Старое ядро я не стал удалять. На всякий случай.:-)

Запуск Return to Castle Wolfenstein при помощи VirtualBOX

Ситуация: основная система - linux, например FC14. Есть желание поиграть в Return to Castle Wolfenstein, но linux-версия по каким то причинам не работает или просто не устанавливается. В то же время есть установленная VirtualBOX с Windows XP. Если же Windows XP нормально установлена, также стоят дополнения VBoxGuestAdditions, и попытаться установить игру, то работать она скорее всего не будет. Вернее запускаеться будет, а курсор мыши не управляем. Будет ощущение огромной скорости передвижение курсора. Решение: при игре отключить в меню VirtualBox "Выключить интеграцию мыши".


Автоматический запуск pppoe соединения в Windows 7.

Задача: сделать так, что бы при старте windows интернет соединялся автоматически. Для этого создаем скрипт:

rasdial "имя_соединения" "логин" "пароль"

Называем его например statup.bat. Имя соединения смотрим в "Пуск"-"Настройка"-"Сетевые подключения". Писать данные в скрипт без кавычек. В свойствах соединения (параметрах) убираем галочку с "Запрашивать имя,пароль,сертификат и т.д.". Сам скрипт копируем в Users\Имя_пользователя\Application Data\Microsoft\Windows\Start Menu\Programs\Startup.

Далее, может случится так: пропал интернет и число попыток набора номера исчерпано. Тогда нужно написать скрипт, который, например раз в час проверял доступность ресурса и если что, соединялся бы снова.

ping -n 1 www.сайт -l 1 | find "TTL="
if errorlevel 1 (
rasdial "имя_соединения" /Disconnect
rasdial "имя_соединения" "логин" "пароль") else (echo "интернет есть")
Добавляем в планировщике заданий новую задачу, которая будет запускать этот скрипт раз в час.

Монтирование внешних дисков в KDE 4.6.5 RFRemix 14 без пароля root

Если при подключении внешнего диска у вас "выскакивает" окно с авторизацией, с просьбой ввести пароль root, можно попробовать решить проблему так: создать файл org.freedesktop.udisks.pkla в /etc/polkit-l/localauthority/50-local.d/ c таким содержанием:

[udisks full access]
Identity=unix-group:<USER-GROUPS>
Action=org.freedesktop.udisks.*
ResultAny=yes
ResultInactive=no
ResultActive=yes
Где <USER-GROUPS>- группа пользователей, которым можно будет монтировать диски. Например users или wheel.

Иконки званий для форумов phpbb3 в армейском стиле

Для добавления званий, необходимо распаковать архив в images/ranks. Далее идем в административный отдел, выбираем вкладку "Пользователи и группы". Входим "Управление званиями". Кнопка "Добавить звание". В "Заголовок звания" пишем например сержант. "Картинка к званию", выпадающий список, выбираем файл-картинку, соотвествующему сержанту. "Минимум сообщений" - количество сообщений, при котором пользователь получит звание сержанта. Если выбрать "Специальное звание", то звание назначается администратором форума.

Скачать ranks.zip

OpenOffice. Calc. Видимость сетки при заливке цветом

По умолчанию в OpenOffice и LibreOffice сетку не видно, если залить область цветом. Чтобы включить видимость, идем в "Параметры"-> "OpenOffice Calc"->"Вид", "Зрительные ориентиры"->"Линии сетки", Выбираем - "В том числе на цветных ячейках".



LibreOffice новые. Calc. Фиксировать столбцы или строки для формирование заголовков

Ставим курсор на ячейку, например B2. "LibreOffice Calc"->"Вид", "Фиксировать ячейки"->"Фиксировать строки и столбцы".



Как убрать фокус с адресной строки на новой вкладке

about:config ->
browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar - false



Главная