вторник, 29 декабря 2009 г.

Ubuntu, стилизованный под Windows XP

В рамках проекта Ylmf подготовлен Linux дистрибутив на основе Ubuntu 9.10 на первый взгляд внешне почти не отличимый от Windows XP. Сообщается, что стилизованный под Windows дистрибутив Linux был создан китайскими пиратами после того, как компания Microsoft предприняла ряд мер по защите от нелегального распространения Windows в Китае.

В качестве основы использован пакет XpGnome в котором представлен набор визуальных компонентов и настроек. XpGnome позволяет выполнив одну команду придать GNOME вид Windows XP, а после экспериментов также быстро вернуть все обратно. Видеодемонстрацию превращения можно найти на YouTube.

Изменения затрагивают: пиктограммы, GTK, Metacity, Splash, визуальную тему GDM, курсоры мыши, панель инструментов, фоновые рисунки, визуальные иконки на десктопе, оформления вывода списка файлов в Nautilus, тулбар. С экрана удаляются все панели GNOME, внизу добавляется меню Start, кнопка отображения рабочего стола, переключатель окон, область уведомлений, часы и апплет управления громкостью.




Лично я эту вещь опробовал на бухгалтерах. Реакция более чем положительная.

алюминиевые окна, витрины

пятница, 6 ноября 2009 г.

Сколько стоит ваш сайт :)

Сегодня наткнулся на интересный ресурс, который подсчитывает стоимость сайтов http://bizinformation.org. Оказалось, что мой блог оценен в 402 294,99 руб (о_О). Никто не хочет купить? =))

В типографии "Альянс" Вас ждут лучшие предложения по производству наклеек и этикеток

вторник, 6 октября 2009 г.

Настройка Mango Office + Asterisk

Решили перейти на VOIP-провайдера Манго Офис. У данного провайдера есть 2 условия:

  • Использование протокола H323 
  • Использование кодека g729

Про реализацию данных условний я расскажу чуть позже(в Интернете куча информации на тему подключения g729 и h323 к Asterisk-у). Я прикрутил h323, но вот тут возникли проблемы - входящий звонки самопроизвольно отрубались через несколько минут. Тогда я решил отказаться от h323 и заменить его на ooh323(установка не сложная - можно собрать за несколько минут аддонами для астериска с официального сайта).  Но и тут обнаружились проблемы: Манго Офис при исходящем звонке требует авторизацию по pin-коду. А oooh323 никак не хотел использовать мой макрос для отправки кода. Поэтому, следуя по пути наименьшего сопротивления, я решил использовать оба модуля: для входящих звонков ooh323, а для исходящих h323.

debian:/etc/asterisk# netstat -lpn | grep asterisk | grep tcp
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 3879/asterisk
tcp 0 0 0.0.0.0 :1720 0.0.0.0:* LISTEN 3879/asterisk
tcp 0 0 0.0.0.0 :1721 0.0.0.0:* LISTEN 3879/asterisk

Здесь видно, что h323 висит на 1721 порту, а ooh323 я повесил на 1720. Выложу примеры конфигурационных файлов, в боях с которыми были потрачено несколько дней

ooh323.conf
[general]
port=1720
bindaddr=your_ext_ip
faststart=yes
h245tunneling=no
callerid=asterisk
gatekeeper = DISABLE
context=office
disallow=all ;
allow=g729
allow=ulaw
allow=alaw
dtmfmode=h245alphanumeric

h323.conf

[general]
port = 1721
bindaddr = your_ext_ip

[prov]
type=peer
context=office
host=81.88.84.10
port=1720
disallow=all
allow=g729
allow=alaw
allow=ulaw

extensions.conf

[macro-bubble] ; максрос для отправки pin-кода
exten => s,1,Wait(3) ; wait 1 second
exten => s,n,SendDTMF(your_pin_code); 
exten => s,n,Wait(1) ; 
exten => s,n,SendDTMF(${NUMBER}#); 
exten => s,n,System(mkdir /home/shares/asterisk/out/${CALLER}); 
exten => s,n,MixMonitor(/home/shares/asterisk/out/${CALLER}/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)}.wav)

[office]

exten => 100,1,Answer
exten => 100,2,Agi(auth.agi)
exten => 100,3,Hangup
exten => _XXXXXXX,1,Set(_NUMBER=${EXTEN})
exten => _XXXXXXX,2,Set(_CALLER=${CALLERID(num)})
exten => _XXXXXXX,3,Dial(H323/9999999@prov,,M(bubble),mtT)

Теперь при звонке на внешние номера будет автоматичкески отправляться pin-код. Правда, на его отправку уходит около 7-10 секунд, что очень плохо.

