Wednesday, November 25, 2015

Answer for Lab - 11 (Assignment)

Server 1න් Browser 1ට data යවිමෙදී data HTTP Response 1ක් විදියට යන්න ඕනි. HTTP Response 1ක් කොටස් 2න් සමන්විත වෙනවා. මුල් කොටසෙන් අපි යවන data browser 1ට විස්තර කරලා දෙන lines ටික. උදාහරණයක් විදියට data වල size 1ක, data type ගන්න පුළුවන්. පසුව 2න කොටස line 1න් වෙන් කර එතනට යවන data ටික enter කල යුතුය. මෙම HTTP Response 1ක Lab 11 HTTP-response file 1කේ දීල තියෙනවා. Notepad(Notepad++, sublinetex, dreamweaver ) වලට drag-drop කරපුවම file content 1ක බලාගන්න පුළුවන්. මෙය Drupal වලින් හදපු  site 1ක content file 1ක්.

මේ site 1ක google-analytics බාවිතා කරනවා. ඒ javascript කොටස ඒවත් කිරීමට වෙනවා. Line 86 - 98 කොටසේ google-analytics script line comment හෝ delete කරන්න.
මෙම page 1කේ බාවිතා කරලා තියෙන්නේ Relative Paths. අත්කොට images, javascripts හා css file localhost 1කේ search වෙන්නේ, නමුත් ඒ file අපේ localhost 1කේ නැති නිසා ඒ සියලුම link Absolute path වලට set කරන්න ඕනි.

Line 115 - 117 වල js file load වෙනවා එතන path වෙනස් කරන්න වෙනවා. උදාහරණයක් විදියට
/sites/default/files/js/jquery-1.4.2.min.js path 1ක http://www.ucsc.lk/sites/default/files/js/jquery-1.4.2.min.js වෙනස් කරන්න ඕනි.

142, 145, 148, 151 වලින් web page 1කේ ඉහල දකුණු කෙලවරට set වෙන image link වල path වෙනස් කරන්න ඕනි.

230 line 1කේ css file 1ක් load කරනවා මේකේ path 1ත් වෙනස් කරන්න වෙනවා.

268 - 271 banner images වල path

467 - 483 comment කරන්න. මේ line වලින් video file 1ක් load කරනවා.

489 line 1කේ href 1ක හිස් තියන්න.

546 - 549 line වල footer images load වෙනවා මේකත් path වෙනස් කරන්න ඕනි.

මේ තියෙන්නේ campus 1කේ index page 1ක.

පහත link 1න් මේ විදියට වෙනස් කරපු file 1ක HTTP-response-edit විදියට name කරලා තියෙනවා. ඒවගේම server.py කියල සම්පුර්ණ code 1ක තියෙනවා. මම බවිතකරලා තියෙන්නේ port 80, ඔයාල 1ක වෙනස් කරගන්න.

Tuesday, October 27, 2015

Socket Programming with Python - Part 1 (Simple HTTP web server)

Socket Programming with Python ලිපි මාලාවක් විදියට ඉදිරිපත් කරන්න මම බලාපොරොත්තු වෙනවා. web browser හා වෙනත් ඉන්ටෙර්නෙට් 1ක හරහා communicate කරන program 1ක් වැඩ කරන්නේ protocol stack 1ක උඩ. protocol stack 1කේ network layer 1ක අදුරගන්න ip address තියෙනවා. Host computer 1ක ip address 1ක දැනගත්තම  අපට පුළුවන් ඒ Host computer 1ට data යවන්න. Web browser 1ක් බලපුවම 1ක තියෙන්නේ application layer 1කේ, මේ application layer 1ක ඇතුලත HTTP, SMTP වගේ protocol තියෙනවා. application layer 1ක හා network layer 1ක අතර Transport Layer 1ක තියෙනවා. Network 1ක හරහා එන data application 1ට ලැබෙන්නේ Transport Layer 1ක හරහා. Transport Layer 1ට application කිහිපයක් connect උනාම Transport Layer 1න් මේ application වෙන වෙනම අදුරගන්න application 1ට address 1ක් දෙනවා, මෙන්න මේ address 1ට port number 1ක කියල කියනවා. අපේ පරිගණකයේ application 1කේ IP:Port combination 1ක් හා host පරිගණකයේ IP:Port combination 1න් විවර වෙන connection 1ට සරලව Socket 1ක් කියනවා. Transport Layer 1ක කොටස් 2ක එකතුවක්. ඒ Transmission Control Protocol (TCP)  හා User Datagram Protocol (UDP). TCP connection oriented protocol 1ක් කියලත් කියනවා, එකට හේතුව වෙන්නේ TCP මුලින්ම connection 1ක හදාගෙන ඒ හදාගත්ත pipe 1ක හරහා communicate කරනවා. UDP connection less protocol 1ක් විදියට හදුන්වනවා. 


