Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

четверг, 16 февраля 2012 г.

Настройка прокси сервера с авторизацией за 5 минут

Раньше я думал, что squid сложен в настройке и всячески его избегал. Как оказалось - зря. Настроить HTTP прокси сервер с авторизацией в нём очень просто. Итак, рецепт (проверял на debian, на ubuntu тоже точно работает, в других дистрибутивах нюансы могут отличаться)

Установка

Тут как обычно:

$ sudo apt-get install squid

Настройка

Файл конфигурации squid находится в /etc/squid/ и называется squid.conf. Следующие параметры в нём заслуживают внимания:

http_port 3128 - устанавливает порт, по какому будет слушать squid.
http_access deny all - устанавливает права доступа

Если необходимо настроить прокси без авторизации - то достаточно просто изменить http_access с deny all на allow all и перезапустить squid. Так как нам нужен прокси с авторизацией, то ничего не трогаем и идем дальше. Находим секцию auth_param и добавляем туда:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

Эта строка указывает squid, какой модуль использовать для авторизации и в каком файле искать логины и пароли.

Создадим файл с логинами и паролями:

$ sudo htpasswd -c /etc/squid/passwd drakmail
Enter a password for user 'drakmail':
Again:
$ sudo htpasswd /etc/squid/passwd mag
Another password:
Again:

Далее, настроим права доступа. Для этого в секцию ACL надо добавить следующие строки:

acl magUser proxy_auth mag
acl drakmailUser proxy_auth drakmail
http_access allow magUser
http_access allow drakmailUser

После этого остаётся только перезапустить squid:

sudo /etc/init.d/squid restart

И наслаждаться настроенным прокси.

понедельник, 14 марта 2011 г.

Эффективное управление вебкамерой с использование motion + bluetooth

"Everything is better with bluetooth" (c) The Big Bang Theory.

Предисловие

Для наблюдения за посещением серверной я уже больше года использую отличную программу motion. Единственная сложность, возникающая при использовании - не забыть выключать видеонаблюдение при входе в серверную и включать при выходе из серверной (что делалось по ssh). Недавно мне это надоело, тем более, что под руку попал USB донгл с bluetooth.

Немного магии shell

после этого меня посетила интересная мысль. Так как я и мой друг и напарник в одном лице mag_delta (спасибо ему за техническую базу :) ) имеем телефоны с поддержкой bluetooth, то почему бы не сделать автоматическое включение камеры, когда оба наших устройства находятся вне области доступности, и автоматическое выключение, как только мы в ней появляемся? Реализовать это все было задумано на bash. В общем, после пары минут написания и тестирования, я написал вот такой простенький скрипт:


#!/bin/sh
#Переменная,в которой хранится предыдущее состояние (в серверной мы или нет)
HERE=0
#Бесконечный цикл
while [ 1 -eq 1 ]; do
#Сканирование на предмет наличия наших телефонов
hcitool info XX:XX:XX:XX:XX:XX > /dev/null
V1RUS=$?
hcitool info XX:XX:XX:XX:XX:XX > /dev/null
MAG=$?
#В случае, если хоть один из телефонов в области досигаемости
if [ $V1RUS -eq 0 -o $MAG -eq 0 ] ; then
#Выводим на stdout сообщения...
echo "HE IS HERE"
if [ $V1RUS -eq 0 ] ; then
echo "V1RUS HERE"
fi
if [ $MAG -eq 0 ] ; then
echo "MAG HERE"
fi
#И, если предыдущее состояние равно нулю (нас здесь не было, а теперь появились), то убиваем motion, останавливая видеонаблюдение
if [ $HERE -eq 0 ]; then
echo "Stopping motion..."
killall motion
fi
#Устанавливаем переменную в значение 1 (мы здесь)
HERE=1
else
#Тоже самое, только включаем motion, если мы перед этим здесь были
echo "HE IS NOT HERE"
if [ $V1RUS -eq 1 ] ; then
echo "V1RUS NOT HERE"
fi
if [ $MAG -eq 1 ] ; then
echo "MAG NOT HERE"
fi

