Snabb-HowTo till Linux inom Studentdatorprojektet

Linux inom
Studentdatorprojektet


Detta dokument behandlar inställningar som hjälpt mig att ansluta till modempoolen 046 130150 med hjälp av RedHat Linux version 4.1. Det kan säkert hjälpa andra sorters Linuxinstallationer också, men mer vågar jag inte lova. Det utgår från att man gör uppkopplingen ifrån X windows. Det går att anpassa till konsolläge också, Detta kan man läsa om här . I RedHat finns det ett sätt att ta upp en PPP-förbindelse via netcfg. Detta sätt är förmodligen inte utan fördelar, men afaik kan inte köras direkt mot 130150-modempoolen, utan kräver lite hackning. Detsamma lär gälla KDE's kppp. Mycket av det som omtalas nedan förutsätter en viss kunskap om datorer och datakommunikation. Jag tror inte att jag siktar fel om jag antar att de flesta som försöker sig på Linux kan en hel del mer än genomsnittsanvändaren om datorer.
YMMV! (=Your Mileage May Vary)


Vad behövs?

Man behöver stöd för PPP i sin kernel. De flesta kernels har stöd för detta från början. Har du kompilerat om så behöver du kanske titta på din konfigurationsfiler. Se här för att se vad ppp-paketet under RedHat kräver.

Man måste ha grundläggande TCP/IP installerat. Detta brukar återfinnas i lite olika paketerade installationsdelar; SlackWare kallar sin del "N", RedHat har en rad *.rpm-filer, under rubriken "Networking". De flesta distibutioner brukar rekommendera installation.

Man behöver ha PPP-paketet installerat. Följer med alla Linuxinstallationer jag känner till. Men måste som sagt också installeras. För RedHat är det som vanligt en RPM. I SlackWare är det ett "package". I bägge fallen följer det med ganska mycket dokumentation. Man kan ta och ögna igenom manpages för tex pppd och chat. En strålande dokumentation är PPP-HowTo'n som du hittar i din dator i filen file:/usr/doc/HTML/ldp/PPP-HOWTO.html om du installerat dokumentation i HTML-form. Annars finns den i /usr/doc/HOWTO/PPP-HOWTO.gz
Ändelsen till trots så öppnar Netscape den som ett textdokument. (Den är i själva verket en komprimerad textfil) Saknar du Netscape öppnar du den med:

zcat /usr/doc/HOWTO/PPP-HOWTO.gz | more

Dessa länkar pekar rätt om du sitter på en Linuxmaskin just nu. Sitter du inte på en Linuxmaskin följ: http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html För andra specifikt svenska frågor om Linux, tex om bruk av ÅÄÖ, kan man gå till Peter Antmans Linuxsida

Vad ska ställas in? Du behöver se till att ditt hostname stämmer överens med verkligheten; dvs det IP-nummer som du är tilldelad. Inom Studentdatorprojeketet så har alla med modemaccess ett eget IP-nummer. Denna lyx gör det möjligt för oss att definiera maskinens namn i förväg så att namn och nummer stämmer när man anropar den från nätet. Ditt ipnummer tar du reda på genom att:
Ringa Rådgivningen, 046-2229073, eller
Skriva "ping abc97def.student.lu.se" vid en passande kommandoprompt, tex Windows 95's DOS-fönster och sedan notera numret som kommer upp. (Du måste förstås vara uppkopplad för att det ska fungera!) Byt ut abc97def mot ditt eget användarnamn!

Man behöver ett par scripts. Dessa scripts finner du nedan.

Script nr 1, "lustudat":


xterm -T Studentdatorprojektet -geometry 61x4-4+3 \
-e /usr/sbin/pppd lock connect sdp_chat /dev/cua1 38400 -detach defaultroute

En kort utredning:

#!/bin/bash

Talar om att detta är ett shellscript som ska köras mha kommandotolken /bin/bash

xterm -T Studentdatorprojektet -geometry 61x4-4+3 \

Öppnar en xterm, ger den en passande titel och placering. '\' betyder att man ska ignorera radbytet. Hela scriptet måste nämligen ligga på en enda rad, annars funkar det inte. Linux/Unix är emellertid klokt nog att ha ett tecken för just "radbytesignorans", nämligen '\'.