Socket API 1ක පහත methods ටික ලබා දෙනවා.
SOCKET method 1න් කරන්නේ අලුත් instanse 1ක් හදාගන්න 1ක.
SEND , RECEIVE method data යවන්න හා ලබාගන්න බාවිතා කරනවා.
CONNECT method 1ක මගින් client application 1ක server application 1ත් සමග connection 1ක හදාගන්නවා.
BIND method 1න් server application 1ක IP:PORT 1ක් ලබාදෙනවා. server application 1කේ IP:PORT දන්නා ඕනෑම කෙනෙකුට server 1ට data එවන්න පුළුවන්.

LISTEN මගින් server 1ක සම්බන්දතා ඇති කරගන්න කැමති ප්‍රමාණය කියනවා. ACCEPT මගින් server application 1ක හා client application 1ක අතර connection 1ක් හදාගන්නවා.

සරල client server application 1ක් වැඩකරන හැටි දැන් බලමු.
soc = socket.socket() මගින් අලුත් socket instanse 1ක් හැදෙනවා. මේ soc 1ක TCP වර්ගයට අයත් socket instanse 1ක්.soc.bind(address) මගින් server 1ට IP:PORT 1ක් ලබාදෙනවා.මෙහි address 1ක HOST/IP ,PORT tuple 1ක් විදියට දෙන්න ඕනි. HOST 1ට empty string 1ක් දුන්නම ඕනෑම IP 1න් එන request බාරගන්නවා.
soc.listen(1) මගින් client application 1ට පමණක් ඇහුන්කන් දෙනවා. soc.accept() මගින් server application 1ක client application 1ත් සමග connection 1ක් හදාගන්නවා. ඒ connection 1ක පිළිබද සියලුම විස්තර remort_soc variable 1ට assign වෙනවා. client application 1ට data යැවීමට හා ලබාගැනීමට remort_soc උපකාරී වෙනවා. පහත රුපයේ විදියට remort_soc.recv හා remort_soc.send while loop 1ක් ඇතුලත තියෙන්න ඕනි. මොකද client application 1ක, 1ක් වතාවකට වැඩියෙන් server 1ට data එවන නිසා. මේ උදහරනයේදී client application 1න් එවන string capital letters වලට හරවල එම string 1ම client application 1ට යවනවා. අවසානයේදී open කරපු socket 1ක close කරන්න ඕනි.
Client application 1ක සලකනකොට අලුත් socket instanse 1ක් හදාගන්න ඕනි. soc.connect((HOST,PORT)) මගින් client application 1ක server 1ට connect කරන්න ඕනි. soc.send හා soc.recv මගින් server 1ට data යවන්න හා ලබාගන්න පුළුවන්. මෙහි input මගින් user න් input ලබාගන්නවා, මේ ලගන්න input තම server 1ට යවන්නේ. String, Images හෝ වෙනත් ඕනෑම දෙයක් server න් client ට හෝ අනෙත් දිශාවට යැවීමට පෙර byte වලට හැරවිය යුතුයි.

Application 2ක වැඩකරන විට පහත විදියට බලාගන්න පුළුවන්.

දැන් server application 1කේ send data string 1ක මේ විදියට edit කරන්න,

HTTP/1.1 200 OK\nContent-Length: 32\ncontent-type:text/html; charset=UTF-8\n\n<html><body>My first Server test</body></html>. Server 1ක run කරලා ඔයාලගේ browser 1කේ url 1ක localhost:9998 විදියට type කරලා මොකද වෙන්නේ බලන්නකෝ. ඉතිරි ටික ඊලග ලිපියෙන් ඔයාලට ගේන්නම්.



Tuesday, October 13, 2015

Ping හා Tracerout/Tracert

Ping හා Tracerout/Tracert කියන්නේ මොකක්ද, මේවා වැඩ කරන්නේ කොහොමද කියල. පළමුවෙන් බලමු ping command 1ක ගැන. ping 1න අපිට පුළුවන් අපි ලබාදෙන IP address 1ක network 1කේ තියෙනවද ඒ IP address 1ට data යවන්න පුලුවන්ද හා අපි යවන data accept කරනවද කියල දැනගන්න. Networking වල troubleshooting වලට බවිත කරන මුලික tool 1ක් තම ping කියන්නේ. Linux, Windows සමග ping command 1ක එනවා.
ping IP_address හෝ ping domain_name විදියට ping command 1ක බවිත කරන්න පුළුවන්.

