31.12.2014 Views

Скачать - Xakep Online

Скачать - Xakep Online

Скачать - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ÞÍÈÒÛ ÊÐÅÀÒÈÔÔ ÊÎÄÈÍÃ UNIXOID ÑÖÅÍÀ ÂÇËÎÌ ÈÌÏËÀÍÒ PC_ZONE FERRUM<br />

ÍÜÞÑÛ<br />

102<br />

Êðûëàòàÿ<br />

ïî÷òà þíèêñîèäà<br />

ÄËß ×ÅÃÎ, ÏÎ-ÒÂÎÅÌÓ, ÏÐÅÄÍÀÇÍÀ×ÅÍ ÏÎ×-<br />

ÒÎÂÛÉ ÊËÈÅÍÒ ÏÐÀÂÈËÜÍÎ, ×ÈÒÀÒÜ ÏÎ×ÒÓ.<br />

À ÒÛ ÍÈÊÎÃÄÀ ÍÅ ÇÀÄÓÌÛÂÀËÑß, ÏÎ×ÅÌÓ<br />

ÂÑÅ ÑÎÂÐÅÌÅÍÍÛÅ MUA (OUTLOOK EXPRESS,<br />

THUNDERBIRD, SYLPHEED), ÊÐÎÌÅ ÂÛÏÎËÍÅ-<br />

ÍÈß ÑÂÎÈÕ ÍÅÏÎÑÐÅÄÑÒÂÅÍÍÛÕ ÇÀÄÀ×,<br />

ÅÙÅ È ÑÎÐÒÈÐÓÞÒ ÏÎ×ÒÓ, ÏÎËÓ×ÀÞÒ È ÎÒÏ-<br />

ÐÀÂËßÞÒ ÏÈÑÜÌÀ, ÎÁÐÀÁÀÒÛÂÀÞÒ ÑÏÀÌ,<br />

 ÎÁÙÅÌ, ÇÀÍÈÌÀÞÒÑß ÂÑÅÌ, ×ÅÌ ÓÃÎÄÍÎ,<br />

ÐÀÇÂÅ ×ÒÎ ÊÎÔÅ ÍÅ ÂÀÐßÒ ÒÀÊ ÓÆ ÏÎÂÅ-<br />

ËÎÑÜ Â ÑÎÂÐÅÌÅÍÍÎÌ ÌÈÐÅ «ÄÐÓÆÅËÞÁ-<br />

ÍÛÕ Ê ÏÎËÜÇÎÂÀÒÅËÞ» ÑÈÑÒÅÌ, ×ÒÎ ÂÑÅ<br />

ÑÂßÇÀÍÍÎÅ Ñ ÎÏÐÅÄÅËÅÍÍÛÌ ÊÐÓÃÎÌ ÇÀ-<br />

ÄÀ×À ( ÍÀØÅÌ ÑËÓ×ÀÅ — Ñ ÏÎ×ÒÎÉ) ÄÅËÀ-<br />

ÅÒ ÎÄÍÀ ÁÎËÜØÀß ÏÐÎÃÐÀÌÌÀ. È ÏÎËÜÇÎ-<br />

ÂÀÒÅËÜ ÄÀÆÅ ÍÅ ÇÀÄÓÌÛÂÀÅÒÑß, ×ÒÎ ÒÅÌ<br />

ÑÀÌÛÌ ÑÈËÜÍÎ ÑÅÁß ÎÃÐÀÍÈ×ÈÂÀÅÒ. ÇÀ-<br />

×ÅÌ, ÍÀÏÐÈÌÅÐ, ÌÍÅ ÄÅÐÆÀÒÜ ÝÒÓ ÏÐÎÃ-<br />

ÐÀÌÌÓ ÇÀÏÓÙÅÍÍÎÉ, ÅÑËÈ ß ÕÎ×Ó ÂÑÅÃÎ<br />

ËÈØÜ ÀÂÒÎÌÀÒÈ×ÅÑÊÈ ÇÀÁÈÐÀÒÜ ÍÎÂÓÞ<br />

ÏÎ×ÒÓ Ñ ÑÅÐÂÅÐÀ. ÈËÈ ÀÂÒÎÌÀÒÈ×ÅÑÊÈ ÏÅ-<br />

ÐÅÑÛËÀÒÜ ÎÏÐÅÄÅËÅÍÍÛÅ ÑÎÎÁÙÅÍÈß ÍÀ<br />

ÄÐÓÃÎÉ ßÙÈÊ. ÈËÈ ÎÒÏÐÀÂËßÒÜ ÏÎ×ÒÓ ÍÅ<br />

ÑÐÀÇÓ, À Â ÎÏÐÅÄÅËÅÍÍÎÅ ÂÐÅÌß. Ê<br />

Ñ×ÀÑÒÜÞ, ÅÑÒÜ ÏÓÒÜ, ÑÏÎÑÎÁÍÛÉ ÎÑÂÎÁÎ-<br />

