Կարգերով պահոցներ՝ Տեք

Անդրանիկ Վարդանեան

18 Հոկտեմբերի, 2024

Լրիւ մոռացել էի բլոգել այն մասին, որ Վիշապ Օբերոնը նոր կայք ունի, որը գտնւում ա vishap.oberon.am հասցէում։

Յաջորդ շաբաթները ընթացքում գրելու եմ ու հրապարակեմ Vishap Oberon Handbook֊ը, որը ունենալու ա ամէն ինչ՝ տեղակայումից մինչեւ C binding֊ներ անել։

Պատասխանել մեյլով

Հիպերմեդիա համակարգերը եւ Հայաստանեան կայքերը

մի քանի շաբաթ առաջ կարդացի Hypermedia Systems գիրքը, ու պէտք ա ասել որ երբէք այսքան կպնող գիրք չեմ կարդացել։ Խօսքը իհարկէ ՏՏ գրքերի մասին է։

եթէ վերջին տաս տարում մի բան կար, որ շատ էր խանգարում ինձ, դա այսպէս կոչուած front-end ծրագրաւորման աշխարհն էր։ ամէն ինչ ահագին բարդ ա սարքած։

Երբ ես որոշեցի front-end ծրագրաւորում սովորել, այսինքն կոդ գրել բրաուզերի համար, ապա շատ հեշտ էր ամէն բան։ բացում էի մի հատ ֆայլ ու մէջը գրում էի ինչ ուզում եմ որ իմ ծրագիրը կատարի։ ապա էդ ֆայլը աւելացնում էի օգտագործելով <script> պիտակը։ ահագին պարզ ու հանգիստ պրոցես ա։

Բայց յետոյ ինչ֊որ պատճառով բրաուզերի ծրագրաւորումը սկսեց բարդանալ։ էլ չէիր կարող ուղղակի <script> պիտակը օգտագործել։ չէ, չէ։ պէտք էր ինչ որ bundler ունենայիր որը քո JS ֆայլերը կը «սեղմի» ու կը դարձնի մի հատ անհասկանալի ֆայլ։

Յետոյ եկաւ 2015 թուականը, եւ մարդիկ սկսեցին օգտագործել React֊ը, որը ոչ թէ աշխատում էր HTML֊ի հետ, այլ ստանում էր JSON տուեալներ ու դրա հիման վրայ նկարում էր էկրանին ինչ֊որ միջերես։

Չեմ ուզում շատ խորանալ այս թեմայով, ի վերջոյ՝ Hypermedia Systems գիրքը շատ լաւ բացատրում ա ամէն ինչ։

Բայց նման գրքերը ինձ միշտ յիշացնում են Հայաստանի մասին։ բացատրեմ.

մենք շատ փոքր երկիր ենք։ Ինչքան էլ ասենք, որ մեր մօտ ՏՏ ոլորտը զարգացած ա, մէկ ա մեր մօտ միշտ հետ ա լինելու աշխարհից։ Մեր ֆինանսական կարողութիւնները թոյլ չեն տալիս խմբերով ծրագրաւորողներ պահել մի հատ ֆորմի ու մի հատ վճարման համակարգից օգտուելու համար։

Սա նաեւ գլխաւոր պատճառներից ա, թէ ինչու եմ սիրում Open Source լուծումները։ Խոշոր կոմերցիոն կազմակերպութիւնները չեն մտածում մեր մասին, սակայն մենք կարող ենք փոքր համայնքներին ֆինանսաւորել եւ ստանալ աւելի լաւ արդիւնք, քան խոշորները երբեւէ կարող են։ փոքր ու ապակենտրոնը միշտ աւելի լաւ ա աշխատում քան խոշորն ու «չէ իրականում էս բագ չի ֆիչր ա մենք չենք կարող դա ուղղել այս վերսիայում»֊ը։

Նոյնը, ըստ երեւոյթին, վերաբերւում է վեբ ծրագրաւորման մասին։

Այս պահին մի քանի հոգի մարդ է պէտք։ մէկը որ բիզնես լոգիկայ գրի, մէկը որ JSON֊ական բաներ գեներացնի, մէկն էլ որ էդ JSON֊ները ստանայ, ու միջերեսը նկարի։