Ping command 1ක වැඩ කරන්නේ ICMP (Internet Control Message Protocol) 1ක උඩ. ICMP කියන්නේ error-reporting protocol 1ක්. ICMP ගැන වැඩි විස්තර https://goo.gl/hNXWih මෙතනින් කියවන්න පුළුවන්. ICMP 1ක ICMP Type ගොඩක එකතුවක්, මේ ICMP Type තවත් අනු කොටස් වලට බෙදෙනවා. මේ අනු කොටස් ICMP Code කියල හදුන්වනවා. උදාහරණයක් විදියට ICMP Type 3 ගමු, ICMP Type 3 කියන්නේ Destination Unreachable කියන message 1ක. ICMP Type 3 යටතේ ICMP Code 16 (0-15) ක් තියෙනවා. ICMP Code කිහිපයක් බැලුවොත්,
ICMP Code 0 - Destination network unreachable
ICMP Code 1 - Destination host unreachable
ICMP Code 15 - Precedence cutoff in effect
පහත රුපයේ බලාගන්න පුළුවන් ICMP protocol IP header 1කේ හැඩය.

මේ ICMP Type අපට පුළුවන් කොටස් 2ට බෙදන්න. ඒ Query/Response හා Error message කියල. ICMP Type 3,4,5,11,12 error message type.

ඉහතින් මම කිව්වා ping command 1ක ICMP බාවිතා කරනවා කියල. ping ICMP Type 0 - Echo reply හා ICMP Type 8 - Echo request බාවිතා කරනවා. ping command 1ක ප්‍රථමයෙන්ම ICMP Type 8 - Echo request 1ක් අපි දෙන IP Address 1ට යවනවා. (Domain Name 1ක දුන්නොත් DNS මගින් ඉස්සල්ලම IP Address 1ක හොයාගන්නවා) ඒ data packet 1ක දෙන destination 1ට ගියොත් එතනින් ICMP Type 0 - Echo reply 1ක් එවනවා.පහත රුප වලින් network 1ක තුල data packet pass වෙන විදිය බලාගන්න පුළුවන්. මම Microsoft Network Monitor 3.4 මේ සදහා බවිත කරා මොකද මේ tool 1ක internet dongle support කරනවා.(Wireshark මේ වැඩේට ගොඩක් හොද tool 1ක් ඒ උනාට internet dongle support කරන විදිය මට හොයාගන්න බැරි උන.)

දැන් බලමු Tracerout/Tracert ගැන. Linux වල Tracerout විදියටත් windows වල Tracert විදියටත් මේ tool 1ක එනවා. මේකත් networking වල troubleshooting වලට බවිත කරන tool 1ක්. Tracert වලට අමතරව windows වල PingPath කියල tool 1ක් තියෙනවා මේහා සමාන. මේ tool 1ක් අපි internet 1ක හරහා යවන request 1ක් hop(routers) කියක් පහුකරලා යනවද කියල බලාගන්න පුළුවන්. Tracerout/Tracert ත් ICMP මත implement කරලා තියෙන tool 1ක්. Tracerout/Tracert command 1ක  පහත විදියට බාවිතා කරන්න පුළුවන්.
Tracerout/Tracert IP_Address හෝ Tracerout/Tracert Domain_Name

