петък, 21 септември 2007 г.

Squid

   От доста време имам идея да си събера нещата на едно място, за да са ми под ръка когато ми потрябват. Става дум за особеностите при инсталациите на някои програми под линъкс. NastyWitch иска да напиша и как се инсталира самата ОС но няма да го направя. Линъкси много, всеки се инсталира по различен начин. Аз предпочитам Slackware, а в неговата инсталация няма нищо особено. Буутвам от CD-то. Бухам Enter докато не ми излезе промпта и пиша setup. Прескачам първите няколко стъпки за избор на keymap и добавяне на swap (аз си правя swap-a на файл) и направо отивам на Target, за да избера къде ще инсталирам. Избирам си дяла който искам и го форматирам. Използвам reiserfs файлова система въпреки някой нейни недостатъци, може би е някаква инерция. Нататък инсталацията си е ясна. Зависи с каква цел правя инсталацията. Избирам или интерактивно меню да ми предлага пакетите за инсталиране и аз да слагам и да махам звездички или давам Full за да се инсталират всички пакети. След като попита за втория диск и приключи и с него имаше някакви въпроси за това къде да сложи Lilo, да конфигурира ли мрежата, да си сетна root парола, да си избера конзолен шрифт... за друго не се сещам. Lilo-то го слагам в MBR, за парола си слагам ;-) , конзолния шрифт си остава първия предложен. Май горе-долу с това се изчерпва инсталацията. След рестарт всеки прави каквото иска. Аз си настровам Apacheto, пускам си MySQL-а, оправям си настройките на мрежата и каквото се сетя.
   Вчера ми се наложи да инсталирам един линъкс, и първото нещо, което сложих допълнително беше squid. Това е cache proxy. Освен като нормално прокси функционира и като cache. Кешира информацията преминала през него и по тоя начин пести трафик. Дава възможност чрез него да бъде ограничен достъпа до определени сайтове, файлове (чрез техните разширения) и т.н. Малко се отнесох, нали това щяха да бъдат писаници за инсталирането а не за настройката на някои програми.

Самата инсталация:
Отивам на http://squid-cache.org и тегля последната версия.
влизам в /usr/src/ и го разгъвам.

tar zxpvf /pyt/do/faila/poslednata_wersiq_na_squid.tar.gz

влизам в директорията която се е създала и стартирам


./configure
make
make install


Ако всичко мине нормално можем да кажем че squid-а е инсталиран.

За да можем да го стартираме трябва да направим няколко неща. Squid се стартира със собствен юзър, за целта ще му създадем такъв, както и група.

groupadd squid
useradd squid -g squid


Когато проксито работи то пише логове (по подразбиране в директория /usr/local/squid/var/). За да може да го прави без проблем трябва да дадем права на новосъздадения потребител squid пише в тази директория:

chown -R squid:squid /usr/local/squid/var

Пак за да може да работи на проксито му трябват и прaва за писане в директорията, където ще кешира файловете (тя се задава от конфигурационния файл, аз ползвам /cache). Понеже тази директория не съществува ние я създаваме и после даваме права на потребител squid да пише в нея

mkdir /cache
chown -R squid:squid /cache


Сега е момента проксито да си създаде директориите за кеша. Прави се с командата:

/usr/local/squid/sbin/squid -z

След това идва и момента да стартираме squid (приемаме, че сте се сдобили с работещ конфигурационен файл).
Като за първи път стартирайте squid с командата:

/usr/local/squid/sbin/squid -NCd10

Тя дава възможност да видите ако нещо не е наред и да поправите грешката. Ако след изпълнение на командата не изпише някаква грешка а реда седи "зает" нямате курсор и не можете да пишете значи всичко е наред. Натиснете Ctrl+C, за да прекъснете стартираната програма и пуснете проксито със стандартната команда за тази цел

/usr/local/squid/sbin/squid

След горната команда конзолата ви просто трябва да мине на нов ред. Предполагам всеки би искал проксито да тръгва със стартирането на машината. За целта аз съм добавил следния ред в /etc/rc.d/rc.local:

/usr/local/squid/sbin/squid >& /dev/null


Допълнение - 25.09.2007

След като сложих Squid-a ми се наложи да го сложа като transparent (прозрачно) прокси. Имах 2 причини за това. Идеята ми е освен да кеширам информация и да контролирам кой какво може и какво не може да отваря. Ползвам опции като забрана за отваряне на определени сайтове или файлове с определени разширения. Ако всичко това се сложи като настройка, но остане възможността потребителя сам да си слага и маха проксито ефекта се губи. За това потърсих начин всеки потребител да преминава през проскито, без значение дали иска или не. Във версията 2.6 на Squid това става много лесно. В squid.conf се записват следните редове:

http_port 3128 transparent
always_direct allow all


Първия ред замества реда http_port 3128 ако вече имате такъв във файла. Това прави порт 3128, на който слуша моя Squid прозрачен. Има още нещо, за да накарате всяка заявка която е изпратена до порт 80 да мине през Squid-a (през 3128) трябва да се изпълнят две команди:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