Հարց է առաջանում՝ մինչեւ JSON API֊ները ի՞նչ էինք անում։ Ո՞նց էինք ստեղծում վեբ միջերեսներ։

Անում էինք այն, ինչ ճիշտ էր՝ ուղղակի ուղարկում էինք HTML֊ը սերւէրից դէպի բրաուզեր, ու ամէն ինչ ճիշտ աշխատում էր։

Կային (ու մինչեւ հիմա կան) շատ լաւ գրադարաններ, ինչպիսին ա jQuery֊ն, որը ինչ֊որ մի ձեւ հեշտացնում էր ծրագրաւորողի գործը։ ինքը իմպերատիւի ու դեկլարատիվի միջեւ է ընկնում։

Բայց Hypermedia Systems գրքի հեղինակները առաջարկում են նոր մօտեցում, նոր գրադարան, որը կոչւում է HTMX։

Առաջին հայեացքից ակնյայտ չի ինչ ա, բայց մի քանի վայրկեան կարդալուց յետոյ պարզ է դարնում որ ինքը ուղղակի դեկլարատիվ կտորներ է աւելացնում HTML֊ի վրայ։

Ասենք ուզում ես ինչ որ տեղ ուղարկել ինչ֊որ GET յայց ու դրա պատասխանը ուզում ես մի տեղ դնել։ Կամ նոյնիսկ ուզում ես ինչ֊որ ֆայլ ուղարկել POST֊ով ու պատասխանը ցոյց տալ։ առաջ պէտք էր կամ խառը JavaScript գրել, կամ jQuery։ Իսկ հիմա կարող եմ ուղղակի գրել հետեւեալը։

<form hx-encoding='multipart/form-data' hx-post='/submit’>
<input type='file' name=‘file’>
<button>Upload</button>
</form>

ուզում ա ասել, որ երբ Upload կոճակն ես սեղմում, ապա ֆայլը ուղարկի դէպի /submit օգտագործելով POST մեթոդը։

Այս մօտեցումը ինձ էնքան դուր եկաւ, որ որոշեցի վերջում, մի քանի ընկերների համար արագի մէջ կայք պատրաստել՝ arm2txt (source), որը ստանում է նկարներ եւ PDF֊ներ հայերէն տեքստով եւ վերադարձնում ա հայերէն տեքստ, ու NetAdoption (source), CERT-AM֊ի նոր նախագծերից մէկն ա, որը ստուգում ա IPv6֊ն ու DNSSEC֊ը։

Ինձ շատ ա դուր գալիս որ մի ժամուայ ընթացքում կարողանում եմ արագի մէջ կայք հաւաքել ու ինձ շատ շատ ա դուր գալիս, որ սա կատարւում ա մի ֆայլանոց գրադարանի կողմից։

Ինձ թւում ա պէտք ա խօսել նման բաների մասին Հայաստանում։ Մեզ պէտք չեն թանկ ու կրակ արտադրանքներ։ Մեզ պէտք են պարզ եւ էժան լուծումներ։

Ասանկ բաներ…

Պատասխանել մեյլով

IPv6 Ucom֊ում, բայց խնդիրներով

մի քանի օր առաջ ուրախացած գրում էի, որ Ucom֊ում կայ IPv6 ցանց, ու ուրախացած որոշեցի իրենց բզեմ, որ իմ տանն էլ միացնեն։

Աւաղ սա շատ ուրախ պատմութիւն չի, բայց դէ պէտք ա կիսուել։

Սկզբի համար զանգեցի իրենց մասնագէտներին, աւանդական ձեւերով՝ 444, ու խնդրեցի որ իմ մօտ էլ միացնեն IPv6։ ահագին զարմանալի էր, որ ինձ հարցրեցին «իսկ ձեզ ինչի՞ համար ա պէտք»։ ուզում էի սարկաստիկ պատասխանէի «քանի որ 1999 թուականում չեմ ապրում» բայց ասեցի դէ լաւ, դեռ առաջին օրն ա, ու բարի բարի ասեցի «յաճախորդներիս մօտ կայ IPv6-only ցանց, ու չեմ ուզում ամէն անգամ VPN֊ուեմ, որ կպնեմ դրանց»։ Ասաց՝ դէ գրանցում եմ։