Tracerout/Tracert ICMP Type 0 - Echo Reply, ICMP Type 8 - Echo request හා ICMP Type 11 - Time Exceeded කියන Type ටික බාවිතා කරනවා. ICMP Type 11 වලදී ICMP protocol IP header 1ට TTL (Time-to-Live) value 1ක් එකතු කරනවා. TTL සමහර විට hope limite කියලත් හදුන්වනවා.
මුලින්ම Tracerout/Tracert ICMP Type 8 data packet 1ක් යවනවා, මේකේ TTL value 1ක '1'. මේ packet 1ක පලවෙනි hop 1ට ගියාම TTL value 1ක් check කරනවා, TTL value 1ක '1' නම් hop 1ක ICMP Type 11 - Time Exceeded message 1ක් යවනවා ඒවගේම මේ packet 1ක 1න් විනාශ කරනවා ඊලග hop වලට නොයවා.
මීලගට Tracerout/Tracert මගින් 2 TTL value විදියට තියෙන packet 1ක් යවනවා, පෙර විදියටම පළමු hop 1දී TTL value 1ක් check කරනවා, මේ අවස්ථාවේදී TTL value > 1 නිසා TTL value 1න් '1' අඩු කරලා ඉලග hop 1ට යවනවා, මෙවිට TTL value = 1 නිසා නැවතත් ICMP Type 11 - Time Exceeded message 1ක් Tracerout/Tracert tool 1ට යනන්ව. Tracerout/Tracert මගින් ICMP Type 11 message 1ක් ලැබෙන හැම අවස්ථාවකම TTL value 1ක '1'න් වැඩි කරමින් request message යවනවා. මේ විදියට යනකොට ICMP Type 0 - Echo Reply බවිතවෙන්නේ කොහෙද කියල ප්‍රශ්නයක් එනවනේ. අපි දෙන IP  Address 1ට ඒ කියන්නේ destination 1ට data packet 1ක ගියපුවාම destination 1න් source 1ට ICMP Type 0 - Echo Reply 1ක් එවනවා.පහත රුප වලින් network 1ක තුල data packet pass වෙන විදිය බලාගන්න පුළුවන්. Windows වලදී නම් TTL value 1ට packet 1යි යවන්නේ, ඒ උනාට Linux වලදී වගේ TTL value 1ට packet 3 යවනවා. ඒ වගේම default TTL value 1ක තම 30, hop 30 ඇතුලත packet 1ට destination 1ට යන්න බැරි උනොත් Tracerout/Tracert 1ක fail වෙනවා.


Monday, September 14, 2015

Software Defined Network (SDN)

Networking ඉගනගන්නකොට අපිට එන ප්‍රශ්ණයක් තම Switches, Routers වගේ උපකරණ අවශ්‍ය වීම. මෙමෙ උපකරණ මිලට නොගෙන ඒවා වැඩ කරන විදිය ඉගෙනගන්න අපට පුළුවන්. ඒසදහා emulator software තියෙනවා. MiniNet, GNS3, Cisco Packet Tracer කියන්නේ මේවගේ emulator software වලින් කිහිපයක්.
MiniNet වැඩ කරන්න Linux OS 1ක තියෙන්න ඕනි. ඒවගේම Python ටිකක් දැනගන ඉන්නත් ඕනි. GNS3 කියන්නේ Linux, Mac, Windows OS 3ම වැඩකරන software 1ක්. Cisco Packet Tracer Cisco network devices වලට විශේෂ software 1ක්.

ඉහත රුපයේ තියෙන network 1ක MiniNet වලට code 1ක පහත තියෙනවා. මේ Python code 1කේ output 1ක පහතින් තියෙනවා.

Result 1කේ පේනවා Host_A Router_B 1ත් Host_C Router_B ping වෙලා තියෙනවා. ඒ කියන්නේ Host_A ත් Host_C ත් වෙනවෙනම Router_B 1ට connection 1ක සාර්ථකව හැදිලා තියෙනවා. ඒ උනාට Host_A ත් Host_C ත් අතර ping fail වෙලා. මේකට හේතුව වෙලා තියෙන්නේ Host_A හා Host_C network 2ක තිබීම. එනම් 192.168.1.1 හා 192.168.2.2 කියන network වල. මේ network 2ක අතර සම්බන්දතාවය හදන්න gateway 1ක් define කරලා තියන්න ඕනි.

දැන් බලමු මේ වැඩේම Cisco Packet Tracer වලින් කරන්නේ කොහොමද කියල. Cisco Packet Tracer වල interface 1ක පහත විදියට open වෙන්නේ.

පහත video 1ක බලන්න කොහොමද මේ වැඩේ කරන්නේ කියල.

Linux වල 
ifconfig eth_adap address ip netmask 255.255.255.0
command 1න් adapter 1ක configure කරන්න පුළුවන්.
මේකෙ netmask 1ක දෙන 1ක අනිවාර්යයි.
router add default gw ip
command 1න් default router 1ක set කරන්න ඕනි.
router -n
command 1න් අපි set කරපු router බලාගන්න පුළුවන්.

Friday, September 11, 2015

SSH - Secure Shell (2)

