marți, 25 decembrie 2012

Asterisk si configurarea automata a telefoanelor SIP Cisco

 Tema pe care am studiat-o de curand a fost sa configurez sistemul Asterisk astfel incat telefoanele sa isi ia configuratia in mod automat de la acesta. Ingredientele sunt: Asterisk 1.8 instalat pe Debian 6, conectat in Internet, sa presupunem ca are adresa 200.100.50.1. Telefoanele IP sunt conectate intr-un LAN privat, in care se gaseste un server DHCP (ruleaza pe un alt Debian 6); un telefon este Cisco SPA303 si altul Cisco SPA525G.



Telefoanele obtin adresa IP de la un server DHCP; tot pe acesta l-am configurat sa trimita telefoanelor si serverul de unde isi pot lua fisierele de configurare. Configuratia din dhcpd.conf este mai jos:
subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.100 192.168.1.107;
        option subnet-mask 255.255.255.0;
        option routers 192.168.1.1;
        option broadcast-address 192.168.1.255;
        option tftp-server-name  "tftp://
200.100.50.1/srv/tftp/spa$PSN.cfg";
}

spa$PSN.cfg se traduce prin "spa303.cfg" pentru telefonul Cisco SPA303 si respectiv "spa525G.cfg" pentru telefonul Cisco 525G. Nu uitati sa scrieti calea absoluta spre aceste fisiere, ca mai sus, mie mi-a luat ceva timp si nervi pana mi-am dat seama.

Pe serverul pe care ruleaza Asterisk avem instalat si un server TFTP care are calea absoluta "/srv/tftp" si in care am pus doua fisiere, cate unul pentru fiecare model de telefon. Continutul lor este acelasi si anume:


<flat-profile>
 <Resync_On_Reset>Yes</Resync_On_Reset>
 <Resync_Periodic>900</Resync_Periodic>
 <Profile_Rule>tftp://
200.100.50.1/srv/tftp/spa$MA.xml</Profile_Rule>
</flat-profile>



Practic, la fiecare 15 minute (900 secunde) telefonul isi va lua fisierul propriu de configurare, in format XML, de la serverul TFTP 200.100.50.1. In concluzie, daca aveti n telefoane model SPA303, va este necesar un singur fisier cu extensia "cfg".
spa$MAC.xml se traduce prin spa5475d02aadc6.xml daca adresa MAC a telefonului este 5475D02AADC6. Atentie, numele fisierului XML are litere mici in loc de literele mari din adresa MAC. Aici am mai pierdut ceva timp si nervi pana mi-am dat seama.
Dupa ce telefonul ia prin TFTP fisierul cu extensia "cfg" (de mai sus), dupa 15 minute incearca sa isi obtina fisierul propriu de configurare. In concluzie, daca aveti m telefoane este necesar sa aveti m fisiere cu extensia XML.
Eu am configurat o singura extensie (mai jos cel cu extensia 300 cu parola de autenficare 0003) pe fiecare telefon (desi pe fiecare se pot configura mai multe extensii) si astfel am obtinut fisierul XML de forma:
<flat-profile>
<Time_Zone group="Regional/Time">GMT+02:00</Time_Zone>
<Extension_1_ group="Phone/Line_Key_1">1</Extension_1_>
<Short_Name_1_ group="Phone/Line_Key_1">$USER</Short_Name_1_>
<Share_Call_Appearance_1_ group="Phone/Line_Key_1">private</Share_Call_Appearance_1_>
<Extended_Function_1_ group="Phone/Line_Key_1"/>
<Extension_2_ group="Phone/Line_Key_2">Disabled</Extension_2_>
<Short_Name_2_ group="Phone/Line_Key_2">$USER</Short_Name_2_>
<Share_Call_Appearance_2_ group="Phone/Line_Key_2">private</Share_Call_Appearance_2_>
<Extended_Function_2_ group="Phone/Line_Key_2"/>
<Extension_3_ group="Phone/Line_Key_3">Disabled</Extension_3_>
<Short_Name_3_ group="Phone/Line_Key_3">$USER</Short_Name_3_>
<Share_Call_Appearance_3_ group="Phone/Line_Key_3">private</Share_Call_Appearance_3_>
<Extended_Function_3_ group="Phone/Line_Key_3"/>
<Extension_4_ group="Phone/Line_Key_4">Disabled</Extension_4_>
<Short_Name_4_ group="Phone/Line_Key_4">$USER</Short_Name_4_>
<Share_Call_Appearance_4_ group="Phone/Line_Key_4">private</Share_Call_Appearance_4_>
<Extended_Function_4_ group="Phone/Line_Key_4"/>
<Extension_5_ group="Phone/Line_Key_5">Disabled</Extension_5_>
<Short_Name_5_ group="Phone/Line_Key_5">$USER</Short_Name_5_>
<Share_Call_Appearance_5_ group="Phone/Line_Key_5">private</Share_Call_Appearance_5_>
<Extended_Function_5_ group="Phone/Line_Key_5"/>
<Proxy_1_ group="Ext_1/Proxy_and_Registration">
200.100.50.1</Proxy_1_>
<User_ID_1_ group="Ext_1/Subscriber_Information">
300</User_ID_1_>
<Password_1_ group="Ext_1/Subscriber_Information">
0003</Password_1_>
<Preferred_Codec_1_ group="Ext_1/Audio_Configuration">G711a</Preferred_Codec_1_>
<Second_Preferred_Codec_1_ group="Ext_1/Audio_Configuration">G711u</Second_Preferred_Codec_1_>
<Dial_Plan_1_ group="Ext_1/Dial_Plan">(112S0|xxx.)</Dial_Plan_1_>
<Time_Format group="User/Supplementary_Services">24hr</Time_Format>
<Date_Format group="User/Supplementary_Services">day/month</Date_Format>
</flat-profile>