-e /usr/sbin/pppd lock connect sdp_chat /dev/cua1 38400 -detach defaultroute

Startar pppdaemonen, låser porten, och kör scriptet sdp_chat mot porten /dev/cua1 (=com2 på Dosspråk) med hastigheten 38400 baud, hindrar den att lägga sig i bakgrunden som daemon och etablerar slutligen PPP-förbindelsen som default route, dvs alla IP-paket som inte har någon annan, i routingtabellen särskilt specifierad route, skickas via den.

Nästa script:

Nästa script, sdp_chat är det script som anropas av "lustudat". Det innehåller dels ett anrop till programmet "chat", och dels de parametrar som "chat" behöver för att kommunicera med modempoolen.


/usr/sbin/chat -v\
''ATZ\
OKATDT130150\
'CONNECT''\r\r'\
erid:användarid\
'sword?'lösenord\
'>'ppp\

Här ser vi alltså en serie signaler från modemet/modempoolen och chats svar på dessa. Först anropar vi som sagt programmet och ger det resten av scriptet som argument. Därför alla '\' ute till höger. Precis som lustudat så måste alltså hela kommandosekvensen komma på en enda rad.
Vänster kolumn innehåller det man förväntar sig och höger kolumn vad man ska svara.

'' betyder ungefär "börja själv" och initierar följaktligen ATZ, som signalerar till modemet att återställa sig själv till grundinställningen. Behöver man något speciellt Hayeskommando för att initiera sitt modem så ska det in här. Jag kör på ett Dynalink 28.8 och klarar mig utmärkt med ATZ. IMHO gör de flesta det.
OK blir då svaret från modemet som leder till ATDT130150, dvs "slå numret 130150 med tonval". De som bor utanför Lund modifierar givetvis så att man kommer fram ändå.

'CONNECT' betyder att modemen har hittat varann och är beredda att inleda dataöverföring. Från och med nu pratar vi alltså med modempoolen istället för med vårt eget modem. Vi svarar med '\r\r' som motsvarar entertangent 2 ggr. Detta för att få fram inloggningsprompten. Man har sagt mig att detta ska till för att ge modemen en uppfattning om hastighet.

erid: betyder att modempoolen vill ha ditt användarnamn och då svarar vi med det. (Här stoppar du förstås in ditt användarnamn.)

'sword?' indikerar en önskan om lösenord och då svarar vi med det. (stoppa in som ovan)

'>' betyder att vi är inloggade och accesservern nu väntar på instruktioner. Vi svarar med ppp, för att indikera att vi vill starta ppp-trafiken.

Nu är länken uppe inom ett par sekunder.
Sitter du vid datorn så hör du att hårddisken knattrar till ett par gånger innan ppp-förbindelsen är uppe. Det som skrivs är bla loggmeddelanden om att länken är uppe, etc. Faktiskt så loggas hela inloggningen till modempoolen i /var/log/messages. Man kan, om man vill, följa modemens förhandling genom att skriva:

[fil94mni@fil94mni fil94mni]$ tail -f /var/log/messages

i ett terminalfönster. Här är det på sin plats med en varning. Det finns säkerhetsrisker med ppp på Linux, GANSKA MÅNGA, FAKTISKT. Läs här om säkerhetsriskerna.

Efter dessa allvarsamma ord är det dags att testa att det funkar. TCP/IP's motsvarighet till "hello, world" är ping. Vi provar genom att ropa på en dator vi vet oftast är uppe:


[fil94mni@fil94mni fil94mni]$ ping 130.235.128.100
PING 130.235.128.100 (130.235.128.100): 56 data bytes
64 bytes from 130.235.128.100: icmp_seq=0 ttl=253 time=190.2 ms
64 bytes from 130.235.128.100: icmp_seq=1 ttl=253 time=180.0 ms
64 bytes from 130.235.128.100: icmp_seq=2 ttl=253 time=180.0 ms
64 bytes from 130.235.128.100: icmp_seq=3 ttl=253 time=180.0 ms
64 bytes from 130.235.128.100: icmp_seq=4 ttl=253 time=180.0 ms
64 bytes from 130.235.128.100: icmp_seq=5 ttl=253 time=180.0 ms
64 bytes from 130.235.128.100: icmp_seq=6 ttl=253 time=180.0 ms