В панели управления вашей учетной записи для Mango Office нужно указать внешний ip-адрес, на который будут перенаправляться входящие звонки, а также номер. В данном примере я использовал номер 100. При входящем звонке будет срабатывать скрипт auth.agi, функционал которого был описан в этой статье про биллинг.


А вот тут можно почитать интересные цитаты, чтобы расслабиться на досуге.

воскресенье, 4 октября 2009 г.

Prometeus поглощает Google

Наткнулся на youtube на интересный видеоролик рассказывающий о будущем Интернета. Не уверен что так будет, но все возможно =)

Linux - конспект лекций
А вот тут можно почитать поздравления с днем рождения с юмором

понедельник, 14 сентября 2009 г.

Ищем обнаглевших пользователей в организации

Возникла небольшая задача: найти пользователя, который качает большой файл и напрочь забил нам канал. Ситуация придуманная, но основана на реальных событиях =). Итак, логинимся на наш шлюз и устнанавливаем пакет netdiag[в данный пакет входят следующие утилиты: trafshow,strobe,netwatch,statnet,tcpspray,tcpblast]
# apt-get install netdiag
Далее, запускам trafshow на интерфейсе, подключенном к Интернету.
# trafshow -i eth1
И наблюдаем, кто выжирает трафик. Идем к этому пользователю и даем ему по шапке =))

среда, 9 сентября 2009 г.

Защита ssh в debian с помощью denyhosts

Denyhosts - это скрипт, написанный на Python для защиты[в основном] SSH серверов от переборов паролей[брутфорса].Скрипт отслеживает логи системы о неудачных авторизациях и после того, как N-раз был неверно введена связка "логин-пароль" блокирует IP-адрес, с которого производилась атака[Банально вносит IP-адрес в /etc/hosts.deny].

Я покажу как за несколько минут защитить сервер от подбора паролей[знаю, что тема избитая, но решил написать для людей, кому не интересно долго ковыряться в настройках]. Итак, у вас уже должен быть установлен python. Если нет то устанавливаем:
apt-get install python
Скачиваем сам скрипт [На момент написания заметки версия 2.6].
wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/download
Дальше распаковываем архив, заходим в него и запускаем процесс установки[из под root]:
$ tar xvfz DenyHosts-2.6.tar.gz
$ cd ./DenyHosts-2.6
# python setup.py install
После этого необходимо скопировать конфигурационный файл в каталог /etc:
cp ./denyhosts.cfg-dist /etc/denyhosts.cfg
А также файл daemon-control-dist в /usr/sbin/daemon-control:
cp ./daemon-control-dist /usr/sbin/daemon-control
После того как все удачно завершилось переходим к конфигурированию /etc/denyhosts.cfg. Т.к. статья расчитана на "немного ленивых админов"[сам из таких =)], то я сразу прикладываю нужный вам конфиг:
debian:/# cat ./denyhosts.cfg
SECURE_LOG = /var/log/auth.log
HOSTS_DENY = /etc/hosts.deny
PURGE_DENY =
BLOCK_SERVICE = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /usr/share/denyhosts/data
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/run/denyhosts.pid
AGE_RESET_VALID=5d
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h
Далее нужно открыть файл на редактирование /usr/sbin/daemon-control и внести изменение в несколько первых строк:
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
DENYHOSTS_LOCK = "/var/run/denyhosts.pid"
DENYHOSTS_CFG = "/etc/denyhosts.cfg"
PYTHON_BIN = "/usr/bin/env python"
Теперь просто стартуем наш denyhosts следующей командой и прописать эту же команду в автозагрузку например в /etc/rc.local:
/usr/sbin/daemon-control start > /dev/hull &
Через некоторое время у вас в файле начнут появляться заблокированные IP-адреса, с которых 5 раз[параметр DENY_THRESHOLD_INVALID = 5] был введены логин с паролем.

Замечательная автошкола приглашает всех желающих пройти курсы вождения.

вторник, 1 сентября 2009 г.

Биллинг для asterisk 1.6

Сразу оговорюсь, что данная статья предополагает что опыт внедрения asterisk у вас уже был. В нашей компании необходимо было внедрить небольшой call-центр, который бы включал в себя следующие функции:
1. Голосовое меню[Приветствие, выбор отдела или конкретного сотрудника, авторизация по pin-коду].После авторизации необходимо проверить наличие средств на лицевом счете и перевести звонок на ответственного сотрудника. В случае если средств не достаточно перевести на секретаря, который поможет пополнить[выписать] счет.
2. После разговора провести списание средств.

Поскольку при установке сторонних биллингов требуется учитывать множество нюансов - я решил написать биллинг сам.