Յաջորդ օրը զանգեցին ու ասեցին որ միացած ա, ասեցի օհ հրաշալի, հեսա փորձարկեմ։

Փորձարկելու համար արագի մէջ կարգաւորեցի dhcpcd(8), գիտեմ֊գիտեմ, տառերը շատ են, ինքը նշանակում ա DHCP Client Daemon։ ահա կարգաւորումը իմ տանը՝

# cat /usr/local/etc/dhcpcd.conf
controlgroup wheel
# Let FreeBSD worry about IPv4
ipv6only
# Do not run these hooks
nohook resolv.conf, hostname, ntp.conf
# Only igb1
allowinterfaces igb1
# No router solicitation (RS) globally by default
noipv6rs

# Use igb2 LAN interface but do not modify it
interface igb2

# Use igb1 WAN interface
# Do router solicitation (RS)
# Request normal address (NA)
# Request prefix delegation (PD) for igb2
interface igb1
  ipv6rs
  ia_na 1
  ia_pd 2 igb2/0

էստեղ ասում ենք որ Normal Address ուզի igb1 ինտերֆեյսի համար եւ ապա prefix delegation անի igb2 ինտերֆեյսի համար։

ապա ստանում էի հետեւեալը՝

[...]
igb1: Router Advertisement from fe80::cecf:83ff:fe98:408
igb1: adding address fc01:3daa:12:86ee:20d:b9ff:fe47:8531/64
igb1: adding route to fc01:3daa:12:86ee::/64
igb1: adding default route via fe80::cecf:83ff:fe98:408
[...]

ակնյայտօրէն ինչ֊որ կարգաւորման խնդիր կար, քանզի չէի ստանում 2000::/3֊ից ոչ մի հասցէ։

Որոշեցի մի անգամ էլ բզել, նոր ticket բացեցին, ու զանգեցին ինձ, ասեցին՝ խնդիրը լուծել ենք, բայց սրանից էն կողմ էլ ոչ մի բան չենք կարող անել, ասեցի դէ լաւ ստուգեմ։

igb1: Router Advertisement from fe80::cecf:83ff:fe98:408
igb1: adding address 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531/64
igb1: adding address fc01:3daa:12:86ee:20d:b9ff:fe47:8531/64
igb1: adding route to 2a00:cc47:2073:5c00::/64
igb1: adding route to fc01:3daa:12:86ee::/64
igb1: adding default route via fe80::cecf:83ff:fe98:408
igb1: fe80::1: DHCPv6 REPLY missing IA Address
igb1: REPLY6 received from fe80::1
igb1: renew in 900, rebind in 1440, expire in 1800 seconds
lo0: adding reject route to 2a00:cc47:2073:5cff::/64 via ::1
igb1: delegated prefix 2a00:cc47:2073:5cff::/64
igb2: adding address 2a00:cc47:2073:5cff::1/64
igb2: changing route to 2a00:cc47:2073:5cff::/64

ահա՛, արդէն ստանում եմ Ucom֊ի ցանցից հասցէ, ու նաեւ ստանում եմ հասցէ igb2֊ի համար։ Էդ հասցէն պէտք է յետոյ բաժանեմ իմ տան ներքին ցանցում կամ Router Advertisement Daemon֊ով, որը SLAAC ա օգտագործում, կամ էլ DHCPv6ով։

Որոշեցի բզբզալ ու փորձել իմ տան սերւէրին պինգ անել՝

root@evn0:~ # ping6 -t1 -W1 -c1 bsd.am
PING6(56=40+8+8 bytes) 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531 --> 2001:470:1f15:e4::1

--- bsd.am ping6 statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss

օհ օհ, բան տեղ չի հասնում։ ինչո՞ւ, կարող ա՞ խնդիր կայ։ մի հատ փորձեմ traceroute անել։

root@evn0:~ # traceroute6 -a -q1 -w3 -m10 bsd.am
traceroute6 to bsd.am (2001:470:1f15:e4::1) from 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531, 10 hops max, 28 byte packets
 1  [AS44395] 2a00:cc47:2073:5c00:cecf:83ff:fe98:408  0.499 ms
 2  *
 3  *
 4  *
 5  *
 6  *
 7  *
 8  *
 9  *
10  *

