Posts Tagged ‘ Linux & Unix

rewrite правила Gallery2 на Nginx


( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.04527840520the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.04527840552apply_filters( $hook_name = 'the_content', $value = '<pre lang="cpp">\r\nlocation /v/\r\n{\r\n if ($request_uri !~ /main.php)\r\n {\r\n rewrite ^/v/(.*)$ /main.php?g2_view=core.ShowItem&g2_path=$1 \r\nlast;\r\n }\r\n}\r\n\r\nlocation /d/\r\n{\r\n\r\n if ($request_uri !~ /main.php)\r\n {\r\n\r\nrewrite /d/(\\d+)-(\\d+)/([^/?]+)/main.php?g2_view=core.DownloadItem&g2_itemId=$1&g2_serialNumber=$2&g2_fileName=$3\r\nlast;\r\n }\r\n\r\n}\r\n</pre>' ).../post-template.php:256
70.04527861440WP_Hook->apply_filters( $value = '<pre lang="cpp">\r\nlocation /v/\r\n{\r\n if ($request_uri !~ /main.php)\r\n {\r\n rewrite ^/v/(.*)$ /main.php?g2_view=core.ShowItem&g2_path=$1 \r\nlast;\r\n }\r\n}\r\n\r\nlocation /d/\r\n{\r\n\r\n if ($request_uri !~ /main.php)\r\n {\r\n\r\nrewrite /d/(\\d+)-(\\d+)/([^/?]+)/main.php?g2_view=core.DownloadItem&g2_itemId=$1&g2_serialNumber=$2&g2_fileName=$3\r\nlast;\r\n }\r\n\r\n}\r\n</pre>', $args = [0 => '<pre lang="cpp">\r\nlocation /v/\r\n{\r\n if ($request_uri !~ /main.php)\r\n {\r\n rewrite ^/v/(.*)$ /main.php?g2_view=core.ShowItem&g2_path=$1 \r\nlast;\r\n }\r\n}\r\n\r\nlocation /d/\r\n{\r\n\r\n if ($request_uri !~ /main.php)\r\n {\r\n\r\nrewrite /d/(\\d+)-(\\d+)/([^/?]+)/main.php?g2_view=core.DownloadItem&g2_itemId=$1&g2_serialNumber=$2&g2_fileName=$3\r\nlast;\r\n }\r\n\r\n}\r\n</pre>'] ).../plugin.php:205
80.04527862568WP_Syntax::beforeFilter( $content = '<pre lang="cpp">\r\nlocation /v/\r\n{\r\n if ($request_uri !~ /main.php)\r\n {\r\n rewrite ^/v/(.*)$ /main.php?g2_view=core.ShowItem&g2_path=$1 \r\nlast;\r\n }\r\n}\r\n\r\nlocation /d/\r\n{\r\n\r\n if ($request_uri !~ /main.php)\r\n {\r\n\r\nrewrite /d/(\\d+)-(\\d+)/([^/?]+)/main.php?g2_view=core.DownloadItem&g2_itemId=$1&g2_serialNumber=$2&g2_fileName=$3\r\nlast;\r\n }\r\n\r\n}\r\n</pre>' ).../class-wp-hook.php:324
90.04527862568preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = '<pre lang="cpp">\r\nlocation /v/\r\n{\r\n if ($request_uri !~ /main.php)\r\n {\r\n rewrite ^/v/(.*)$ /main.php?g2_view=core.ShowItem&g2_path=$1 \r\nlast;\r\n }\r\n}\r\n\r\nlocation /d/\r\n{\r\n\r\n if ($request_uri !~ /main.php)\r\n {\r\n\r\nrewrite /d/(\\d+)-(\\d+)/([^/?]+)/main.php?g2_view=core.DownloadItem&g2_itemId=$1&g2_serialNumber=$2&g2_fileName=$3\r\nlast;\r\n }\r\n\r\n}\r\n</pre>' ).../wp-syntax.php:383
location /v/
{
    if ($request_uri !~ /main.php)
    {
        rewrite ^/v/(.*)$ /main.php?g2_view=core.ShowItem&g2_path=$1 
last;
    }
}
 
location /d/
{
 
    if ($request_uri !~ /main.php)
    {
 
rewrite /d/(\d+)-(\d+)/([^/?]+)/main.php?g2_view=core.DownloadItem&g2_itemId=$1&g2_serialNumber=$2&g2_fileName=$3
last;
    }
 
}