In fisierul "/etc/asterisk/sip.conf" avem urmatoarea configuratie pentru aceasta extensie



[netdesign](!)
context=netdesign
disallow=all
allow=alaw
type=friend
host=dynamic
nat=yes
qualify=2000
qualifyfreq=300
canreinvite=no
sendrpid=pai

[
300](netdesign)
secret=
0003
callerid=sales <300>

Modificand continutul fisierului cu extensia XML se pot configura telefoanele fara sa accesati pagina lor web de administrare.
Dupa cum spuneam si alta data, Linux ne ofera posibilitati de dezvoltare profesionala mult peste alte sisteme de operare. Va indemn sa va incepeti sa lucrati in acest sistem de operare, orice distributie va este accesibila/comoda.
Craciun fericit si mult spor la invatat!

miercuri, 12 decembrie 2012

Static Virtual Tunnel Interface with IPsec and centralized Internet access


De  multe ori incerc sa le spun oamenilor sa accepte si alte metode de configurare a tunelelor IPSec decat metoda clasica (totodata si invechita), cel putin pe routerele Cisco. Iata si problema:

calculatoarele din reteaua 192.168.1/24 trebuie sa comunice cu cele din reteaua 192.168.2/24, dar totodata trebuie sa aibe acces la Internet tot prin routerul de la HQ ( cel in care se conecteaza LAN-ul 192.168.2/24 ) pentru administrarea facila a politicilor de acces (filtrari de pachete, de porturi TCP/UDP etc). Daca routerul de la sediul central se configureaza prin metoda clasica apar problemele, anume pachetele din LAN 192.168.1/24 ajung, dupa ce sunt decapsulate din tunelul IPSec, pe o interfata de tip 'nat outside' in loc de una 'nat inside'. Rezolvarea devine simpla daca in loc de IPSec crypto-map se configureaza un tunel pe care il definim ca 'nat inside'

Am presupus ca routerul Branch nu este in administrarea aceluiasi admin ca cel de la sediul central, de ex. poate fi administrat de un ISP si din diverse motive configuratia este facuta in mod clasic



Configuratia IPSec de pe routerul HQ

interface <intf_wan>
 ip address <ip_public> <sm>
 ip nat outside

interface <intf_lan>
 ip address 192.168.2.1 255.255.255.0
 ip nat inside
 