if [ $HERE -eq 1 ]; then
echo "Starting motion..."
motion
fi
HERE=0
fi
#Для избежания разных неприятных эффектов, устанавливаем интервал сканирования в примерно 10 секунд.
sleep 10
done


Итого:

Этот простой скрипт, хоть и написан в спешке, может быть сколь угодно расширен (например, можно добавлять данные о посещаемости в БД :)), а также он экономит кучу времени и нервов. Надеюсь, он кому-нибудь пригодится.

PS.

Вы можете спросить, почему используется hcitool info MAC_ADDRESS, а не hcitool scan? Ответ прост: bluetooth на телефоне может быть в скрытом режиме, и hcitool scan его не обнаружит, в то время как hcitool info найдет его.

воскресенье, 13 февраля 2011 г.

Установка прошивки dd-wrt на роутер Asus WL500G Premium v2


Сегодня с утра я наконец нашел время прошить свой роутер прошивкой dd-wrt. Процесс прошивки проходил на компьютере с ОС GNU/Linux. Так как я не смог быстро найти адекватного руководства, я решил написать данный пост :)

Шаг 1. Подготовка

Итак, что нам потребуется:
  • Файлы прошивки
  • Клиент tftp
  • Компьютер с ОС GNU/Linux, подключенный через ethernet кабель к роутеру

Файлы прошивки

Для установки dd-wrt на роутер Asus WL500G Premium V2 требуется несколько файлов:

Клиент tftp

Следующий шаг - установка клиента tftp. Скорее всего, пакет с tftp называется tftp-hpa.

Компьютер с ОС GNU/Linux, подключенный через ethernet кабель к роутеру

После того, как клиент tftp установлен, необходимо настроить статический ip адрес 192.168.1.2 (например, командой

ifconfig eth0 192.168.1.1
выполненной с правами пользователя root).

Внимание: прошить роутер через wifi не получится, даже не пробуйте :)

Вот и все, предварительная подготовка окончена. Пришло время заняться непосредственно прошивкой.

Шаг 2. Прошивка

Сам процесс прошивки не очень сложен. Главное - не спешить. Для начала, необходимо проверить, что все требования первого шага выполнены. Итак, приступим:

  • Скопируйте все файлы из шага 1 в одну директорию (например, /home/user/asus/), и перейдите в нее.
  • Загрузите роутер в режим восстановления (для этого необходимо отключить кабель питания от роутера, подождать 30 секунд, нажать и удерживать кнопку reset, включить питание, не отпуская кнопку reset). Удерживайте кнопку reset до тех пор, пока не замигает лампочка питания на лицевой панели роутера. После этого можете отпустить кнопку reset.
  • Проверьте, назначен ли компьютеру IP адрес 192.168.1.2 (если нет, то выполните команду ifconfig eth0 192.168.1.2/24 с правами пользователя root).
  • Далее, необходимо загрузить файл wl500g-clear-nvram.trx в роутер. Для этого, выполните следующую команду (подразумевается, что Вы находитесь в директории с файлами прошивки):
    $ tftp 192.168.1.1
    mode binary
    put wl500g-clear-nvram.trx
  • В течении короткого промежутка времени (5-15сек.), появится приглашение ввода команд клиента tftp. Введите туда quit. После этого необходимо подождать 5 минут, пока прошивка запишется в память роутера. На самом деле, прошивка обычно записывается не более 2-3 минут, но лучше подождать лишнюю пару минут, чем получить из роутера кирпич. После этого можно отключать питание.
Далее, необходимо тем же путем загрузить прошивку, хранящуюся в файле wl500g-recover.trx. Для этого надо сделать тоже самое, что и при загрузке файла wl500g-clear-nvram.trx. Вкратце:
  • Перезагружаем роутер в режим восстановления.
  • Проверяем, есть ли статический IP, если нет, то устанавливаем.
  • Загружаем прошивку.
  • Отключаем питание.

Ничего сложного. Не забудьте подождать 5 минут перед отключением питания, иначе рискуете превратить свой роутер в кирпич.