ակնյայտօրէն խնդիր կայ, բայց ի՞նչ խնդիր ա։ Որոշեցի երկկողմանի traceroute անել իմ Ամստերդամի սերւէրի եւ տան միջեւ՝

ահա, խնդրեմ, պակետները ոչ դուրս են գնում, ոչ ներս են գալիս։

Զանգեցի Ucom ու տեղեկացուցի խնդրի մասին, աւաղ, իրենց պատասխանն էր «քանի մեր մօտ IPv6֊ը փորձնական ա, ապա այլ ոչ մի հարցով չենք կարող օգնել»։

Որոշեցի tcpdump֊ով նայեմ ինչ ա կատարւում՝

root@evn0:~ # tcpdump -n -s0 -i igb1 -c3 icmp6 and dst host 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on igb1, link-type EN10MB (Ethernet), capture size 262144 bytes
14:30:43.641777 IP6 2a05:f480:1400:2eb9::7372:7630 > 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531: ICMP6, echo request, seq 56710, length 24
14:30:43.676499 IP6 2a05:f480:1400:2eb9::7372:7630 > 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531: ICMP6, echo request, seq 56711, length 24
14:30:43.751418 IP6 2a05:f480:1400:2eb9::7372:7630 > 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531: ICMP6, echo request, seq 56712, length 24
3 packets captured
170 packets received by filter
0 packets dropped by kernel

ահա, ակնյայտօրէն պակետները հասնում են իմ տուն, բայց դուրս չեն գալիս։ IPv6֊ով պէտք պատասխան գայ ICMP6֊ի միջոցով, թէ ուր ա խնդիրը։

root@evn0:~ # tcpdump -n -s0 -i igb1 -c1 'icmp6 and dst host 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531 and ip6[40] = 1 and ip6[41] = 0' 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on igb1, link-type EN10MB (Ethernet), capture size 262144 bytes
14:38:15.591959 IP6 2a00:cc47:2000:3::1 > 2a00:cc47:2073:5c00:20d:b9ff:fe47:8531: ICMP6, destination unreachable, unreachable route 2a05:f480:1400:2eb9::7372:7630, length 72
1 packet captured
10245 packets received by filter
0 packets dropped by kernel

ահա, փաստօրէն 2a00:cc47:2000:3::1֊ի մօտ խնդիր կայ։

Այս ամբողջ ինֆորմացիան ուղարկեցի  Ucom, սպասում եմ պատասխանի։

Իրականում եթէ ցանցը փորձնական ա, ապա պէտք ա աւելի շատ ուզենային օգնել, քանի որ ահա մարդ կայ հայաստանում, ով իրենց յաճախորդն ա ու հասկանում ա IPv6֊ից, բայց աւաղ, you can’t always get what you want.

Եթէ պատասխանեն՝ ապա կը գրեմ այստեղ։

Ասանկ բաներ…

Պատասխանել մեյլով

IPv6 Ucom֊ո՞ւմ։

Ծնողների տանն ենք, տեսնում եմ, որ իրանց տանը կայ IPv6։ ահա ստուգեցի՝

$ curl -6 ifconfig.bsd.am
2a00:cc47:4455:d00:1988:f8b7:e108:e80e
curl/8.3.0
source: /index.Mod

դեռ անգիր չեմ արել Հայաստանի IPv6  ցանցը, բայց ահա ստուգեցի՝

$ whois 2a00:cc47:4455:d00:1988:f8b7:e108:e80e | grep desc
descr:          UCOM CJSC

հիմա պէտք ա ստուգել եթէ իմ տանը տալիս են, ու եթէ կարող են կազմակերպել Prefix Delegation։

ահագին առաջընթաց կայ, վատ չի։

բայց նաեւ խնդիրներ կան, օրինակ երկու հատ IPv6 DNS resolver ա push լինում DHCP֊ով, սակայն երկուսից մէկը չի աշխատում՝

$ cat /etc/resolv.conf  | grep nameserver
nameserver 2a00:cc40::10
nameserver 2a00:cc40::53
nameserver 192.168.5.1

IPv4֊ովը աշխատում ա, էս մի հատն էլ ա խաշտում՝

$ dig -6 _dk.bind.am TXT +short @2a00:cc40::53  
"Gentoo has an --ignore-world flag and it fixes everything; Just like in real life; Wait no, it doesn't actually do that; Just like in real life. @dakami - RIP"

