user-avatar
Today is Понедельник
21.05.2012

Category: Linux

25.08.2011

Использование REDIS и Redis php library. Часть 1 – установка.

Redis — документо-ориентированное сетевое журналируемое хранилище данных типа «ключ-значение» с открытым исходным кодом. Хранит базу данных в оперативной памяти, снабжена механизмами снимков для обеспечения постоянного хранения. Имеет библиотеки для работы со многими существующими языками программирования.

По сути своей redis ничто иное как noSQL база данных. Поскольку данные хранятся в оперативной памяти поэтому операции запись/чтение производятся очень быстро видел даже что пишут до 100 тыс. операций в минуту. Правда это или нет доказывать не стану, но одно знаю точно это очень весомая альтернатива mysql базам данных значительно превосходящая по скорости. Естественно для работы с redis-ом было придумано и написано много библиотек в частности для php5. Но для начала я хочу рассказать зачем это нужно и где оно используется.

Допустим мы имеем большой корпоративный сайт со своей сложной структурой, где есть всевозможные списки новостей статей пользователей, чаты или обмен сообщениями и куча всяческих компонетов. Естественно большие корпоративные сайты имеющее множество гигабайтов информации тысячи пользователей  и кучу таблиц в своей базе данных рано или позно сталкиваются с проблемой оптимизации. Особенно если приходится постоянно вытягивать из базы данных сложные запросы с тысячями элементов. В итоге когда данных очень много таблици баз данных перегружены, поисковые запросы выполняются по 30 секунд, а выборки больших списков до 1 минуты, наступает время оптимизировать систему. Некоторые обращаются к файловому Кешу данных. Некоторые до минимализма сокращают запросы переводя динамику в статику и так далее. Но бывают случаи когда данные на странице невозможно кешировать и нужно отдавать динамически в зависимости от действий пользователя причём в большом количестве к примеру списки пользователей или мгновенные сообщения будь то чат или гостевая книга. В таком случае я рекомендую использовать Redis.

 

Установка.

Скачать php библиотеку для работы c  redis вы можете по этой ссылке http://rediska.geometria-lab.net/download/latest. Кстати http://rediska.geometria-lab.net/ это официальный сайт этой библиотеки где русские разработчики пишут почему-то всё на английском. Инcталировать сам сервер под ОС linux очень просто допустим в ubuntu это просто:

 apt-get install redis

Естественно на старнице сайта http://rediska.geometria-lab.net/documentation/get-started/ вы можете увидеть иные способы инсталляции. После того как сервер установлен и запущен вы можете создавать структуру сайта и скопировать в какую либо директорию распакованную библиотеку которая посути выглядит как одна папка с файлами.

Дерево директории может выглядеть вот так.

 

../MyProject/

/Rediska/                  –папка с библиотекой

Index.php

Config.php

Rediska.php               –главный файл библиотеки

Итак нам нужно правильно подключить и настроить библиотеку redis для дальнейшего использования. Допустим пусть вся конфигурация будет описана в файле Config.php который в свою очередь инклудится в index.php.

 

$options = array(
    'namespace' => 'Application_',
    'servers'   => array(
         array('host' => '127.0.0.1', 'port' => 6379)
    )
);

 

include_once («Rediska.php»);

 

$rediska = new Rediska($options);

 

Таким образом мы подключили библиотеку и указали в опциях что сервер находится на адресе 127.0.0.1 порту 6379.(стандартный порт)

 

Пока на этом всё, во второй части напишу как правильно пользоваться и где брать нужные, а главное правильные примеры и описания методов.

Част ь 2 Использование REDIS и Redis php library

 

 

09.02.2011

Настройка Sendmail и cyrus-imapd+saslauth+spamassasin в Ubuntu server

 

Sendmail+cyrus-imapd+saslauth+spamassasin в Ubuntu server 8.10

Настройка почтового сервера со спам фильтром spamassasin

Итак для установки нам потребуются пакеты

