Boek "Linux in Action"

Boek "Linux in Action" Hallo, ynwenners fan Khabro! Yn it boek beskriuwt David Clinton 12 real-life projekten, ynklusyf it automatisearjen fan jo backup- en herstelsysteem, it ynstellen fan in Dropbox-styl persoanlike triemwolk, en it meitsjen fan jo eigen MediaWiki-tsjinner. Jo sille virtualisaasje, rampherstel, feiligens, reservekopy, DevOps, en systeemproblemen oplosse troch ynteressante case studies. Elk haadstik einiget mei in resinsje fan bêste praktiken, in glossary fan nije termen en oefeningen.

Fragmint "10.1. In OpenVPN-tunnel oanmeitsje"

Ik haw it yn dit boek al in soad oer fersifering hân. SSH en SCP kinne gegevens beskermje dy't oerbrocht binne oer ferbiningen op ôfstân (haadstik 3), triemfersifering kin gegevens beskermje wylst se opslein binne op 'e tsjinner (haadstik 8), en TLS / SSL-sertifikaten kinne gegevens beskermje oerbrocht tusken siden en clientbrowsers (haadstik 9) . Mar soms moatte jo gegevens beskerme wurde oer in breder skala oan ferbiningen. Bygelyks, miskien wurkje guon fan jo teamleden op 'e dyk by it ferbinen mei Wi-Fi fia iepenbiere hotspots. Jo moatte perfoarst net oannimme dat al sokke tagongspunten feilich binne, mar jo minsken hawwe in manier nedich om te ferbinen mei bedriuwsboarnen - en dat is wêr't in VPN kin helpe.

In goed ûntwurpen VPN-tunnel leveret in direkte ferbining tusken kliïnten op ôfstân en de tsjinner op in manier dy't gegevens ferberget as se oer in ûnfeilich netwurk reizgje. No en? Jo hawwe al in protte ark sjoen dy't dit kinne dwaan mei fersifering. De echte wearde fan in VPN is dat troch it iepenjen fan in tunnel, kinne jo netwurken op ôfstân ferbine as wiene se allegear lokaal. Yn in sin brûke jo in rûnwei.

Mei dit útwreide netwurk kinne behearders har wurk oeral op har servers útfiere. Mar noch wichtiger, in bedriuw mei middels ferspraat oer meardere lokaasjes kinne se allegear sichtber en tagonklik meitsje foar alle groepen dy't se nedich hawwe, wêr't se ek binne (figuer 10.1).

De tunnel sels garandearret gjin feiligens. Mar ien fan 'e fersiferingsnoarmen kin wurde opnommen yn' e netwurkstruktuer, wat it nivo fan feiligens signifikant fergruttet. Tunnels makke mei it iepen boarne OpenVPN-pakket brûke deselde TLS/SSL-fersifering wêr't jo al oer hawwe lêzen. OpenVPN is net de ienige beskikbere tunnelingopsje, mar it is ien fan 'e bekendste. It wurdt beskôge as wat rapper en feiliger as it alternative Layer 2-tunnelprotokol dat IPsec-fersifering brûkt.

Wolle jo dat elkenien yn jo team feilich mei elkoar kommunisearje wylst se ûnderweis binne of yn ferskate gebouwen wurkje? Om dit te dwaan, moatte jo in OpenVPN-tsjinner oanmeitsje om it dielen fan applikaasjes en tagong ta de lokale netwurkomjouwing fan 'e tsjinner mooglik te meitsjen. Om dit te wurkjen, alles wat jo hoege te dwaan is twa firtuele masines as twa konteners út te fieren: ien om te fungearjen as de tsjinner / host en ien om te fungearjen as de kliïnt. It bouwen fan in VPN is net in ienfâldich proses, dus it is wierskynlik de muoite wurdich om in pear minuten te nimmen om it grutte byld yn gedachten te krijen.

Boek "Linux in Action"

10.1.1. OpenVPN Server konfiguraasje

