Как убрать рекламу в uTorrent бесплатно, без регистрации и смс

5 сентября 2014 Автор: Ramzess

Как убрать рекламу в uTorrent бесплатно, без регистрации и смсЕсть совершенно простой и легальный способ убрать рекламу в uTorrent:

Читать полностью »

Связка nginx + perl в Debian 7 Wheezy

31 марта 2014 Автор: Ramzess

Недавно понадобилось подружить perl и nginx на Debian 7 Wheezy, чтобы заработала небольшая панель управления, написанная на perl. Так как nginx не умеет напрямую выполнять CGI приложения, но умеет их выполнять через FastCGI, то задача решается с помощью готового сервера CGI приложений — fcgiwrap. Он имеется в главном репозитории Debian. Рассматривать установку nginx я не буду, она тривиальна, но коротко сообщу о том, что я всегда ставлю стабильную версию c репозитория разработчиков nginx, ибо это истинный путь джедая.

Читать полностью »

Захват TCP пакетов с определенными флагами в tcpdump

25 марта 2014 Автор: Ramzess

В заголовке TCP пакета (TCP Header) в 13-ом байте содержится шесть 1-битовых флагов. Представлены они следующим образом:

URG  ACK  PSH RST SYN FIN
32   16   8   4   2   1

Сверху — тип флага, снизу — разрядность.

Показать все URGENT (URG) пакеты…

tcpdump 'tcp[13] & 32!=0'

Показать все ACKNOWLEDGE (ACK) пакеты…

tcpdump 'tcp[13] & 16!=0'

Показать все PUSH (PSH) пакеты…

tcpdump 'tcp[13] & 8!=0'

Показать все RESET (RST) пакеты…

tcpdump 'tcp[13] & 4!=0'

Показать все SYNCHRONIZE (SYN) пакеты…

tcpdump 'tcp[13] & 2!=0'

Показать все FINISH (FIN) пакеты…

tcpdump 'tcp[13] & 1!=0'

Показать все SYNCHRONIZE/ACKNOWLEDGE (SYNACK) пакеты…

tcpdump 'tcp[13]=18'

Диагностика DHCP с помощью tcpdump

5 марта 2014 Автор: Ramzess

Данная конструкция отображает отфильтрованные пакеты tcpdump’ом по указанному MAC адресу клиента:

tcpdump -ni eth0 -vvv -s 1500 '((port 67 or port 68) and (udp[38:4] = 0x3e0ccf08))'

а эта — пакеты отправленный клиетом DISCOVER, REQUEST, INFORM

tcpdump -ni eth0 -vvv -s 1500 '((port 67 or port 68) and (udp[8:1] = 0x1))'

Определить тип и версию DNS-сервера

28 февраля 2014 Автор: Ramzess
dig @ip.of.se.rv chaos txt version.bind

grep по нескольким словам

26 февраля 2014 Автор: Ramzess
grep -e "word1" -e "word2"

Удаление файлов старше указанной даты

25 февраля 2014 Автор: Ramzess

Создаем файл с указанием даты создания:

touch --date "2013-01-01" /tmp/start

Потом find’ом ищем относительно /tmp/start файлы старше него и удаляем:

find . -type f ! -newer /tmp/start -delete

Захват только POST запросов HTTP протокола в tcpdump

Автор: Ramzess
tcpdump -ni eth0 'port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354'

P=0x50
O=0x4f
S=0x53
T=0x54

Как скрыть версию nginx

16 мая 2013 Автор: Ramzess

Для того, чтобы скрыть версию nginx, установленного на сервере, достаточно добавить следующую строку в секцию http конфигурационного файла nginx.conf

 server_tokens off;

Ну а если необходимо вообще скрыть факт присутствия nginx на сервере, смотреть в файлах:

src/http/ngx_http_special_response.c
src/http/ngx_http_header_filter_module.c

Как скрыть расширения php в строке URL используя nginx rewrite работая совместно c PHP-FPM

14 марта 2013 Автор: Ramzess

С недавнего времени задался вопросом: как скрыть расширения файлов php в строке URL браузера при обращении к сайту. Но сразу же столкнулся с проблемой. Разрабатываемый мной сайт крутится на VPS-ке с установленной связкой nginx + PHP-FPM (PHP-FastCGI). Конфиг nginx’a выглядит следующим образом:


server {
listen 80 default;
server_name example.com www.example.com;
}

location /
{
root /home/example.com;
index index.html index.htm index.php;

location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

}

Естественно, после добавления стандартного rewrite, перестает отрабатывать location для php файлов и FastCGI соответственно.

Перечитав сотни форумов, страниц документаций к nginx, пришел к такому решению:


server {
listen 80 default;
server_name example.com www.example.com;
}
location /

{
set $page_to_view "/index.php";
try_files $uri $uri/ @rewrites;

root /home/example.com;

index                       index.html index.php;

location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.socket;
fastcgi_param SCRIPT_FILENAME $document_root$page_to_view;
}

}
location @rewrites {
if ($uri ~* ^/([a-z]+)$) {
set $page_to_view "/$1.php";
rewrite ^/([a-z]+)$ /$1.php last;
}

}

}

Работает следующим образом:

При обращении к корневой папке сайта http://example.com/ значение переменной $page_to_view соответствует index.php, что является стартовой страницей.

При обращении, к примеру, http://example.com/news —  сервер, согласно правилам, устанавливает значение переменной $page_to_view в news.php.

В дальнейшем, значение переменной $page_to_view передается для обработки в FastCGI.