Пренасочване на порт през SSH

Вече за трети път ме пита един човек за това и ще го напиша тук и край!. Идеята на това пренасочване е че се прави ssh тунел до машината на която има пуснат ssh server. По този начин връзката между вас и машината е защитена през ssh v2.  А сега идеята е, че искаме да ползваме тази машина като защитетно прокси(ssh) и да излизаме от тази машина. За целта изпълняваме:

ssh -D 1080 [email protected] -p 22 -v

След това във Firefox на socket въвеждате localhost и port 1080. Сега целият трафик минава от вас-> 122.26.35.1 и след това от него излиза навън. Това е!.

PS: Тук съм писал за тунел през puTTY(за windows потребителите)-> SSH тунел чрез PuTTY

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Decode на unicode cyrillic

Идеята е да се декодира unicode cyrillic със php. Ето един простичък метод:

function unicode_decode($str)                                                                                                               {
return preg_replace("/\\\u([0-9A-F]{4})/ie", "iconv('utf-16', 'utf-8', hex2str(\"$1\"))", $str);
}

function hex2str($hex)
{
$r = ";
for ($i = 0; $i; $r .= chr(hexdec($hex[$i] . $hex[$i + 1])))
return $r;
}

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Счупване на терминала

На всеки се е случвало да му се строши  терминала и да не вижда какво пише(под трошене имам впредвид да не се чете нищо). Решението е супер просто , но един приятел явно не го знаеше и затова реших да го споделя тук за да го знаят повече хора.
Пример за строшаване е :

cat /dev/random

Спирате с ctrl +c, но вече е строшено

Решението е супер "сложно". Просто изпълнете приложението "reset" дори и да не виждате какво пишете. Натиснете [enter] и всичко е супер :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

PHP: Стартиране на конзолно приложение с моментален изход

Идеята е да изпълня някакво конзолно приложение от php(web) което line by line да ми извежда изхода. Пример правя ping до машина и не искам да изчакам крайния резултат на ping-a, а всеки ред да излиза. Реших да споделя  простичкото решение на въпроса:

<?php
$handle = popen("ping example.com -c 11  2>&1", 'r');
while(!feof($handle)) {
$buf = fgets($handle);
echo "$buf<br/>\n";
flush();
}
pclose($handle);
?>

PS: popen може да се ползва и да лоадва файлчета, пример: tail -f /var/log/mysq/mysq.log

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Използване на tcpdump за прехващане на стринг от писмо

Тук идеята ми е, че на моменти получавам писмо от конкретен адрес ( или не) и съдържанието му е много важно. Толкова важно, че искам да го видя веднага в най- лесния вариант. Да речем че получавам като важно съдържание едно изречение (стринг).

Решението което имам (използвам собствен mail server с root access): Пускам tcpdump да логва всички пакети на 25 порт и след това парствам за конкретния стринг. Ето един много лесен пример за 2 мин:

tcpdump -s 1500 -lXvvi eth3 port 25|awk -F ' ' '{print $10}' >> /tmp/aa.txt

Ето едно малко php което парсва и показва ако го има:

function dhs_lr_str($a,$b,$c,$num=1){$a=explode("$a",$c);$b=explode("$b",$a[$num]);return addslashes(trim($b[0]));};

