Next Previous Contents

13. FAQ

Q1. Jeg lagde sendmail.init og syslogd.init. Jeg puttet dem i /usr/local/bin og prøvde å kjøre dem, men fikk feilmeldinger.

A1. Disse filene er kalt init scripts. De er kjørt av program init'en når din datamaskin booter. De går ikke isammen med binærene i /usr/local. Se Linux Administrators Guide eller Linux Getting Started Guide for informasjon om hvordan init scripts systemet fungerer.

Q2. Jeg puttet disse linjene i /etc/sendmail.cf

divert(0)
VERSIONID(`tcpproto.mc')                        
OSTYPE(linux)
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(local)
MAILER(smtp)

Og jeg fikk veldig rare meldinger. Hvorfor?

A2. Du skal ikke putte disse linjene i /etc/sendmail.cf. Sendmail.cf filen var skrevet for at sendmail skulle forstå, og mennesker skulle ikke forstå. For derfor å gjøre det enkelt å konfigurere, bruker vi et program som heter m4 og det's makromuligheter til å lage sendmail.cf filen. FEATURE linjene er faktisk makroer som ekspanderer til å være sendmail konfigurasjonslinjer. Se dokumentasjonen til sendmail for hvordan du kan konfigurere sendmail med denne metoden. Merk også at du lager en hoved /etc/sendmail.cf fil, og virtfs scriptet deretter kopierer denne til /virtual/domain1.com/etc/sendmail.cf. Deretter editerer du den sendmail.cf filen til å svare for det domenet.

Q3. Hvor får jeg Virtuald, hva er det, og hvordan bruker jeg det?

A3. Virtuald er C kildekode som jeg skrev for å kjøre en virtuell tjeneste. Den er inkludert i denne HOWTO'en. Du kompilerer den som et vanlig C program, make virtuald . Binæren som er resultatet legger du i /usr/local/bin. Legg til linjer til /etc/inetd.conf som bruker virtuald som et alternativ til et normalt nettverk server program.

Q4. Jeg har ikke dialog installert på mitt system?

A4 Dialog er et program som lar deg putte dialog popup vinduer i dine shell scripts. Det er påkrevd for at mine virtuelle shell script eksempler skal fungere.Du kan hente en kopi hos sunsite. Den kompilerer veldig lett og burde ikke by på noen problemer å installere.

Q5. Hvordan kan jeg vite om virtuald syslogd virker?

A5. Når virtuald kjører, skal den skrive følgende beskjed til syslogd (/var/log/messages):

Nov 19 17:21:07 virtual virtuald[10223]: Virtuald Starting: $Revision: 1.49 $
Nov 19 17:21:07 virtual virtuald[10223]: Incoming ip: 204.249.11.136
Nov 19 17:21:07 virtual virtuald[10223]: Chroot dir: /virtual/domain1.com

chroot dir beskjeden blir sent av virtuald etter at chroot systemkallet er gjort. Hvis denne beskjeden kommer opp, så fungerer virtuald syslogd. Hvis tjenesten du virtualiserer logger beskjeder til syslogd, og du ser dem, er det også et tegn på at virtuald syslogd er korrekt satt opp.

Merk at hvis du ikke har skrudd på kompileringsopsjonen VERBOSELOG, vil ikke virtuald logge noe som helst. Den eneste måten å vite om virtuald syslogd fungerer da er hvis daemonen du virtualiserer på egen hånd logger noe til syslogd.

Q6. Hvordan kan jeg sette opp quotas på kryss av virtuelle filsystemer?

A6. Du setter opp quotas som du vanligvis ville gjort. Se i Quota mini-HOWTO. Merk at du må passe på at det ikke er noen uid konflikter på kryss av domener. Hvis det er konflikter må du la brukere dele en quota. Sett tilside et sett av uid's som du vet vil ha quota's påskrudd, og fortell dine domener at de kan ikke ha brukere i det settet, bortsett fra de som er registrert at de skal ha en quota.

Q7. Hva gjør dette \ tegnet i alle inetd.conf linjene?

A7. Det er bare en metode for å bryte opp konfigurasjonsfiler i to linjer. Jeg gjorde det slik at linjen ville word wrappe på et pent sted. Du kan bare ignorere \ tegnet og sette de to linjene tilbake som en.

Q8. Når jeg kjører passwd eller andre login programmer får jeg permission denied . Når jeg kjører FTP eller su får jeg no modules loaded for service XXX . Hvorfor?

A8. Disse er PAM feilmeldinger. Jeg skrev disse scriptene før PAM ble sluppet. Mitt virtfs script kopierer ikke /etc/pam.d, /usr/lib/cracklib_dict.*, /lib/security eller noen av de andre filene PAM trenger. PAM trenger disse for å fungere. Hvis du editerer mitt virtfs script for å kopiere disse filene, vil problemet bli borte.

Q9. Kan virtuald fungere med tcpd hosts.allow og hosts.deny filene?

A9. Ja det kan det, med noen modifiseringer.

Først, kildekoden må bli forandret på to plasser.

Dette må settes inn hvor argumentene blir sjekket.

        if (!argv[3])
        {
                syslog(LOG_ERR,"invalid arguments: no program to run");
                exit(0);
        }

Exec linjen må bli forandret fra:

        if (execvp(argv[2],argv+2)<0)

til:

        if (execvp(argv[2],argv+3)<0)

For det andre, inetd.conf linjene må bli forandret fra:

ftp stream tcp nowait root /usr/local/bin/virtuald \
        virtuald /virtual/conf.ftp wu.ftpd -l -a

til:

ftp stream tcp nowait root /usr/local/bin/virtuald \
        virtuald /virtual/conf.ftp tcpd wu.ftpd -l -a

For det tredje, editer /virtual/domain1.com/etc/hosts.allow og /virtual/domain1.com/etc/hosts.deny filene.

Q10. Kan mine virtuelle hosts kjøre CGI'er?

A10. Ja det kan de, men jeg anbefaler å putte /cgi-bin en plass på utsiden av chroot som bare du har aksess til. For eksempel, /var/www/cgi-bin/domain1.com. Å gi klientene aksess til /cgi-bin er det samme som å gi dem anledningen til å kjøre programmer på din server. Dette er et stort sikkerhetshull. Vær forsiktig. Jeg lar ingen cgi kjøre på mitt system som jeg ikke personlig har inspektert for bugs.

Q11. Mine konfigurasjonsfiler er forskjellige fra dine eksempler. Hva gjør jeg?

A11. Det er to basis konfigurasjon stiler: SystemV og BSD. Eksemplene som fins i denne HOWTO'en er basert på SystemV konfigurasjonsfil stilen. Virtuelle tjenester virker like bra på begge systemer. For informasjon om BSD stil konfigurasjonsfiler, se opphavet til din distribusjon eller den nærmeste LDP siten.

Q12. Jeg sendte deg mail og har ikke hørt en respons fra deg eller din respons tok veldig lang tid. Hvorfor?

A12. Antakelig fordi du ikke puttet VIRTSERVICES HOWTO i subjektet. Husk at jeg er en nettverksadministrator, og det blant andre ting jeg gjør i mine 20 timers dager er å administrere mine egne virtuelle bokser og klientene mine. Mail som er riktig adressert vil alltid bli besvart innen to eller tre dager. Mail som ikke er adressert ordentlig blir ikke filtrert inn til min VIRTSERVICES mailboks og kan ligge usett i flere dager eller uker.

Q13. Fungerer virtuald under 100Mbit?

A13 Farten til nettverkskortet er uten betydning til om virtuald vil fungere eller ikke. Prøv å vær sikker på at din server virker under 10Mbit og at ditt 100Mbit nettverkskort virker normalt uten en virtuell server.

Q14. Burde jeg bruke sendmail's virthost tabell?

A14. Nei. Det er sendmails opsjon for å akseptere informasjon for flere domener. Virtuald gir hver sendmail dens egen separate chroot miljø. Installer virtuald og deretter konfigurer sendmail slik du vanligvis ville gjort for hvert domene.

Q15. Kan jeg sette opp virtuell telnet på min maskin? Hva med å lage en virtuell root konto så klientene kan administrere deres egne domener?

A15. Disse spørsmålene er jeg blitt spurt ganske ofte, og for å være ærlig begynner jeg å bli ganske lei av dem. Svaret, som er konstatert flere ganger i dokumentasjonen, er at hvilken som helst tjeneste som kjører gjennom inetd kan bli virtualisert ved å bruke virtuald, så det er ingenting som stopper deg fra å gjøre noe av det som står over. Ingenting bortsett fra fornuftighet. Hvilke som helst fordeler du vil få fra å gi lov til telnet er tungt utveid av kostnadene til den virtuelle boksen (og sitene du skal hoste på en fornuftig måte) når det kommer til sikkerhet. Her er bare et par av tingene som er involvert i noe slikt:

Poenget er at å gi login's på en virtuell boks er ingen god ide. Hvis det blir gitt tilgang til slikt, vil hver site som du har på den maskinen være i fare. Hvis du vil la en site administrator få lov til å administrere brukere bør du skrive (ikke scripte) koden som er nødvendig for å kjøre de virtuelle prosessene som lar dem legge til, slette eller modifisere brukere ved login igjennom ssh. Dette burde være fullstendig menydrevet, burde aldri gi en konsoll og burde ikke kjøres som root. For å få til dette må du forandre eierrettighetene til filene det er snakk om fra root til en annen bruker. Hvis det blir gjort på denne måten er det marginalt sikkert å inkorporere dette inn i en virtuell maskin. Det er aldri akseptabelt å gi root login's igjennom telnet eller ssh. Å gjøre dette er en invitasjon til katastrofe. Hvis det er en overveldende grunn til å kjøre telnet, burde siten bli hostet på en dedikert maskin hvor den eneste risken er den inviduelle siten. Ingen ansvarlig administrator ville noengang gjort det annerledes, og derfor vil jeg ikke kaste bort mer tid på dette.

Q16. Er det en rpm, tar, web site, mailingliste, osv assosiert med virtuald og Virtual-Services HOWTO'en?

A16. For øyeblikket er det ikke noe slikt. Denne HOWTO'en er den eneste plassen for informasjon for alt jeg gjør vedrørende dette prosjektet. Jeg finner at denne HOWTO'en er ganske dekkende, som igjen vil si at andre steder for slik informasjon ikke trengs.

Q17. Når jeg prøver å kjøre virtexec som en vanlig bruker får jeg chroot: operation not permitted . Hvorfor?

A17. Chroot er et root restrikert systemkall. Bare superbrukeren kan eksekvere det. Virtexec scriptet kjører chroot programmet som betyr at du må være root for å kjøre det.

Q18. Jeg satte opp pop og sendmail men popping mail ser ikke ut til å virke. Hvorfor?

A18. Noen pop programmer kommer med /usr/spool/mail som deres plass for mail filer. Jeg vet at qpop må bli manuelt editert for å fikse dette. Enten rekompiler kildekoden til ditt program, eller symlink /virtual/domain1.com/usr/spool til /virtual/domain1.com/var/spool.

Q19. Jeg brukte ikke det programmet som ble nevnt i din HOWTO. Jeg brukte program XXX. Det fungerer ikke. Hvorfor?

A19. Jeg prøvde å være sikker på å bruke den mest generelle av hver server i mine eksempler. Men jeg vet at alle har deres egne favorittversjoner av hver server. Send meg så mye informasjon som mulig og jeg vil prøve å finne ut hvordan problemet ditt kan løses og dokumentere dette i denne FAQ'en. Den viktigste delen av informasjon du sender meg, er hvor jeg kan få tak i programmet du kjører (i form av ftp://ftp.domain1.com/subdir/subdir/file.tgz).

Q20. Når jeg kjører virtexec sier den symlink not a virt funcion . Hva betyr dette, og hvordan fikser jeg det?

A20. Virtexec er et program som vil ta sitt null argument, strippe av de fire første tegnene og kjøre navnet som blir igjen i det virtuelle miljøet. For eksempel, virtpasswd kjører passwd. Hvis de fire første karakterene som den stripper av ikke er virt, klager den og spyr ut en feilmelding. Virtexec er skrevet som et shell script og burde være ganske enkelt å følge. Referer til manualsidene om bash eller hvilket shell du kjører for spørsmål om shell script programmering.

Q21. Jeg har et spørsmål om Qmail, SAMBA, Apache, osv. som er urelatert til virtuald oppsettet eller hvordan pakken fungerer med virtuald.

A21. Alle pakkene som er beskrevet her er fullstendig dokumentert. Noen har tilogmed fulle web sites som www.packagename.org dedikert til dem. Vennligst kikk på dem om spørsmål som ikke vedrører pakkens virtuell hosting funksjonalitet.

Q22. Jeg har flere domene aliaser til domain1.com men mail bouncer fra aliasene. Hvorfor?

A22. Virtmaildelivery er avhengig av miljøvariablene som blir gitt den slik at den kan avgjøre hvilken /virtual/domain1.com katalog den skal levere til. Den slår ikke opp noen DNS for å finne ut adressen til mailen heller. Så, hvis adressen er submail.mail.domain1.com, vil virtmaildelivery først prøve den adressen, så mail.domain1.com, så domain1.com og deretter com i den rekkefølgen til enten den finner en match eller det ikke er noe domenenavn igjen.

Hvis du har domenealiaser som ikke er subdomener av hverandre, må du lage symlinker slik som dette:

cd /virtual
ln -s domain1.com domain1alias.com

På denne måten vil virtmaildelivery bli lurt til å tro at begge katalogene eksisterer selv om en er en symlink og mailen vil da være istand til å bli levert til bruker@domain1.com eller bruker@domain1alias.com. Merk at virtexec vil liste begge domenene i dialogboksen når du kjører det. Du kan velge hvilken som helst av den ettersom de bruker det samme virtuelle filsystemet.


Next Previous Contents