իսկ միւսը՝

$ dig -6 _dk.bind.am TXT +short @2a00:cc40::10 

; <<>> DiG 9.10.6 <<>> -6 _dk.bind.am TXT +short @2a00:cc40::10
;; global options: +cmd
;; connection timed out; no servers could be reached

երեւի տեղեկացնեմ Ucom֊ին, ու նաեւ լաւ կը լինի հրապարակեն տեխնիկական մանրամասների մասին։

Ու նաեւ հարց ա, եթէ կարող են IPv6 տրամադրել ստատիկ IP ունեցողներին։

Մինչ։

Պատասխանել մեյլով

Անդրանիկ Վարդանեան

10 Մայիսի, 2024

Շատ լուրջ մշակութային խնդիր ունենք. Երբ մարդիկ հարց են ունենում, մի անգամից ինձ են հարցնում անձնական նամակով, լինի դա ջաբերով կամ մեյլով։

Բայց ես ու նորայրը ահագին ջանք ենք դրել որ լինեն հանրային քննարկման սենեակներ, ինչպիսին է սարեանը, նաեւ ահագին ջանք ենք դրել, որ մարդիկ հանգիստ հարց տան, երկարաժամկէտ պատասխան սպասելու դէպքում՝ ֆորումների տեսքով։

Բայց արի ու տես որ էդ ամէնը էական չի, մարդիկ մէկ ա, օրուայ վերջում, գրում են մեզ անձնական նամակով, ու երբ մէկ կամ մի քանի ժամ չես պատասխանում, քանի դէ մենք էլ ենք մարդ, գործ, տուն, տեղ ու ընտանիք ունենք, ապա մի մասը սկսում են գոռալ «էդ ինչի՞ չես պատասխանում»։

Ինձ թւում ա շատ տրամաբանական կարողութիւններ պէտք չի հասկանալու համար, որ եթէ շատ ստանդարդ հարց ունես, նոր գիւտ չես անում, ապա 20+ անդամներով հանրային սենեակում հարցնելը աւելի լաւ տարերակ ա, քան մի հոգուն հարցնելը։

Բայց աւաղ, սա մշակութային հարց ա, մարդկանց ասելով «խնդրում եմ չաթում հարցրու» ոչ մի բան չի փոխուի։

Պէտք է մտածենք այս մասին…

Պատասխանել մեյլով

Նոր ֆիշինգ՝ list.am֊ի միջոցով եւ HayPost֊ի անունով

Մի շաբաթ առաջ տեղափոխուեցինք նոր տուն։ Նոր տանը կար մի անկողին որը մեզ պէտք չէր եւ տան տէրը խնդրեց, որ վաճառեմ այն list.am֊ով, գումարն էլ կը ծախսենք տան կարիքների վրայ՝ մի հատ պահարան էստեղ, մի հատ վարագոյր էնտեղ, եւ այլն

Երեկ գիշերը թարմացրի յայտարարութիւնը, դրեցի ուրիշ հեռախօսահամար, եւ այլն։ ամէն ինչ շատ լաւ էր։

Այսօր առաւօտ ստացայ նամակ, WhatsApp֊ով (թէ ասա անդրանիկ ջան, jabber.am֊ի ադմինն ես, WhatsApp֊ը ինչ ես անում) որտեղ մի աղջիկ, Zara անունով, ասում էր թէ բա հետաքրքրուած ա իմ յայտարարութեամբ։

Առաջին «տարօրինակ» բանն այն էր, որ +373 համար ունէր, որը մոլդովական համար ա։ ասեցի դէ երեւի մոլդովահայ ա, էդ հեչ։

Ամէն ինչ լաւ էր, մինչեւ ուղարկեց մի յղում, որտեղ իբր թէ պէտք է քարտի համար տեղադրեմ, որ վճարումը փոխանցուի ինձ։

Դա տեսնելուց պատմեցի Լիլիթին, ով որոշեց թէ բա պէտք ա զանգի իրան, քանի որ ինքը ատում ա սկամերներին։

Ահա թէ ինչ ա բերում էդ կայքը՝

Ու ահա ինչ ա լինում, երբ սեղմում ես «ստացեք միջոցներ» կոճակի վրայ՝

