Klopanie na linuxovú bránu – pokračovanie

linux_server.jpg V pred­chád­za­jú­cej čas­ti sme sa za­obe­ra­li prog­ra­mom knockd a uká­za­li sme spô­sob kon­fi­gu­rá­cie a po­uži­tia klien­tske­ho prog­ra­mu knock. Ap­li­ká­ciu sme nas­ta­vi­li tak, aby sme jed­nou klo­pa­cou sek­ven­ciou žia­da­ný po­rt ssh ot­vo­ri­li a dru­hou sek­ven­ciou za­se za­tvo­ri­li. Ten­to­raz pred­sta­ví­me iný, eš­te bez­peč­nej­ší spô­sob nas­ta­ve­nia a po­uži­tia.

Auto­ma­tic­ké za­tvá­ra­nie pra­vi­diel
Mô­že sa stať, že ak po­uží­va­me dé­mo­na knockd po­dľa spo­mí­na­né­ho nas­ta­ve­nia, ob­čas za­bud­ne­me po skon­če­ní ad­mi­nis­trá­cie li­nuxové­ho server­a za­slať za­tvá­ra­ciu sek­ven­ciu. V ta­kom prí­pa­de zos­ta­ne žia­da­ný po­rt (v tom­to prí­pa­de ssh) ot­vo­re­ný a zneu­ži­teľ­ný. To však roz­hod­ne nec­hce­me. Ak pat­rí­me ku sku­pi­ne zá­bud­li­vých, mô­že­me dé­mo­na knockd nas­ta­viť tak, aby ot­vo­ril žia­da­ný po­rt, po­čkal krát­ky čas a po­tom uzav­rel žia­da­ný po­rt a po­vo­lil len už nad­via­za­né (es­tab­lish) spo­je­nia.

Prík­lad kon­fi­gu­rá­cie ta­ké­ho­to nas­ta­ve­nia je na vý­pi­se č. 1.

[open­clo­seSSH]
sequen­ce = 7000,8000,9000
seq_ti­meout = 5
tcpflags = syn,ack
start_com­mand = /usr/sbin/ip­tab­les -I IN­PUT -s %IP% -p tcp --syn --dport 22 -j AC­CEPT
cmd_ti­meout = 25
stop_com­mand = /usr/sbin/ip­tab­les -D IN­PUT -s %IP% -p tcp --syn --dport 22 -j AC­CEPT

Po pri­ja­tí správ­nej sek­ven­cie v pa­ra­met­ri sequen­ce dé­mon knockd vy­ko­ná prí­kaz de­fi­no­va­ný v pa­ra­met­ri start_com­mand. Po­čká ur­či­tý čas nas­ta­ve­ný pa­ra­met­rom cmd_ti­meout a po­tom vy­ko­ná prí­kaz de­fi­no­va­ný pa­ra­met­rom stop_com­mand. Po do­bu med­zi ot­vo­re­ním a opä­tov­ným za­tvo­re­ním žia­da­né­ho po­rtu mu­sí­me za­čať spo­je­nie na da­nom po­rte.

Sek­ven­cie na jed­no po­uži­tie
Tre­tí spô­sob nas­ta­ve­nia dé­mo­na knockd vy­chád­za z pred­chád­za­jú­ce­ho prík­la­du, ale ne­pou­ží­va už raz de­fi­no­va­nú ot­vá­ra­ciu sek­ven­ciu, ale vy­be­rá sek­ven­cie zo špe­ciál­ne­ho sú­bo­ru, kde je ulo­že­ný zoz­nam via­ce­rých sek­ven­cií.

Prík­lad ob­sa­hu kon­fi­gu­rač­né­ho sú­bo­ru /etc/knockd.conf je na vý­pi­se č. 2.

[open­clo­seSMTP]
one_ti­me_sequen­ces = /etc/knockd/smtp_sequen­ces
seq_ti­meout        = 15
tcpflags           = fin,!ack
start_com­mand = /usr/sbin/ip­tab­les -A in­put -s %IP% -p tcp --dport 25 -j AC­CEPT
cmd_ti­meout = 5
stop_com­mand = /usr/sbin/ip­tab­les -D IN­PUT -s %IP% -p tcp --dport 25 -j AC­CEPT

Zoz­nam sek­ven­cií je ulo­že­ný v sú­bo­re, kto­ré­ho ná­zov a ces­ta k ne­mu je de­fi­no­va­ná v pa­ra­met­ri one_ti­me_sequen­ces. Po kaž­dom ús­peš­nom za­klo­pa­ní sa sek­ven­cia stá­va nep­lat­nou a na nás­led­né ús­peš­né za­klo­pa­nie tre­ba po­užiť no­vú, nas­le­du­jú­cu sek­ven­ciu. Ten­to spô­sob zvy­šu­je bez­peč­nosť ap­li­ká­cie pred prí­pad­ný­mi útoč­ník­mi, kto­rí by chce­li snif­fo­va­ním (od­po­čú­va­ním) sie­ťo­vej pre­vád­zky od­chy­tiť klo­pa­ciu sek­ven­ciu.