crypto isakmp key <ceva_strong> address <ip_public_router_Branch>
crypto isakmp policy <index>
 authentication pre-share
  
crypto ipsec transform-set <id_set> esp-aes esp-sha-hmac
crypto ipsec profile <id_profile>
 set transform-set <id_set>

interface Tunnel <index>
 ip unnumbered  <intf_wan>
 tunnel source <intf_wan>
 tunnel destination <ip_public_router_Branch>
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile <id_profile>
 ip nat inside

ip route 192.168.1.0 255.255.255.0 Tunnel <index> name <lan_Branch>
ip route 0.0.0.0 0.0.0.0 <intf_wan> name <toInet>

ip access-list extended NAT
 deny ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
 permit ip 192.168.1.0 0.0.0.255 any
 permit ip 192.168.2.0 0.0.0.255 any
 
ip nat inside source list NAT interface <intf_wan> overload

show crypto isakmp sa
show crypto ipsec sa

Obs: Comanda 'ip unnumbered  ...' se foloseste pentru ca interfata sa imprumute adresa IP a interfetei introdusa ca parametru al comenzii, efectul consta in aparitia in tabela de rutare a unei interfete fara ca aceasta sa aibe adresa IP proprie. In contextul nostru, routerul de la Branch are alt admin si acesta nu configureaza tunele, prin urmare nu poti agrea o adresa IP dedicata pentru tunel.

Configuratia IPSec de pe routerul Branch

interface <intf_wan>
 ip address <ip_public> <sm>
 crypto map <ipsec_map>
 
interface <intf_lan>
 ip address 192.168.1.1 255.255.255.0 

crypto isakmp key <ceva_strong> address <ip_public_router_HQ>
crypto isakmp policy <index>
 authentication pre-share

crypto ipsec transform-set <id_set> esp-aes esp-sha-hmac

ip access-list extended <ipsec_acl>
 permit ip  192.168.1.0 0.0.0.255 any

crypto map <ipsec_map> <index> ipsec-isakmp
 set peer <ip_public_router_HQ>
 set transform-set <id_set>
 match address <ipsec_acl>

ip route 0.0.0.0 0.0.0.0 <intf_wan> name <toInet>

show crypto isakmp sa
show crypto ipsec sa

vineri, 9 noiembrie 2012

Blocarea radiourilor online si videoclipurilor cu Cisco ASA 8.4

Invatam sa configuram firewall-urile cu politici NAT, rutare, liste de acces, ma rog, lucruri de baza; totusi se pot face, simplu, niste configuratii care aduc o valoare extrem de mare fara a fi necesare alte elemente de retea.

Cu ajutorul configuratiei de mai jos am reusit cu ajutorul unui firewall Cisco ASA 5510 si sistem de operare mentionat sa blochez mesajele HTTP Response (cele cu portul SURSA tcp/80) care contin in campul Content-Type din headerul HTTP sirul audio sau video (de exemplu audio/x-scpls sau video/x-flv).





Filtrarea dupa URL nu va ajuta caci astazi poate nu exista un site si maine apare unul nou cu link-uri catre radiouri online s.a.m.d.


regex MIME_1 "audio\/.*"
regex MIME_2 "video\/.*"

class-map type regex match-any regex_MIME_cmap
  match regex MIME_1
  match regex MIME_2

class-map type inspect http match-any http_MIME_cmap
  match response header content-type regex class regex_MIME_cmap

policy-map type inspect http_MIME_pmap
class http_MIME_cmap
   drop-connection [log]

class-map all_data_traffic
  match-any

policy-map fromInternet
  class all_data_traffic
    inspect http inspect http_MIME_pmap

service-policy fromInternet interface outside
show service-policy

joi, 13 septembrie 2012

Layer 2 tunneling: L2TP metoda statica & Cisco IOS

Cred ca imi lipsesc cursurile de la academia Cisco si ma razbun pe platforma asta de blog, dar asa le trebuie daca m-au lasat sa imi fac cont.