Foardat jo begjinne, sil ik jo wat nuttich advys jaan. As jo ​​​​it sels sille dwaan (en ik riede jo tige oan), sille jo wierskynlik fine dat jo wurkje mei meardere terminalfinsters iepen op jo buroblêd, elk ferbûn mei in oare masine. D'r is in risiko dat jo op in stuit it ferkearde kommando yn it finster ynfiere. Om dit te foarkommen, kinne jo it kommando hostnamme brûke om de masinenamme te feroarjen dy't werjûn wurdt op 'e kommandorigel nei iets dat jo dúdlik fertelt wêr't jo binne. Sadree't jo dit dogge, moatte jo útlogge fan 'e tsjinner en opnij oanmelde foar de nije ynstellings om effekt te nimmen. Dit is hoe't it derút sjocht:

Boek "Linux in Action"
Troch dizze oanpak te folgjen en passende nammen te jaan oan elk fan 'e masines wêrmei jo wurkje, kinne jo maklik byhâlde wêr't jo binne.

Nei it brûken fan hostnamme, kinne jo tsjinkomme ferfelende Net yn steat om Host OpenVPN-tsjinner berjochten op te lossen by it útfieren fan folgjende kommando's. It bywurkjen fan it /etc/hosts-bestân mei de passende nije hostnamme moat it probleem oplosse.

Jo server foar OpenVPN tariede

Om OpenVPN op jo tsjinner te ynstallearjen, hawwe jo twa pakketten nedich: openvpn en easy-rsa (om it proses foar generaasje fan fersiferingskaaien te behearjen). CentOS-brûkers moatte earst de epel-release-repository ynstallearje as it nedich is, lykas jo dien hawwe yn haadstik 2. Om tagong ta de serverapplikaasje te testen, kinne jo ek de Apache-webserver ynstallearje (apache2 op Ubuntu en httpd op CentOS).

Wylst jo jo tsjinner ynstelle, advisearje ik in firewall te aktivearjen dy't alle havens blokkeart útsein 22 (SSH) en 1194 (de standertpoarte fan OpenVPN). Dit foarbyld yllustrearret hoe't ufw soe wurkje op Ubuntu, mar ik bin der wis fan dat jo noch ûnthâlde it CentOS firewalld programma út haadstik 9:

# ufw enable
# ufw allow 22
# ufw allow 1194

Om ynterne routing tusken netwurkynterfaces op 'e tsjinner yn te skeakeljen, moatte jo ien rigel (net.ipv4.ip_forward = 1) yn it /etc/sysctl.conf-bestân uncommentearje. Hjirmei kinne kliïnten op ôfstân wurde omlaat as nedich as se ienris ferbûn binne. Om de nije opsje te wurkjen, rinne sysctl -p:

# nano /etc/sysctl.conf
# sysctl -p

Jo serveromjouwing is no folslein konfigureare, mar d'r is noch ien ding te dwaan foardat jo klear binne: jo moatte de folgjende stappen foltôgje (wy sille se folgjende yn detail dekke).

  1. Meitsje in set fan publike kaai ynfrastruktuer (PKI) fersifering kaaien op de tsjinner mei help fan de skripts foarsjoen fan de easy-rsa pakket. Yn essinsje fungearret de OpenVPN-tsjinner ek as syn eigen sertifikaatautoriteit (CA).
  2. Tariede passende kaaien foar de klant
  3. Konfigurearje de server.conf triem foar de tsjinner
  4. Stel jo OpenVPN-kliïnt yn
  5. Kontrolearje jo VPN

It generearjen fan fersiferingskaaien

Om dingen ienfâldich te hâlden, kinne jo jo kaaiynfrastruktuer ynstelle op deselde masine wêr't de OpenVPN-tsjinner rint. Best practices foar feiligens suggerearje lykwols gewoanlik in aparte CA-tsjinner te brûken foar produksje-ynset. It proses fan it generearjen en fersprieden fan fersiferingskaaiboarnen foar gebrûk yn OpenVPN wurdt yllustrearre yn Fig. 10.2.

Boek "Linux in Action"
As jo ​​OpenVPN ynstalleare, waard de map /etc/openvpn/ automatysk oanmakke, mar d'r is noch neat yn. De openvpn- en easy-rsa-pakketten komme mei foarbyldsjabloanbestannen dy't jo kinne brûke as basis foar jo konfiguraasje. Om it sertifikaasjeproses te begjinnen, kopiearje de easy-rsa-sjabloanmap fan /usr/share/ nei /etc/openvpn en wizigje nei de map easy-rsa/:

# cp -r /usr/share/easy-rsa/ /etc/openvpn
$ cd /etc/openvpn/easy-rsa