ÄÈÒÜ ÍÀÑ ÎÒ ÐÀÌÎÊ ÎÄÍÎÉ ÏÐÎÃÐÀÌÌÛ. È<br />

ÈÌß ÅÌÓ — UNIX-WAY| Anton Karpov <br />

×ÒÎ ÒÀÊÎÅ UNIX-WAY<br />

Âîïðîñ ýòîò èç ðàçðÿäà ôèëîñîôñêèõ. È íå ñòîèò â êîìïàíèè<br />

ôàíàòè÷íûõ þíèêñîèäîâ ïîäíèìàòü íà îáñóæäåíèå<br />

òåìó âðîäå «ïðàâäà ëè, ÷òî perl — ýòî íå UNIX-way» :).<br />

Òåõíè÷åñêè æå — ýòî òî, íà ÷åì îñíîâàíà âñÿ ðàáîòà â<br />

êëàññè÷åñêîì UNIX: êîãäà äëÿ êàæäîé êîíêðåòíîé çàäà÷è<br />

ñóùåñòâóåò îäíà ìàëåíüêàÿ ïðîãðàììà, íè÷åãî áîëüøå íå<br />

óìåþùàÿ, çàòî âûïîëíÿþùàÿ ñâîþ ðàáîòó íà âñå ñòî.<br />

Ãèáêîñòü è ñèëà ïðîÿâëÿþòñÿ â ñîåäèíåíèè ýòèõ ïðîãðàìì,<br />

íàïðèìåð, ÷åðåç êàíàëû (pipes), êîãäà âûâîä îäíîé<br />

êîìàíäû ïîäàåòñÿ íà ââîä äðóãîé. Íàïðèìåð, åñëè ÿ õî÷ó<br />

ïîñ÷èòàòü, ñêîëüêî ÷åëîâåê çàïðîñèëî îïðåäåëåííûé<br />

ôàéë ñ ñåðâåðà ïî http, ÿ íàáèðàþ êîìàíäó:<br />

Ïî÷òîâàÿ ñèñòåìà â ñòèëå UNIX-way<br />

[èíãðåäèåíòû] Äëÿ ïðèãîòîâëåíèÿ íàøåé ïî÷òîâîé ïîëüçîâàòåëüñêîé ñèñòåìû<br />

íàì ïîíàäîáÿòñÿ ñëåäóþùèå êîìïîíåíòû: mutt, getmail, procmail, spamassassin,<br />

msmtp, à òàêæå vim, gnupg, antiword è mairix — ïî âêóñó. ß èñïîëüçóþ<br />

FreeBSD, ïîýòîìó âåñü ñîôò áóäåì ñòàâèòü èç ïîðòîâ. Ðàçóìååòñÿ, íåòðóäíî<br />

ñïðîåöèðîâàòü ïðîöåññ óñòàíîâêè è íà òâîé ëþáèìûé äèñòðèáóòèâ.<br />

Mutt — ïðåâîñõîäíûé êîíñîëüíûé ïî÷òîâûé êëèåíò, ñïîñîáíûé òâîðèòü<br />

ñ ïèñüìàìè íåâåðîÿòíûå âåùè. Ðàñïèñûâàòü âñå åãî äîñòîèíñòâà íå<br />

èìååò ñìûñëà, äîñòàòî÷íî ñêàçàòü, ÷òî ýòî ñàìûé ïîïóëÿðíûé MUA ñðåäè<br />

ðàçðàáîò÷èêîâ èç opensource-ñîîáùåñòâà, êåðíåë-õàêåðîâ è ïðîñòî<br />

êðóòûõ þíèêñîèäîâ ;-). Ìû áóäåì ñòàâèòü åãî devel-âåðñèþ 1.5.õ («ñòàáèëüíàÿ»<br />

âåòêà èìååò ñåé÷àñ íîìåð 1.4.õ), êîòîðàÿ èìååò òàêèå ïðåèìóùåñòâà,<br />

êàê ñêîðîñòü ðàáîòû, ïîääåðæêó SMIME-ðàñøèðåíèé (1.4.õ óìååò<br />

òîëüêî PGP-øèôðîâàíèå), è â òî æå âðåìÿ äîñòàòî÷íî ñòàáèëüíà. Ìû<br />

íàó÷èì mutt ÷èòàòü news-êîíôåðåíöèè.<br />

# cd /usr/ports/mail/mutt-devel<br />

# make WITH_MUTT_MAILDIR_MTIME_PATCH=yes<br />

WITH_MUTT_NNTP=yes WITH_MUTT_IMAP_HEADER_CACHE=yes<br />

WITH_MUTT_MAILDIR_HEADER_CACHE=yes<br />

WITH_MUTT_EDIT_THREADS=yes install clean<br />

Êàê âèäíî, âìåñòî òðàäèöèîííîãî mbox ÿ ñîáèðàþñü èñïîëüçîâàòü<br />