Vreau sa va arat o tehnica de conectare a aceluiasi subnet, in cazul nostru 192.168.1.0/24, prin intermediul a doua routere Cisco, reteaua Internet fiind folosita la interconectarea celor doua. Practic, din punctul de vedere al calculatoarelor,  cele doua routere se comporta ca un switch.


Config router stanga

l2tp-class <nume-clasa-cevretivoi>
   hello 10
   password 0 cisco

pseudowire-class <nume-pseudoclass-totcevacevretvoi>
   encapsulation l2tpv3
   protocol l2tpv3 <nume-clasa-cevretivoi>
   ip local interface Fa0/0

interface Fa0/0
   descritpion *** link to IP cloud *** 
   ip address 200.100.50.1 <SM-cevreaISPulvostru>

interface Fa0/1
   description *** link to LAN ***
   no ip address
   xconnect 100.50.25.1 <circuit-ID> encapsulation l2tpv3 pw-class <nume-pseudoclass-totcevretvoi>

show l2tun


Config router dreapta


l2tp-class <nume-clasa-totcevretivoi>
   hello 10
   password 0 cisco

pseudowire-class <nume-pseudoclass-totcevacevretvoi>
   encapsulation l2tpv3
   protocol l2tpv3 <nume-clasa-totcevretivoi>
   ip local interface Fa0/0

interface Fa0/0
   descritpion *** link to IP cloud *** 
   ip address 100.50.25.1 <SM-cevreaISPulvostru>


interface Fa0/1
   description *** link to LAN ***
   no ip address
   xconnect 200.100.50.1 <circuit-ID> encapsulation l2tpv3 pw-class <nume-pseudoclass-totcevacevretvoi>


show l2tun


Aveti grija ca <circuit-ID> sa aibe aceeasi valoare pe ambele routere !!!


Spor la treaba

miercuri, 12 septembrie 2012

Asterisk & SIP & Cisco IP Communicator (softphone)

De vreo doua zile ma straduiesc sa pun in functiune scenariul in care un telefon software, in cazul meu Cisco IP Communicator 2.1.3.0, se inregistreaza la un IP PBX, cum ar putea fi altul decat Asterisk 1.8.8, folosind protocolul de semnalizare SIP. Intr-un final am reusit si cum nu am gasit foarte usor documentat acest scenariu, iaca-ta-l:

Asterisk are adresa IP publica, presupunem ca ar fi 100.50.25.1; inlocuiti, mai jos, aceasta adresa cu cea din scenariul vostru
IP Communicator este instalat pe un calculator OS Windows 7 conectat in LAN si pe care avem IP privat 192.168.1.104

Pe un server TFTP, a carei adresa IP o configuram in softphone Preferences->Network->Use these TFTP servers, trebuie sa avem fisierul XML cu denumirea SEP<MAC_softphone>.xml
Telefonul este configurat cu extensia 1008 si parola asistent si deschide portul UDP 53801 pe calculator; inlocuiti, mai jos, aceasta valoare cu cea din scenariul vostru.
Routerul (default-gateway pentru LAN in care este conectat calculatorul) pe care s-a configurat NAT astfel incat calculatorul sa aibe acces la Internet are IP public fix 200.100.50.1; inlocuiti, mai jos, aceasta adresa cu cea din scenariul vostru.
In plus, pe router am fost nevoit sa configurez o translatie pentru portul 53801 si anume 200.100.50.1:53801 se translateaza la 192.168.1.104:53801, protocol UDP.