De map easy-rsa sil no nochal wat skripts befetsje. Yn tabel 10.1 list de ark dy't jo sille brûke om kaaien te meitsjen.

Boek "Linux in Action"

De boppesteande operaasjes fereaskje root-privileges, dus jo moatte root wurde fia sudo su.

It earste bestân wêrmei jo sille wurkje hjit vars en befettet de omjouwingsfariabelen dy't easy-rsa brûkt by it generearjen fan kaaien. Jo moatte it bestân bewurkje om jo eigen wearden te brûken ynstee fan de standertwearden dy't der al binne. Dit is hoe myn bestân der útsjen sil (Listing 10.1).

Listing 10.1. Haadfragminten fan it bestân /etc/openvpn/easy-rsa/vars

export KEY_COUNTRY="CA"
export KEY_PROVINCE="ON"
export KEY_CITY="Toronto"
export KEY_ORG="Bootstrap IT"
export KEY_EMAIL="[email protected]"
export KEY_OU="IT"

It útfieren fan it vars-bestân sil syn wearden trochjaan oan 'e shell-omjouwing, wêr't se sille wurde opnommen yn' e ynhâld fan jo nije kaaien. Wêrom wurket it sudo kommando op himsels net? Om't wy yn 'e earste stap it skript mei de namme vars bewurkje en it dan tapasse. Tapassen en betsjut dat it vars-bestân syn wearden trochjaan oan 'e shell-omjouwing, wêr't se sille wurde opnommen yn' e ynhâld fan jo nije kaaien.

Wês wis dat jo it bestân opnij útfiere mei in nije shell om it net foltôge proses te foltôgjen. As dit dien is, sil it skript jo freegje om in oar skript út te fieren, clean-all, om elke ynhâld yn 'e map /etc/openvpn/easy-rsa/keys/ te ferwiderjen:

Boek "Linux in Action"
Natuerlik is de folgjende stap om it skjinne-all-skript út te fieren, folge troch build-ca, dat it pkitool-skript brûkt om it root-sertifikaat te meitsjen. Jo wurde frege om de identiteitsynstellingen te befêstigjen levere troch vars:

# ./clean-all
# ./build-ca
Generating a 2048 bit RSA private key

Dêrnei komt it build-key-server skript. Om't it itselde pkitool-skript brûkt tegearre mei in nij root-sertifikaat, sille jo deselde fragen sjen om de skepping fan it kaaipaar te befêstigjen. De kaaien wurde neamd op basis fan 'e arguminten dy't jo trochjaan, dy't, útsein as jo meardere VPN's op dizze masine útfiere, normaal tsjinner sille wêze, lykas yn it foarbyld:

# ./build-key-server server
[...]
Certificate is to be certified until Aug 15 23:52:34 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

OpenVPN brûkt parameters generearre troch it Diffie-Hellman-algoritme (mei build-dh) om te ûnderhanneljen oer autentikaasje foar nije ferbiningen. It hjir oanmakke bestân hoecht net geheim te wêzen, mar moat oanmakke wurde mei it build-dh-skript foar de RSA-kaaien dy't op it stuit aktyf binne. As jo ​​yn 'e takomst nije RSA-kaaien oanmeitsje, moatte jo ek it Diffie-Hellman-bestân bywurkje:

# ./build-dh

Jo serverkantkaaien sille no einigje yn 'e map /etc/openvpn/easy-rsa/keys/, mar OpenVPN wit dit net. Standert sil OpenVPN sykje nei kaaien yn /etc/openvpn/, dus kopiearje se:

# cp /etc/openvpn/easy-rsa/keys/server* /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/dh2048.pem /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn

Tariede Client Encryption Keys

Lykas jo al sjoen hawwe, brûkt TLS-fersifering pearen fan oerienkommende kaaien: ien ynstalleare op 'e tsjinner en ien ynstalleare op' e client op ôfstân. Dit betsjut dat jo kliïntkaaien nedich binne. Us âlde freon pkitool is krekt wat jo hjirfoar nedich binne. Yn dit foarbyld, as wy it programma útfiere yn 'e map /etc/openvpn/easy-rsa/, jouwe wy it it kliïntargumint troch om bestannen te generearjen mei de namme client.crt en client.key:

# ./pkitool client