nginx, php-cgi или избавляемся от apache

Теста ради решил несколько доменов поднять только на nginx и посмотреть как поменяется картинка на графиках загрузки сервера.
Как запустить nginx поверх apache было описано тут
Теперь начинаем прикручивать php к nginx через fastcgi.
для этого нам понадобится пакет spawn-fcgi

Read more

Добавление AdSense в WordPress

Ставим плагин AdSense Manager.
Заходим в раздел “Записи” там находим “Ad Units
Добавляем новую контекстную рекламу нажав на ссылку “Create New Ad

Увидим такое поле, вставляем ваш код от Гугла
Read more

Кодування імен файлів в Linux


( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.04887896800the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.04887896800apply_filters( $hook_name = 'the_content', $value = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../post-template.php:256
70.04887897208WP_Hook->apply_filters( $value = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'..., $args = [0 => 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'...] ).../plugin.php:205
80.04887897584WP_Syntax::beforeFilter( $content = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../class-wp-hook.php:324
90.04887897584preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../wp-syntax.php:383

( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.04887896800the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.04887896800apply_filters( $hook_name = 'the_content', $value = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../post-template.php:256
70.04887897208WP_Hook->apply_filters( $value = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'..., $args = [0 => 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'...] ).../plugin.php:205
80.04887897584WP_Syntax::beforeFilter( $content = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../class-wp-hook.php:324
90.04887897584preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../wp-syntax.php:383

( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.04887896800the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.04887896800apply_filters( $hook_name = 'the_content', $value = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../post-template.php:256
70.04887897208WP_Hook->apply_filters( $value = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'..., $args = [0 => 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'...] ).../plugin.php:205
80.04887897584WP_Syntax::beforeFilter( $content = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../class-wp-hook.php:324
90.04887897584preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = 'Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv\r\nСтавимо її:\r\n<pre lang="bash">\r\n$apt-get install convmv\r\n</pre>\r\nа потім правимо кодування :\r\n<pre lang="bash">$convmv -f cp1251 -t utf-8 -r --no'... ).../wp-syntax.php:383

Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv
Ставимо її:

$apt-get install convmv

а потім правимо кодування :

$convmv -f cp1251 -t utf-8 -r --nosmart --replace --notest /якась/папка/

–nosmart – не чіпає файли які вже в кодуванні UTF8
–replace – заміняє файли
-r – рекурсивно

Отримати список всіх підтримуваних кодувань :

$convmv --list

nginx и Apache2


( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.04987915776the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.04997916416apply_filters( $hook_name = 'the_content', $value = 'Решил немного разгрузить веб-сервер, для чего в виде Frontend\'a прикрутил Nginx.\r\nСубьективно: скорость отображения страниц выросла.\r\nИтак, приступим...\r\nДопустим у вас уже есть веб-сервер с Apache и виртуальными хостами\r\nНачинаем ставить софт\r\n<pre lang="bash">\r\nemerge www-apache/mod_rpaf\r\nUSE="status realip addition" emerge -av ngi'... ).../post-template.php:256
70.04997916824WP_Hook->apply_filters( $value = 'Решил немного разгрузить веб-сервер, для чего в виде Frontend\'a прикрутил Nginx.\r\nСубьективно: скорость отображения страниц выросла.\r\nИтак, приступим...\r\nДопустим у вас уже есть веб-сервер с Apache и виртуальными хостами\r\nНачинаем ставить софт\r\n<pre lang="bash">\r\nemerge www-apache/mod_rpaf\r\nUSE="status realip addition" emerge -av ngi'..., $args = [0 => 'Решил немного разгрузить веб-сервер, для чего в виде Frontend\'a прикрутил Nginx.\r\nСубьективно: скорость отображения страниц выросла.\r\nИтак, приступим...\r\nДопустим у вас уже есть веб-сервер с Apache и виртуальными хостами\r\nНачинаем ставить софт\r\n<pre lang="bash">\r\nemerge www-apache/mod_rpaf\r\nUSE="status realip addition" emerge -av ngi'...] ).../plugin.php:205
80.04997917200WP_Syntax::beforeFilter( $content = 'Решил немного разгрузить веб-сервер, для чего в виде Frontend\'a прикрутил Nginx.\r\nСубьективно: скорость отображения страниц выросла.\r\nИтак, приступим...\r\nДопустим у вас уже есть веб-сервер с Apache и виртуальными хостами\r\nНачинаем ставить софт\r\n<pre lang="bash">\r\nemerge www-apache/mod_rpaf\r\nUSE="status realip addition" emerge -av ngi'... ).../class-wp-hook.php:324
90.04997917200preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = 'Решил немного разгрузить веб-сервер, для чего в виде Frontend\'a прикрутил Nginx.\r\nСубьективно: скорость отображения страниц выросла.\r\nИтак, приступим...\r\nДопустим у вас уже есть веб-сервер с Apache и виртуальными хостами\r\nНачинаем ставить софт\r\n<pre lang="bash">\r\nemerge www-apache/mod_rpaf\r\nUSE="status realip addition" emerge -av ngi'... ).../wp-syntax.php:383

Решил немного разгрузить веб-сервер, для чего в виде Frontend’a прикрутил Nginx.
Субьективно: скорость отображения страниц выросла.
Итак, приступим…
Допустим у вас уже есть веб-сервер с Apache и виртуальными хостами
Начинаем ставить софт

emerge www-apache/mod_rpaf
USE="status realip addition" emerge -av nginx

Read more

Проброс трафика на другую машину


( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.05097932256the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.05097932256apply_filters( $hook_name = 'the_content', $value = 'Появилась проблемка.... нужно было весь трафик приходящий на определенный порт заворачивать на другую машину в локальной сети, но управлять этим нужно не на шлюзе, а на локальной машине... ответ оказался прост и решается с помощью <strong>iptables</strong>:\r\n\r\n<pre lang="bash">iptables -t nat -A PREROUTING -p tcp -i eth0 --'... ).../post-template.php:256
70.05097932664WP_Hook->apply_filters( $value = 'Появилась проблемка.... нужно было весь трафик приходящий на определенный порт заворачивать на другую машину в локальной сети, но управлять этим нужно не на шлюзе, а на локальной машине... ответ оказался прост и решается с помощью <strong>iptables</strong>:\r\n\r\n<pre lang="bash">iptables -t nat -A PREROUTING -p tcp -i eth0 --'..., $args = [0 => 'Появилась проблемка.... нужно было весь трафик приходящий на определенный порт заворачивать на другую машину в локальной сети, но управлять этим нужно не на шлюзе, а на локальной машине... ответ оказался прост и решается с помощью <strong>iptables</strong>:\r\n\r\n<pre lang="bash">iptables -t nat -A PREROUTING -p tcp -i eth0 --'...] ).../plugin.php:205
80.05097933040WP_Syntax::beforeFilter( $content = 'Появилась проблемка.... нужно было весь трафик приходящий на определенный порт заворачивать на другую машину в локальной сети, но управлять этим нужно не на шлюзе, а на локальной машине... ответ оказался прост и решается с помощью <strong>iptables</strong>:\r\n\r\n<pre lang="bash">iptables -t nat -A PREROUTING -p tcp -i eth0 --'... ).../class-wp-hook.php:324
90.05097933040preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = 'Появилась проблемка.... нужно было весь трафик приходящий на определенный порт заворачивать на другую машину в локальной сети, но управлять этим нужно не на шлюзе, а на локальной машине... ответ оказался прост и решается с помощью <strong>iptables</strong>:\r\n\r\n<pre lang="bash">iptables -t nat -A PREROUTING -p tcp -i eth0 --'... ).../wp-syntax.php:383

Появилась проблемка…. нужно было весь трафик приходящий на определенный порт заворачивать на другую машину в локальной сети, но управлять этим нужно не на шлюзе, а на локальной машине… ответ оказался прост и решается с помощью iptables:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 21 -j DNAT --to-destination 10.0.3.99
iptables -t nat -A POSTROUTING -p tcp -d 10.0.3.99 --dport 21 -j MASQUERADE

10.0.3.99 – куда заворачивать

Отбрасывание пакетов ping


( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.05197934224the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.05197935760apply_filters( $hook_name = 'the_content', $value = '<pre lang="bash">/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all\r\n</pre>\r\nЭто просто заставит ядро игнорировать все сообщения ping (ICMP-пакеты типа 0). IP-пакет, несущий ICMP-сообщение, может содержать также в нагрузку и другую информацию, о которой вы можете не подозревать, поэтому следует отключить прием. Админист'... ).../post-template.php:256
70.05197936168WP_Hook->apply_filters( $value = '<pre lang="bash">/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all\r\n</pre>\r\nЭто просто заставит ядро игнорировать все сообщения ping (ICMP-пакеты типа 0). IP-пакет, несущий ICMP-сообщение, может содержать также в нагрузку и другую информацию, о которой вы можете не подозревать, поэтому следует отключить прием. Админист'..., $args = [0 => '<pre lang="bash">/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all\r\n</pre>\r\nЭто просто заставит ядро игнорировать все сообщения ping (ICMP-пакеты типа 0). IP-пакет, несущий ICMP-сообщение, может содержать также в нагрузку и другую информацию, о которой вы можете не подозревать, поэтому следует отключить прием. Админист'...] ).../plugin.php:205
80.05197936544WP_Syntax::beforeFilter( $content = '<pre lang="bash">/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all\r\n</pre>\r\nЭто просто заставит ядро игнорировать все сообщения ping (ICMP-пакеты типа 0). IP-пакет, несущий ICMP-сообщение, может содержать также в нагрузку и другую информацию, о которой вы можете не подозревать, поэтому следует отключить прием. Админист'... ).../class-wp-hook.php:324
90.05197936544preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = '<pre lang="bash">/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all\r\n</pre>\r\nЭто просто заставит ядро игнорировать все сообщения ping (ICMP-пакеты типа 0). IP-пакет, несущий ICMP-сообщение, может содержать также в нагрузку и другую информацию, о которой вы можете не подозревать, поэтому следует отключить прием. Админист'... ).../wp-syntax.php:383
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

Это просто заставит ядро игнорировать все сообщения ping (ICMP-пакеты типа 0). IP-пакет, несущий ICMP-сообщение, может содержать также в нагрузку и другую информацию, о которой вы можете не подозревать, поэтому следует отключить прием. Администраторы используют ping как утилиту диагностики и часто выражают недовольство, если она отключена, но нет причины позволять чужакам пинговать узел. Тем не менее, если необходимо разрешить внутренним пользователям использовать ping, то можно отключить сообщения ICMP типа 0 в межсетевом экране (тем самым позволив локальным администраторам использовать эту утилиту).
Read more

how to login to postgres console


( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.05287951440the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.05287951440apply_filters( $hook_name = 'the_content', $value = '<pre lang="shell">\r\nsudo sh\r\nsu – postgres\r\n#psql database username\r\npsql bitmountain postgres\r\n</pre>' ).../post-template.php:256
70.05297951848WP_Hook->apply_filters( $value = '<pre lang="shell">\r\nsudo sh\r\nsu – postgres\r\n#psql database username\r\npsql bitmountain postgres\r\n</pre>', $args = [0 => '<pre lang="shell">\r\nsudo sh\r\nsu – postgres\r\n#psql database username\r\npsql bitmountain postgres\r\n</pre>'] ).../plugin.php:205
80.05297952224WP_Syntax::beforeFilter( $content = '<pre lang="shell">\r\nsudo sh\r\nsu – postgres\r\n#psql database username\r\npsql bitmountain postgres\r\n</pre>' ).../class-wp-hook.php:324
90.05297952224preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = '<pre lang="shell">\r\nsudo sh\r\nsu – postgres\r\n#psql database username\r\npsql bitmountain postgres\r\n</pre>' ).../wp-syntax.php:383
sudo sh
su – postgres
#psql database username
psql bitmountain postgres

стук на открытие порта ssh


( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.05377968336the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.05377968336apply_filters( $hook_name = 'the_content', $value = 'Самое простое — открывать порт <strong>ssh</strong> (22) после стука в заданный высокий порт:\r\n\r\n<pre lang="bash">iptables -N ssh_knock # Создаем цепочку для проверки попыток соединений на защищаемый порт\r\n# Если за последние 60 секунд было 2 и более стука — блокируем, на всякий случай\r\niptables -A ssh_knock -m recent --rcheck --secon'... ).../post-template.php:256
70.05377968744WP_Hook->apply_filters( $value = 'Самое простое — открывать порт <strong>ssh</strong> (22) после стука в заданный высокий порт:\r\n\r\n<pre lang="bash">iptables -N ssh_knock # Создаем цепочку для проверки попыток соединений на защищаемый порт\r\n# Если за последние 60 секунд было 2 и более стука — блокируем, на всякий случай\r\niptables -A ssh_knock -m recent --rcheck --secon'..., $args = [0 => 'Самое простое — открывать порт <strong>ssh</strong> (22) после стука в заданный высокий порт:\r\n\r\n<pre lang="bash">iptables -N ssh_knock # Создаем цепочку для проверки попыток соединений на защищаемый порт\r\n# Если за последние 60 секунд было 2 и более стука — блокируем, на всякий случай\r\niptables -A ssh_knock -m recent --rcheck --secon'...] ).../plugin.php:205
80.05377969120WP_Syntax::beforeFilter( $content = 'Самое простое — открывать порт <strong>ssh</strong> (22) после стука в заданный высокий порт:\r\n\r\n<pre lang="bash">iptables -N ssh_knock # Создаем цепочку для проверки попыток соединений на защищаемый порт\r\n# Если за последние 60 секунд было 2 и более стука — блокируем, на всякий случай\r\niptables -A ssh_knock -m recent --rcheck --secon'... ).../class-wp-hook.php:324
90.05377969120preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = 'Самое простое — открывать порт <strong>ssh</strong> (22) после стука в заданный высокий порт:\r\n\r\n<pre lang="bash">iptables -N ssh_knock # Создаем цепочку для проверки попыток соединений на защищаемый порт\r\n# Если за последние 60 секунд было 2 и более стука — блокируем, на всякий случай\r\niptables -A ssh_knock -m recent --rcheck --secon'... ).../wp-syntax.php:383

Самое простое — открывать порт ssh (22) после стука в заданный высокий порт:

iptables -N ssh_knock # Создаем цепочку для проверки попыток соединений на защищаемый порт
# Если за последние 60 секунд было 2 и более стука — блокируем, на всякий случай
iptables -A ssh_knock -m recent --rcheck --seconds 60 --hitcount 2 -j RETURN
# Если за последние 10 секунд стук в нужный порт был — разрешить соединение
iptables -A ssh_knock -m recent --rcheck --seconds 10 -j ACCEPT
iptables -F INPUT # Очищаем цепочку INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешаем пакеты по установленным соединениям
# Все попытки открыть новое соединение по SSH направляем на проверку
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ssh_knock
# Здесь мы добавляем правило для регистрации стука
iptables -A INPUT -m state --state NEW -p tcp --dport 27520 -m recent --set
# Опять же на всякий случай — при стуке в соседние порты закрываем SSH
iptables -A INPUT -m state --state NEW -p tcp -m multiport --dport 27519,27521 -m recent --remove
iptables -P INPUT DROP # Что не разрешено — то запрещено

Даже в таком простом примере присутствуют жесткие меры защиты: защищаемый порт ssh (22) открывается на 10 секунд после стука в заданный порт (27520), при этом более одного стука в этот порт в течение минуты считается ошибкой. Также стук в соседние с заданным порты сразу закрывает защищаемый порт. Это делается в целях защиты от подбора стука.

Защита от брут-форса


( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/reverse.org.ua/default/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Call Stack
#TimeMemoryFunctionLocation
10.0000369120{main}( ).../index.php:0
20.0000369480require( '/var/www/reverse.org.ua/default/wp-blog-header.php ).../index.php:17
30.03587205576require_once( '/var/www/reverse.org.ua/default/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.03627242824include( '/var/www/reverse.org.ua/default/wp-content/themes/monochrome/archive.php ).../template-loader.php:106
50.05477980736the_content( $more_link_text = 'Read more', $strip_teaser = ??? ).../archive.php:44
60.05477980736apply_filters( $hook_name = 'the_content', $value = '<pre lang="bash">\r\niptables -N ssh_knock # Создаем цепочку для проверки\r\n# Если за последние 10 минут было 5 и более попыток соединения — блокируем\r\niptables -A ssh_knock -m recent --name ssh --update --seconds 600 --hitcount 5 -j RETURN\r\n# Регистрируем\r\niptables -A ssh_knock -m recent --name ssh --set\r\n# Если за последние 5 секунд было менее двух попыток — блокиру'... ).../post-template.php:256
70.05477981144WP_Hook->apply_filters( $value = '<pre lang="bash">\r\niptables -N ssh_knock # Создаем цепочку для проверки\r\n# Если за последние 10 минут было 5 и более попыток соединения — блокируем\r\niptables -A ssh_knock -m recent --name ssh --update --seconds 600 --hitcount 5 -j RETURN\r\n# Регистрируем\r\niptables -A ssh_knock -m recent --name ssh --set\r\n# Если за последние 5 секунд было менее двух попыток — блокиру'..., $args = [0 => '<pre lang="bash">\r\niptables -N ssh_knock # Создаем цепочку для проверки\r\n# Если за последние 10 минут было 5 и более попыток соединения — блокируем\r\niptables -A ssh_knock -m recent --name ssh --update --seconds 600 --hitcount 5 -j RETURN\r\n# Регистрируем\r\niptables -A ssh_knock -m recent --name ssh --set\r\n# Если за последние 5 секунд было менее двух попыток — блокиру'...] ).../plugin.php:205
80.05487981520WP_Syntax::beforeFilter( $content = '<pre lang="bash">\r\niptables -N ssh_knock # Создаем цепочку для проверки\r\n# Если за последние 10 минут было 5 и более попыток соединения — блокируем\r\niptables -A ssh_knock -m recent --name ssh --update --seconds 600 --hitcount 5 -j RETURN\r\n# Регистрируем\r\niptables -A ssh_knock -m recent --name ssh --set\r\n# Если за последние 5 секунд было менее двух попыток — блокиру'... ).../class-wp-hook.php:324
90.05487981520preg_replace_callback( $pattern = '/\\s*<pre(?:lang=["\']([\\w-]+)["\']|line=["\'](\\d*)["\']|escaped=["\'](true|false)?["\']|highlight=["\']((?:\\d+[,-])*\\d+)["\']|src=["\']([^"\']+)["\']|\\s)+>(.*)<\\/pre>\\s*/siU', $callback = [0 => 'WP_Syntax', 1 => 'substituteToken'], $subject = '<pre lang="bash">\r\niptables -N ssh_knock # Создаем цепочку для проверки\r\n# Если за последние 10 минут было 5 и более попыток соединения — блокируем\r\niptables -A ssh_knock -m recent --name ssh --update --seconds 600 --hitcount 5 -j RETURN\r\n# Регистрируем\r\niptables -A ssh_knock -m recent --name ssh --set\r\n# Если за последние 5 секунд было менее двух попыток — блокиру'... ).../wp-syntax.php:383
iptables -N ssh_knock # Создаем цепочку для проверки
# Если за последние 10 минут было 5 и более попыток соединения — блокируем
iptables -A ssh_knock -m recent --name ssh --update --seconds 600 --hitcount 5 -j RETURN
# Регистрируем
iptables -A ssh_knock -m recent --name ssh --set
# Если за последние 5 секунд было менее двух попыток — блокируем
iptables -A ssh_knock -m recent --name ssh ! --rcheck --seconds 5 --hitcount 2 -j RETURN
# Все остальное — разрешаем
iptables -A ssh_knock -j ACCEPT
iptables -F INPUT # Очищаем цепочку INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешаем пакеты по установленным соединениям
# Все попытки открыть новое соединение по SSH направляем на проверку
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ssh_knock
iptables -P INPUT DROP # Что не разрешено — то запрещено

Идея метода проста: защищаемый порт открывается со второй попытки, т.е. стук идет непосредственно в него. Вторую попытку нужно сделать в течение 5 секунд после первой. При этом 5 и более попыток за десять минут блокируются (во избежание брутфорса).

Переменная PRI_CAUSE (ISDN Cause code)

Переменная PRI_CAUSE используется для передачи информации по линиям связи ISDN PRI о причине разрыва связи до ее фактического разрыва.

Переменная появилась, начиная с версии 1.0 сервера Asterisk.

Для каналов: Zap PRI, chan_capi и chan_misdn BRI есть возможность установки значения переменной PRI_CAUSE до выполнения команды Hangup(). Это приведет к тому, что в отправляемом сообщении PRI DISCONNECT будет установлен параметр CAUSE, который может быть использован телефонным коммутатором.
Read more