cyrus-imapd-2.2 #для управления почтовыми ящиками и получения почты

sendmail # для отправки почты

mailutils # утилиты для отправки почты в частности комнда mail

sasl2-bin # для аутентификации пользователей и хранения паролей с помощью демона saslauthd

Устанавливаем всё с помощью apt-get

#apt-get install cyrus-imapd-2.2 sendmail mailutils sasl2-bin

После установки переходим в /etc/default/ и открываем на редактирование файл saslauthd

# Which authentication mechanisms should saslauthd use? (default: pam)

#

# Available options in this Debian package:

# getpwent — use the getpwent() library function

# kerberos5 — use Kerberos 5

# pam — use PAM

# rimap — use a remote IMAP server

# shadow — use the local shadow password file

# sasldb — use the local sasldb database file

# ldap — use LDAP (configuration is in /etc/saslauthd.conf)

# указываем что пользователи и пароли будут хранится в базе данных

MECHANISMS=»sasldb»

# Additional options for this mechanism. (default: none)

# See the saslauthd man page for information about mech-specific options.

MECH_OPTIONS=»"

# How many saslauthd processes should we run? (default: 5)

# A value of 0 will fork a new process for each connection.

THREADS=5

OPTIONS=»-c -m /var/run/saslauthd»

Далее переходим к настройке sendmail файлы конфигурации которого обычно находятся в каталоге /etc/mail

Итак для начала редактируем файл /etc/mail/sendmail.mc

divert(-1)dnl

divert(0)dnl

define(`confBIND_OPTS’,`-DNSRCH -DEFNAMES’)

define(`confTO_IDENT’,`0′)

define(`_USE_ETC_MAIL_’)dnl

include(`/usr/share/sendmail/cf/m4/cf.m4′)dnl

dnl VERSIONID(`cyrus v2 sample configuartion’)

VERSIONID(`$Id: sendmail.mc, v 8.14.2-2build1 2008-01-24 14:29:57 cowboy cyrus v2 sample configuartion Exp $’)

OSTYPE(`debian’)dnl

DOMAIN(`debian-mta’)dnl

dnl # Items controlled by /etc/mail/sendmail.conf – DO NOT TOUCH HERE