De twa kliïntbestannen, tegearre mei it orizjinele ca.crt-bestân dat noch yn 'e kaaien/ map is, moatte no feilich oerbrocht wurde nei jo kliïnt. Troch har eigendom en tagongsrjochten kin dit net sa maklik wêze. De ienfâldichste oanpak is om de ynhâld fan it boarnebestân (en neat oars as dy ynhâld) mei de hân te kopiearjen nei in terminal dy't op it buroblêd fan jo PC rint (selektearje de tekst, klikje der mei rjochts op en selektearje Kopiearje út it menu). Plak dit dan yn in nij bestân mei deselde namme dy't jo meitsje yn in twadde terminal ferbûn mei jo kliïnt.

Mar elkenien kin knippe en plakke. Tink ynstee dêrfan as in behearder, om't jo net altyd tagong hawwe ta de GUI wêr't knip / plakke operaasjes mooglik binne. Kopiearje de bestannen nei de thúsmap fan jo brûker (sadat de scp-operaasje op ôfstân tagong kin ta har), en brûk dan chown om it eigendom fan 'e bestannen te feroarjen fan root nei in gewoane net-root-brûker, sadat de scp-aksje op ôfstân kin wurde útfierd. Soargje derfoar dat al jo bestannen op it stuit ynstalleare en tagonklik binne. Jo sille se in bytsje letter nei de klant ferpleatse:

# cp /etc/openvpn/easy-rsa/keys/client.key /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/ca.crt /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/client.crt /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/client.key
# chown ubuntu:ubuntu /home/ubuntu/client.crt
# chown ubuntu:ubuntu /home/ubuntu/ca.crt

Mei in folsleine set fersiferingskaaien klear om te gean, moatte jo de tsjinner fertelle hoe't jo de VPN wolle oanmeitsje. Dit wurdt dien mei it server.conf-bestân.

It ferminderjen fan it oantal toetsoanslagen

Is der tefolle typen? Utwreiding mei heakjes sil helpe om dizze seis kommando's te ferminderjen nei twa. Ik bin der wis fan dat jo dizze twa foarbylden kinne studearje en begripe wat der bart. Noch wichtiger, jo sille kinne begripe hoe't jo dizze prinsipes tapasse kinne op operaasjes mei tsientallen of sels hûnderten eleminten:

# cp /etc/openvpn/easy-rsa/keys/{ca.crt,client.{key,crt}} /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/{ca.crt,client.{key,crt}}

It ynstellen fan it server.conf-bestân

Hoe kinne jo witte hoe't it server.conf-bestân der útsjen moat? Unthâld it easy-rsa-mapsjabloan dat jo kopieare fan /usr/share/? Doe't jo OpenVPN ynstalleare, wiene jo oerbleaun mei in komprimearre konfiguraasjesjabloanbestân dat jo kinne kopiearje nei /etc/openvpn/. Ik sil bouwe op it feit dat it sjabloan argivearre is en jo foarstelle oan in nuttich ark: zcat.

Jo witte al oer it printsjen fan de tekstynhâld fan in bestân nei it skerm mei it kat-kommando, mar wat as it bestân wurdt komprimearre mei gzip? Jo kinne it bestân altyd unzip en dan sil cat it lokkich útfiere, mar dat is ien of twa mear stappen dan nedich. Ynstee, lykas jo miskien hawwe rieden, kinne jo it zcat-kommando útjaan om de útpakte tekst yn ien stap yn it ûnthâld te laden. Yn it folgjende foarbyld, ynstee fan it printsjen fan tekst nei it skerm, sille jo it omliede nei in nije triem mei de namme server.conf:

# zcat 
  /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz 
  > /etc/openvpn/server.conf
$ cd /etc/openvpn

Litte wy de wiidweidige en nuttige dokumintaasje dy't mei it bestân komt oan 'e kant sette en sjen hoe't it der útsjen kin as jo klear binne mei it bewurkjen. Tink derom dat de puntkomma (;) OpenVPN fertelt om de folgjende rigel net te lêzen of út te fieren (Listing 10.2).