Cryptography key pair 1ක් බාවිතා කරල SSH හරහා server 1ට connect වෙන්නේ කොහොමද කියල අද බලමු?
මෙහිදී key files 2ක් තියෙනවා, 1ක් Public key file 1ක අනෙක Private key file 1ක. Public key 1ක server පරිගණකයේ save කරලා තියන්නේ. Private key 1ක තම අපේ පරිගණකයේ තියාගන්නේ. SSH  කරනකොට password 1ක වෙනුවට Private key 1ක යවනවා.

දැන් බලමු කොහොමද Cryptography key pair 1ක් හදාගන්නේ කියල.
Linux/Mac බාවිතා කරන අයට bash terminal 1න් මේ වැඩේ කරගන්න පුළුවන්, windows බාවිතා කරන අයට 3rd party software වල සහය ගන්න වෙනවා.
 Terminal window 1කේ පහත command 1ක මගින් Cryptography key pair 1ක් හදාගන්න පුළුවන්.
ssh-keygen -t rsa
මෙවිට පළමුවෙන් අපෙන් අහනවා file 1ක save කරන්න තැනක් හා save වෙන්න ඕනි නම. 

Default save වෙන්නේ home folder 1කේ .ssh/id_rsa විදියට,  කැමතිනම් path 1ක වෙනස් කරන්න පුළුවන්. දෙවනියට අහනවා password 1ක්. මේ password 1න් වෙන්නේ Private key file 1ක lock වෙන 1ක. Private key 1ක බාවිතා කරනකොට මෙතනදි දෙන password 1ක අහනවා. Password 1ක් නොදී තිබුනොත් අපේ Private key file 1ක අරගෙන ඕන කෙනෙකුට server 1ට log වෙන්න පුළුවන්. එහෙම වීම වලක්වගන්න password 1ක් දෙන 1ක ගොඩක් හොදයි.

.ssh folder 1කේ අපේ keys 2ක තියෙනවා. id_rsa කියල තියෙන්නේ අපේ Private key 1ක, id_rsa.pub කියල තියෙන්නේ Public key 1ක. Public key 1ක server පරිගණකයේ home folder 1කේ .ssh folder 1ට copy කරන්න ඕනි. Linux වලනම් මේ වැඩේ හරිම ලේසියි.
ssh-copy-id -i path_to_public_key_file username@ip 

command 1න් මේ වැඩේ කරගන්න පුළුවන්. නැත්තම් scp command 1න් මේ වැඩේ කරගන්න පුළුවන්. scp බාවිතා කලොත් copy කරගත්තට පස්සේ id_rsa.pub 1කේ තියෙන content 1ක .ssh folder 1කේ authorized_keys කියල file 1ට copy කරන්න ඕනි. cat id_rsa.pub .ssh/authorized_keys command 1න් ඔයාලට මේ වැඩේ කරගන්න පුළුවන්.
දැන් බලමු අපේ Private key 1න් server 1ට connect වෙන්නේ කොහොමද කියල.
ssh -i path_to_private_key_file username@ip

command 1න් අපට සේර්වේර් පරිගණකයට connect වෙන්න පුළුවන්. Private key file 1ට password 1ක් දුන්නනම් අපෙන් password 1ක අහනවා. 

Windows වල මේ වැඩේ කරගන්න PuTTYgen download කරගන්න ඕනි.(http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe) PuTTYgen 1කේ තියෙන Generate button 1ක click කරලා mouse 1ක ටිකක් move කර කර ඉන්න ඕනි, එතකොට key file generate වෙනවා.

Private key file 1ක save කරගන්න. PuTTY වලින් server 1ට connect වෙලා generate වෙන public key 1කේ content 1ක .ssh/authorized_keys file 1ට save කරන්න. දැන් PuTTY open කරලා Connection -> SSH -> Auth වලට ගිහින් අපේ Private key file 1ක තෝරන්න. දැන් අපට හදාගත්ත keys වලින් connect වෙනකොට වෙන්න පුළුවන්. 

Wednesday, September 9, 2015

SSH - Secure Shell

SSH නැත හොත් Secure Shell යනු කුමක්ද 