--- 130.235.128.100 ping statistics ---
7 packets transmitted, 7 packets received, 0% packet loss
round-trip min/avg/max = 180.0/181.4/190.2 ms
[fil94mni@fil94mni fil94mni]$


Så fint. Ser det ut så här är du uppkopplad. Coolt.
De flesta människor gillar att ge namn på datorer i stället för nummer. Vi måste ha en namnserver definierad. Detta görs i filen
/etc/resolv.conf
Den ser ut ungefär så här:
search student.lu.se
nameserver 130.235.128.100
nameserver 130.235.132.90
nameserver 130.235.20.3

Detta stoppas ofta i av diverse installationsscript, om man anger det. netcfg under RedHat kan göra det också. Nästa steg är att kolla om DNS håller vad det lovar:
[fil94mni@fil94mni public_html]$ ping www.lu.se
PING hermes.lu.se (130.235.128.120): 56 data bytes
64 bytes from 130.235.128.120: icmp_seq=0 ttl=253 time=177.7 ms
64 bytes from 130.235.128.120: icmp_seq=1 ttl=253 time=180.0 ms
64 bytes from 130.235.128.120: icmp_seq=2 ttl=253 time=180.0 ms
64 bytes from 130.235.128.120: icmp_seq=3 ttl=253 time=180.0 ms

--- hermes.lu.se ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 177.7/179.4/180.0 ms


Tar man sig inte i kragen kan man hålla på ganska länge med att gotta sig i sin uppkoppling...

När du kommit så här långt är din anslutning uppe, och du kan börja utforska nätet på det sätt det var tänkt att utforskas innan det blev populärt med Internet, dvs med textbaserade program. :-) Det du ska tänka på är att många av de program man kör i Linux är tänkta för bruk i nätverk med fast (snabb) anslutning till nätet. Långt innan PC-folk började använda modeord som "Client-Server", "Tunna klienter" och annat marknadsföringsdravel så var detta vardagsmat i Unixvärlden. Dessa företeelsers baksida; dvs beroende av ett snabbt nät kontinueligt ser vi nu som mindre nackdelar när vi ska koppla upp oss via modem. Men när man har tagit sig runt problemen är det värt besväret!!

Jag tänkte kort redogöra hur jag har gjort för att komma åt de vanligaste nättjänsterna. Det finns givetvis många olika sätt att göra detta; min metod fungerar och är generellt applicerbar, men andra kan vara bättre för dig.

Post.


Den snabba lösningen är Netscape. I Netscape finns det en pop3/smtp-anpassad mailklient som ser i princip likadan ut och fungerar likadant på alla plattformar.

Ställ in Netscape på att använda POP3, ställ in "incoming mail server på studentx.lu.se (x=1, 2 eller 3)
Ställ in "outgoing mail server" på localhost om du kör sendmail eller mail.student.lu.se om du inte kör sendmail.
Detta räcker i princip.

Jag kör i stället pine, kombinerat med popclient eller fetchmail samt sendmail för att hämta och lämna post. På så sätt kan jag samla all mail från i dagsläget 4 externa mailkonton och lägga det i systemets mailspool och läsa det med vilket unix-mailprogram som helst, inklusive mail och sådana nymodigheter som xfmail. För detta behövs det i princip inte mer än att förhållandet är rätt mellan namn och ip-nummer, och att sendmail är inställt på att "ljuga" lagom mycket. Min sendmail låtsas tex att den heter student1.lu.se när den pratar med andra smtpservrar men den är synnerligen medveten om att den egentligen arbetar på fil94mni.student.lu.se. Om inte detta är korrekt så kan du få problem med "from" i dina mail, och följaktligen trassel med svar till dig. Om man ställer in denna parameter korrekt och dessutom använder samma kontonamn på sin egen dator som man har på passande mailserver ute på nätet (exvis studentx) så fungerar mailtransport utmärkt. En viktig detalj: De mail man skriver när man är nedkopplad skickas av klientprogrammet till sendmail som inte hittar någon route till den server man har angett i mottagaradressen. Sendmail köar då brevet i en mailspool, /var/spool/mqueue, och väntar på en ny chans. Klokt är att tömma denna kö när man har kopplat upp sig. Det gör man genom kommandot


