Minulla on Linux PC ja sitten yksi pieni sulautettu Linux purkki jonne pääsen telnetillä. Siinä ei ole mitään graafisia käyttöliittymiä, SSH:ta, FTP:tä tms.
Töissä päivitän siinä olevia tiedostoja siten että mounttaan sen firman verkkoon ja sitten siirtelen tiedostoja firman verkosta kyseiseen purkkiin komentomoodissa cp-käskyillä.
Nyt mulla on kyseinen purkki kotona. Kytken sen omaan kotona olevaan sisäverkkoon. Pääsen sinne edelleen telnetillä mutta en onnistu päivittämään siinä olevia tiedostoja.
Syynä on se että kotona olevassa koneessani ei ole ollut käynnissä NFS-serveriä. Sellainen löytyi Foobar-linux koneestani, joten käynnistin sen.
Ennen sitä lisäsin tiedostoon /etc/exports seuraavan rivin:
/home/box 192.168.10.0/255.255.255.0(rw,sync,no_root_squash,insecure)
(Tiedosto oli entuudestaan tyhjä.)
/home/box on PC:ssä oleva hakemisto ja linux-purkin IP sisäverkossa on 192.168.10.123. Oman PC:n IP sisäverkossa on 192.168.10.65.
Linux purkissa on hakemisto /mnt/nfs
Ajan telnetillä Linux purkissa mounttauskomennon
mount -t nfs -o nolock 192.168.10.65:/home/box /mnt/nfs
Saan virheilmoituksen:
mount: RPC: Remote system error - Connection refused
Mikäköhän voisi olla syynä tähän virheilmoitukseen?
NFS serveri käy, sillä on helposti todettavissa että sen status on "running".
Myös telnet yhteys toimii, joten periaatteessa näiden kahden laitteen välillä on yhteys.
Töissä päivitän siinä olevia tiedostoja siten että mounttaan sen firman verkkoon ja sitten siirtelen tiedostoja firman verkosta kyseiseen purkkiin komentomoodissa cp-käskyillä.
Nyt mulla on kyseinen purkki kotona. Kytken sen omaan kotona olevaan sisäverkkoon. Pääsen sinne edelleen telnetillä mutta en onnistu päivittämään siinä olevia tiedostoja.
Syynä on se että kotona olevassa koneessani ei ole ollut käynnissä NFS-serveriä. Sellainen löytyi Foobar-linux koneestani, joten käynnistin sen.
Ennen sitä lisäsin tiedostoon /etc/exports seuraavan rivin:
/home/box 192.168.10.0/255.255.255.0(rw,sync,no_root_squash,insecure)
(Tiedosto oli entuudestaan tyhjä.)
/home/box on PC:ssä oleva hakemisto ja linux-purkin IP sisäverkossa on 192.168.10.123. Oman PC:n IP sisäverkossa on 192.168.10.65.
Linux purkissa on hakemisto /mnt/nfs
Ajan telnetillä Linux purkissa mounttauskomennon
mount -t nfs -o nolock 192.168.10.65:/home/box /mnt/nfs
Saan virheilmoituksen:
mount: RPC: Remote system error - Connection refused
Mikäköhän voisi olla syynä tähän virheilmoitukseen?
NFS serveri käy, sillä on helposti todettavissa että sen status on "running".
Myös telnet yhteys toimii, joten periaatteessa näiden kahden laitteen välillä on yhteys.
Vastaukset 22
Vanhimmat
Muistitko käynnistää uudelleen nfs-serverin exports-tiedoston käpistelyn jälkeen?
Eikö se exports-käpistely ollut jo ennen nfs-servin käynnistystä, ainakin niin tuosta ymmärsi asian.
Kuulostaa kyllä epäilyttävältä, olet päivitellyt firman dataa purkkiin ja nyt se on kotona ja pitää saada verkkoon?
Onko sulla iptables käytössä, onko portti 2049 auki jotan nfs käyttää?
"Kuulostaa kyllä epäilyttävältä, olet päivitellyt firman dataa purkkiin ja nyt se on kotona ja pitää saada verkkoon? "
Se on oma harjoituskappale. Firmalla on satoja muita samanlaisia. Olen tehnyt siihen ennenkin softaa ja teen edelleenkin. Pitkän työmatkan takia suosin etätyötä, mutta tuo odottamaton ongelma ilmeni sen jälkeen kun toin kaikki kamat kotiin.
"Onko sulla iptables käytössä, onko portti 2049 auki jotan nfs käyttää?"
Olen antanut tällaisen komennon:
iptables -A INPUT -p udp --dport 2049 -j ACCEPT
Heräsi kysymys että data taitaa kotona ollessani kulkea palveluntarjoajan kautta.....
"Heräsi kysymys että data taitaa kotona ollessani kulkea palveluntarjoajan kautta....."
traceroute paljastaa että ei kulje.
Mitä sanoo pöytäkoneella komento rcpinfo -p? Pitäisi näkyä ainakin portmapper, nfs ja mountd.
tietenkin
rpcinfo -p localhost
ellei portmapper ole käynnissä niin komento about tähän tyyliin riippuen jakelusta
/etc/init.d/portmapper start
[root@localhost sbin]# /usr/sbin/rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 960 status
100024 1 tcp 963 status
100011 1 udp 924 rquotad
100011 2 udp 924 rquotad
100011 1 tcp 927 rquotad
100011 2 tcp 927 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 37201 nlockmgr
100021 3 udp 37201 nlockmgr
100021 4 udp 37201 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 tcp 49127 nlockmgr
100021 3 tcp 49127 nlockmgr
100021 4 tcp 49127 nlockmgr
100005 1 udp 951 mountd
100005 1 tcp 954 mountd
100005 2 udp 951 mountd
100005 2 tcp 954 mountd
100005 3 udp 951 mountd
100005 3 tcp 954 mountd
Moi.
Itsellä ainkin tulee samainen teksti mikäli nämä ei kunnossa, eli kun /etc/hosts.allow ei sisällä clienttiä.
#man hosts.allow
/etc/hosts.deny
/etc/hosts.allow
T: ?
Minulla nuo kummatkin tiedostot ovat tyhjiä. Nyt pitäisi keksiä mitä sinne kuuluu laittaa.
>...pitäisi keksiä mitä sinne kuuluu laittaa.
host.allow tiedostossa pitää olla protokolla (voi olla myös all) ja clientin ip/verkkosegmentti
Tuolta esimerkkiä
http://www.usenet-forums.com/snmp-users/293656-re-host-allow-entry-example-demon-c-libwrap-tcp_wrappers.html
etc/hosts.allow:ssa pitänee olla jotain näin:
ALL: UNKOWN: DENY
ALL: LOCAL .oma.kone.none
sendmail: ALL
portmapper: 127.0.0.0/255.255.255.0 oman.mod.ip.0/255.255.255.0
rpc.mountd: LOCAL .ip.jolla.sisää.fi oma.kone.none
sshd: LOCAL kone.jolla.sisään.fi *.joku.muu.fi oman.mod.ip.0/255.255.255.0
Nuo antamasi esimerkit eivät valaisseet paljoa tyhmää päätäni, mutta muualta löysin lisää esimerkkejä. Pitäisi osata enemmän jotta ymmärtäisi ohjeita. (Kiva kierre :) )
Jos nyt kirjoitan
showmount -e
niin saan vastaukseksi:
Export list for localhost.localdomain:
/home/box 192.168.10.0/255.255.255.0
Eikö tuo ole ihan oikein, eli että PC:ssä oleva hakemisto /home/box on jaettu siten että mm IP-osoitteesta 192.168.10.123 (= Linux purkin IP ) pitäisi päästä tähän hakemistoon?
Hosts.allwos:ssa on mm. rivit
portmap : 192.168.0.
nfsd : 192.168.0.
mountd : 192.168.0.
Onko nuo oikein? Eli ymmärsinkö lukemani? Ehkä en?
Kun menen Linux-purkkiin telnetillä ja yritän mountata, niin saan virheilmoituksen:
mount: RPC: Remote system error - No route to host.
No hemmetti - on se reitti näiden kahden koneen välillä kun kerran telnetillä pääsee. Mikä mättää?
Kokeilen tuota huomenna. Lupasin olla puolelta läheisellä ostarilla, joten nyt pitää lähteä.
Mailia ei ole, ssh ei myöskään ole käytettävissä, sen sijaan nfs protokollalla pitää päästä.
Jos serveri on 192.168.10.65 ja kone jolla sisään on 192.168.10.123
niin meneekö se näin:
ALL: UNKOWN: DENY
ALL: LOCAL 192.168.10.
portmapper: 127.0.0.0/255.255.255.0 192.168.10.0/255.255.255.0
rpc.mountd: LOCAL 192.168.10.123 192.168.10.
nfs: LOCAL 192.168.10.123 192.168.10.0/255.255.255.0
Ei ainakaan toiminut. Kun yritän mountata koneesta 192.168.10.123 koneeseen 192.168.10.65 niin tulee virheilmoitus:
mount: RCP: Remote system error - No route to host.
Miten muka reitti voi puuttua jos telnet yhteys toimii???????
Vai palomuuriko siinä sotkee?????
Aloitusrepliikissä ilmoitin että virheilmoitus olisi ollut
"mount: RCP: Remote system error - Connection refused",
mutta tuo tuli silloin kun yritin vahingossa mountata koneesta 192.168.10.123 koneeseen 192.168.10.123 .
man hosts.allow löytyy seuraavaa:
ACCESS CONTROL FILES
The access control software consults two files. The search stops at the
first match:
· Access will be granted when a (daemon,client) pair matches an
entry in the /etc/hosts.allow file.
· Otherwise, access will be denied when a (daemon,client) pair
matches an entry in the /etc/hosts.deny file.
· Otherwise, access will be granted.
A non-existing access control file is treated as if it were an empty
file. Thus, access control can be turned off by providing no access
control files.
----
Siis jos molemmat ovat tyhjiä, niin pitäisi päästä läpi. Vika on jossain muualla.
Moi.
Ihan näin varmistuksesksi tällainen jotta tiedetään johtuuko tästä ongelmasta.
1.
Luo /etc/hosts.allow
Luo /etc/hosts.deny
2.
lisää seuraava rivi /etc/hosts.allow tiedostoon.
ALL: ALL
3.
Käynnistä palvelinkone uudelleen.
4.
Yritä yhteyttä.
5.
postaa tänne kummankin koneen client ja palvelin.
rpcinfo -p
T: ?
http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=656&posting=22000000040013348
Veikkaan että syyllinen on palomuuri mutta en ole ehtinyt tutkia asiaa.
Pääsyyllinen oli iptables. Se pitää kytkeä kokonaan pois!
En näe mitään syytä pitää PC:ssä palomuuria kun sellainen on jo modeemissa ulkomaailmaa vastaan.
Merkillistä.. sulla oli kuitenkin joku portti kiinni johonkin suuntaan jonka olisi pitänyt olla auki, kyllähän se iptables liikenteen portista sallii jos sille niin määrätään?
Mutta tosiaan, mitäpä sitä rautamuurin takana iptablesilla tekee jos ei ole langattomia laitteita.
>Pääsyyllinen oli iptables.
Ihan tarkkaanottaen syyllinen taisi kuitenkin olla käyttäjä joka ei osannut tehdä oikeita sääntöjä? ;)
Jos iptablesia haluaa käyttää niin ei se ole, palomuurien tapaan, mikään on/ei-sovellus vaan täytyy säätää tilanteen mukaiseksi.
Dmesgillä katsot mitä se blokkaa ja sitten säänöt kuntoon.
"Ihan tarkkaanottaen syyllinen taisi kuitenkin olla käyttäjä joka ei osannut tehdä oikeita sääntöjä? ;) "
Juuri niin... olen aika aloittelija näissä Linux jutuissa. Ensimmäistä kertaa törmäsin koko iptables asiaan tässä yhteydessä.
Mutta nyt olen jo seuraavassa vaiheessa tätä hommaa kun pääsin tuon hankaluuden ohi. Tuli uusi hankaluus jolla kiusaan taas tietäjiä:
http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=4000000000000033&posting=22000000040052850
(Mulla on minikokoinen räätälöity c-kiellellä kirjoitettu httpd-palvelinsofta, jonka olen laittanut tuohon pikkuruiseen Linux-purkkiin. Hyvin se näyttää toimivan, joskin jostain kumman syystä se ei näy ulkoverkkoon ollessaan tuossa Linux purkissa, mutta kun se sama ohjelma on pöytäkoneessa, niin silloin se näkyy vaikka etelämantereelle asti.)