SSH කියන්නේ අපි බාවිතා කරන HTTP, SMTP වගේම තවත් protocol 1ක්. SSH මගින් දුරස්ථ පරිගණකයක් එම පරිගණකය ඉස්සරහ ඉදගන පාලනය කරනවා වගේම පාලනය කරන්න පුළුවන්. මෙමෙ පරිගණක බොහෝ විට servers. SSH වල තියෙන විදියටම මේ මෙමෙ සම්බන්ද තාවය encrypted, ඒ කියන්නේ ආරක්‍ෂිත සම්බන්ද තාවයක්. SSH වැඩ කරන්නේ command line විදියට. Network administrators ල SSH බෙහෙවින් බාවිතා කරනවා. Linux හා Mac හි bash terminal 1ක SSH එනවා, නමුත් windows os බාවිතා කරනවානම් අපට වෙනත් software වල සහය පතන්නට වෙනවා. PuTTY කියන්නේ windows වලට පාවිච්චි කරන්න පුළුවන් free software 1ක්. JuiceSSH කියන්නේ Android වලට බාවිතා කරන්න පුළුවන් SSH Client app 1ක්. Prompt iOS වලට බවිත කරන්න පුළුවන්.

අපි SSH වලින් වෙන පරිගණකයකට log වෙන්නේ, ඒ නිසා එකට අපි අවසර ගන්න ඕනි. මේකට ක්‍රම 2ක් තියෙනවා.
Username & Password 
Key pair 

SSH default වැඩ කරන්නේ port 22කේ, මේක වෙනස් කරන්නත් පුළුවන්.

දැන් බලමු Username & Password දීල Ubuntu වලින් connection 1ක් හදාගන්නේ කොහොමද කියල.
Terminal 1කේ, ssh username_of_server@ip_of_server ගහල enter කරන්න. ඊලගට වෙන්නේ fingerprint 1ක ලැබෙන 1ක. fingerprint ලැබෙන්නේ ඔයාගේ පරිගණකයෙන් server 1ට පලවෙනි පාර connect වෙනවනම් විතරයි. ඔයාලට තියෙන්නේ yes type කරලා enter කරන්න විතරයි.
 එතකොට fingerprint 1ක home folder 1කේ .ssh folder 1කේ save වෙනවා. ඊලග පාර connection 1ක හැදෙනකොට ඔයාලගේ save
උන fingerprint 1යි server 1න් එවන fingerprint 1යි සමානද කියල බලනවා. මොකක් හරි හේතුවකට fingerprint 2ක සමාන  නැත්තම් අපට connect වෙන්න දෙන්නේ නැහැ.
අත්කොට server පරිගණකයේ password 1ක එල්ලනවා. අපි මෙතනට password 1ක දෙන්න ඕනි. Linux වලනම් අවස්ථා 3ක් දෙනවා හරියට password 1ක දෙන්න. අවස්ථා 3ම නොහැකි උනොත් ssh 1ක exit වෙනවා. අත්කොට මුල ඒදන් try කරන්න වෙනවා.

මම මුලින් කිවුනනේ SSH default වැඩ කරන්නේ port 22 කියල, මේක වෙනස් කරලා තිබුනොත් terminal 1කේ අපි port 1ක දෙන්න ඕනි. පහත විදියට අපට 1ක දෙන්න පුළුවන්.
ssh username_of_server@ip_of_server -pxxx  (මෙහි xxx 1ක වෙනුවට port 1ක දෙන්න ඕනි.)

දැන් බලමු windows වලින් කොහොමද මේ වැඩේ කරගන්නේ කියල. ඉස්සල ඔයාල PuTTY download කරගන්න ඕනි, මෙන්න ලින්ක් 1ක http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
PuTTY open කරගන්න. Host Name (or IP address) කියන තැන server 1කේ IP address 1ක type කරලා Port 1ක වෙනස් කරන්න අවශ්නම් වෙනස් කරලා පහලින් තියෙන open මත click කරන්න. එතකොට වෙනත් window 1ක් open වෙනවා. අතන අපි password 1ක type කරන්න ඕනි. හැබැයි PuTTY ඔයාලට දෙන්නේ අවස්ථා 2යි. ඉස්සල වගේම මේ first time නම් fingerprint  accept කරන්න ඕනි.

Key pair වලින් connect වෙන විදිය අපි ඊලග ලිපියෙන් බලමු...

අපිට server නැහැනේ ඒ උනාට මේ කියන්න යන්නේ අපේ පරිගණකයේම මේ වැඩේ කරලා බලන්න විදියක්. මේකට Oracal VirtualBox ඕනි. https://www.virtualbox.org/wiki/Downloads න් ඔයාලට පුළුවන් VirtualBox  download කරගන්න. Ubuntu හරි CentOS install කරගන්න ඕනි (Ubuntu install කරන හැටි මෙතනින් බලන්න.). CentOS හා Ubuntu Server version වල SSH එනවා,නැත්තම් අපි ssh install කරගන්න ඕනි.
For Ubuntu - sudo apt-get install openssh-server
For CentOS  - yum -y install openssh-server openssh-clients 