[fil94mni@fil94mni fil94mni]$ /usr/sbin/sendmail -q
Vill man se efter om det finns något i utgående mailspool skriver man:
[fil94mni@fil94mni fil94mni]$ mailq
Den intresserade läser tex kapitlet om sendmail i Craig Hunt: TCP/IP Network Administration, O'Reilly & Associates 1994. eller tittar på Peter Antmans Linuxsida. En lagom komplicerad genomgång av detta ytterst komplexa program. En av mina kollegor har förresten fått det att fungera som räknemaskin.... Vad man ska komma ihåg är att sendmail är komplext; det som gör det lätt att använda för oss är att den sendmail.cf som kommer med Linuxdistributionerna är i princip färdig. Det behövs bara lite småjusteringar.
För att hämta posten är det mindre funderingar som går åt. Installera ett av programmen popclient eller fetchmail, och skapa en fil i din hemkatalog som heter .poprc eller .fetchmailrc beroende på vilket program du valt. Filens innehåll ska se likadant ut oavsett program:


server studentx.lu.se proto pop3 user abc95efg pass gr8atpaSS

Dvs en uppräkning av först popserver, sedan protokoll som servern nyttjar, sedan användarnamn, och till slut lösenord i klartext. Som ett skydd mot diverse spionage så är bägge programmen inställda på att fungera endast om filen har minsta möjliga rättigheter. Programmen vägrar således starta om filen har andra rättigheter än "600", dvs user read/write. Följande kommandosekvens, given i hemkatalogen, kopierar in data i en fil och ställer in rätt parametrar på den:


[fil94mni@fil94mni fil94mni]$ echo 'server studentx.lu.se proto pop3 user abc95efg pass gr8atpaSS' > .poprc
[fil94mni@fil94mni fil94mni]$ chmod 600 .poprc

För att testa detta så kopplar du upp dig och ger sedan kommandot "popclient -v" vid en prompt och ser vad som händer. Växeln -v betyder "verbose" dvs du får ganska mycket info om trafiken som äger rum mellan de två servrarna. Den kan givetvis uteslutas när man fått saker och ting att fungera.

News

Usenet news är en viktig källa till information för många, och måste därför fungera. Det i Unix-sammanhang vanliga är förstås att köra sin egen newsserver... :-) Och det är inte utan fördelar, men vi hoppar över det här. Jag tänkte introducera några newsläsare som är effektiva för den dagliga avbetningen av ett par få grupper.
Innan vi går in på de enskilda newsläsarna så är det en liten detalj som bör påpekas. Många newsläsare (inte pine) nyttjar en environmentvariabel som heter $NNTPSERVER för att ta reda på vilken server de ska fråga. Man kan ta reda på värdet på den genom att skriva:
[fil94mni@fil94mni public_html]$ echo $NNTPSERVER
Och svaret kommer:
192.168.0.1
Så kan vi inte ha det, utan vi ändrar oss:
[fil94mni@fil94mni public_html]$ NNTPSERVER=grendel.df.lth.se
[fil94mni@fil94mni public_html]$ export NNTPSERVER
[fil94mni@fil94mni public_html]$ echo $NNTPSERVER
grendel.df.lth.se
Mycket bättre!
Detta kan man givetvis justera efter tycke och smak. Det ska givetvis stämma från början. Jag rekommenderar att du stoppar in en hänvisning till rätt newsserver i /etc/profile
Stoppa in följande:
export NNTPSERVER=news.lu.se
(Du kan förstås välja din favoritnewsserver)
Så över till klienterna:
Först ut är trn vilket står för "Threaded version of ReadNews". trn är effektiv och som många andra Unixprogram lite tvär och ogästvänlig innan man begripit den. Man måste välja rätt version vid installation! Om du ämnar hämta news från news.lu.se i läsögonblicket måste du välja en trn med nntp-stöd, istället för stöd för lokal newsspool. Läs sedan manpagen och begrunda. Att tänka på är att det alltid tar ett rejält tag att starta upp en nntpklient första gången. trn måste ju hämta en lista över alla grupper som finns på servern, och det tar en stund över modem. Hav tålamod!