Итак, в этой статье я не буду рассказывать как заставить писать логи asterisk в mysql базу. В интернете достаточно информации на эту тему [http://www.voip-info.org/wiki/view/Asterisk+cdr+mysql].

После успешного подключения связки Asterisk+cdr+mysql нам необходимо в этой же базе, куда пишутся логи, создать 2 новые таблицы[назовем ее "organizations" и "tariff"] со следующими полями:
organizations{
id int(11) auto_increment // ID организации
name text // Наименование организации
pin varchar(20) // Пин-код[необходмо обеспечить уникальность]
time int(11) // Оставшееся время
id_tarif int(11) // ID тарифа
}

tariff{
id int(11) auto_increment // ID тарифа
name varchar(50) // Название тарифа
price int(11) // Цена за минуту
descr varchar(300) // Описание
}


Конечно, вы можете добавить свои поля, если видите в этом необходимость. Далее качаете phpagi c официального сайта[http://phpagi.sourceforge.net/]. Распаковывайте файлы в папку /var/lib/asterisk/agi-bin. И в этом же каталоге создаете файл-скрипт с именем auth.php со следующим содержанием[сразу оговорюсь, что скрипт далек от совершенства :)]:
#!/usr/bin/php -q
require('phpagi.php');
function auth($agii)
{
// Определяем номера телефонов. Если абонент недоступен - идет переадресация на сотовый телефон.
$phones = array(
"79110071250" => "000", // Менеждер 1
"79217519838" => "001", // Менеждер 2
...................................................
"79216497787" => "505" // Менежер 505
);
$buffer='';
$dtmfwait=3000;
$result=$agii->fastpass_get_data($buffer,"hello",$dtmfwait,3);
$digits=$result['result'];
//Набран внутренний номер
if(strlen($digits)==3)
{
$agii->exec('Dial',"SIP/$digits");
foreach ($phones as $phone_1 => $phone_2) {
if($phone_2==$digits)
{
$agii->stream_file("net_na_meste");
$agii->exec('Set',"_NUMBER=$phone_1");
$agii->exec('Dial','H323/9999999@prov,,M(bubble),m');
}
}
}
if(strlen($digits)==1)
{
//Соединение с горячей линией 1С [тут авторизация по пин коду]
if($digits=='1')
{
for($i=1;$i<=3;$i++)
{
$agii->stream_file('pin_code');
$result = $agii->get_data('beep', 8000,6);
$code=$result['result'];
if($code=='0')
{
$agii->exec('Dial','SIP/000');
}
else {
$result = mysql_query("select time,id from organizations where pin='$code';");

if (mysql_num_rows($result)==1)
{
while ($row = mysql_fetch_array($result)) {
if($row[0]<=0) //если баланc <0
{
$agii->stream_file("balans_minus");
$agii->exec('Dial','SIP/000');
}
else
{
$agii->exec("Set CDR(userfield)=$row[1]");
mkdir('/home/shares/asterisk/'.$row[1]);
$path='/home/shares/asterisk/'.$row[1].'/'.date("d.m.y.H.i").'.wav';
$agii->exec('MixMonitor',$path.',b');
$agii->exec('Dial','SIP/302,20,tm');
$agii->exec('Dial','SIP/401&SIP/405&SIP/000,,tm');
}
}
}
//даем на ввод пин кода 3 попытки
else
{
$tries=3-$i;
$agii->stream_file('error_pin_code');
if($tries==0)
{
$agii->stream_file('3_error_pin_code');
$agii->exec('Dial','SIP/000');
}
}
}
}
}
//Техподдержка
if($digits=='2')
$agii->exec('Dial','SIP/405');
//Контроль качества
if($digits=='3')
$agii->exec('Dial','SIP/007');
//Секретарь
if($digits=='0')
$agii->exec('Dial','SIP/000');
}
if(strlen($digits)==0) $agii->exec('Dial','SIP/000');
$agii->stream_file("bye");
$agii->exec('Hangup');
return 0;
}

$link = mysql_connect("localhost", "asterisk", "password") or die("Could not connect: " . mysql_error());
mysql_select_db('asterisk', $link) or die ('Can\'t use database : ' . mysql_error());
$agi = new AGI();
$agi->answer();
$agi->exec('NoOp','Starting main module AGI script');
//Запуск основного модуля
auth($agi);
mysql_close($link);
?>

Далее в extensions.conf прописываем что при звонке с внешней линии - идет выполнение скрипта auth.php. [Если будут вопросы как это сделать - спрашивайте в комментах].

Теперь самый интересный вопрос: каким образом произойдет списание средств после разговора? Я очень долго искал информацию как можно выполнить свой скрипт после того как на одной из сторон кладется тубка, но ничего не нашел. А решение оказалось более чем простым. Для реализации списания средств со счета абонента, я использовал crontab. В /etc/crontab добавляется строка:
*/5 * * * * root /var/lib/asterisk/agi-bin/auth-pay.agi

Данной строкой мы каждые 5 минут запускам скрипт auth-pay.agi:
#!/usr/bin/php -q
$link = mysql_connect("localhost", "asterisk", "password") or die("Could not connect: " . mysql_error());
mysql_select_db('asterisk', $link) or die ('Can\'t use database : ' . mysql_error());
$result = mysql_query("SELECT userfield,billsec FROM cdr WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(calldate) <=300 AND userfield!=''") or die(mysql_error());

if (mysql_num_rows($result)>0)
{
while ($row = mysql_fetch_array($result)) {
mysql_query("UPDATE organizations SET time=time-$row[1] WHERE id=$row[0]");
}
}
$user =mysql_num_rows($result);
if ($user==1) {echo "$user User online";} else {echo "$user Users online";}
mysql_close($link);
?>


Данным скриптом мы выбераем все id организации, разговаривавших за последние 5 минут. Берем время разговора и вычитаем из поля time таблицы organizations.

Вот и все! Мини-биллинг готов. Такую схему можно перенести и на другие возможности астериска: например для ограничения звонков не с внешней линией, а с ваших абонентов.

пятница, 7 августа 2009 г.

Проверяем запущен ли asterisk

#!/bin/sh
p=`ps aux | grep asterisk | grep SCREEN | wc -l`
if [ $p -ne 1 ]
then
killall asterisk
/usr/bin/screen -L -d -m -S asterisk /usr/sbin/asterisk -vvvvcd
else
echo 'asterisk is started' > /dev/null
fi

ветеринарная помощь дома

понедельник, 3 августа 2009 г.

uptime

Вот решил выложить uptime сервера. Конечно, 83 дня не так много, но виндузные серваки у нас в конторе столько не держат [Максимум 2 недели]
Функции сервака: ssh, dns, mysql, apache, шлюз, asterisk, ftp, vpn.



PS Выкладывайте сюда uptime ваших серваков долгожителей.

суббота, 4 июля 2009 г.

Как определить какими библиотеками и файлами пользуется программа

В Linux очень просто определить какие файлы и библиотеки использует та или иная программа. Для теста посмотрим какие библиотеки использует культовый консольный файловый менеджер Midnight Commander. Для этого достаточно выполнить следующую команду:
debian@localhost# ldd /usr/bin/mc
А для того чтобы определить какие файлы открывает программа:
debian@localhost# sudo apt-get install strace
debian@localhost# strace mc

Как узнать какая программа слушает порт

netstat -lnp

Хотите узнать сколько стоит БУ авто , то вам сюда http://auto.irr.ru/ - из рук в руки авто

Установка windows шрифтов

Установить MS Windows шрифты для Debian можно так:
sudo apt-get install msttcorefonts

четверг, 16 апреля 2009 г.

Небольшая заметка по утилите screen

Иногда бывает нужно, чтобы запускаемая программа или процесс висели в "отдельной" консоли. Можно, конечно, запустить 2 и более ssh-клиентов, но это не решает некоторых проблем и является несколько неудобным(при определенных условиях).
Решением проблемы является утилита screen. В репозитариях она присутствует. Установить ее можно следающим образом:
$sudo apt-get install screen
В моем случае стоит задача запустить сервер ip-телефонии asterisk при загрузке Debian Linux не только в фоне, но и чтобы можно было подключиться к консоли asterisk. Для этого в файле /etc/rc.local я прописал автозапуск следующим образом:

/usr/bin/screen -L -d -m -S asterisk /usr/sbin/asterisk -vvvvcd
Теперь у нас asterisk запуститься в отдельной консоли. Возникает вопрос: "как к ней(консоли) подключиться?". А очень просто. Необходимо выполнить команду:

screen -r asterisk
Чтобы выйти из консоли необходимо просто нажать сочетание клавишь: зажимаете Ctrl и последовательно "A"->"D". Так мы уводим консоль "asterisk" снова в фоновый режим.

PS Для еще более быстрого переключения в консоль я в файле ".bashrc", который находиться в моем домашнем каталоге прописал алиас:

alias asterscr='screen -r asterisk'
Теперь чтобы подключиться к asterisk в косоли можно просто ввести:

#asterscr

вторник, 3 марта 2009 г.

Добавление нового пользователя в mysql

Mysql-сервер я настраиваю нечасто, в основном не для массового использования. Поэтому иногда требуется добавить нового пользователя на базу. Делать через web-интерфейс не интересно, а через командную строку запоминать лень. Поэтому для лентяев как я следующий код:
GRANT ALL PRIVILEGES ON testbase.* TO testuser@localhost IDENTIFIED BY 'testpass';
flush privileges;

А тут можно купить бассейн надувной

Обновление MC

На странице проекта можно скачать обновленный MC для своей ОС. Установка производиться командой:
dpkg -i mc_4.6.3-1_i386.deb
Вот некоторые комбинации клавиш Midnight Commander:
Alt+Enter, Esc+Enter - Вставить 'текущий объект' в командную строку.

Alt+p, Esc+p - Вернуть предыдущую выполненную командную строку.

Alt+t, Esc+t - Смена режима работы панели ('Стандартный','Укороченный','Расширенный')

Alt+i, Esc+i - Смена текущего каталога на неактивной панели, на каталог в котором вы находитесь в активной панели.

Alt+n, Esc+n - Вернуть последующую выполненную командную строку.

Alt+a,Esc+a - Посылает в командную строку результат выполнения команды pwd (полный путь до текущего каталога).

Alt+c,Esc+c - Вызывается меню быстрой смены текущего каталога на активной панели.

Alt+h,Esc+h - Вызов меню последних выполненных команд.

Insert - Выделение текущего объекта.

Ctrl+ - Вызывается меню часто используемых каталогов.

Shift+F1 - Вызывается меню быстрого перехода между точками монтирования на левой панели.

Shift+F2 - Вызывается меню быстрого перехода между точками монтирования на правой панели.

F3 - Просмотр файла. Shift+F3 - Просмотр файла raw без учета расширения.

Shift+F4 - Создает новый файл.

Ctrl+o - Скрытие панелей.

Ctrl+s - Быстрый поиск файла или каталога.

Ctrl+Space - Показать размер текущего каталога.

(Ctrl+x)+t (нажимаем Ctrl+x затем отпускаем и нажимаем t) - Вставка всех выделенных объектов в командную строку.

(Ctrl+x)+c (нажимаем Ctrl+x затем отпускаем и нажимаем c) - Просмотр/правка прав доступа текущего объекта.

(Ctrl+x)+o (нажимаем Ctrl+x затем отпускаем и нажимаем o) - Просмотр/правка владельца/группы для текущего объекта.

(Ctrl+x)+l (нажимаем Ctrl+x затем отпускаем и нажимаем o) - Создать жесткую ссылку с текущего объекта.

(Ctrl+x)+s (нажимаем Ctrl+x затем отпускаем и нажимаем s) - Создает символьную ссылку symlink для текущего объекта.

(Ctrl+x)+(Ctrl+s) (нажимаем Ctrl+x затем отпускаем и нажимаем Ctrl+s) - Редактировать symlink.

(Ctrl+x)+j (нажимаем Ctrl+x затем отпускаем и нажимаем j) - Показываем все фоновые задачи.

(Ctrl+x)+q (нажимаем Ctrl+x затем отпускаем и нажимаем q) - Быстрый просмотр содержимого файла на второй панели.

(Ctrl+x)+i (нажимаем Ctrl+x затем отпускаем и нажимаем i) - Быстрый просмотр информации о текущем объекте на второй панели.

(Ctrl+v) - Циклическое переключение режима отображения пробелов и/или табов.

Esc+(Shift+?) - Вызывается меню расширенного поиска файлов.

Alt+o - неактивная панель переходит в каталог на который указывает активная панель.

Alt+. - не показывать или показать скрытые файлы или каталоги (начинаются на точку '.').

Alt+, - Переключить режим отображения панелей (вертикально/горизонтально).

Alt+i - В mcedit отключает "Автовыравнивание возвратом каретки", удобно при вставке отформатированного текста из буфера обмена.
Сочетание клавишь взято отсюда.

навесы из поликарбоната

Смена MAC адреса в Linux

Останавливаем интерфейс eth0, назначаем новый MAC, перегружаем сеть
ifconfig eth0 down
ifconfig eth0 hw ether 00:00:00:00:00:00
/etc/init.d/networking restart
Чтобы MAC менялся и при загрузке открываем файл /etc/network/interfaces и к интерфейсу добавляем в качестве параметра к сетевому интерфейсу:
hwaddress ether 00:00:00:00:00:00

А вот тут можно обменять деньги webmoney

Инициализация iptables при загрузке debian

В последних версиях Debian отсутствует скрипт инициализации iptables. Приведу маленький пример, как решить данный вопрос. Когда вы уже решили что все в iptables настроено и отлажено:
iptables --list
Сохраняем настройки командой:
iptables-save > /etc/firewall.conf
После чего выполняем последовательность команд
echo "#!/bin/sh" > /etc/network/if-up.d/iptables echo "iptables-restore < /etc/firewall.conf" >> /etc/network/if-up.d/iptables chmod +x /etc/network/if-up.d/iptables

В тут можно узнать цены на услуги colocation в москве

пятница, 27 февраля 2009 г.

Быстро поднимаем DNS-сервер (BIND9) под debian

Итак, после небольшого перерыва решил написать небольшую заметку на тему DNS. Не буду рассказывать теорию(в Интернете ее полно). Перейдем сразу к делу.

Дано:
локальная сеть 192.168.0.0/24
сервер: debian 5. Предположим, что у него ip 192.168.0.1
Требуется: поднять dns-сервер, таким образом, что бы для внутренней локалки были как свой домен, так и root-DNS Интернета. Домен 1-го уровня: пусть будет ex. Тогда хосты будут иметь имена test.ex, h1.ex и т.п. Жирным выделено то, что было добавлено к стандартному конфигу.
Решение(все действия из-под root или через sudo; здесь примеры конфигов, и то что нужно поправить в них для решения нашей задачи):
debian:/#apt-get install bind9
debian:/etc/bind# cat ./named.conf.options
acl "corpnets" {192.168.0.0/24; 127.0.0.1;};
options {
directory "/var/cache/bind";
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
allow-query {"corpnets";};
};
debian:/etc/bind# cat ./named.conf
include "/etc/bind/named.conf.options";

zone "." {
type hint;
file "/etc/bind/db.root";
};

zone "localhost" {
type master;
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};

zone "ex." {
type master;
file "/etc/bind/db.ex";
};

zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.ex.rev";
};


include "/etc/bind/named.conf.local";
debian:/etc/bind# touch ./db.ex
debian:/etc/bind# cat ./db.ex
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA ex. root.ex. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.ex.

ns A 127.0.0.1
nikitar A 192.168.0.70
debian A 192.168.0.167
debian:/etc/bind# touch ./db.ex.rev
debian:/etc/bind# cat ./db.ex.rev
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA ex. root.ex. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.

70 PTR nikitar.ex
167 PTR debian.ex
debian:/etc# cat /etc/resolv.conf
search ex
nameserver 127.0.0.1

debian:/etc# /etc/init.d/bind9 restart
Stopping domain name service...: bind9.
Starting domain name service...: bind9.


Все. Теперь можно пинговать nikitar.ex и ya.ru.


http://www.biocontrol.ru

вторник, 24 февраля 2009 г.

How to restore Grub from a live Ubuntu cd

How to restore Grub from a live Ubuntu cd.
This will restore grub if you already had grub installed but lost it to a windows install or some other occurence that erased/changed your MBR so that grub no longer appears at start up or it returns an error.

(This how to is written for Ubuntu but should work on other systems. The only thing to take note of, when you see "sudo" that will mean to you that the following command should be entered at a root terminal.)

Boot into the live Ubuntu cd. This can be the live installer cd or the older live session Ubuntu cds.

When you get to the desktop open a terminal and enter. (I am going to give you the commands and then I will explain them later)

Code:
sudo grub
This will get you a "grub>" prompt (i.e. the grub shell). At grub>. enter these commands

Code:
find /boot/grub/stage1
This will return a location. If you have more than one, select the installation that you want to provide the grub files.
Next, THIS IS IMPORTANT, whatever was returned for the find command use it in the next line (you are still at grub>. when you enter the next 3 commands)

Code:
root (hd?,?)
Again use the value from the find command i.e. if find returned (hd0,1) then you would enter root (hd0,1)

Next enter the command to install grub to the mbr

Code:
setup (hd0)
Finally exit the grub shell
Code:
quit

That is it. Grub will be installed to the mbr.
When you reboot, you will have the grub menu at startup.

Here it is possible to familiarise with the interesting insurance company which is engaged in free auto insurance quotes california car insurance auto quotes online

воскресенье, 15 февраля 2009 г.

Вышел релиз Debian GNU/Linux 5.0 (Lenny).

После почти двух лет разработки выпущен долгожданный релиз Debian GNU/Linux 5.0 (Lenny).

Основные новшества:

  • Обновление программного обеспечения: Linux ядро 2.6.26, Gnome 2.22 (из-за проблем с интеграцией gvfs Nautilus и панель взяты из версии 2.20), KDE 3.5.10 (в бэкпортах доступна сборка KDE 4.1.4), XFCE 4.2, LXDE 0.3.2.1, Xorg 7.3, OpenOffice.org 2.4, Firefox 3, Apache 2.2.9, MySQL 5.0.51, PHP 5.2.6, Ruby 1.8 и 1.9, Python 2.5.2. Всего в репозитории Debian Lenny насчитывается около 22 тыс. пакетов.
  • В состав дистрибутива решено включить спорные проприетарные бинарные компонены (firmware). Работа по проверке и чистке неоднозначных бинарных вставок отложена на неопределенный срок. Напомню, что правила проекта Debian запрещают помещение в состав дистрибутива компонент для которых отсутствуют исходные тексты, в то время как у большого числа драйверов из состава Linux ядра имеется привязка к проприетарным бинарным прошивкам, для которых исходные тексты недоступны. Также в репозитории main появились программы с лицензией AGPLv3 (GNU Affero General Public License);
  • Init-скрипты переведены на новую систему инициализации с учетом зависимостей, позволяющую организовать параллельный запуск сервисов;
  • В состав Lenny, вместо старой архитектуры ARM, включена новая реализация "ARMEL". Порт "Armel" (EABI) теперь предлагается по умолчанию, кроме того Lenny последний релиз Debian в котором поддерживается старый порт "Arm" (ABI).
  • Дистрибутив переведен сборку пакетов при помощи GCC-4.3, который теперь используется как компилятор по умолчанию для всех архитектур;
  • Осуществлен переход на использование Python 2.5 и Perl 5.10 (изменено более 400 связанных с Perl пакетов). Обновлены версии пакетов ocaml и gcc-defaults. Проведена замена g77 на gfortran реализацию языке Фортран;
  • Дистрибутив полностью подготовлен для использования в качестве /bin/sh оболочки dash. Но решено еще не использовать dash в качестве shell по умолчанию, переключиться на dash можно опционально;
  • Полностью реализована поддержка интернационализации (I18n) в системе управления конфигурацией Debian, пакеты использующие подсистему debconf полностью поддерживают перевод сообщений на разные языки. Файлы changelog и control во всех пакетах переведены на использование кодировки UTF-8;
  • Осуществлен полный уход от использования debmake. Все пакеты в репозиторие 'main' теперь связаны рекомендательными зависимостями только внутри 'main', не ссылаясь на дополнительные репозитории;
  • Во всех приложениях которые могут работать через IPv4 добавлена полная поддержка IPv6;
  • Проведен аудит приложений на предмет устранения ограничений на размер обрабатываемых файлов (некоторые программы не читали файлы больше 2/4 Гб).
  • Добавлена поддержка NFS v4;
  • В "main" репозиторий включены бинарные пакеты qmail и djbdns, которые ранее были доступны для пользователей Debian только в исходных текстах или через сторонние репозитории пакетов, из-за лицензионной политики автора;
  • Улучшения связанные с безопасностью
    • Stack protector - сборка пакетов с включенной в GCC опцией "-fstack-protector" для защиты от атак, направленных на переполнение буфера и стека.
    • Fortify Source - активация средства glibc ("-D_FORTIFY_SOURCE=2" ) для дополнительной внутренней проверки выхода за пределы буфера функций, таких как strcpy.
    • Format warnings - защита от атак через параметры форматирования строки (format-string), обеспечивается сборкой с параметрами "-Wformat" и "-Wformat-security".
    • Address Space Layout Randomization - случайный выбор позиции для размещения стека и области выделяемой через mmap памяти;
    • relro - переключение определенных областей памяти, после загрузки исполняемого приложения, в режим только для чтения. Включается через сборку с "-Wl,zrelro";
  • Улучшение в инсталляторе:
    • В образ установочного компакт диска добавлены модули для PATA/IDE устройств (частично решает проблемы с установкой на машины с дисковыми контроллерами Marvell);
    • Улучшена поддержка BRLTTY устройств (точечные дисплеи для слепых);
    • Добавлена поддержка загрузки прошивок (firmware) с дополнительных носителей информации (например, с USB Flash или SD/MMC карты) в процессе установки дистрибутива;
    • Полная поддержка установки на зашифрованные разделы. Улучшена поддержка работы с шифрованными разделами в режиме восстановления после сбоя;
    • Из состава CD удалена директория tools/, в которой были такие утилиты, как loadlin, unzip, gzip.
    • Добавлена поддержка создания SATA RAID через dmraid;
    • Возможность обновления пакетов, содержащих уязвимости, на ранней стадии установки;
    • Для архитектур i386 и amd64 реализовано новое интерактивное меню, выдаваемое при загрузке (syslinux vesamenu);
    • Возможность установки из Windows при помощи ПО win32-loader;
    • Реализована поддержка установки системы на NAS серверы, основанные на платформе Marvell Orion, базирующейся на архитектуре ARMv5 (например QNAP TS-109, TS-209 и TS-409, HP Media Vault mv2120, Buffalo Kurobox Pro).
    • В графическом инсталляторе увеличено удобство выбора языка для локализации: улучшена наглядность, добавлена возможность перехода между диалоговыми окнами, страны разбиты на блоки, привязанные к континентам. При выборе языка, для которого перевод установочных сообщений не доведен до конца, теперь выводится предупреждение с возможностью выбора второго языка, на котором будут выводиться непереведенные тексты;
    • Доведено до рабочего состояния монтирование файловых систем в режиме relatime, появившемся в Linux ядре 2.6.20 и в отличии от монтирования ФС с noatime флагом, учет времени чтения файла производится только если прошлый atime старее чем mtime (время изменения) или ctime (время создания);
    • Возможность выбора дополнительных действий при использовании установочных образов с KDE или Xfce CD.
    • Возможность подключения дополнительных репозиториев с CD/DVD дисков, убранная в “etch”, вновь вернулась в lenny. Это значительно улучшит поддержку i18n в инсталляторе, т.к. не все языковые пакеты умещались на первом CD;
    • Установщик, в случае, если сконфигурировано сетевое подключение, будет теперь пытаться синхронизировать часы компьютера с одним из доступных ntp-серверов;
    • Прекращена поддержка DECstation (mips), RiscPC (arm) и sparc32 машин.

А вот тут можно прочитать информацию про московские агентства недвижимости

воскресенье, 18 января 2009 г.

Установка ClamAV из исходников(исправление ошибки)

Качаем последнюю версию отсюда: http://www.clamav.net/download/sources

Распаковываем. Конфигурируем...
configure
У кого возникает ошибка
checking for a supported version of gcc... ok (4.0.2)checking for gcc bug PR27603... ok, bug not presentchecking for gcc bug PR28045... configure: error: your compiler has gcc PR28045 bug, use a different compiler, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28045
конфигурацию выполняем такой командой:
configure CFLAGS="-O0"
make
make install

цена ремонта

четверг, 15 января 2009 г.

Удаление старых файлов в Linux

Удалить старые файлы в автоматическом режиме можно с помощью комбинации 2-х команд:
find /usr/shares/public -mtime +120 -exec rm \{\} \;
find /usr/shares/public -type d -exec rmdir -p {\} \;
Первая найдет все файлы, которые не модифицировались более 120 дней и удалит их. 2-ая подчистит все пустые каталоги.

Hашел на сайте http://sb-megapolis.ru/ КАЛЬКУЛЯТОР КАСКО по всем страховым компаниям

понедельник, 12 января 2009 г.

Организация подключения по SSH через HTTP прокси

Устанавливаем ПО corkscrew (http://www.agroman.net/corkscrew/), позволяющее создавать туннели поверх HTTP прокси.

Для Debian/Ubuntu:
apt-get install corkscrew
Создаем в домашней директории файл настроек .proxy-auth в который прописываем логин и пароль
для подключения к прокси, в формате "имя:пароль", например:
moi_login:moi_parol
Настраиваем проброс туннеля в SSH. В ~/.ssh/config добавляем:
Host *
ProxyCommand corkscrew хост_прокси_сервера порт_прокси_сервера %h %p ~/.proxy-auth
Вместо %h и %p ssh подставит хост и порт удаленной машины

Подключаемся к внешнему хосту стандартно:

ssh testhost.ru

панорамные лифты otis
А вот тут можно заказать аренду серверов

вторник, 6 января 2009 г.

Антивирус AVG для Debian Linux

Информация конечно не новая, но все таки я ее изложу. Итак, наша задача поставить антивирус AVG Free под Debian Linux.

Установка:
1. Идем на сайт AVG.
2. Качаем последнюю версию (на момент публикации 7.5.51).
3. Из-под рута:
debian:~# dpkg -i avg75fld-r51-a1243.i386.deb
4. Устанавливаем лицензию:
debian:~# dpkg -i /opt/grisoft/avggui/bin/avggui_update_licinfo.sh
5. Делаем ярлык на рабочий стол, например: "gksu avggui"(без кавычек)
6. Обновлять можно через GUI или через консольную команду:
/opt/grisoft/avg7/bin/avgupdate -o
7. Сканировать также через GUI или консольную команду:
/opt/grisoft/avg7/bin/avgscan /home/user

Представлен проект Keryx


Представлен проект Keryx, программа для обновления Ubuntu или любого основанного на Debian Linux дистрибутива на компьютерах без выхода в интернет или подключенных через низкоскоростные каналы связи. Keryx написан на Python и имеет реализацию интерфейса на PyGTK и wxWidgets. Программа позволяет пользователю выбрать пакеты для установки и произвести загрузку обновлений на другой машине, имеющей высокосортной выход в сеть (пакеты переносятся на USB Flash). Самое интересное, что загрузка обновлений может быть произведена не только в Linux, но и на машинах с Mac OS X и Windows (достаточно запустить специально подготовленный бинарный файл).
В ближайшем будущем ожидается реализация поддержки обновления дистрибутивов Fedora, Red Hat и Mandriva. Несколько дней назад вышла версия Keryx 0.91, в которой представлена реализация интерфейса на базе wxWidgets, значительно улучшен интерфейс пользователя и увеличена скорость поиска пакетов.