Լիլիթը, կրկին ջղայնացած, որոշեց ղժժալ իրենց վրայ՝

Ամէն դէպքում, արդէն տեղեկացրել եմ ե՛ւ դոմեյն գրանցողին ե՛ւ Cloudflare֊ին։

Զգոյշ եղէ՛ք։

Ասանկ բաներ…

Պատասխանել մեյլով

Անդրանիկ Վարդանեան

28 Նոյեմբերի, 2023

Վերջերս նորայրը գրել էր այն մասին, որ փաթչել ա Գրքի տառատեսակը եւ միքսել ա Syntax տառատեսակի հետ։ Այսպիսով իր մօտ Հայերէն տեքստերը լինում են Գրքի֊ով եւ մնացածը՝ Syntax֊ով։

Ինձ էլ էր նման բան պէտք սակայն կայքի համար, բայց չէի ուզում փաթչել Գրքին։ Դրա փոխարէն կարողացայ օգտագործել մի քանի տող CSS որը Իւնիքոդի հիման վրայ որոշում ա ինչ տառատեսակ օգտագործի։

Ահա կոդը՝

@font-face {
     font-family: 'Arian Grqi';
     src: url(/misc/fonts/Arian_Grqi_U.eot);
     src: url(/misc/fonts/Arian_Grqi_U.eot) format('embedded-opentype'),
          url(/misc/fonts/Arian_Grqi_U.woff) format('woff'),
          url(/misc/fonts/Arian_Grqi_U.ttf) format('truetype'),
          url(/misc/fonts/Arian_Grqi_U.svg) format('svg');
     font-weight: normal;
     font-style: normal;
    unicode-range: U+0530-058F;
}

article, hgroup, p {
    font-family: 'Arian Grqi', Helvetica, Arial, sans-serif !important;
}

Հայերէնը սկսում ա U0530ից մինչեւ U058F, ըստ Վիկիպէ ձյաձյայի եւ Հայերէն իւնիքոդ բլոկի։

Ահա, հիմա կայքում ե՛ւ Գրքի ա, ե՛ւ Հելուեթիքա, Արիալ եւ այլն։

Ասանկ բաներ…

Պատասխանել մեյլով

Անդրանիկ Վարդանեան

17 Նոյեմբերի, 2023

#CyHubCTF2023

Սկսում ենք jailer տեղադրելով՝

root@srv0:~ # git clone https://github.com/illuria/jailer
Cloning into 'jailer'...
remote: Enumerating objects: 554, done.
remote: Counting objects: 100% (102/102), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 554 (delta 56), reused 76 (delta 35), pack-reused 452
Receiving objects: 100% (554/554), 188.74 KiB | 2.22 MiB/s, done.
Resolving deltas: 100% (361/361), done.
root@srv0:~ # cd jailer
root@srv0:~/jailer # make install
root@srv0:~/jailer # jailer version
v0.1.1
r00110

ապա տեղադրում ենք նոր ջեյլ ctfd֊ի համար՝

root@srv0:~ # jailer create -n -d ctf.cyhub.am -t eb -a 172.16.209.23 ctfd
Creating ctfd: Done!

ապա տեղադրում ենք ctfd֊ն՝

root@srv0:~ # jailer cons ctfd
# pkg install py39-pip git-lite
# cd /usr/local
# git clone https://github.com/CTFd/CTFd Cloning into 'CTFd'... remote: Enumerating objects: 16207, done. remote: Counting objects: 100% (5978/5978), done. remote: Compressing objects: 100% (1336/1336), done. remote: Total 16207 (delta 5146), reused 4772 (delta 4603), pack-reused 10229 Receiving objects: 100% (16207/16207), 30.92 MiB | 2.82 MiB/s, done. Resolving deltas: 100% (10334/10334), done.

հրաշալի։ սկսեմ տեղադրել՝

# cd CTFd/
# pip install -r requirements.txt

ստանում եմ տարբեր խնդիրներ, օրինակ՝

      error: [Errno 2] No such file or directory: 'go'
      This package requires Rust >=1.48.0.                                                           

երեւի պէտք է դեղադրեմ դրանք էլ, ձեռով՝

# pkg install go rust
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 3 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        go: 1.20,2
        go120: 1.20.8
        rust: 1.73.0