පහත රුපයේ අංක පිළිවෙලට යන්න.

එවිට open වෙන window 1කේ දකුණු කෙලවරේ උඩ button 1න් පහත රුපයේ ආකාරයට rule 1ක් add කරන්න.

මෙහි Host IP එක ubuntu වල ifconfig වලින් දෙන ip 1ක වෙන්න ඕනි. උඩ ලියල තියෙන ක්‍රම 2න් ඕන ක්‍රමයකට දැන් test කරලා බලන්න.


Thursday, August 27, 2015

Networking..

How to connect two computers via ethernet

කොහොමද පරිගණක 2ක් ethernet cable 1න් connect කරන්නේ?
ප්‍රථමයෙන් බලමු මේ වැඩේට මොනවද ඕන කියල, ethernet cable with RJ45 connector 1ක්.Ethernet cable type කිහිපයක් තියෙනවා. බාහිර පෙණුම සමාන උනාට මේ cable 3 එකිනෙකට වෙනස්. ඒවා Cat5, Cat5e හා Cat6

Ethernet cable


මොකක්ද මේ RJ45 කතාව? අපි හැමෝම දන්නවා USB port 1කේ හැඩය. ඒ හැඩය දිග පළල pin ප්‍රමාණය කියන ඔක්කොම සම්මතයන්, ඒවගේ පරිගණක ජාල කරණයේදී බොහොමයක් devices වල බාවිතා කරන්නේ මේ RJ45 connector 1ක. මිට අමතරව devices වල ST, SMA905, SMA906, FC (fiber optical connector වර්ග කිහිපයක්), RJ11, RJ12 වගේ connector වර්ග ගොඩක් තියෙනවා.


RJ45 හා RJ11 connectors
RJ45 connector


RJ11 connector
පරිගණක ජාල කරණයේදී බාවිතා කරන බැලු බැල්මට 1ක සමාන හැඩයක් තියෙන connector 2ක් තම මේ RJ45 හා RJ11 connectors කියන්නේ. බොහෝ නිවෙස් වල RJ11 connector 1ක් හොයාගන්න පුළුවන්. ඔයාලගේ ගෙවල් වල තියෙන CDMA phone වල receiver 1ක phone 1ට සම්බන්ද කරලා තියෙන්නේ RJ11 connector 1න්. RJ45 connector 1ක pin 7 තියෙනවා ඒ වගේම RJ11 connector 1ක pin තියෙන්නේ 4යි.


Crossover Cable

Ethernet cable 1ක, 1ක කොනක් 568A wiring ක්‍රමයට හා අනෙත් කෙලවර 568B ක්‍රමයට RJ45 connector 1ට සම්බන්ද කරපු cable 1ට කියන නම තම Crossover Cable කියන්නේ. මේ විදියට කියපුවම තෙරුන් ගන්න අමාරුද? සරලවම කියනවනම් හිතන්න මිනිස්සු 2ක් කතා කරනවා කියල, 1ක් කටෙන් නිකුත් කරන ශබ්දය අනෙක කනෙන් ශවනය කරනවා. Crossover Cable 1කේ සරල සිද්දන්තය තමයි මේක, 1ක පරිගණයකින් දත්ත යවන pin 1ක අනෙත් පරිගණකයේ දත්ත ලබාගන්න pin 1ට සම්බන්ද කිරීම.



පරිගණක 2ට cable 1ක සම්බන්ද කරාට පස්සේ os 1කේ කරන්න පොඩි දේවල් ටිකක් තියෙනවා. පළමුවෙන්ම පරිගණකයට password 1ක් දන්නා ඕනි. ඊට පස්සේ කරන්න තියෙන දේ කරන විදිය OS 1කේ විදියට වෙනස් වෙනවා. 

අපි මුලින්ම බලමු Ubuntu(Debian Linux) OS 1කේ සෙටින්ස් හදන්නේ කොහොමද කියල.
පළමුවෙන් Launcher 1න් (keyboard 1කේ windows key 1ක ඔබන්න අත්කොට Launcher 1ක open වෙනවා.) Terminal 1ක open කරගන්න. නැත්තම් Ctrl+Alt+T ඔබන්න. එතන ifconfig type කරලා Ethernet adapter 1යි 1කේ address 1යි හොයාගන්න ඕනි.
 Ethernet adapter 1ට IP address 1ක් තියෙනවනම් පින්තුරයේ ආකාරයට බලාගන්න පුළුවන්. Ethernet adapter 1ට IP address 1ක් නැත්තම් කරන්න වැඩ ටිකක් තියෙනවා. අපි දැන් බලමු කොහොමද IP address 1ක් Ethernet adapter 1ට assign කරන්නේ කියල.