undefine(`confHOST_STATUS_DIRECTORY’)dnl #DAEMON_HOSTSTATS=

dnl # Items controlled by /etc/mail/sendmail.conf – DO NOT TOUCH HERE

dnl #

dnl # General defines

dnl #

dnl # SAFE_FILE_ENV: [undefined] If set, sendmail will do a chroot()

dnl # into this directory before writing files.

dnl # If *all* your user accounts are under /home then use that

dnl # instead – it will prevent any writes outside of /home !

dnl # define(`confSAFE_FILE_ENV’, `’)dnl

dnl #

dnl # Daemon options – restrict to servicing LOCALHOST ONLY !!!

dnl # Remove `, Addr=’ clauses to receive from any interface

dnl # If you want to support IPv6, switch the commented/uncommentd lines

dnl #

FEATURE(`no_default_msa’)dnl

## здесь я задаю айпи адреса на которых будет работать MTA

dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1′)dnl

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=localhost’)dnl

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=10.9.11.1′)dnl

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=192.168.15.254′)dnl

dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, Addr=::1′)dnl

DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, Addr=localhost’)dnl

DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, Addr=10.9.11.1′)dnl

DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, Addr=192.168.15.254′)dnl

dnl #

dnl # Be somewhat anal in what we allow

define(`confPRIVACY_FLAGS’,dnl

`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings’)dnl

dnl #

dnl # Define connection throttling and window length

define(`confCONNECTION_RATE_THROTTLE’, `15′)dnl

define(`confCONNECTION_RATE_WINDOW_SIZE’,`10m’)dnl

dnl #

dnl # Features

dnl #

dnl # use /etc/mail/local-host-names

FEATURE(`use_cw_file’,`/etc/mail/sendmail.cw’)dnl

dnl #

dnl # The access db is the basis for most of sendmail’s checking

dnl # FEATURE(`access_db’, , `skip’)dnl

FEATURE(`access_db’,`hash -T<TMPF> -o /etc/mail/access.db’)dnl

dnl #

dnl # The greet_pause feature stops some automail bots – but check the

dnl # provided access db for details on excluding localhosts…

FEATURE(`greet_pause’, `1000′)dnl 1 seconds

dnl #

dnl # Delay_checks allows sender<->recipient checking

FEATURE(`delay_checks’, `friend’, `n’)dnl

dnl #

dnl # If we get too many bad recipients, slow things down…

define(`confBAD_RCPT_THROTTLE’,`3′)dnl

dnl #

dnl # Stop connections that overflow our concurrent and time connection rates

FEATURE(`conncontrol’, `nodelay’, `terminate’)dnl

FEATURE(`ratecontrol’, `nodelay’, `terminate’)dnl

dnl #

dnl # If you’re on a dialup link, you should enable this – so sendmail

dnl # will not bring up the link (it will queue mail for later)

dnl define(`confCON_EXPENSIVE’,`True’)dnl

dnl #

dnl # Dialup/LAN connection overrides

dnl #

dnl include(`/etc/mail/m4/dialup.m4′)dnl

include(`/etc/mail/m4/provider.m4′)dnl

dnl #

dnl # Masquerading options

FEATURE(`always_add_domain’)dnl

MASQUERADE_AS(`neocom.net.ua’)dnl

FEATURE(`allmasquerade’)dnl

FEATURE(`masquerade_envelope’)dnl

## Опишем что будем использовать спам фильтр

INPUT_MAIL_FILTER(`spamassassin’,`S=local:/var/run/spamass/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m’)dnl

define(`confINPUT_MAIL_FILTERS’, `spamassassin’)dnl

FEATURE(`local_procmail’)dnl

dnl # Default Mailer setup

MAILER_DEFINITIONS

##

define(`confLOCAL_MAILER’, `cyrusv2′)

##

FEATURE(`nocanonify’)

FEATURE(`always_add_domain’)

## опишем что почту будет у нас принмать cyrus

MAILER(`cyrusv2′)dnl

MAILER(procmail)dnl

MAILER(`local’)

MAILER(`smtp’)

## описание всяких настроек cyrus

MAILER_DEFINITIONS

Mcyrus, P=[IPC], F=lsDFMnqA@/:|SmXz, E=\r\n,

S=EnvFromL, R=EnvToL/HdrToL, T=DNS/RFC822/X-Unix,

A=FILE /var/run/cyrus/socket/lmtp

LOCAL_RULE_0

Rbb + $+ < @ $=w . > $#cyrus $: + $1

Далее следует указать в файле /etc/mail/local-host-names локальные имена вашего сервера

например:

localhost

office.myname.net.ua

(далее…)

08.02.2011

Настройка Nagios2 (Ubuntu server)

Настройка Nagios2 -3

Краткое описание

Nagios — это приложение, предназначенное для выполнения мониторинга систем и сетей. Оно следит за назначенными приложениями и службами и генерирует оповещения в зависимости от поведения наблюдаемых служб.

Обычно более мение крупному провайдеру рано или позно потребуется следить за своими серверами свичами, рутерами, nagios предоставляет совокупность сервисов для этого также с его помощью можно выстроить виртуально сеть и настроить удобную систему оповещения при каких либо событиях в этой сети.

Нам потребуются следующие пакеты:

apache2

nagios2

Установка:

# apt-get install nagios2

# apt-get install apache2

Конфигурирование:

Обычно Nagios устанавливается в директорию /etc/nagios2/

Web директория лежит в /usr/share/nagios2/htdocs

(далее…)

08.02.2011

Выбор оптимальной операционной системы для домашнего ПК

Выбор оптимальной операционной системы для домашнего ПК


И так что же выбрать обычному пользователю windows или Linux?

Недавно устанавливал себе windows7 и столкнулся с рядом проблем которые встречаются рядововму пользователю при установке той или иной ОС. Так как имею богатый опыт в устанвоке и работе с различными ОС и их подвидами в этой статье опишу, что и почему стоит выбирать. Хотя выбор конечно же останется за вами, свою точку зрения я аргументирую.

И так задав вопрос первому встречному юзеру, — какую ОС ты предпочитаешь? он скорее всего ответит -» Конечно же «Винда«!!». На вопрос почему, как правило ответ один и тот же – «да потоу что она проще и там всё понятно». Так ли это давайте выясним описав некоторый + и — обоих ОС.

Вирусы В Windows размножаются быстро и если нет антивируса конкретно вредят системе,а некоторый даже её убивают. В linux же вирусы нецепляются вообще, а вирусла специально писаного под linux очь мало да и распрастраняются они обычно методом: «о! дай посмотреть я у себя запущу!».

Драйвера Да обычно драйвера к windows идут в поставке с ПК при покупке, а вот что делать если диски утеряны?. В Linux эта проблема ришена очень просто любое устройство будет найдено и настроено на этапе инсталяции, Вы можете подумать что из за этого установка ОС linux гораздо дольше и сложнее. Но это не так, Linux устанавливается на 30% быстрее чем windows; проверено на ровнозначных по мощности компьютерах.

Быстродействие В Linux Всё зависит от вашего ПК + возомжность самому отключать подключать процессы программы которые на это влияют. Windows Зависит от вашего ПК+ нагромождённость программами и процесами (как показал практика ХР имеет свойстов засорятся и работать хуже со временем)

Карсиввый интерфейслетающий рабочий стол прыгающие окошки В Windows XP Независимо от видеокарты всё статично и угрюмо. В windows 7 и Vista красиво но нужна хорошая видеокарта и достаточный объём ОЗУ. В Linux Красиво быстро наличие мощной видеокарты не обезательно.

Игры В Windows Работают нормально хотя требовательные игра даже при хорошем ресурсном потенциале тормозят. В Linux Игры в основном работают через Wine но к сожелению не все. К примеру WoW, Lineage, Unreal tournament работают.

Спец ПО В Windows только лицензионное платное или же бесплатные аналоги которые ещё нужно поискать в интернете, хотя пиратских копий валом. В Linux Почти всё нужное ПО для работы с видео, аудио, обучение и тп. Есть в репозиториях и бесплатно. Если нету то качаем с оф. Сайтов тоже бесплатно. Никаких трудностей в установке нет.

Цена ОС Windows и ПО к нему стоит немало, а Linux Конечно же бесплатен со всеми обновлениями и релизами.

После такого сравнения дико намекающее на пользу LInux многие скажут сразу «А как же удобство? Ведь в Linux так сложно понять где что!! Нет диска С или D !! Непонятно как настроить сеть или же открыть доступ к файлам или же пользоватся целиком и полностью файловой системой!!!»

Всё значительно проще чем вы думаете. В Linux вы с лёхкостью сможете настроить сеть или интернет через веб интерфейс, установить ПО и пользоватся видео и аудио программаи без проникновения в эту «страшную консоль». Да непривычно после дисков C D E видеть /home/ или /var/ или /etc/ в проводнике но со временем привыкаешь и всё кажется абсолютно логичным и понятным. Вы также можете сделать неслько логических дисков при установке linux назвать их «С» или «D» и там хранить свои файлы. В этом кстате тоже огромный плюс ведь при установке LInux вас встречает дружественный интерфейс с кучей возможностей выбора разметки диска и тайм зоны. А не это тупое «Далие» -»Далие «-» Согласен»– «далие» ….

Нет я не агитирую всем сразу перепрыгивать на Linux, я просто описал преимущества и недостатки которые я за долгие годы работы встречал в этих ОС.

Конечно если вы работаете со специальным ПО для windows или играете в сверхновые игры требующеи только windоws то можете оставаться в своей любимой Винде и забыть про мою статью. Но всётаки задумайтесь стот ил плотить деньги и привыкать к неудобствам, зная что бесплатно вы можете работать в ОС которая ничем не уступает Windows. У Linux ещё много преимуществ именно качественного характера например: linux намного лучше рабоатет с сетью, звуком и видео, безопасность на вышшем уровне, разделение прав пользователей и доступа к программам и файлам.

Многие люди перейдя на Linux лично по моей просьбе «ну хотябы раз установи и попробуй поработать» писали мне следующие строки:

Классно он такой красивый даже рабочий стол крутится как в «Висте» и ефекты ничем не хуже. хотя моя видуха нетянула на висте такого!!!

А софт весь бесплатный, круто! Не надо плотить или искать «кряки».

OpenOffice просто чудо быстрый поддреживает кучу форматов и незаколупует тупизной как в «винде»

Я включил после установки ноутбук и выпало окошко что найдена сеть wi fi ввёл ключ сети и появился интернет !!! сразу без драйверов СУПЕР!!!!

Я запустил видеопроигрыватель он сам нашол кодеки в интернете и теперь я моу смотреть любой фильм!!!

Очень удобно сделан рабочий стол и виджеты теперь ненадо вешать кучу ярлычков на рабочий стол всё под рукой.

И таких было много…

Судите сами чего вы хотите от вашей ОС выбор за вами…

07.02.2011

Немного об iptables

Немного об iptables

Так как часто сылшу вопросы о том, что кто то хочет поставить у себя дома маршрутизатор под управлением Linux и с помощью него раздавать интернет своим домашним компьютерам решил написать небольшую статью как это сделать.

Хочу рассказать немного о фаерволе iptables и показать несколько правил которые возможно помогут вам в настройке маршрутизатора для вашей домашней сети.

В первую очедерь вам понадобится сдлеать NAT для своей внутреней сети. (NAT (Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.)

#iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE

таким образом ваша внутреня сеть 172,16,1,0/24 будет попадать в интернет через «внешний» айпи адрес вашего маршрутизатора

(далее…)

07.02.2011

Iptables работа с портами. Проброс портов DNAT/SNAT

Iptables работа с портами. Проброс портов DNAT/SNAT

Многие часто сталкиваются с проблемой когда есть локальная компьютерная сеть и нужно что бы пакеты из вне попадали вовнутрь и из внутренней сети наружу по определённым портам.

Далее несколько правил.

Разрешить конкретному айпи доступ по порту в интернет

iptables -I FORWARD -s 192.168.0.2 -p tcp –dport 25 -j ACCEPT

Пояснения

-I  – вставка правила в начало цепочки
FORWARD – цепочка через которую ходят проходящие пакеты
-s – адрес источника (компьютера который обращается по данному порту в интернет)
-p tcp  — тип протокола
–dport – указать порт назначения
25 номер порта
-j – выполнить действие с правилом
ACCEPT  разрешить

Что бы запретить пакетам ходить на удалённый порт

iptables -I FORWARD -s 192.168.0.2 -p tcp –dport 25 -j DROP

Что бы из вне запретить или разрешить ходить пакетам на компьютер во внутренней сети на определённый порт.

iptables -I FORWARD -d 192.168.0.2 -p tcp –dport 25 -j DROP(ACCEPT)

Кроме FORWARD  в таблице filter есть ещё цепочки OUTPUT и INPUT

OUTPUT  — для фильтрации исходящих пакетов
INPUT — для фильтрации входящих пакетов

(далее…)

07.02.2011

Настройка pptp-client для vpn соединения в linux

Настройка pptp-client для vpn соединения в linux

Установка

Вначале вам потребуется установить пакет pptp-linux

Так как я использую linux ubuntu то инсталлировать пакет буду с помощью apt-get

#apt-get install pptp-linux

Далее переходим в диреторию /etc/ppp/peers

создаём файл с именем подключения:

sudo touch asad.inet

pty «pptp [ip-addr] –nolaunchpppd» #ip-addr это айпи адрес удалённого vpn сервера к которому #будет вестись подключие

name asad ## ваш логин для подклчюения к vpn серверу

noauth

nodeflate

nobsdcomp

lock

remotename x #алиас вашего аккаунта

defaultroute

replacedefaultroute

persist

#debug если разкоментировать эту строку то при попытке подключения мы

#nodetach сможем увидеть логи подлкючения

Далее редактируем файл /etc/ppp/chap-secrets

(далее…)

07.02.2011

Настройка VPN сервера с помощью pptpd.

Настройка VPN сервера с помощью pptpd.

Многие провайдеры домашних сетей используют этот способ для продажи интернета своим клиентам. Сервер vpn подключений будет основан с помощью демона pptpd который будет принимать соединения аутентифицировать пользователей и выдавать им интернет. В этой статье я опишу как настроить простой vpn сервер без ограничений по скорости.

Установка

#sudo apt-get install pptpd

#sudo apt-get install pppd

Также нам потребуется iptables в качаестве файрвола если он неустановлен то установим его:

#sudo apt-get install iptables

Настройка

(далее…)

06.02.2011

Устанавливаем ipset на Debian

by admin — Categories: Linux — Tags: , , , , , , , Leave a comment

Устанавливаем ipset на Debian

Многие в наше время сталиваются с проблемой защиты от Ddos атак и пользуют в совём арсенале только лишь IPTABLES или настройки apache и nginx. Однако есть довольно не плохие решения с использованием утилиты ipset.

Но установить ipset как оказалось не так то и просто даже на серверные версии debian.

В данной статье я расскажу как это сделать.

Не зависимо от того какая разрядность поддерживается вашим процесором будть то x86 или amd64 ipset будет работать если выполнить всё правильно.

Итак предположим что у вас сейчас стоит ядро версии 2.6.28-18-generic.

При попытке установить ipset из репозитория

#apt-get install ipset

и потом попытатся создать сет любой к примеру ipset -N test iptree вы получите ошибку

FATAL: Module ip_set not found.

(далее…)

04.02.2011

Настройка DNS сервера

by admin — Categories: Linux — Tags: , , Leave a comment

Настройка DNS сервера

DNS – Domain Name System — система доменных имён

распределённая система (распределённая база данных), способная по запросу, содержащему доменное имя хоста (компьютера или другого сетевого устройства), сообщить IP адрес или (в зависимости от запроса) другую информацию. DNS работает в сетях TCP/IP. Как частный случай, DNS может хранить и обрабатывать и обратные запросы, определения имени хоста по его IP адресу – IP адрес по определённому правилу преобразуется в доменное имя, и посылается запрос на информацию типа «PTR».

Установка

#apt-get install bind9

Настройка

Автоматически после установки все конфиг файлы распологаются в /etc/bind

Начнём с файла /etc/bind/named.conf

include «/etc/bind/named.conf.options»; // подгрузить файл в котором будут описаны опции

// далее описываются зоны

//в этой зоне описана база данных root тоесть сервера которые хранят доменные имена в зоне «.»

zone «.» {

type hint;

file «/etc/bind/db.root»;

};

// be authoritative for the localhost forward and reverse zones, and for

// broadcast zones as per RFC 1912

// зона локальных имён

zone «localhost» {

type master;

file «/etc/bind/db.local»;

};

// обратная зона локальных имён

zone «127.in-addr.arpa» {

type master;

file «/etc/bind/db.127″;

};

//обратная бродкаст зона

zone «0.in-addr.arpa» {

type master;

file «/etc/bind/db.0″;

};

zone «255.in-addr.arpa» {

type master;

file «/etc/bind/db.255″;

};

(далее…)

© 2012 asad`s page All rights reserved - Wallow theme v0.46.4 by ([][]) TwoBeers - Powered by WordPress - Have fun!