Number of packages to be installed: 3

The process will require 1 GiB more space.
169 MiB to be downloaded.

Proceed with this action? [y/N]: y
[ctfd.ctf.cyhub.am] [1/3] Fetching rust-1.73.0.pkg: 100%  131 MiB 137.5MB/s    00:01    
[ctfd.ctf.cyhub.am] [2/3] Fetching go-1.20,2.pkg: 100%    860 B   0.9kB/s    00:01    
[ctfd.ctf.cyhub.am] [3/3] Fetching go120-1.20.8.pkg: 100%   38 MiB  39.9MB/s    00:01    
Checking integrity... done (0 conflicting)
[ctfd.ctf.cyhub.am] [1/3] Installing go120-1.20.8...
[ctfd.ctf.cyhub.am] [1/3] Extracting go120-1.20.8: 100%
[ctfd.ctf.cyhub.am] [2/3] Installing rust-1.73.0...
[ctfd.ctf.cyhub.am] [2/3] Extracting rust-1.73.0: 100%
[ctfd.ctf.cyhub.am] [3/3] Installing go-1.20,2...
[ctfd.ctf.cyhub.am] [3/3] Extracting go-1.20,2: 100%

մի հատ էլ փորձենք՝

# pip install -r requirements.txt

ահա, ստացուեց (։ կարգաւորում եմ ԴԲ֊ն ու միացնեմ՝

console.ctf.cyhub.am

Պատասխանել մեյլով

Անդրանիկ Վարդանեան

17 Նոյեմբերի, 2023

#CyHubCTF2023

սկսում ենք սերւէրները թարմացնելով՝

# freebsd-update fetch && freebsd-update install
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 13.1-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata patches.. done.
Applying metadata patches... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 255 patches.....10....20....30....40....50....60....70....80....90....100....110....120..
..130....140....150....160....170....180....190....200....210....220....230....240....250.. done.
Applying patches… done.

ստուգում ենք՝

root@srv0:~ # freebsd-version -kru
13.1-RELEASE-p1
13.1-RELEASE-p1
13.1-RELEASE-p1

ապա թարմացնում են ՕՀ֊ի թողարկումը՝

root@srv0:~ # freebsd-update upgrade -r 13.2-RELEASE
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 13.1-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic kernel/generic-dbg world/base world/lib32

The following components of FreeBSD do not seem to be installed:
world/base-dbg world/lib32-dbg

Does this look reasonable (y/n)? y

Fetching metadata signature for 13.2-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... 

դէ հիմա սպասում ենք։

Fetching files from 13.1-RELEASE for merging... done.
Preparing to download files... done.
Fetching 5595 patches.....10....20.[…]..5590.. done.
Applying patches… done.
Fetching 576 files... ....10..[…]..570... done. Attempting to automatically merge changes in files... done.
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".

դէ հիմա էլ տեղակայում ենք

root@srv0:~ # /usr/sbin/freebsd-update install
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

օկ, դէ հեսա reboot անեմ։

shutdown -r now

ապա կարող ենք ստուգել եթէ պատրաստ ա թարմացումները ու տեղադրել՝

root@srv0:~ # /usr/sbin/freebsd-update updatesready
There are updates available to install.
Run '/usr/sbin/freebsd-update install' to proceed.
root@srv0:~ # /usr/sbin/freebsd-update install
Installing updates...Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
Scanning //usr/local/share/certs for certificates...
 done.
root@srv0:~ # freebsd-version -kru
13.2-RELEASE-p4
13.2-RELEASE-p4
13.2-RELEASE-p5

պատրաստ ենք մնացած քայլերին (։

Պատասխանել մեյլով

Անդրանիկ Վարդանեան

4 Նոյեմբերի, 2023

Այո, լուրերը ճիշտ են՝ կազմակերպում ենք նոր Capture The Flag (գրաւիր դրօշը) մրցոյթ CyHub֊ի հետ։

Անցեալ տարի ուղիղ եթերով բլոգում էի թէ ինչպէս եմ կարգաւորում սերւէրները եւ առաջադրանքները։ Այս տարի էլ նոյն եմ անելու CyHub CTF 2023 պիտակի տակ։

Մի՛նչ։

#CyHubCTF2022

#CyHubCTF2023

Պատասխանել մեյլով