Ďal­šie voľ­by v kon­fi­gu­rá­cii
Ak chce­me pri­dá­vať rôz­ne mož­nos­ti nas­ta­ve­nia dé­mo­na knockd, sta­čí, ak do kon­fi­gu­rač­né­ho sú­bo­ru pri­dá­me sek­ciu [op­tions].

Lo­go­va­nie
My už vie­me, že lo­go­va­ním, t. j. za­zna­me­ná­va­ním čin­nos­ti ľu­bo­voľ­né­ho prog­ra­mu v Li­nuxe do lo­go­va­cie­ho sú­bo­ru, mô­že­me sle­do­vať je­ho čin­nosť. To is­té pla­tí aj o dé­mo­no­vi knockd. Sta­čí, ak na za­čia­tok kon­fi­gu­rač­né­ho sú­bo­ru /etc/knockd.conf do sek­cie [op­tions] vlo­ží­me ria­dok na vý­pi­se č. 3.

[op­tions]
log­fi­le = /var/log/knockd.log

Od­po­čú­va­nie na inom sie­ťo­vom roz­hra­ní
Ak po­uží­va­me dé­mo­na knockd na li­nuxovom po­čí­ta­či, kto­rý má viac sie­ťo­vých roz­hra­ní, a chce­me kon­krét­ne ur­čiť, na kto­rom roz­hra­ní má dé­mon knockd od­po­čú­vať, pri­dá­me pa­ra­me­ter ako na vý­pi­se č. 4.

[op­tions]
inter­fa­ce = eth1

Bez­peč­nosť, bez­peč­nosť, bez­peč­nosť...
Dé­mon knockd beží v Li­nuxe na po­za­dí a pa­sív­ne od­po­čú­va sie­ťo­vú pre­vád­zku bez to­ho, že by mu­sel byť na server­i ot­vo­re­ný čo len je­di­ný po­rt. Pre­to po­ten­ciál­ny útoč­ník prak­tic­ky ne­mô­že zis­tiť, že ne­ja­ký dé­mon knockd beží, a prí­pad­ne skú­šať sú­bor klo­pú­cich sek­ven­cií. Ale čert nik­dy nes­pí, a pre­to sa snaž­me dodr­žať nas­le­du­jú­cich pár dob­rých rád:
- Nik­dy ne­pou­ží­vaj­me ľah­ko od­ha­li­teľ­né klo­pa­cie sek­ven­cie. V prík­la­doch sí­ce po­uží­va­me sek­ven­ciu 7000,8000,9000, ale do sku­toč­nej pre­vád­zky vy­be­rie­me me­nej ok­rúh­le čís­la, nap­rík­lad 9632,5689,8741.
- Po­uží­vaj­me naj­me­nej tri čís­la v klo­pa­cej sek­ven­cii. Ak sme pred­sa len bo­jaz­li­vej­ší, mô­že­me pre po­koj du­še de­fi­no­vať aj de­sať­čí­sel­nú sek­ven­ciu.
- Mie­šaj­me po­rty TCP s po­rta­mi UDF. Ako prík­lad mô­že­me po­užiť zá­pis 9000:tcp,8000:udp,7000:tcp.

Po­znám­ka:
V jed­not­li­vých prík­la­doch je uve­de­né, že pra­vid­lo sa pri­dá­va po­mo­cou pa­ra­met­ra –A ale­bo –I. Zá­le­ží len na cel­ko­vom nas­ta­ve­ní pra­vi­diel v prís­luš­nom fi­rewal­le, kto­rý pa­ra­me­ter po­uži­je­me. Ide hlav­ne o to, aby sme do­ká­za­li pri­da­né pra­vid­lo bez prob­lé­mov zma­zať a uzat­vo­riť tak vstup do sys­té­mu.

Sys­tém klo­pa­nia na li­nuxovú brá­nu mô­že­me po­užiť nie­len ako nas­ta­vo­va­nie pra­vi­diel fi­rewal­lu, ale aj na iné čin­nos­ti. Mô­že­me si na­pí­sať rôz­ne skrip­ty, po­mo­cou kto­rých do­ká­že­me ov­lá­dať nie­len li­nuxový sys­tém, ale aj pri­po­je­né za­ria­de­nia a po­dob­ne, tak ako sme to dáv­nej­šie uká­za­li v se­riá­li Li­nux extra.