පළමු ක්‍රමය.
Launcher 1න්  Network Connector 1ක open කරගන්න.
Add මත click කරන්න.
එවිට open වෙන window 1කේ Ethernet තෝරලා continue කරන්න.
Mac Address 1කේ ඉස්සරහ තියෙන drop down menu 1ක් ඔයාලගේ Ethernet adapter 1ක තෝරන්න. මගේ පරිගණකයේ තියෙන්නේ 1ක adapter 1යි, එක  08-9e-01-xx-xx-xx (eth0). ඔයාලගේ adapter 1ට වැඩියෙන් තියෙනවනම් ඔක්කොම මෙතන පෙන්නනවා. ඔයාල Ethernet cable 1ක සම්බන්ඳ කරපු 1ක තෝරන්න ඕනි.
දැන් IPv4 ටැබ් 1ක මත click කරන්න.Method 1 Manual තෝරන්න. පහලින් ඇති Add මත click කරන්න. අතන address 1ට 192.168.1.1 type කරන්න. Netmask 1ක Ubuntu තෝරාගනියි. එහෙම නැති උනොත් එතන 24 නැත්තම් 255.255.255.0 type කරන්න. දැන් save කරලා පරිගණකය restart කරන්න. දැන් Terminal 1කේ ifconfig type කරලා බලන්න. අපි දීපු IP address 1පෙන්නයි.

දෙවන ක්‍රමය
මේ ක්‍රමය ටිකක් ලේසියි. කරන්න තියෙන්නේ Terminal 1කේ මේ command 1ක type කරන 1ක විතරයි.
sudo ip addr 192.168.1.1
අපි දුන්න IP address 1ක assign වෙළද කියල බලන්න පුළුවන් Terminal 1කේ 1න්.

තෙවන ක්‍රමය
බොහෝ දෙනෙක් අකමැති වෙන ක්‍රමයක් තම මේක.
sudo nano /etc/network/interfaces command ක දෙන්න. එවිට open වෙන configuration file 1කේ පහතින් තියෙන command 1ක type කරලා Ctrl + X ට්ය්පේ කරලා enter කරලා Y ට්ය්පේ කරලා enter කරන්න.
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0


මේකේ address 1ක ඔයාලට කැමති 1ක් දෙන්න පුළුවන්. දැන් පරිගණකය restart කරන්න. Terminal 1කේ Terminal 1ක type කරලා බලන්න IP address 1ක assign වෙළද කියල.

පරිගණක දෙකම Ubuntu නම් මේ ක්‍රමයට 1ම IP address set කරන්න. එක පරිගණකයකට 192.168.1.1 දුන්නොත් අනෙත් පරිගණකයකට 192.168.1.2 දෙන්න. දැන් ping IP_address හෝ traceout IP_address command 1න් අපිට පුළුවනි පරිගණක දෙක connect වෙළද කියල බලාගන්න.

දැන් බලමු windows නම් කොහොමද කරන්නේ කියල.

Control Panel 1ක open කරගන්න. එතනින් Network and Sharing Center තෝරන්න. පසුව open වන window 1න් Change Adapter Settings තෝරන්න. මෙතන ඔයාලගේ තියෙන ඔක්කොම Network Adapters ටික පෙන්නනවා.

එතනින් Ethernet මත double click කරන්න. එන window 1න් Internet Protocol Version 4 (TCP/IPv4) double click කරන්න, නැත්තම් තෝරලා Properties මත click කරන්න. පහත පින්තුරයේ තියෙන විදියට Settings හදල ok කරන්න.


දැන් start -> cmd මගින් command Prompt 1ක open කරගන්න. ping IP_address හෝ tracert IP_address command 1න් අපිට පුළුවනි පරිගණක දෙක connect වෙළද කියල බලාගන්න පුළුවන්.

1ක පරිගණකයක Ubuntu හා අනෙත් පරිගණකයේ Windows තිබීම ප්‍රශ්නයක් වෙන්නේ නැහැ. හැබැයි IP address දෙනකොට එකකට 192.168.1.1 දුන්නොත් අනෙත් පරිගණකයකට 192.168.1.2 දෙන්න.