eth0 ми е мрежовата карта, към която е закачена локалната мрежа. При така написаните команди има един бъг, понеже имам пуснат уеб сървъв, заради пренасочването на портовете той се ебава. Неговия проблем решавам като всички заявки изпратени към реалното IP на порт 80 не се пренасочват а си заминават към реалното IP на порт 80 с командата:

iptables -I PREROUTING -t nat -d 88.80.xxx.xxx -p tcp --dport 80 -j DNAT --to-destination 88.80.xxx.xxx:80


xxx.xxx по-горе е с цел да не пиша истинско IP и да обърквам някого.

Горните три команди съм ги ръчнал във файла, който се грижи за "интернета" и се стартира при зареждане на машината.

Ако някои има по-добра идея как да стане по-чисто изпълнението с iptables нека да каже, аз скалъпих работата по тоя начин и работи, но си мисля, че има и по-универсален и с по-малко редове.

П.П. За тези който се чудят защо казвам "една команда" а виждат два реда. Проблема е в тесния формат на страниоцата на блога, която не може да побере по-дългите редове и ги разбива. Това което започва с iptables е една команда и свършва с последния символ преди следващото iptables или с празния ред. Една команда се пише на един ред. ;-) надявам се да е ясно.

четвъртък, 20 септември 2007 г.

Искам Linux HELP!

  Аз вече споменах на ебаси, но съвсем нарочно пиша и тук, белким си изпрося обещание, че ше го доживея! :)  Искам уроци, но той не бил порастнал за такива. Това, което наистина искам: вместо всеки път при нужда да му досаждам и да търся ценно за мен и елементарно за него инфо (относно линъкс), да си отворя тук и тихо и кротко да се самозадоволя! Много ще ми е полезно (а сигурно не само на мен) да опише в стъпки подробно и като за лаици всичко от инсталацията на самата ОС до набавянето, инсталирането и ползването на софтуера за нея. Сигурно е много трудоемко и отговорно, но съм убедена, че не му е непосилно, пък и няма да му е скучно. От опит знам, че е добър учител и смея да твърдя, че благодарение на мен идеално е усвоил стила "преподаване на олигофрени", затова и СИЛНО СЕ НАДЯВАМ и ГОРЕЩО МОЛЯ за Linux HELP (by ebasi)!

понеделник, 10 септември 2007 г.

slackware-current.net

   Сетих се да препоръчам този сайт. Идеята му е да предлага програмите, които нямат официални пакети за Slackwre, и такива които имат, но пакета още не е излязъл.
   Един пример: На сайта на Skype няма версия за Slackware (tgz пакет) и трябва да свалиш и да ползваш някоя от предложените там. Не че това е голям проблем, но след като сложиш такъв пакет трябва да се грижиш за ъпдейтите и ако има такива да ги слагаш на ръка. На slackware-current.net има tgz пакет на Skype. теглиш, инсталираш и си готов. Пак на slackware-current.net е обяснено и как да накарате swaret да го ползва за обновяване на пакетите.
   Още една причина вече да ползвам този сайт за mirror и да обновявам инсталациите си от него е, че тук винаги има най-новите версии на програмите, предложени в официалната дистрибуция. Веднага давам пример: Инсталирал съм си pidgin (новото име на gaim, готин IM клиент, който обединява сума ти протоколи под един покрив и е част от Slackware 12). Хората, които го разработват работят здраво и постоянно изкарват нови версии. След като веднъж съм го инсталирал от tgz е тъпо при излизането на новата версия да го махна и да ./configure && make && make install новата. Трябва да чакам да излезе новото tgz и през това време всеки път когато го стартирам да затварям прозорчето дето ми казва, че има нова версия с мисълта "да, знам че има, но не и за моята дистрибуция". Решението е просто. Ползвам slackware-current.net за mirror и обновявам от там. Знам, че когато излезе нова версия на някоя програма първо ще се появи тук.

петък, 7 септември 2007 г.

Google Reader

   Днес преоткрих Goole Reader за себе си. Започнах да се чувствам тъпо, когато отварям даден сайт по няколко пъти на ден, за да видя дали има нещо ново. Избрах варианта да добавя техните Live Bookmarks в Google Reader и да чета всичко от едно място. Обиколих сайтовете които отварям поне по веднъж на ден и ги добавих. Гадното е, че гонг.бг и дарик.нет не си пускат целите новини в RSS а само началото. Ако искаш да прочетеш целия текст трябва да отидеш на страницата. Още не знам колко често се обновява съдържанието, но скоро и това ще проверя.

събота, 1 септември 2007 г.

работа

   Вече направих една седмица на новото работно място. Определено мога да кажа,че всичко е така, както беше предварително уговорено и няма никакви проблеми. През първите два дни ми беше малко трудно да си намеря занимание, но след това нещата започнаха да се нареждат. Вече задачите се редят и времето минава бързо. Работата е интересна и има какво да се научи. Единствения недостатък, в сравнение с предишната ми работа е, че сега няма на кого да викам "жертви" и "роби", но за сметка на това има много други преимущества.