<?xml version="1.0" encoding="UTF-8"?>
<device>
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>admin</sshUserId>
<sshPassword>password</sshPassword>
<devicePool>
<dateTimeSetting>
<dateTemplate>D-M-Y</dateTemplate>
<timeZone>E. Europe Standard/Daylight Time</timeZone>
<ntps>
<ntp>
<name>80.96.120.252</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>100.50.25.1</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
<sipProfile>
<sipProxies>
<backupProxy></backupProxy>
<backupProxyPort>5060</backupProxyPort>
<emergencyProxy></emergencyProxy>
<emergencyProxyPort></emergencyProxyPort>
<outboundProxy></outboundProxy>
<outboundProxyPort></outboundProxyPort>
<registerWithProxy>true</registerWithProxy>
</sipProxies>
<sipCallFeatures>
<cnfJoinEnabled>true</cnfJoinEnabled>
<callForwardURI>x-serviceuri-cfwdall</callForwardURI>
<callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
<callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
<callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
<meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
<abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
<rfc2543Hold>false</rfc2543Hold>
<callHoldRingback>2</callHoldRingback>
<localCfwdEnable>true</localCfwdEnable>
<semiAttendedTransfer>true</semiAttendedTransfer>
<anonymousCallBlock>2</anonymousCallBlock>
<callerIdBlocking>2</callerIdBlocking>
<dndControl>0</dndControl>
<remoteCcEnable>true</remoteCcEnable>
</sipCallFeatures>
<sipStack>
<sipInviteRetx>6</sipInviteRetx>
<sipRetx>10</sipRetx>
<timerInviteExpires>180</timerInviteExpires>
<timerRegisterExpires>3600</timerRegisterExpires>
<timerRegisterDelta>5</timerRegisterDelta>
<timerKeepAliveExpires>120</timerKeepAliveExpires>
<timerSubscribeExpires>120</timerSubscribeExpires>
<timerSubscribeDelta>5</timerSubscribeDelta>
<timerT1>500</timerT1>
<timerT2>4000</timerT2>
<maxRedirects>70</maxRedirects>
<remotePartyID>false</remotePartyID>
<userInfo>None</userInfo>
</sipStack>
<autoAnswerTimer>1</autoAnswerTimer>
<autoAnswerAltBehavior>false</autoAnswerAltBehavior>
<autoAnswerOverride>true</autoAnswerOverride>
<transferOnhookEnabled>false</transferOnhookEnabled>
<enableVad>false</enableVad>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>avt</dtmfOutofBand>
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
<kpml>3</kpml>
<phoneLabel>ASISTENT</phoneLabel>
<stutterMsgWaiting>1</stutterMsgWaiting>
<callStats>false</callStats>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>

<natEnabled>1</natEnabled>
<natAddress>200.100.50.1</natAddress>

<sipLines>
<line button="1">
<featureID>9</featureID>
<featureLabel>1008</featureLabel>

<proxy>100.50.25.1</proxy>
<port>5060</port>

<name>1008</name>
<displayName>asistent_1008</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>

<authName>1008</authName>
<authPassword>asistent</authPassword>

<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
<messagesNumber>*99</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>1008</contact>
<proxy>100.50.25.1</proxy>
<port>5060</port>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>
</sipLines>

<voipControlPort>58301</voipControlPort>

<startMediaPort>10000</startMediaPort>
<stopMediaPort>20000</stopMediaPort>
<dscpForAudio>184</dscpForAudio>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<dialTemplate>dialplan.xml</dialTemplate>
<softKeyFile></softKeyFile>
</sipProfile>
<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<loadInformation>SIP70.8-0-2SR1S</loadInformation>
<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>0</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<videoCapability>0</videoCapability>
<autoSelectLineEnable>0</autoSelectLineEnable>
<webAccess>0</webAccess>
<daysDisplayNotActive>1,2,3,4,5,6,7</daysDisplayNotActive>
<displayOnTime>00:00</displayOnTime>
<displayOnDuration>00:00</displayOnDuration>
<displayIdleTimeout>00:00</displayIdleTimeout>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>1</loggingDisplay>
<loadServer></loadServer>
</vendorConfig>
<userLocale>
<name></name>
<uid></uid>
<langCode>en_US</langCode>
<version>1.0.0.0-1</version>
<winCharSet>iso-8859-1</winCharSet>
</userLocale>
<networkLocale></networkLocale>
<networkLocaleInfo>
<name></name>
<uid></uid>
<version>1.0.0.0-1</version>
</networkLocaleInfo>
<deviceSecurityMode>1</deviceSecurityMode>
<authenticationURL>http://example.domain.ext/services/authenticate.php</authenticationURL>
<directoryURL>http://example.domain.ext/services/directory.php</directoryURL>
<servicesURL>http://example.domain.ext/services/menu.xml</servicesURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<transportLayerProtocol>4</transportLayerProtocol>
<capfAuthMode>0</capfAuthMode>
<capfList>
<capf>
<phonePort>3804</phonePort>
</capf>
</capfList>
<certHash></certHash>
<encrConfig>false</encrConfig>
</device>