$buffer=file_get_contents("/tmp/aa.txt");
$buffer=str_replace("\n",",$buffer);
$buffer = preg_replace('#\r?\n#', ", $buffer);
$buffer = preg_replace('/\s\s+/', ' ', $buffer);

preg_match_all("/lqva_chast(.*?)dqsna_chast/", $buffer, $matches);
$search_words=array_unique($matches[1]);

echo "<table border='1'><tr><td><b>N</td><td><b>Link</td></tr>";
foreach ($search_words as $value)
{
$i++;echo "<tr><td><b>$i</td><td>$value</td></tr>";
};
echo "</table>";

Може и с bash:

#Премахва \n
cat /tmp/aa.txt|sed -e :a -e '$!N;s/\n//;ta'  > /tmp/a.txt
#Парсва търсения стринг между "lqva_chast" X "dqsna_chast"
cat /tmp/a.txt|awk -F 'lqva_chast' '{print $2}'|awk -F 'dqsna_chast' '{print $1}'

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Автоматично валидиране на html код с php5 tidy

Кратък пример как може да се фиксне или валидира html с php5 tidy:

$tidy = new Tidy();
$options = array('show-body-only'=>true);

$tidy->parseString('<div><b>Martin</b></b> Petrov',$options);
$tidy->cleanRepair();
echo $tidy;

Изходът е:

<div><b>Martin</b> Petrov</div>

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Конфигуриране на мрежова карта за DHCP под Debian

Един приятел  с Debian си сложил статични настройки на мрежовата карта, но сега иска те да се взимат по DHCP. Преди да направим да си взима адреса по DHCP ще покажа как е при статичния метод:

Файл: /etc/network/interfaces

auto eth4
allow-hotplug eth4
iface eth4 inet static
address 172.16.30.4
netmask 255.255.255.0
network 172.16.30.1
broadcast 172.16.37.255
gateway 172.16.30.1

Сега ще ви покажа как се прави да си взима адреса по DHCP:

auto eth4
iface eth4 inet dhcp

Това е всичко.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Инсталиране на Flash плъгин за Firefox без root права

Тук идеята става ясна от заглавието- Целта е да се инсталира Flash плъгин без root права. За целта трябва да се направи следното:

mkdir ~/.mozilla/plugins/

Необходимо е да се изтегли архивчето с flash:

wget http://miwi.homeunix.com/install_flash_player_10_linux.tar.gz

И да копирате so файла на flash (install_flash_player_10_linux.tar.gz):

cp install_flash_player_10_linux.tar/flashtemp/libflashplayer.so ~/.mozilla/plugins/

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Публикации за GNU/Linux от семинара преди години

Преди 4-5 години с приятели направихме в гр. Добрич GNU/Linux семинар на тема "GNU/Linux? Да той е чудесен за работна станция" и щяхме да публикуваме подготвените материали от нас за семинара, но така и не го направихме. Днес в един форум (уебмастербг) видях един пич които беше заинтересуван и това реално ме проворика да ги издиря и публикувам за да са полезни на него и всички които търсят информация(Надявам се да бъдат полезни. Макар и малко старички някои неща от тях не остаряват като рибите).

Реших да ги публикувам в kakvo.org за да бъдат прочетени от повече хора и надявам се повече хора да мигрират към свободата. Ето ги и материалите:

GNU/Linux -- автор Мартин Петров
GNU/Linux Дистрибуции -- автор Мартин Петров
Умения за инсталиране на Gnu/Linux -- автор Мартин Петров
Основните команди за работа с Гну/Линукс -- автор Мартин Петров
KDE-- автор Милен Неделчев
Графични среди под GNU/Linux -- автор Георги Георгиев
Примерна инсталация на Fedora Core 4-- автор Андон Николов
GNU Движение за Отворен код/ Въведение в свободният софтуер. -- автор Георги Георгиев
Положителни и отрицателни черти на Gnu/Linux -- автор Мартин Петров
Историята на GNOME -- автор Георги Георгиев

Снимки от семинара(реших и тях да публикувам): Снимки от семинара

PS: Ако съм объркал някои като автор Андо, Гоше, Миленски кажете ще го фиксна веднага!.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Спиране на Crash Recovery Restore Session във Firefox

В едно приложение постоянно се налага да се kill-не Firefox и след като се пусне (или съживи лисичката) излиза прозорче в което да се избере нова сесия или да се върне старата преди kill-а. Аз не се нуждая от Crash Recovery Restore Session и за целта ще го махна по следния начин(става и във GUI настройките).

Ето го първо прозорчето което искам да се премахне:

Сега ще опиша как се маха прозорчето:

1. Стартирам Firefox
2. В адрес бара пиша: "about:config"
3. Намирам "browser.sessionstore.resume_from_crash" и натискам два пъти бързу в/у него(Идеята е да бъде false)

Ето и снимка на "супер сложното обяснение" по- горе:

PS: Изображенията са взети от google images :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Личен Блог на Мартин Петров