50M371M35 g00d 3n0ugh 15 g00d 3nough. 1n d4 qu357 4 a PC that d3dn'7 5uck (m3553on 3mpo5538l3) 1 h4v 7r4v3ll3d f4r & w3d3 (wo l34v3ng z3 h4u5), 5333ng 4 m4ny wonders of spagu3773 cod3, l38r4ry 48u53, 4nd wor57 of all, GN00bs. Af73r much 53c0nd5 0f d31i83r47i0n, I c0nc1ud3d 7h47 7h3 EUNUCS phi105phy i5 righ7. 1355 i5 m0r3 83c4u53 8357 i5 n07hing. C0mpu73r5 w3r3 4 mi574ke.
W4I7 N0 4K7U411Y... "mi574k3" '5 700 g3n3r0u5. 7h3y mu57 5ur31y r4nk qui7 high 45 0n3 0f 7h3 m057 f0u1 c0nc0c7i0n5 d3vi53d 8y 54pi3n7 0773r5. Wi7h 07h3r indus7ri35 y0u'd xp3c7 7h3m 70 h4v3 50m37hing 7h47 3xist or actually w0rk5 455 in73nd3d 83f0r3 5311ing i7. 0r y0u did 7i11 7hey started using c0mpu73r5. N07 70 w4573 m0r3 0f y0ur fini73 1if35p4n 3xp14ining why 7h3 idea you sh0u1d "ju57 p47ch" 2GB of src code if y0u d0n'7 1ik3 i7 (i5 84d), or how ye scientifik meth0d c4nn07 3v3n pr0v3 i75 0wn validity, suffice 2 say compu73r5 (0r civi1iz47i0n 4.w.k.i.) 4r3 n07 50m37hing id c0nsider a saf3 inv357m3n7 4nd wh3n3v3r ic i h4v 2 r3ad anoth3r 57upid m4nu41 70 537 7h3 c4py84r4 84ckground I peri5h fr0m my m0r741 c0i1, my 80dy 7urning into du57 8y 7h3 p4554g3 0f 7h3 4eons as th3 34r7h d357r0y5 4nd r3creates itself through th3 3nd1355 cyc135 0f 54m54r4 70 7h3n r3m4nifest in fron7 0f 7h3 73rminal one subj3c7iv3 373rni7y 1473r. 50 I find i7 83st to avoid ins7411ing 4ny7hing. If mail(1) 41m057 w0rk3d 40 y3ars ago, why n07 70day?
foreshadowing is a literary device
Unfor7un4731y h0w3ver, mail(1) is 4n 4pp1ic47ion. That r3ad5 mail. If thi5 d035n'7 m4ke you r3c0i1 in h0rror alre4dy 7h3n I d0n'7 kn0w what wi11. N3x7 w33k I'm 8uying a 64000 comp0n3n7 m4chin3 70 f37ch mail fr0m my dr4w3r 4nd di5p14y it on my d35k. 08vi0u51y if 7h3 73rminal i5n'7 dir3c71y c0nn3c73d 70 7h3 53rver it won'7 di5p14y y0ur m4i1 83c4u53 7h47 w0uld imply Bell Labs emp10y35 d0n'7 d0 cr4ck 1ik3 i7'5 0xig3n. In5734d, y0u h4v3 70 g37 4n M74 70 d0 4 P0P 0r IM4P 7r4nf3r 70 y0ur MBOX through TLS/SSL/IP/??? befor3 y0u an HERO. The "traditional" way i5 70 u53 fetchmail, ie g37 7h3 57upid 5y54dmin 70 wr4ngle with that m0n57r05i7y un7i1 i7 works. Natur411y f37chmail wa5 m4d3 8y 0n3 0f 7h3 w0r57 d3v310pers of all time, is very 8uggy 4nd I pr3f3r 1iving, 50 I didn'7 u5e that. Y0u c4n d0wn104d gunk 1ik3 fdm(1) 4nd c0nfig i7 47 a c0mparatively sm4113r ri53 in y0ur 8100d pr35sure.
To get fdm(1) to a bar31y 4c3p74813 57473, 411 y0u n33d i5 gr0k 7he acane pa773rn m47ching 5yn74x which i5 4pparently standard 0n m4i1ing 5y573m5 f0r 50m3 reason and configur3 7h3 c0nfigur47i0n fi13. D3fin3 4n akti0n, 7h3n d0 7h47 4c7i0n if 7h3 mail match35 7h3 p4ttern.
action "inbox" mbox "/var/mail/username" (1) match all action "inbox" (2) account "name" pop3 server "site" user "mailaddress pass "password" (3)
DA first line describes the "action" ""inbox"" which mean5 5h0v3 411 7h3 d474 70 7hi5 m80x (i3 7hi5 0ne large file with all the mail) which i5 u5u411y 10c473d at /var/mail/ wi7h y0ur u53rn4m3 f0r mail(1). You can a150 u53 ~/mb0x 8u7 pff7. 53c0nd 1ine means th47 f0r 411 m4i1 i7 g375 i7 5h0u1d d0 7h3 4ction "inbox". Ie throw 411 7h3 m4i1 2 y0ur mb0x. Third line sp3cifi35 7h3 p14c3 i7 5h0u1d g37 7he mail from. You h4v3 2 5p3cify y0ur 4cc0un7 name (ie joe), mail addr3ss (joe@gmail.com), the ur1 0f 7h3 5i73 (gmail.com), and oth3r p055i81y r3dund4n7 d474 410ngside the pr070c01 4nd p455w0rd. Y35, y0u c4n pu7 7h3 p455w0rd in p14in73x7, 7h0ugh 47 least it supports using 4 pr0xy wi7h "537 pr0xy". Un1355 y0u'r3 fi17hy rich 4nd 0wn m0r3 7h4n 1 c0mpu73r 0r4r3 a m450chi57 who self-hosts 7h3ir 3m4i1, I r3c0mm3nd u5ing pop3 rather than imap because pop3 deletes the m3554g35 fr0m 7h3 53rv3r5 which pr3v3n75 y0u fr0m 3xp10ding de disk on y0ur pr0vid3r, 4nd I h4v3n'7 h34rd 0f 4ny other pr4c7ic41 diff3r3nc3 0f IMAP apart from n07 d3137ing m4i1 0n 7h3 53rv3r 4nd 501ving 50m3 085cure edge-case. If 50m37hing f4i15, m4k3 5ur3 70 4nn0y 7h3 4dmin5 47 Archwikki.
Unfortunately, f37ching m4i1'5 7h3 345y p4r7. 70 53nd m4il, m3il(1) uses sendmail(8). For 7h053 81i5fu11y ign0r4n7, 411 0f m0d3rn 3m4i1 infr4structure comes from a long lin3 0f k1udg35, 84d d35ign 4nd n0n53n5ic41 d3ci5i0n5 d47ing 84ck 70 47 13457 7h3 gr3g0ri4n c413ndar. Mor3 5p3cific411y, snedmai(666) is an exerci53 in g4uging h0w 84d 50f7w4r3 7h3 IT c0mp4ny wi11 accept. It's 8uggy, in53cur3, 4nd i75 c0nfigur47i0n pr0c355 i5 7h3 5013 cause behind th3 3x7inc7i0n 0f 7h3 d0d0. 5inc3 i7 w45 m4d3 4f73r 7h3 N3w D341, IT departm3n75 c0u1d 0n1y dr001 47 i75 j08 g3n3r47ing p0w3r5 4nd i7 3v3n7u411y 57uck 4s tHe StanDaRd eMmTEa. Fortuna731y 7h3 h4xx0r5 83hind 5uch gr347 w0rk5 45 "0n1y 7w0 r3m073 h0135 in 4 5y573m wi7h n0 4pp5" 4nd "4dv4nced v0d00 53curity" and "seven 14y3rs of dep3nd3ncies for th3 h4rdware driv3r" and "compilable fr0m 50urce... from the ex4c7 54m3 5ystem" have now earned th3 d4mning pr4ise of "better than sendmail" thr0ugh 7he power of smtpd(8).
One 0f 7h3 c0mp37ing f4c70r5 0f 5mtpd(8) is its impecable 53curi7y r3c0rd, 50 i7 5houldn'7 83 57r4ng3 70 kn0w 7hat it also on1y h45 h4d two (or mor3, wh0 r3411y 4udi75 7h35e things) rem073 h0135 in 4 h3ck 0f 4 10ng 7im3. 7h4nk Ada n080dy u535 c0mpu73r5 f0r 4ny7hing imp0r74n7! 50m3h0w s3ndbl4ckmail(0) is wors3 45 i7'5 f4m0u51y kn0wn 45 a driv3-in r0otkit. If you'r3 wi11ing 70 57r37ch 7h3 m4i1 53rver you c4n 48501u731y u53 i7 45 an MTA however. All you need to do i5 r34d 7h3 m4nu41 m4aybe five tim35 4nd wri73 2 the smtpd.conf:
table passwords { account account:password }
action "outbound" relay host smtp://account@site auth <passwords>
match from local for any action "outbound"
Yes, y0u c4n 48501u731y p14c3 y0ur p455word in plain73x7 4g4in. D0n7 45k h0w 0r why 7h3 7able must be li6k3 7h47 cuz I d0n'7 kn0w. H0w3v3r, 5inc3 5mtpd is an eturpraiss sy573m, i7 d035n'7 4110w pu7ting on the sock5 pr0xi35 in 7h3 c0nfig. In5734d y0u'11 h4v3 70 u5e the firewall.
For those that 1iv3d 7h3 h41cy0n 4g3 0f n07 kn0wing c0mpu73r5, fir3w4115 4r3 4dvanced place80 5y573m5 m3ant to in some way 1imi7 0r c0n7r01 n37w0rk 7r4ffic. Now, if y0ur fir3w411 i5 4 harvard architecture ASIC within 4n 313c7r0m4gn37ic411y 5hi31d3d r00m 4nd 24/7 gu4rd5 a7 7h3 3ntrance, it may succ33d in d373rring unm07iv473d 4774ck3r5 whove nev3r h34rd 0f 5id3-ch4nn31 4774ck5, while a softw4r3 fir3w411 migh7 83 m0r3 5ucc355fu1 in d373rring script kiddi35 100king f0r nud35. In 7h3ir infinite wisd0m, xXd4_1337_h4x0rzXx 83hind pf(4) decid3d i7 5h0u1d 4150 d0 p4ck37 5c4nning 4nd r3r0u7ing 83c4u53 y not, but have r3m4in3d 4m8iv413n7 480u7 c0v3ring 7he "edge cas3" 0f 5ing13-n37w0rk 5y573m5 0r 7h3 "3dg3 case" of anyone actua11y u5ing 7h3ir 50f7w4r3. 7h3re f0re, if you w4n7 70 r3r0u73 y0ur 7r4ffic 70 4n in73rn41 pr0xy, y0u may want some sp4gh37 1ik3 7hi5 in pf.cong:
pass in quick on ! egress inet proto tcp from any to port mailport rdr-to 127.0.0.1 port proxyport pass out proto tcp from any to any user proxyuser
SUPPO53D1Y 7h3 fir57 ru13 wi11 r3dir3c7 4ny p4ckage with the m47ching info int0 the port of the pr0xy, 50m3h0w, wi13 ign0ring 4ny ru13 10w3r in the c0nfig 5inc3 7h3 m47ching ru135 4r3 r34d fr0m 70p 70 b0770m. 7h3 53c0nd ru13 wi11 4110w 4ny p4ck4g3 0ut (to s0m3wh3r3) 45 10ng as it cum35 fr0m 7h3 u53rn4m3 0f 7h3 pr0xy pr0c355. H0w d035 7he firewall know n07 70 r3dir3c7 7h3 d474 b4ck in70 the proxy if it's lower down in 7h3 pri0ri7y 1i57? M4gic I 5upp053. If y0u w4n7 70 4c7u411y kn0w wh47 7h3 fir3w411 i5 d0ing, y0u migh7 w4n7 70 pull ou7 y0ur b14ck b317 in p4ck37-fu. 07h3rwise c0mp14in 70 g4r1icg4mbi7 47 gi7hib.
& if y0u d0 411 7h47, y3r m4i1 h45 4 50% ch4nc3 0f g377ing 53n7. C0ngr475.