Теперь настал черед минимальной прошивки dd-wrt для роутера, через которую мы загрузим полноценную прошивку, с которой уже можно будет работать. Процесс заливки все тот же, только не забудьте проверить, что:
  • Файл с прошивкой называется dd-wrt.v**_asus.trx. Внимательно проверьте, что расширение файла - .trx, иначе роутер может стать кирпичом.
  • Необходимо подождать 5 минут перед выключением после окончания загрузки прошивки

Шаг 3. Окончание

Если вы следовали инструкции, и все прошло нормально, то осталось включить роутер в обычном режиме, получить IP по DHCP и зайти по адрему http://192.168.1.1/ . Там вы увидите просьбу ввести логин/пароль для доступа в веб-интерфейсу.

После установки логина и пароля необходимо выбрать пункт меню Firmware Upgrade, выбрать пункт "Reset to Default settings" параметра "After flashing, reset to", указать файл с полной прошивкой (dd-wrt-v24_mega_generic.bin). Далее необходимо нажать кнопку Upgrade, и пойти пить чай. Лучше не трогайте ничего (вообще ничего), до того момента, пока роутер не перезагрузится.

После перезагрузки, зайдя на адрес http://192.168.1.1/ Вы увидите просьбу ввести логин/пароль для доступа к веб-интерфейсу. После его ввода, в Ваших руках окажется готовая к работе прошивка dd-wrt. На этом все.

пятница, 7 января 2011 г.

SnapFly

В рамках изучения питона была форкнута софтина adeskmenu. Теперь у меня есть полезный опыт, а у сообщества мощное и легкое GTK меню SnapFly:)

вторник, 2 ноября 2010 г.

Установка свежего boost на CentOS 5.5

Для этого необходимо:

cd /usr/local/src/
wget http://sourceforge.net/projects/boost/files/boost/1.43.0/boost_1_43_0.tar.gz/download
tar xvzf boost_1_43_0.tar.gz
cd boost_1_43_0
./bootstrap.sh
./bjam install

среда, 11 августа 2010 г.

Debian Squeeze sources.list

Вдруг кому пригодится:


#Основные зеркала
deb http://mirror.yandex.ru/debian/ squeeze main
deb-src http://mirror.yandex.ru/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile/ squeeze/volatile main
deb http://http.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://http.us.debian.org/debian/ squeeze main contrib non-free
deb http://http.us.debian.org/debian/ squeeze-proposed-updates contrib non-free main
deb-src http://http.us.debian.org/debian/ squeeze-proposed-updates contrib non-free main

# Репозиторий Backports.org
deb http://www.backports.org/debian/ squeeze-backports main contrib non-free

#Репозиторий Wine
deb http://www.lamaresh.net/apt sid main

#Multimedia (Кодеки и пр.)
deb http://www.debian-multimedia.org squeeze main non-free

суббота, 19 июня 2010 г.

Оптимизация таблиц MySQL

Сегодня решил еще раз посмотреть на запрос в электронном офисе, выполняющийся пару минут. Решил посмотреть профилировщиком, что же там так долго выполняется. В общем, вспомнил я что-то про индексы. Сделав столбцы, используемые при выборке (WHERE XXX или LEFT XXX ON XXX.Y = YYY.Z) индексными, я получил прирост более 9000% производительности. Если раньше запрос выполнялся 84.68 сек. на моем Core 2 Quad, то теперь он выполняется всего 0.22 сек!

После этого случая я подумал, что надо будет всё-таки посмотреть пару книжек о MySQL. )

PS. Еще я наконец-то почти портировал его на Linux (Осталось сделать работу выгрузки файлов).

понедельник, 7 июня 2010 г.

четверг, 29 апреля 2010 г.

Быстрая проверка доступности порта

Реально быстрая команда для проверки открытости любого порта:
nc -z ftp.server 21 && echo Up || echo Down
Работает дейтсвительно быстро!

среда, 28 апреля 2010 г.

Steam для Linux

В этой теме на ЛОРе доступна ссылка и установочный скрипт для steam4linux. В данный момент при запуске steam ругается на библиотеку steamui.so. Ждем продолжения!

вторник, 20 апреля 2010 г.

Монитор использования сети

Сегодня наткнулся на монитор использования сети nethogs. Давно искал нечто подобное, но, видно, не очень активно )