Härnäst kommer Pine! Pine kan såklart användas till news också. Eftersom Pine är mycket bättre på att förklara sig själv än vad jag är så hänvisar jag till detta programs interna hjälp. En sak bara! Du måste ställa in newsserver i Pine! Det görs genom att välja "setup/config" från huvudmenyn, och ändra värdet "nntp-server" efter tycke och smak.

Slutligen min egen favorit: knews. knews är till skillnad från de andra ett X -program, och kan användas med mus och annat nymodigt. knews lyssnar på environmentvariabeln enligt ovan, så om den är ok så är det bara att köra. En varning: knews gillar att starta den oerhört ovänliga (="kraftfulla":-) ) editorn "vi" som standard meddelandeeditor. Detta kan ändras med en Xresource. Man kan också kompilera in default editor. Läs manpagen.

Ftp

Jag föredrar systemets egen ftpklient. Den är faktiskt samma som Windows95's klient. (Gissa vem som lånade av vem!!) Det finns ett antal grafiska ftpklienter, bla så kan KDE 's filhanterare läsa ftpsites direkt. Men inget slår ftp. Läs manpagen. (Det börjar bli lite av ett mantra det här med manpages, men det är viktigt!!)

WWW

Det finns i princip 2 val för Webläsare: Netscape eller Lynx. Lynx kan bara visa text, går i ett terminalfönster och är det ultimata testet för en Website: Kan man få något vettigt ur en Websida med Lynx så är det en bra Websida. (Denna websida går givetvis utmärkt att läsa med Lynx :-) ) Om man vill se bilder när man surfar så rekommenderar jag Netscape. Vid tiden för denna sidas tillverkning så är senaste versionen 4.03. Jag hittade den på: http://www.netscape.com/download/client_download.html?communicator4.03 där det dessutom fanns en länk till Sunets ftpserver, vilken går mycket snabbare än att plocka från USA, åtminstone för oss som sitter inom universitetsvärlden. Det är förstås en 10MB stor fil, så det tar ju ett bra tag att få hem den. Om man inte vill dra hem så mycket program, eller om man tror att ens maskin inte är kapabel till att köra den med någon slags hastighet så finns det oftast www-browsers med i installationerna. De flesta av dem är i princip kopior av de stora programmen, med en del kod ärvd från NCSA Mosaic, förstås. (Det finns förresten ganska mycket Mosaic i MS Internet Explorer). Jag tröttnade på dem, och laddade hem Netscape i stället. Communicatorn är ju stor, och drar mycket CPU, men är en utomordentlig browser. Jag har en P133 med 48MB RAM, och det går utmärkt. 16MB RAM går bra det med, men då vill man inte ha så mycket annat i gång samtidigt; swapen kan bli full. Då går det LÅNGSAMT!! Tryck inte på reset bara, hoppa ut i konsolläge (ctrl-alt-funktionstangent 1-6) och slå ihjäl en process om du tröttnar på att vänta. Linux hänger sig inte! (Jo på min laptop, men så är den sönder också....)

Irc

Det finns ett par program för IRC. Klassikern är "irc". Kan man den så är den utmärkt. Jag använder eIrc. eIrc är en X-applikation, byggd med Motif, även tillgänglig i en statiskt länkad version. Den kan vara lite svår att hitta; jag vill minnas att jag fann den på ftp.cdrom.com eller om det var sunsite.

Det var en genomgång av de vanligaste klientprogramvarorna för Internetbruk. Denna sida är tänkt att utvecklas med tiden, så titta in lite då och då för uppdateringar.


Denna sida är skriven av Måns Nilsson, mansaxel@df.lth.se
Copyright författaren enligt GPL
Denna uppdatering 5/12 1997