In fisierul sip.conf de configurare din Asterisk trebuie sa avem urmatoarea configuratie:

[1008]
secret=asistent
nat=no
qualify=no




Spor la treaba

miercuri, 29 august 2012

Punct si de la capat

Dupa aproximativ 10 ani de munca in academie, am decis sa urmez un alt drum. Au fost 10 ani plini in care am invatat multe lucruri, am reusit sa transmit cunostintele mele si altora, cu unii am ramas amic; am facut totul din pasiune pentru meseriile de instructor si de inginer, care cred ca ne pot schimba modul in care gandim, interactionam, muncim, facand lucruile mai placute si mai simple.

Elena, logodnica mea (careia ii multumesc pentru sprijinul acordat si rabdarea de care da dovada), ma indeamna sa nu renunt la cariera de instructor si sa incercam sa facem, pe cont propriu, o noua academie si sa continuam munca in acest domeniu, direct sub patronajul nostru, in care sa aplicam propriile principii si viziuni. Multi m-au indemnat si ma sustin sa merg pe acest drum, cu toate ca e destul greu sa te impui pe piata, in principal din cauza conditiilor comerciale (chirii, furnizori etc).

Cert este ca nu mai activez in nicio academie si caut o locatie pentru o sala de curs situata, pe cat posibil, pe langa Politehnica sau Universitate. Avem si o pagina web (www.netschool.ro) pe care o sa pun detalii despre locatia la care m-am hotarat; momentan nu e nimic pe acea pagina.

sâmbătă, 3 martie 2012

bagati Linux ca merita - alta lume

De vreo 3 ani mi-am sters Windows de pe HDD si mi-am instalat Linux, prima data Fedora, apoi Ubuntu si de vreo luna Debian. Ultimul mi se potriveste ca o manusa.
M-am dus in directia asta datorita experientei pe care o am deja in Cisco IOS, numai ca doream sa stiu si o alternativa de activare a acelorasi functionalitati sau similare. Este cea mai simpla metoda de invatare din momentul in care stii principiile; asa am inteles foarte repede cum se configureaza un filtru de pachete, politici pentru translatii de adrese IP, tunele GRE si IPSec etc. Apoi am inceput sa folosesc utilitarele de retea precum nmap, tcpdump, fping, dig s.a.m.d., apoi am sarit gardul in zona de administrare a sistemului: useri, grupuri, drepturi, sisteme de fisiere etc. Mi-am bagat nasul si in configurare servere mai ales FTP, DNS, Postfix, MySQL, Apache si m-am descurcat, dar mi-am cam rupt dintii uneori. Eu, obisnuit cu debug din Cisco IOS, in Linux nu prea am stiut cum sa descopar cauza unei probleme. Numai ca asta ma face sa merg si mai departe, unul din proiectele mele este sa tin un curs comparativ intre Cisco IOS, Linux si Juniper JunOS, la un moment dat.
Sfatul meu este sa aveti mai multe optiuni cand va aflati in fata unei probleme, Cisco nu are intotdeauna raspunsul optim.
Daca printre cei care citesc acest post sunt certificati Linux, va rog sa imi dati si mie un sfat despre ce documentatie este necesara a fi parcursa (m-am uitat pe cea de LPIC, dar m-a plictisit ingrozitor caci nu are cap si nici coada). Bineinteles, daca va pot ajuta la randul meu, dati-mi de stire.
Asa cum ziceam si in titlu, eu ma sint ca intr-un film 3D cand ma apuc de facut ceva in Linux. Nu o sa va para rau daca il folositi, macar ca scapati de virusi, reinstalari la intervale mai mult sau mai putin regulate de timp si ramane tot asa de simplu de folosit.