Boek "Linux in Action"
Litte wy troch guon fan dizze ynstellingen gean.

  • Standert rint OpenVPN op poarte 1194. Jo kinne dit bygelyks feroarje om jo aktiviteiten fierder te ferbergjen of konflikten mei oare aktive tunnels te foarkommen. Sûnt 1194 fereasket minimale koördinaasje mei kliïnten, is it it bêste om it op dizze manier te dwaan.
  • OpenVPN brûkt of Transmission Control Protocol (TCP) as User Datagram Protocol (UDP) om gegevens te ferstjoeren. TCP kin in bytsje stadiger wêze, mar it is betrouberer en wierskynliker te begripen troch applikaasjes dy't oan beide úteinen fan 'e tunnel rinne.
  • Jo kinne dev tun opjaan as jo in ienfâldiger, effisjinter IP-tunnel wolle meitsje dy't gegevensynhâld draacht en neat oars. As jo ​​​​oan 'e oare kant meardere netwurkynterfaces moatte ferbine (en de netwurken dy't se fertsjintwurdigje), in Ethernet-brêge meitsje, moatte jo dev tap kieze. As jo ​​​​net begripe wat dit allegear betsjut, brûk dan it tun-argumint.
  • De folgjende fjouwer rigels jouwe OpenVPN de nammen fan 'e trije autentikaasjebestannen op' e tsjinner en it dh2048-opsjebestân dat jo earder makke hawwe.
  • De serverline stelt it berik en subnetmasker yn dat sil wurde brûkt om IP-adressen ta te jaan oan kliïnten by oanmelding.
  • De opsjonele push-parameter "rûte 10.0.3.0 255.255.255.0" lit kliïnten op ôfstân tagong krije ta privee subnetten efter de tsjinner. It meitsjen fan dit wurk fereasket ek it ynstellen fan it netwurk op 'e tsjinner sels, sadat it privee subnet wit oer it OpenVPN-subnet (10.8.0.0).
  • De poarte-share localhost 80-line lit jo kliïntferkear dy't op poarte 1194 komme, omliede nei in lokale webtsjinner dy't harket op poarte 80. (Dit sil nuttich wêze as jo de webtsjinner brûke om jo VPN te testen.) Dit wurket allinich dan as it tcp-protokol selektearre is.
  • De brûker nobody en groep nogroup rigels moatte ynskeakele wurde troch it fuortheljen fan de puntkomma's (;). Klanten op ôfstân twinge om te rinnen as nimmen en nogroup soarget derfoar dat sesjes op 'e tsjinner unprivileged binne.
  • log spesifisearret dat aktuele log-yngongen âlde yngongen sille oerskriuwe elke kear as OpenVPN wurdt starte, wylst log-append nije yngongen tafoeget oan it besteande logbestân. It openvpn.log-bestân sels wurdt skreaun nei de map /etc/openvpn/.

Dêrnjonken wurdt ek faak in client-to-client-wearde tafoege oan it konfiguraasjetriem sadat meardere kliïnten inoar kinne sjen neist de OpenVPN-tsjinner. As jo ​​​​tefreden binne mei jo konfiguraasje, kinne jo de OpenVPN-tsjinner starte:

# systemctl start openvpn

Fanwegen de feroarjende aard fan 'e relaasje tusken OpenVPN en systemd, kin de folgjende syntaksis soms ferplicht wêze om in tsjinst te begjinnen: systemctl start openvpn@server.

It útfieren fan ip-adr om de netwurkynterfaces fan jo server te listjen soe no in keppeling moatte útfiere nei in nije ynterface neamd tun0. OpenVPN sil it oanmeitsje om ynkommende kliïnten te tsjinjen:

$ ip addr
[...]
4: tun0: mtu 1500 qdisc [...]
      link/none
      inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
          valid_lft forever preferred_lft forever

Jo moatte miskien de tsjinner opnij opstarte foardat alles folslein begjint te wurkjen. Folgjende stop is de kliïnt komputer.

10.1.2. Konfigurearje de OpenVPN-kliïnt

Tradysjoneel wurde tunnels boud mei op syn minst twa útgongen (oars soene wy ​​se grotten neame). In goed ynsteld OpenVPN op 'e tsjinner rjochtet ferkear yn en út' e tunnel oan 'e iene kant. Mar jo sille ek wat software nedich wêze dy't rint oan 'e kliïntkant, dat is oan' e oare ein fan 'e tunnel.

Yn dizze seksje sil ik my rjochtsje op it manuell ynstellen fan in soarte fan Linux-kompjûter om as OpenVPN-kliïnt op te treden. Mar dit is net de ienige manier wêrop dizze kâns beskikber is. OpenVPN stipet kliïntapplikaasjes dy't kinne wurde ynstalleare en brûkt op buroblêden en laptops mei Windows of macOS, lykas Android- en iOS-smartphones en tablets. Sjoch openvpn.net foar details.

It OpenVPN-pakket sil moatte wurde ynstalleare op 'e kliïntmasjine sa't it is ynstalleare op' e tsjinner, hoewol d'r hjir gjin need is foar easy-rsa, om't de kaaien dy't jo brûke al bestean. Jo moatte it client.conf-sjabloanbestân kopiearje nei de map /etc/openvpn/ dy't jo krekt makke hawwe. Dizze kear sil it bestân net zippe wurde, dus it reguliere cp-kommando sil it wurk goed dwaan:

# apt install openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf 
  /etc/openvpn/

De measte ynstellings yn jo client.conf-bestân sille frij selsferklearjend wêze: se moatte oerienkomme mei de wearden op 'e tsjinner. Sa't jo sjen kinne út de folgjende foarbyld triem, de unike parameter is ôfstân 192.168.1.23 1194, dat fertelt de kliïnt it IP-adres fan de tsjinner. Soargje der nochris foar dat dit jo serveradres is. Jo moatte ek de kliïnt komputer twinge om de autentisiteit fan it serversertifikaat te ferifiearjen om in mooglike man-in-the-middle oanfal te foarkommen. Ien manier om dit te dwaan is om de line remote-cert-tls-tsjinner ta te foegjen (Listing 10.3).

Boek "Linux in Action"
Jo kinne no nei de map /etc/openvpn/ gean en de sertifisearringskaaien fan 'e tsjinner ekstrahearje. Ferfange it tsjinner IP-adres of domeinnamme yn it foarbyld mei jo wearden:

Boek "Linux in Action"
Der sil wierskynlik neat spannend barre oant jo OpenVPN op 'e kliïnt útfiere. Om't jo in pear arguminten moatte trochjaan, sille jo it dwaan fanút de kommandorigel. It argumint --tls-client fertelt OpenVPN dat jo sille fungearje as kliïnt en ferbine fia TLS-fersifering, en --config wiist op jo konfiguraasjetriem:

# openvpn --tls-client --config /etc/openvpn/client.conf

Lês de kommando-útfier soarchfâldich om te soargjen dat jo goed ferbûn binne. As der de earste kear wat mis giet, kin it komme troch in mismatch yn ynstellings tusken de konfiguraasjebestannen fan de tsjinner en de client of in probleem mei netwurkferbining/brânmuorre. Hjir binne wat tips foar probleemoplossing.

  • Lês foarsichtich de útfier fan 'e OpenVPN-operaasje op' e kliïnt. It befettet faaks weardefolle advys oer wat krekt net kin en wêrom.
  • Kontrolearje de flaterberjochten yn 'e openvpn.log en openvpn-status.log-bestannen yn 'e map /etc/openvpn/ op 'e tsjinner.
  • Kontrolearje de systeemlogboeken op 'e tsjinner en kliïnt foar OpenVPN-relatearre en timed berjochten. (journalctl -ce sil de meast resinte yngongen werjaan.)
  • Soargje derfoar dat jo in aktive netwurkferbining hawwe tusken de tsjinner en de kliïnt (mear oer dit yn haadstik 14).

Oer de skriuwer

David Clinton - systeembehearder, learaar en skriuwer. Hy hat edukatyf materiaal administrearre, skreaun oer en makke foar in protte wichtige technyske dissiplines, ynklusyf Linux-systemen, cloud computing (benammen AWS), en kontenertechnologyen lykas Docker. Hy skreau it boek Learn Amazon Web Services in a Month of Lunches (Manning, 2017). In protte fan syn fideo-opliedingskursussen kinne fûn wurde op Pluralsight.com, en keppelings nei syn oare boeken (oer Linux-administraasje en servervirtualisaasje) binne te krijen by bootstrap-it.com.

» Mear details oer it boek is te finen op útjouwer syn webside
» Ynhâldsopjefte
» Úttreksel

Foar Khabrozhiteley 25% koarting mei coupon - linux
By betelling fan de papieren ferzje fan it boek wurdt in elektroanysk boek per e-post ferstjoerd.

Boarne: www.habr.com

Add a comment