Maildir-ôîðìàò ïî÷òîâîãî ÿùèêà. Äëÿ ìåíÿ îñíîâíûì ïðåèìóùåñòâîì<br />

Maildir ÿâëÿåòñÿ ôîðìàò «îäíî ïèñüìî — îäèí ôàéë».<br />

Getmail — ïðîãðàììà äëÿ äîñòàâêè ïî÷òû ñ óäàëåííûõ POP3/IMAP-ñåðâåðîâ<br />

ñ ìíîæåñòâîì óäîáñòâ è ïðèÿòíîñòåé (ïîääåðæêà SSL, äîñòàâêà â<br />

Maildir-style ÿùèêè, äîêà÷êà ñîîáùåíèé ïîñëå ðàçðûâà ñåññèè è ò.ï.), íàïèñàííàÿ<br />

íà Ïèòîíå. Áîëåå ïîïóëÿðíûé âàðèàíò — fetchmail.<br />

# cd /usr/ports/mail/getmail<br />

# make install clean<br />

Òàêæå íàì íå îáîéòèñü áåç procmail. Îíà áóäåò îáðàáàòûâàòü, ìîäèôèöèðîâàòü<br />

(åñëè íóæíî) è âûïîëíÿòü ñîðòèðîâêó ñîîáùåíèé ïî ïàïêàì.<br />

# cd /usr/ports/mail/procmail<br />

# make install clean<br />

Msmtp — ýòî ëåãêîâåñíûé ïî÷òîâûé àãåíò, ñîçäàííûé äëÿ ìàøèí, íà êîòîðûõ<br />

íåò çàïóùåííîãî SMTP-äåìîíà. Èñòîðè÷åñêè (òàê ñêàçàòü, by<br />

design) ïîäðàçóìåâàåòñÿ, ÷òî íà êàæäîé *nix-ìàøèíå ðàáîòàåò ïî÷òîâûé<br />

ñåðâåð (õîòÿ áû äëÿ îáðàáîòêè ëîêàëüíûõ îò÷åòîâ àäìèíèñòðàòîðó, ñì.<br />

periodic(8)), íàñòðîåííûé, ïðè íåîáõîäèìîñòè, íà ðåëåé «âíåøíåãî» ïî÷òîâèêà.<br />

Íî ÷àñòî íà desktop-ìàøèíàõ ýòî ñîâñåì íå òàê: periodic tasks óáèðàþò<br />

èç crontab(5), à ïî÷òîâûé ñåðâåð âûêëþ÷àþò.  ýòîì ñëó÷àå âìåñòî<br />

sendmail ìîæíî èñïîëüçîâàòü msmtp, êîòîðûé èìååò ïîääåðæêó SMTP-àâòîðèçàöèè,<br />

TLS, ìíîæåñòâà àêêàóíòîâ, íî ïðè ýòîì íå âûñòóïàåò â ðîëè<br />

ïîëíîöåííîãî MTA (íå ñëóøàåò ïîðò è íå ïðèíèìàåò ñîåäèíåíèÿ).<br />

# cd /usr/ports/mail/msmtp<br />

# make WITH_OPENSSL=yes install clean<br />

Ñî ñïàìîì ìîæíî áîðîòüñÿ ðàçíûìè ñïîñîáàìè, íî åñëè òû ïîëüçîâàòåëü,<br />

à íå àäìèí ïî÷òîâîãî ñåðâåðà, òî äëÿ òåáÿ îñòàåòñÿ îäèí ïóòü —<br />

SpamAssassin. Îí èñïîëüçóåò òåêñòîâûå àíàëèçàòîðû è black-ëèñòû äëÿ<br />

îïðåäåëåíèÿ ñïàìà.<br />

# cat /var/log/httpd-access.log | grep 46664.mpg | awk '{print<br />

$1}' | sort | uniq | wc -l<br />

200<br />

 ýòîé ïðîñòîé êîìàíäå çàäåéñòâîâàíî 6 óòèëèò.  *nixñèñòåìå<br />

èõ ñîòíè, êàæäàÿ äåëàåò ÷òî-òî ñâîå è èìååò îãðîìíîå<br />

êîëè÷åñòâî îïöèé, òàê ÷òî ìîæíî ïðåäñòàâèòü, îòêóäà<br />

áåðåòñÿ òà ïðåñëîâóòàÿ ãèáêîñòü ðàáîòû â *nix. Ãèáêîñòü<br />

óâåëè÷èâàåòñÿ òàêæå è êëàññè÷åñêîé þíèêñîâîé ïàðàäèãìîé<br />

«âñå — ôàéë», êîãäà ëþáàÿ ïðèêëàäíàÿ çàäà÷à<br />

ñâîäèòñÿ, ïî ñóòè, ê ðàáîòå ñ òåêñòîâûìè ôàéëàìè ñ ïîìîùüþ<br />

âûøåîçíà÷åííûõ óòèëèò.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!