Padomi
 
[Most Recent Entries] [Calendar View] [Friends View]

Monday, October 17th, 2005

    Time Event
    1:13a
    Linux & Internets LU kojās

    Par internetu LU kojās (linux&vpn). Cik nu pats zinu/saprotu. Savu internetu sākumā sataisīju lai “kaut kā strādā”, un vēlāk, kad kas plīsa, pielaboju tikai tik daudz, lai atkal strādā. Tāpēc, “risinājums” nav necik elegants, bet, galvenais, ka strādā.



    Īsumā – LU kojās mēs dzīvojam savā apakštīklā – noslēgtā pasaulītē. Ceļu uz ārējo pasauli izlauž, izveidojot VPN savienojumu – jaunu virtuālu tīkla iekārtu – un norādot, ka datu plūsmu jātēmē uz turieni. Lai dabūtu, “ka strādā internets”, 5 veicamie soļi ir –




    1. Pārliecināties, ka atpazīta tīkla karte, tai piešķirta IP adrese

    2. Pārliecināties, ka ir uzinstalētas vajadzīgās lietas – mppe atbalsts kernelī, pptp, ppp pakotnes

    3. Nokonfigurēt ppp parametrus – norādīt VPN servera adresi, savu lietotājvārdu/paroli un vēl dažus sīkumus

    4. Palaist savienojumu, novirzīt datu plūsmu uz jauno tuneli

    5. Uztaisīt, lai 4. punkts tiek izpildīts katru reizi, ieslēdzot datoru



    Tātad, sākumā, tīkla karte, IP adrese




    • Pārliecināmies, ka datoram vispār ir tīkla karte

    • Iespraužam tīkla vadu, pārliecināmies, ka iedegās zaļās gaismiņas

    • Ar komandu ifconfig paskatāmies, kas notiek ar tīkla karti.



    Komandas ifconfig izvads:



    saint@saint:~$ ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:00:21:11:3E:A1  
              inet addr:10.0.2.61  Bcast:10.0.2.255  Mask:255.255.255.0
              inet6 addr: fe80::200:21ff:fe11:3ea1/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:6545753 errors:0 dropped:0 overruns:0 frame:0
              TX packets:7191254 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:4214073944 (3.9 GiB)  TX bytes:72613371 (69.2 MiB)
              Interrupt:18 Base address:0x9000 
    
    	

    lo Link encap:Local Loopback

    inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:41491 errors:0 dropped:0 overruns:0 frame:0 TX packets:41491 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1662733 (1.5 MiB) TX bytes:1662733 (1.5 MiB)


    Šajā piemērā un turpmāk, tīkla kartei ir nosaukums eth0. Redzam, ka viņai ir IP adrese 10.0.2.61. Piešķirta IP adrese ir laba zīme – tātad tīkla vads ir vesels, karte strādā, operētājsistēma viņu ir atradusi un ir atradies arī DHCP serveris, kas ir piešķīris to adresi. Ja Karte nestrādā, ifconfig viņu nemaz neparādīs. Ja karte ir, bet nav piešķirta IP adrese (bojāts vads, nepareizi uzkniebts/iesprausts vads, tīkls vispār neiet), būs šāds skats:



    saint@saint:~$ ifconfig eth1
    eth1      Link encap:Ethernet  HWaddr 00:04:61:54:C3:C8  
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
              Interrupt:23 Base address:0xc400 
    


    (Tīkla kartē eth1 vispār nekas nav iesprausts.) Jāpiezīmē, ka, ja dators ir jau ieslēgts un iespraužam to tīkla vadu, viņš nesāks tūlīt meklēt IP adresi (kā to dara Windows). Viņu vajag drusku pabakstīt – ifdown eth0 && ifup eth0 komandas pasaka – “sākumā aizsūti tīkla karti gulēt, un tad atkal pasaki viņai, lai sāk strādāt”. Šīs komandas (tāpat kā lielāko daļu komandu tālāk) jāizpilda ar root tiesībām – vai nu kā root lietotājam vai ar sudo komandu. Ja saka, ka tādu ifdown un ifup nav, var mēģināt ifconfig eth0 down un ifconfig eth0 up. Ja nav arī ifconfig komandas, tad ir pavisam traki. Katrā ziņā, katrai distribūcijai ir savi līdzekļi tīkla karšu konfigurēšanai, piemēram, Fedorām ir system-config-network vai arī redhat-config-network jaukas grafiskas programmiņas. Pats lietoju ubuntu, un te ir grafiska saskarne network-admin – iespējams, ka tā nāk GNOME sastāvā.



    Tālāk, jānoskaidro, vai mums ir visas vajadzīgās lietas VPN tuneļa būvēšanai. Pirmkārt, mppe atbalsts kernelī. To noskaidro ar komandu lsmod | grep mppe. Ja kaut ko izdrukā, tad ļoti labi – kerneļa moduļi ir, un ir jau ielādēti (vai iekompilēti). Ja neizdrukā, tad varam izmēģināt laimi ar komandu modprobe ppp_mppe_mppc. Šī komanda mēģina kernelī ielādēt mppe moduli. Ja izdod kļūdu, tad ir slikti – nav moduļa ko ielādēt. Var, protams, pārkompilēt kerneli, bet iesākumā vienkāršāk būtu paņemt distribūciju, kurai noklusētajā kernelī tas mppe atbalsts jau ir. Par Ubuntu, Fedora, SuSE droši zinu, ka tur tas modulis ir.

    Tālāk, jāpārliecinās, ka ir komandas pppd un pptp – vienkārši iedauzām viņas konsolē un pārliecināmies, ka izdrukā kaut kādu help tekstu nevis “command not found”. Ja nav – ņemam pakotņu pārvaldnieku un instalējam – parasti tās pakotnes sauc “ppp” un “pptp-linux” vai kā līdzīgi. Ja pakotnes nav uz kāda no instalācijas diskiem, sanāk vistas un olas problēma – lai dabūtu strādājošu VPN savienojumu, vajag tikt internetā, bet, lai tiktu internetā, vajag VPN. Tad var iet pie drauga, nolādēt pāris failiņus, ierakstīt, teiksim, USB atmiņā, iet atpakaļ un konstatēt, ka nolādēti nepareizie. Un tad iet vēlreiz, un tad vēlreiz lai palasītu kādu HOWTO, un tad vēl 10 reizes. Vēl var izmantot avārijas-pagaidu risinājumu – uz drauga datora uzstādīt HTTP Proxy un no sava datora līst internetā caur drauga proxy. Internets it kā šķietami strādās, ar to niansi, ka visi dati iet caur drauga datoru (viņš var kaut ko okšķerēt, viņš var apvainoties, viņš var izslēgt datoru). Bet kā pagaidu variants dažu pakotņu nokopēšanai tas der.



    Tālāk, savienojuma konfigurācija. Visi konfigurētie VPN savienojumi stāv zem /etc/ppp/peers. Katrs fails tajā mapē atbilst vienam savienojumam. Uztaisām failu “lanet”. Diemžēl šī faila saturs tā krietni atšķiras dažādām distribūcijām – dažādām ppp un pptp versijām. Lietojot Ubuntu, man viņš ir šitāds:



    saint@saint:/etc/ppp/peers$ cat lanet
     #
     # PPTP Tunnel configuration for tunnel lanet
     # Server IP: 195.13.128.6
     # Route: add 195.13.128.6 gw 10.0.2.254 dev eth0
     # Route: del default
     # Route: add default ppp0
     #
    pty \"pptp 195.13.128.6 --nolaunchpppd\"
    name sd20016
    remotename PPTP
    require-mppe-128
    file /etc/ppp/options
    ipparam lanet
    


    Tātad, kas mums te ir – norādīta servera IP – 195.13.128.6. Tālāk, route komandas, kas apraksta, pa kādiem ceļiem turpmāk būs jāsūta datus. Tālāk viena maģiska komanda pty \"pptp 195.13.128.6 -<del>nolaunchpppd\", kas tiks lietota tuneļa palaišanai. Tālāk vēl šādi tādi parametri </del> pieslēgšanās vāŗds (mans ir sd20016, Tev būs cits :), vēlviens pieslēgšanās vārds – tajā var rakstīt kas ienāk prātā.



    Lai kaut kas varētu sanākt, noteikti jānorāda to require-mppe-128 – tas norāda savienojumam lietojamo šifru un uz nevienu citu Lanet VPN serveris neparakstīsies.



    Tālāk, norādīts, ka jāielasa arī uzstādījumu fails /etc/ppp/options. Tajā failā ir viss aizkomentēts, atskaitot trīs rindiņas –



    noauth
    nobsdcomp 
    nodeflate
    


    Šīs tiešām arī ir vajadzīgas un varētu jau vienkārši pārcelt uz “lanet” failu, bet lai jau stāv kur ir. Kas ir tas ipparam, nezinu.



    Lietotājvārds, parole stāv failā /etc/ppp/chap-secrets. Faila saturs:



    saint@saint:~$ sudo cat /etc/ppp/chap-secrets 
     # Secrets for authentication using CHAP
     # client        server  secret                  IP addresses
    \"sd20016\"       *       \"manaparole\"
    


    Tālāk, tuneļa palaišana. Uz ubuntu, komanda pon [tuneļa nosaukums]. Nu, piemēram, pon lanet. Uz Fedoras tuneli palaida ar komandu pptp-command start lanet. Tur visu to /etc/ppp/peers/lanet varēja aizpildīt, lietojot pptp-command. Vienīgā lieta, ko bija ar roku jāpiemet, bija tā direktīva izmantot mppe-128.



    Ja tunelis veiksmīgi palaists, komandai ifconfig būtu jāuzrāda jaunu tīkla iekārtu:



    saint@saint:~$ ifconfig 
    [...]
    ppp0      Link encap:Point-to-Point Protocol  
              inet addr:213.175.114.204  P-t-P:213.175.115.254  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
              RX packets:4128610 errors:0 dropped:0 overruns:0 frame:0
              TX packets:4493020 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:3 
              RX bytes:3916153404 (3.6 GiB)  TX bytes:4033823977 (3.7 GiB)
    


    Tālāk tikai jānorāda, ka visus datus jāsūta nevis uzreiz uz tīkla karti eth0 bet uz jauno tuneli – ppp0. Šo lietu dara ar komandu route. Izmantojot route, mēs varam aprakstīt, kur vēlamies datus dažādās situācijās sūtīt. Piemēram, izteikums “ja pieprasījums tiek sūtīts uz cu.serveris.lv, sūtiet to caur iekārtu ppp0” route sintaksē izskatās – route add cu.serveris.lv ppp0. Lai pateiktu, ka visus pieprasījumus jāsūta caur ppp0, lietojam komandu route add default ppp0. Te jāuzmanās – pieprasījumi Lanet VPN serverim, kas uztur dzīvu pašu tuneli – tie jau arī ir pieprasījumi un tos mums jāturpina sūtīt uz tīkla karti nevis uz VPN tuneli.



    Skripts, kas visu saimniecību palaiž, man izskatās šāds:



    saint@saint:~$ cat /etc/ppp/net
    modprobe ppp_mppe_mppc
    route add 195.13.128.6 gw 10.0.2.254 dev eth0
    pon lanet
    route add default ppp0
    route del default dev eth0
    


    Vēl atliek parūpēties, lai, katru reizi ieslēdzot datoru, šis skripts tiktu izpildīts. Man tas ir sataisīts ar init.d skriptu:



    saint@saint:~$ cat /etc/init.d/net
     #!/bin/sh
     # Starts pptp connection
    
    	

    case \"$1\" in start) echo \"starting tunnel..\"

    /etc/ppp/net ;; stop) echo \"ok\" ;; esac exit 0


    Šis skripts ir iesimlinkots zem /etc/rc2.d



    Ja ir pieejams pptp-command, tad ir vienkārši – tur var norādīt, kurš ir noklusētais tunelis, kuru startējoties jāpalaiž un tas skripts tālāk visu pats izdara.



    Es labi apzinoties, ka, sekojot šai, krietni nepilnīgajai instrukcijai, sataisīt sev strādājošu internetu bez priekšzināšanām (nu, un Google lietošanas iemaņām, man šito neviens nemācīja) varētu būt grūti. Taupot laiku un vienkārši aiz slinkuma izvēlējos uzrakstīt nevis visu sīki un smalki, bet ātri un vispārīgi. Par neskaidrajām lietām var jautāt un tad par tām centīšos uzrakstīt vairāk.

    8:13a
    tarā.

    << Previous Day 2005/10/17
    [Calendar]
    Next Day >>

About Sviesta Ciba