%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Sun Nov 23 14:43:21 2003 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /I{/Times-Italic FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 480 V 10 R 720(SERVXCHECK)S 1401(\()S 1443(3)S 1501(\))S 2696(Eighth)S (Edition)296 2989 A 4446(SERVXCHECK)S 5127(\()S 5169(3)S 5227(\))S 960 V 9 R 720(N)S 722(NA)S 790(AM)S 858(ME)S 940(E)S 1080 V 10 R 1080(servxcheck)S 10 R-1 1558(-)S 10 R 1640(Internet)S 1979(service)S (access)258 2290 A 2573(check)S 1248 V 9 R 720(S)S 722(SY)S 774(YN)S 842(NO)S 910(OP)S 978(PS)S 1030(SI)S 1082(IS)S 1115(S)S 1368 V 10 B 1080(#de\256ne)S (_MINIX_SOURCE)839 1426 A 2303(1)S 1488 V 1080(#include)S 1482()S 1728 V 1080(int)S 1236(servxcheck\(ipaddr_t)S 10 I 2159(peer)S 10 B 2338(,)S 2401(const)S 2663(char)S 2897(*)S 10 I 2947(service)S 10 B 3233(,)S 1848 V 1440(void)S 1662(\(*)S 10 I 1746(logf)S 10 B 1902(\)\(int)S 10 I 2126(pass)S 10 B 2304(,)S 2367(const)S 2629(char)S 2863(*)S 10 I 2913(name)S 10 B (\)\);)102 3131 A 1968 V 1080(char)S 1314(*servx\256le\(const)S 2018(char)S 2252(*)S 10 I 2302(\256le)S 10 B 2425(\);)S 2136 V 9 R 720(D)S 722(DE)S 790(ES)S 848(SC)S 900(CR)S 962(RI)S 1024(IP)S 1057(PT)S 1109(TI)S 1167(IO)S 1200(ON)S 1268(N)S 2256 V 10 B 1080(Servxcheck\(\))S 10 R 1672(is)S 1770(used)S 1985(by)S 2116(programs)S 2527(like)S 10 B 2709(inetd)S 10 R 2959(to)S 3068(perform)S 3424(an)S (access)258 3550 A 3839(check)S 4105(on)S 4236(the)S 4390(host)S (connected)408 4588 A 5028(to)S 5138(the)S 2376 V 1080(other)S 1312(end)S 1482(of)S 1591(the)S 1739(TCP)S 1949(channel)S 2287(that)S 2463(has)S 2622(IP)S 2737(address)S 10 I 3064(peer)S 10 R 3251(.)S 2544 V 10 B 1080(Servxcheck\(\))S 10 R 1670(translates)S 2080(the)S 2232(IP)S 2351(address)S 2682(to)S 2789(the)S 2942(associated)S 3386(host)S 3583(name)S 3831(if)S (necessary,)417 3923 A 4370(and)S 4545(checks)S 4849(if)S 4941(the)S 5094(host)S 2664 V 1080(is)S 1173(granted)S (access)258 1500 A 1783(as)S 1892(guided)S 2190(by)S 2315(the)S 2463(\256le)S 10 B (/etc/serv.access)647 2617 A 10 R 3264(.)S 3339(\(See)S 10 B (serv.access)467 3544 A 10 R 4011(\(5\).\))S 4238(The)S 4420(service)S 4731(name)S 4974(used)S 5183(to)S 2784 V 1080(search)S 1365(the)S (access)258 1515 A 1800(\256le)S 1956(is)S 2050(passed)S 2345(by)S 2472(the)S 2622(caller)S 2874(as)S 10 I 2985(service)S 10 R 3279(.)S 3356(These)S 3624(names)S (should)267 3908 A 4203(be)S 4326(the)S 4477(same)S 4712(as)S 4824(the)S 4975(service)S 2904 V 1080(names)S 1362(in)S 10 B 1465(/etc/services)S 10 R 1981(.)S 3072 V 1080(The)S 1267(caller)S (should)267 1522 A 1819(use)S 1983(the)S 2136(NWIOGTCPCONF)S 2968(ioctl\(\))S 3245(call)S 3422(to)S 3531(\256nd)S 3718(out)S 3877(what)S 4104(the)S 4258(IP)S 4379(address)S 4712(of)S 4827(the)S 4981(remote)S 3192 V 1080(end)S 1261(is.)S 1414(It)S 1512(is)S 1615(wise)S 1835(to)S (bypass)273 1948 A 2256(the)S 10 B 2414(servxcheck\(\))S 10 R 2993(call)S 3174(if)S 3271(the)S 3429(remote)S 3744(end)S 3924(happens)S 4288(to)S 4401(be)S 4531(the)S 4689(local)S 4920(machine)S 3312 V 1080(\(remaddr)S 1488(==)S 1641(locaddr\),)S 2041(so)S 2169(that)S 2359(local)S (connections)480 2594 A 3113(aren't)S 3388(impeded)S 3773(by)S 3912(slow)S 4141(checks.)S 10 B 4504(Servxcheck\(\))S 10 R (will)157 5104 A 3432 V 1080(itself)S 1308(allow)S (connections)480 1558 A 2064(from)S (127.0.0.1/8)453 2286 A 2765(immediately,)S 3319(so)S (you)150 3434 A (don't)212 3610 A 3847(have)S 4062(to)S 4165(check)S 4425(for)S 4568(that.)S 4794(Example)S 5177(of)S 3552 V 1080(use:)S 3720 V 1440(if)S 1527(\(ioctl\(fd,)S 1908(NWIOGTCPCONF,)S 2760(&tcpconf\))S 3199(<)S 3281(0)S 3840 V 1640(||)S 1705(tcpconf.nwtc_remaddr)S 2639(==)S 2778(tcpconf.nwtc_locaddr)S 3960 V 1640(||)S 1705(servxcheck\(tcpconf.nwtc_remaddr,)S 3151(service_name,)S 3755(NULL\))S 4080 V 1440(\))S 1499({)S 4200 V 1640(serve\(\);)S 4320 V 1440(})S 4488 V 1080(An)S 1229(attempt)S 1557(to)S (connect)313 1661 A 2000(to)S 2104(a)S 2175(service)S 2487(is)S (logged)273 2580 A 2879(if)S 2967(the)S (access)258 3116 A 3400(is)S 3493(denied.)S 3837(You)S 4036(can)S 4202(use)S 4362(the)S 4512(special)S 4819(checkword)S 4608 V 1080(")S 10 B 1121(log)S 10 R 1249(")S 1318(to)S 1424(also)S 1614(log)S 1770(if)S (access)258 1860 A 2146(is)S 2241(granted.)S (Logging)340 2621 A (will)157 2989 A 3174(be)S (done)195 3297 A 3520(with)S 10 B 3727(syslog\(\))S 10 R 4079(at)S 4180(the)S 10 B 4330(warning)S 10 R 4715(level.)S 4988(A)S 5088(syn-)S 4728 V 1080(tax)S 1231(error)S 1456(in)S 1562(the)S (access)258 1713 A 1999(\256le)S 2156(may)S 2357(be)S (logged)273 2480 A (under)229 2782 A 3040(the)S 10 B (err)135 3192 A 10 R 3356(level.)S 3631(The)S 3817(caller)S 4071(must)S 4295(use)S 10 B 4458(openlog\(\))S 10 R 4890(to)S 4997(set)S 5138(the)S 4848 V 1080(appropriate)S (logging)306 1571 A (facility.)311 1909 A 2277(One)S 2477(may)S 2682(do)S 2814(one's)S 3064(own)S (logging)306 3269 A 3607(by)S (supplying)395 3739 A 4166(a)S 10 I 4243(logf)S 10 R 4430(function)S 4796(that)S (will)157 4978 A 5166(be)S 4968 V 1080(called)S 1347(by)S 10 B 1473(servxcheck)S 10 R 1975(with)S 2180(a)S 2251(\256rst)S 2434(argument)S 2840(that)S 3017(is)S 3110(true)S 3293(if)S (access)258 3381 A 3665(is)S 3758(granted,)S 4111(false)S 4329(if)S 4418(denied,)S 4738(and)S 4910(a)S (second)279 4982 A 5088 V 1080(argument)S 1485(that)S 1661(is)S 1753(the)S 1901(name)S 2144(of)S 2253(the)S 2401(remote)S 2706(host)S 2898(whose)S (access)258 3180 A 3463(has)S 3622(been)S 3837(checked.)S 5256 V 1080(The)S 1272(default)S 1587(is)S 1690(to)S 1804(fail)S 1975(the)S 2134(check)S 2405(unless)S 2692(the)S (access)258 2851 A 3145(\256le)S 3310(says)S 3519(otherwise.)S 3997(Strange)S 4341(errors)S 4613(make)S 4867(the)S 5026(check)S 5376 V (succeed.)344 1080 A 1477(\(We)S 1679(do)S 1806(not)S 1961(want)S 2184(remote)S (access)258 2491 A 2776(to)S 2881(fail)S (because)319 3043 A 3389(of)S 3500(some)S 3739(system)S 4045(error.\))S 4353(Note)S 4576(that)S 4754(this)S 4926(function)S 5496 V 1080(is)S 1181(not)S 1343(meant)S 1623(to)S 1735(check)S (access)258 2004 A 2296(to)S 2408(the)S 2565(system,)S 2903(that's)S 3161(what)S 3392(passwords)S 3846(and)S 4026(such)S 4245(are)S 4404(for,)S 4582(but)S 4745(only)S 4958(to)S 5071(limit)S 5616 V (access)258 1080 A 1363(to)S 1466(those)S 1703(who)S 1901(are)S 2050(allowed)S 2394(to)S 2497(use)S 2656(the)S 2804(services)S 3154(the)S 3302(system)S 3606(offers.)S 5784 V (Connections)502 1080 A 1607(from)S 1828(a)S 1898(machine)S 2264(to)S 2367(itself)S 2594(are)S (accepted)353 2743 A 3121(immediately.)S 3699(No)S 3847(further)S 4147(checks,)S 4471(no)S (logging.)331 4596 A 5952 V 10 B 1080(Servx\256le\(\))S 10 R 1551(may)S 1752(be)S 1875(used)S 2087(to)S 2193(specify)S 2512(a)S 2585(\256le)S 2742(other)S 2978(than)S 3180(the)S 3332(default)S 10 B (/etc/serv.access)647 3641 A 10 R 4288(.)S 4367(This)S 4575(is)S 4671(useful)S 4946(for)S 5093(pro-)S 6072 V 1080(grams)S 1359(started)S 1661(from)S 10 B 1890(inetd)S 10 R 2142(that)S 2325(want)S 2553(to)S 2663(handle)S 2963(the)S (access)258 3118 A 3408(check)S 3675(themselves,)S 4179(using)S 4428(a)S 4505(private)S (access)258 4817 A 5107(\256le.)S 6192 V 1080(The)S 1265(return)S 1534(value)S 1780(of)S 10 B 1892(servx\256le\(\))S 10 R 2346(is)S 2441(the)S 2592(pathname)S 3011(of)S 3123(the)S 3274(old)S (access)258 3430 A 3716(\256le.)S 3923(Only)S 4152(a)S 4225(pointer)S 4538(to)S 4644(the)S 4795(new)S 4992(path)S 5194(is)S 6312 V 1080(saved,)S 1359(the)S 1507(caller)S 1757(must)S 1977(keep)S 2192(the)S 2340(string)S 2594(it)S 2675(points)S 2945(to)S 3048(intact.)S 6480 V 9 R 720(F)S 722(FI)S 774(IL)S 807(LE)S 865(ES)S 923(S)S 6600 V 10 B (/etc/serv.access)647 1080 A 10 R 2330(Default)S (access)258 2658 A 2941(check)S 3201(\256le.)S 6768 V 9 R 720(S)S 722(SE)S 774(EE)S 832(E)S 913(A)S 915(AL)S 983(LS)S 1041(SO)S 1093(O)S 6888 V 10 B 1080(syslog)S 10 R 1336(\(3\),)S 10 B (serv.access)467 1504 A 10 R 1971(\(5\),)S 10 B 2139(services)S 10 R 2475(\(5\),)S 10 B 2643(inetd)S 10 R 2862(\(8\).)S 7056 V 9 R 720(D)S 722(DI)S 790(IA)S 823(AG)S 891(GN)S 959(NO)S 1027(OS)S 1095(ST)S 1147(TI)S 1205(IC)S 1238(CS)S 1300(S)S 7176 V 10 B 1080(Servxcheck\(\))S 10 R 1666(returns)S 1971(0)S 2046(if)S 2133(the)S (access)258 2281 A 2564(is)S 2656(denied,)S 2974(1)S 3049(if)S 3136(granted.)S 7344 V 1080(Typical)S 1413(syslog)S 1694(message:)S 7903 V 720(Page)S 941(1)S 4461(November)S 4911(23,)S (2003)200 5061 A 8143 V EP %%Page: 2 2 BP /slant 0 def /height 0 def 480 V 10 R 720(SERVXCHECK)S 1401(\()S 1443(3)S 1501(\))S 2696(Eighth)S (Edition)296 2989 A 4446(SERVXCHECK)S 5127(\()S 5169(3)S 5227(\))S 960 V 1440(Jan)S 1599(10)S 1724(20:27:20)S 2105(\257otsam)S (inetd[174]:)447 2426 A 2898(service)S 3209('shell')S 3492(granted)S 3819(to)S 3922(jetsam.cs.vu.nl)S 1128 V 9 R 720(B)S 722(BU)S 784(UG)S 852(GS)S 920(S)S 1248 V 10 R 1080(IP)S 1200(and)S 1375(DNS)S 1607(based)S (access)258 1867 A 2156(checks)S (will)157 2461 A 2649(stop)S 2847(most)S 3073(crackers,)S 3466(but)S 3625(not)S 3784(the)S 3938(really)S 4199(determined)S 4683(ones.)S 4948(Luckily)S 1368 V 1080(Minix)S 1352(is)S 1446(suf\256ciently)S 1926(strange)S 2244(to)S 2349(thwart)S 2634(the)S 2783(well)S (known)273 2983 A 3282(cracking)S 3655(schemes.)S 4072(But)S (don't)212 4243 A 4481(ever)S 4681(allow)S (yourself)330 4931 A 1488 V 1080(to)S 1183(feel)S 1360(secure.)S 1656 V 9 R 720(A)S 722(AU)S 790(UT)S 858(TH)S 916(HO)S 984(OR)S 1052(R)S 1776 V 10 R 1080(Kees)S 1307(J.)S 1396(Bot)S 1566()S 7903 V 720(November)S 1170(23,)S (2003)200 1320 A 4990(Page)S 5211(2)S 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic %%Pages: 2