In­šta­lá­cia
Nie­koľ­kí ste mi na­pí­sa­li, že sa pre ur­či­té dis­tri­bú­cie ne­po­da­ri­lo náj­sť už ho­to­vý ba­lí­ček, a ak spus­tí­me in­šta­lá­ciu zo zdro­jo­vých kó­dov, vy­hlá­si kom­pi­lá­tor chy­bu. Vy­skú­šaj­me si to te­raz spo­lu. Roz­ba­lí­me ba­lí­ček s náz­vom knock-0.5.tar.gz. Spus­tí­me prí­kaz ./con­fi­gu­re. Ten zbeh­ne bez prob­lé­mov. Keď za­dá­me prí­kaz ma­ke, ob­ja­ví sa nie­čo po­dob­né ako na vý­pi­se č. 5.

[root@tes­tbox knock-0.5]# ma­ke
gcc -g -O2 -g -Wall -pe­dan­tic -fno-excep­tions -D_GNU_SOUR­CE -I. -o src/knockd.o -c src/knockd.c
src/knockd.c:134: error: âPATH_MAXâ un­dec­la­red he­re (not in a fun­ction)
src/knockd.c: In fun­ction âpar­se­con­figâ:
src/knockd.c:438: war­ning: unu­sed va­riab­le âli­neâ
src/knockd.c: In fun­ction âget_next_one_ti­me_sequen­ceâ:
src/knockd.c:695: war­ning: unu­sed va­riab­le âli­neâ
src/knockd.c: In fun­ction âsniffâ:
src/knockd.c:1386: war­ning: unu­sed va­riab­le âpar­sed_stop_cmdâ
src/knockd.c:1385: war­ning: unu­sed va­riab­le âpar­sed_start_cmdâ
ma­ke: *** [src/knockd.o] Error 1

Chy­bo­vé hlá­se­nie na po­sled­nom riad­ku ho­vo­rí, že nie­čo nie je v po­riad­ku.

Rie­še­nie je jed­no­duc­hé. V ad­re­sá­ri, kde sme roz­ba­li­li ba­lí­ček knock-0.5.tar.gz, náj­de­me sú­bor s náz­vom list.h. Na za­čia­tok toh­to sú­bo­ru pri­dá­me zá­pis:

#in­clu­de 
a zo­pa­ku­je­me kom­pi­lá­ciu. Te­raz by už ma­la pre­beh­núť bez chýb.

Na­bu­dú­ce vám uká­že­me ďal­šie mož­nos­ti sprá­vy li­nuxové­ho server­a.

Ďal­šie čas­ti >>

Zdroj: Infoware 12/2009



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

Najnovšie články

Li­nux prak­tic­ky ako server úvod
Linux ako server je pomerne zložitá technológia. Jej výhodou je určitá modularita, keď sa nemusí nastaviť celý server naraz, ale postupne. čítať »
 
Syn­chro­ni­zá­cia ča­su v Li­nuxe
V predchádzajúcich dvoch častiach sme si ukázali, že Linux a všeobecne open source softvér sa nenachádza iba v serveroch a počítačových sieťach, ale aj v iných zariadeniach bežnej domácej potreby a v oblasti hobby. čítať »
 
Za­ria­de­nia za­lo­že­né na Li­nuxe
V predchádzajúcej časti sme si spomenuli definície nie - ktorých pojmov z oblasti nášho záujmu, teda Linuxu. Vysvetlili sme si, čo je to Open Source, Public Domain, proprietárny softvér a GNU GPL. Tentoraz ukážeme, ako sa tieto pojmy využívajú v praxi. čítať »
 
Po­jmy z ob­las­ti
Tentoraz na chvíľu trochu odbočíme od bezpečnosti Linuxu a jeho siete. V tejto neštandardnej časti seriálu sa mu budeme venovať len okrajovo. čítať »
 
Bez­peč­nosť bez­drô­to­vých sie­tí II.
V predchádzajúcej časti sme sa začali zaoberať bezpečnosťou bezdrôtových sietí. Poukázali sme na rôzne faktory zneužitia siete, podstatu rizika a vysvetlili sme základné prvky bezpečnosti. čítať »
 
Bez­peč­nosť bez­drô­to­vých sie­tí I.
V predchádzajúcich častiach sme sa venovali bezpečnosti linuxového servera. Riešili sme firewall, bezpečnosť prístupu na internet, zaoberali sme sa demilitarizovanou zónou a podobne. čítať »
 
Údr­žba lo­gov – kon­fi­gu­rá­cia log­ro­ta­te
V predchádzajúcej časti sme sa venovali rotácii logov. Vysvetlili sme princíp ukladania logov, spôsob, ako sa rotujú, a uviedli sme niečo o tom, čo a ako treba nastaviť čítať »
 
Údr­žba lo­gov – ro­tá­cia
V predošlej časti sme sa zaoberali spôsobom logovania informácií na iný alebo vzdialený počítač a ukázali sme, ako riešiť problém s logovaním uzavretých procesov pomocou chroot. čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter