# Mini-gentoo kein Zugriff auf cupsd und samba [SOLVED]

## krallekit

Hallo Gemeinde,

ich mal wieder mit einem kleinen Problem.

Ich habe mir nach dem mini-gentoo wiki eine Distri auf den USB Stick gepackt. Zu der Distro gehören die busybox bash ein paar tools, also fileutils, debianutils util-linux etc. Der Server soll als Printer Server dienen, sowie ne samba share und den ftp Zugang gewährleisten. Weiterhin soll die ganze Druckgeschichte via cups laufen.

Nun habe ich das Phänomen, dass ich samba nur vom localhost also dem Server selbst gemountet bekomme. Gleiches gilt auch für das Web interface von cupsd, hier bekomme ich nur den Zugang vom localhost aus. Da es eigentlich nicht an den Configurationsdateien von samba und cups liegen kann, habe schon alles nur erdenkliche durch, glaube ich hier ein Problem irgendwo versteckt im gentoo system zu haben.

Beim ftpd server hatte ich das selbe Problem, allerdings habe ich dort nach langem stracen den Fehler gefunden. In der /etc/shells war nur die /bin/ash aktiviert. Meine Accounts nutzen aber die bash als login shell, deshalb brach die Verbindung zu pure-ftpd immer ab. Jetzt funzte  es aber. Evtl. liegt da ein ähnliches Problem bei samba und cups vor.

Mein Netzwerk läuft unter 192.168.2.*

Hier mal die configs:

smb.conf

```

[global]

workgroup = at home

server string = Samba Server %v

netbios name = mini-gentoo

printcap name = cups

printing = cups

load printers = yes

log file = /var/log/samba/log.%m

max log size= 50

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

interfaces = lo eth0

bind interfaces only = yes

hosts allow = 127.0.0.1 192.168.2.3/255

hosts deny = 0.0.0.0/0

security = share

map to guest = Bad User

guest ok = yes

#vfs object = vscan-clamav

#vscan-clamav: config-file = /etc/samba/vscan-oav.conf

[print$]

comment = Canon-PIXMA-iP4300

path = /etc/samba/printer

guest ok = yes

browseable = yes

read only = yes

write list = root

[public]

comment = Public Files

browseable = yes

read only = no

public = yes

create mode = 0766

```

und hier die cupsd.conf

```

#

# "$Id: cupsd.conf.in 5454 2006-04-23 21:46:38Z mike $"

#

#   Sample configuration file for the Common UNIX Printing System (CUPS)

#   scheduler.  See "man cupsd.conf" for a complete description of this

#   file.

#

ServerName mini-gentoo

ServerAdmin root@mini-gentoo

AccessLog /var/log/cups/access_log

ErrorLog /var/log/cups/error_log

MaxClients 10

# Log general information in error_log - change "info" to "debug" for

# troubleshooting...

LogLevel info

# Administrator user group...

SystemGroup lpadmin

# Only listen for connections from the local machine.

Listen localhost:631

Listen /var/run/cups/cups.sock

# Show shared printers on the local network.

Browsing On

BrowseOrder allow,deny

BrowseAllow @LOCAL

BrowseAddress @IF(eth0)

# Default authentication type, when authentication is required...

DefaultAuthType Basic

# Restrict access to the server...

<Location />

  Order Allow,Deny

  Deny From All

  Allow From 127.0.0.1

  Allow From 192.168.2.*

</Location>

# Restrict access to the admin pages...

<Location /admin>

  AuthType Basic

  #AuthClass System

  Encryption Required

  Order allow,deny

  Allow 192.168.2.*

  Deny From All

</Location>

# Restrict access to configuration files...

<Location /admin/conf>

  AuthType Basic

  Require user @SYSTEM

  Order allow,deny

  Allow localhost 192.168.2.*

</Location>

# Set the default printer/job policies...

<Policy default>

  # Job-related operations must be done by the owner or an adminstrator...

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>

    Require user @OWNER @SYSTEM

    Order deny,allow

  </Limit>

  # All administration operations require an adminstrator to authenticate...

  <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>

    AuthType Basic

    Require user @SYSTEM

    Order deny,allow

  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...

  <Limit Cancel-Job CUPS-Authenticate-Job>

    Require user @OWNER @SYSTEM

    Order deny,allow

  </Limit>

```

Ach misst, bitte in's Disskusionsforum verschieben!!!Last edited by krallekit on Sat Oct 27, 2007 10:14 am; edited 1 time in total

----------

## think4urs11

Moved from Deutsche Dokumentation to Deutsches Forum (German).

----------

## zworK

 *krallekit wrote:*   

> Da es eigentlich nicht an den Configurationsdateien von samba und cups liegen kann, habe schon alles nur erdenkliche durch, glaube ich hier ein Problem irgendwo versteckt im gentoo system zu haben.

 

Ich glaube da muss ich dich enttäuschen, zumindest bei CUPS   :Wink: 

CUPS lauscht nach deiner Konfiguration nur auf localhost:

```
# Only listen for connections from the local machine.

Listen localhost:631
```

Hier "localhost" durch deine Interface-IP oder 0.0.0.0 ersetzen.

Bei Samba kann ich jetzt nichts erkennen. Haste du es schon ohne folgende Optionen versucht? Würde ich mal zum testen rausnehmen.

```
interfaces = lo eth0 

bind interfaces only = yes

hosts allow = 127.0.0.1 192.168.2.3/255

hosts deny = 0.0.0.0/0
```

Ferner könntest du noch mit netstat prüfen, welche Dienste auf welchen Ports und IPs lauschen.

```
netstat -plnt
```

Edit:

Sofern netstat von busybox bereitgestellt wird (weiß ich jetzt nicht genau) und/oder du sys-apps/net-tools installiert hast.

----------

## krallekit

 *Quote:*   

> # Only listen for connections from the local machine. 
> 
>  Listen localhost:631

 

Also soweit ich die cups doku studiert habe sollte das so stimmen. Klar ich lausche ja auch auf connection's auf dem localhost. Die Zugriffskontrolle wird ja über die <Location > fields definiert.

Abgesehen davon habe ich das auch mal mit 0.0.0.0 oder der Server ip 192.168.2.15 probiert. Dann bekomme ich überhaupt keinen Zugriff mehr, auch nicht vom localhost selbst.

Wie gesagt netstat gibt für cupsd folgendes aus

```

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN

```

Und hier funzt der Zugriff auch local mit links, nur von außerhalb nicht.

Die IP's der Clients hatte ich auch schon mal in den Location field's einzeln mit "Allow From" definiert mit dem selben Ergebniss.

Bei Samba habe ich auch mal deine Zeilen ausdokumentiert, ohne Erfolg. Ich kann zwar local problemlos mounten,

aber vom netzwerk aus bekomme ich keinen Zugriff.

```

Error connecting to 127.0.0.1 (Verbindungsaufbau abgelehnt)

3874: Connection to localhost failed

SMB connection failed

```

Ich beschäftige mich ja nun mit den configs schon einige Abende, also langsam gehen mir die ideen aus. Habe ich evtl. samba und cupsd mit den falschen flags gebaut? Kann ich mir aber nicht wirklich vorstellen. Genutzt habe ich dafür das gentoo wiki für samba/cupsd.

cheers  :Wink: 

----------

## schachti

Was liefert denn ein nmap 192.168.2.15 (falls das die IP vom Server ist) von einem Client aus? Kommt ein ping durch? Läuft auf Server oder Client eine Firewall?

----------

## krallekit

 *Quote:*   

> Was liefert denn ein nmap 192.168.2.15 (falls das die IP vom Server ist) von einem Client aus? Kommt ein ping durch? Läuft auf Server oder Client eine Firewall?

 

Also nmap kann ich gerade nicht testen, da auf Arbeit.

Klaro anpingen funzt von anderen Clienten aus. Ich habe ja auch via ftp Zugriff auf den Server. Genauso wird über xinetd der telnet Daemon gesteurt, aber mehr nicht. Ich komme also auch problemlos mit telnet auf den Server. Eine Firewall ist meines wissens auf dem Server bicht aktiviert, zumindest nicht meinerseits. Wo kann man da genau schauen?

cheers  :Wink: 

----------

## schachti

 *krallekit wrote:*   

> 
> 
> Eine Firewall ist meines wissens auf dem Server bicht aktiviert, zumindest nicht meinerseits. Wo kann man da genau schauen?

 

```

iptables -t filter -L

iptables -t mangle -L

iptables -t nat -L

```

----------

## STiGMaTa_ch

In solchen Fällen hilft es sehr oft, erstmal alle Restriktionen herauszunehmen und ev. sogar das Gegenteil via Optionen zu aktivieren. Sprich: Jeder darf alles von überall und überhaupt  :Wink:  ...

Solltest du dann trotzdem noch Probleme haben mit den Diensten einen Connect zu bekommen, dann liegt es definitiv nicht an den einzelnen Diensten sondern an was anderem.

Wenn allerdings nach dem öffnen alles klappt machst du Dienst für Dienst so dicht, dass es deinen gewünschten Einschränkungen entspricht.

Lieber Gruss

STiGMaTa

----------

## krallekit

 *Quote:*   

> In solchen Fällen hilft es sehr oft, erstmal alle Restriktionen herauszunehmen und ev. sogar das Gegenteil via Optionen zu aktivieren. Sprich: Jeder darf alles von überall und überhaupt  ... 
> 
> Solltest du dann trotzdem noch Probleme haben mit den Diensten einen Connect zu bekommen, dann liegt es definitiv nicht an den einzelnen Diensten sondern an was anderem. 
> 
> Wenn allerdings nach dem öffnen alles klappt machst du Dienst für Dienst so dicht, dass es deinen gewünschten Einschränkungen entspricht

 

So ist ja auch mein Ansatz, allerdings habe ich bisher keine Dienste eingeschränkt, zumindest nicht bewusst. Ob die Firewall von Grund auf bei Gentoo aktiviert ist, keine Ahnung?

Zumindest sollten die Zugriffsbeschränkungen bei meiner Samba und cupsd config schon recht gering ausgelegt sein.

Wie gesagt, ich schaue mir das heute Abend nochmal an.

cheers  :Wink: 

----------

## zworK

 *krallekit wrote:*   

>  *Quote:*   # Only listen for connections from the local machine. 
> 
>  Listen localhost:631 
> 
> Also soweit ich die cups doku studiert habe sollte das so stimmen. Klar ich lausche ja auch auf connection's auf dem localhost. Die Zugriffskontrolle wird ja über die <Location > fields definiert.

 

Ich habe zwar nicht in die CUPS Doku geschaut, aber ich habe es generell noch nie geschafft einen Server-Dienst von außen zu erreichen der explizit an Localhost gebunden ist. Das wäre mir jetzt neu. Mit Forwarding oder einer dritten Partei wie xinetd ist es wieder was anderes.

Ich habe es jetzt einfach selbst getestet.

Allow-Regel für Location / auf all gesetzt.

Danach mit einem anderen Rechner versucht das CUPS-Webinterface zu erreichen -> kein Erfolg.

Erst nachdem ich Listen auf die Interface-IP oder 0.0.0.0 gesetzt habe bekam ich Zugriff von außen.

Andersherum, also mit Listen auf 0.0.0.0 und ohne Allow-Regel bekomme ich "403 Forbidden".

Des weiteren glaube ich noch einen Fehler in deiner Config gefunden zu haben.

```
<Location />

  Order Allow,Deny

  Deny From All

  Allow From 127.0.0.1

  Allow From 192.168.2.*

</Location>
```

Nimm mal Deny From All raus. Damit bekomme ich von extern auch nur nen 403.

 Hier meine config

```
# Log general information in error_log - change "info" to "debug" for

# troubleshooting...

LogLevel info

# Administrator user group...

SystemGroup lpadmin

# Only listen for connections from the local machine.

#Listen localhost:631

Listen 0.0.0.0:631

Listen /var/run/cups/cups.sock

# Show shared printers on the local network.

Browsing On

BrowseOrder allow,deny

BrowseAllow @LOCAL

# Default authentication type, when authentication is required...

DefaultAuthType Basic

# Restrict access to the server...

<Location />

  Order allow,deny

#  Allow localhost

  Allow all

</Location>

# Restrict access to the admin pages...

<Location /admin>

  Encryption Required

  Order allow,deny

  Allow localhost

</Location>

# Restrict access to configuration files...

<Location /admin/conf>

  AuthType Basic

  Require user @SYSTEM

  Order allow,deny

 Allow localhost

</Location>

# Set the default printer/job policies...

<Policy default>

  # Job-related operations must be done by the owner or an adminstrator...

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set

-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription

Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-J

ob CUPS-Move-Job>

    Require user @OWNER @SYSTEM

    Order deny,allow

  </Limit>

  # All administration operations require an adminstrator to authenticate...

  <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Dis

able-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Job                                                                                                   s Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-                                                                                                   Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUP                                                                                                   S-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Defaul                                                                                                   t>

    AuthType Basic

    Require user @SYSTEM

    Order deny,allow

  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...

  <Limit Cancel-Job CUPS-Authenticate-Job>

    Require user @OWNER @SYSTEM

    Order deny,allow

  </Limit>

  <Limit All>

    Order deny,allow

  </Limit>

</Policy>

```

 *krallekit wrote:*   

> Abgesehen davon habe ich das auch mal mit 0.0.0.0 oder der Server ip 192.168.2.15 probiert. Dann bekomme ich überhaupt keinen Zugriff mehr, auch nicht vom localhost selbst.
> 
> Wie gesagt netstat gibt für cupsd folgendes aus
> 
> ```
> ...

 

Du schreibst, dass du pingen kannst und FTP sowie telnet Zugang hast. Demnach scheint das Netz ja zu funktionieren. Daher tippe ich immer noch auf einen Konfigurationsfehler. Ich würde es auch wie STiGMaTa_ch machen und alle Restriktionen erstmal rausnehmen.

 *krallekit wrote:*   

> Bei Samba habe ich auch mal deine Zeilen ausdokumentiert, ohne Erfolg. Ich kann zwar local problemlos mounten,
> 
> aber vom netzwerk aus bekomme ich keinen Zugriff.
> 
> ```
> ...

 

Ist das jetzt ein mount-Versuch vom Samba-Server aus oder einem externen Rechner? Mich irritiert das: Error connecting to 127.0.0.1Last edited by zworK on Tue Oct 23, 2007 9:01 am; edited 1 time in total

----------

## STiGMaTa_ch

 *krallekit wrote:*   

> So ist ja auch mein Ansatz, allerdings habe ich bisher keine Dienste eingeschränkt, zumindest nicht bewusst.

 

Erm...

SAMBA

```
[global]

hosts allow = 127.0.0.1 192.168.2.3/255

hosts deny = 0.0.0.0/0

```

CUPS

 *Quote:*   

> # Only listen for connections from the local machine.
> 
> Listen localhost:631
> 
> Listen /var/run/cups/cups.sock
> ...

 

Das nennst du nicht eingeschränkt   :Shocked:   :Wink: 

Lieber Gruss

STiGMaTa

----------

## krallekit

 *Quote:*   

> Das nennst du nicht eingeschränkt   

 

Das sind ja meine aktuellen configs.  :Wink:  Diese Einschränkungen hatte ich schonmal alle disabled, ohne Erfolg. Ich habe wirklich schon fast alle Möglichkeiten der configs durch. Vielelciht hab ich doch was übersehen, keine Ahnung. 

So schwer sind die configs ja nicht zu verstehen, zumal auf einem anderen Gerät bei mir im Netzerk samba ja auch mit einer "ähnlichen" config läuft.

Wie auch immer, wenn's nicht funzt, dann absolviere ich ebend alles per Konsole und telnet, wie auf allen meinen embedded Geräten im Haushalt.  :Wink: 

Wird bloss ein wenig ätzend bezüglich drucken.

cheers  :Wink: 

----------

## manuels

 *krallekit wrote:*   

> So schwer sind die configs ja nicht zu verstehen, zumal auf einem anderen Gerät bei mir im Netzerk samba ja auch mit einer "ähnlichen" config läuft.

 

Trotzdem kann man da einiges falsch machen.

Was liefert denn ein

```
diff problematische-config-datei "ähnliche"-config-datei-vom-anderen-server
```

----------

## krallekit

So ich habe gestern Abend noch mal mein Glück versucht und habe es fast hinbekommen.

Das Problem bei Samba war tatsächlich die Line

```

hosts deny = 0.0.0.0/0

```

Mit der Auskommentierung und einigen persönlichen Anpassungen bezüglich der Pfade funzt Samba nun wie ich will. Ich habe mir nun eine public share und 2 Accounts für Samba mit angelegt. 

Ich hatte diese Line zwar schon in meinen unzähligen Versuchen ausdokumentiert, denke aber in diesem Fall lag der Fehler bei mir, also wie so oft beim Anwender selbst.  :Wink: 

Bei der cupsd config lag es grundlegend an der Line 

```

Listen localhost:631

```

wie zwork ja schon mal erwähnte. localhost muß in diesem Fall durch die ip meines Servers angepasst werden, heisst in meinem Fall

```

Listen 192.168.2.15:631

```

Dananch funzte zumindest schon mal der Zugriff auf das webif ohne weitere Einstellungen. Mir ist allerdings ein Rätsel warum dies gestern und die letzten Tage nicht schon funktioniert hatte. Hier schiebe ich mal den Fehler nur in sofern auf mich, dass man sich nicht zu sehr auf irgendwelche runlevels verlassen sollte.  :Wink:  Hin und wieder hat cupsd nämlich die Eigenschaft die Steuerung durch das gentoo Runscript zu verweigern, heisst es lässt sich nicht stoppen, worüber das runcscript /etc/init.d/cupsd jedoch nicht wirklich viel Auskunft gibt.  :Wink: 

Also für die Zukunft ruhig auch die killall -9 cupsd Methode nutzen, dann werden auch wirklich beim nächsten Neustart die Einstellungen übernommen.

Jetzt habe ich nur noch das lästige Problem, das im Webif die Admin Page nicht funzt, heisst ich bekomme immer die Meldung

```

426 Update required

```

zumindest was ephipany und mozilla angeht. Ich habe hier noch ne Linux Kiste mit Konquerer stehen, wo zumindest nach langem Bestätigen irgendwelcher Meldungen über fehlende Zertifzierung (konquerer machte das schon immer bei https) etc. die Admin Page erreichbar ist.

Ist wohl ein cups bug oder bekanntes Problem, soweit ich mal irgendwo gelesen habe. Dem muß ich noch auf den Grund gehen. Ich habe irgendwo im web gelesen, dass es da Probleme bei der Namensauflösung bezüglich des https links gibt. Wundert mich nur, da der Aufruf auch nicht mit konkreter ip adresse funzt. Mal schaun. 

Vielleicht sollte ich cups noch mal mit ssl Unterstützung bauen, sofern ich dass noch nicht getan habe. Ist jedoch erstaunlich dass man cups nicht auch über das normale http Protokoll über die webpage administrieren kann (die Methoden: Encrypted Never, Encrypted IfRequired und Encrypted Required, sowie die Auth Basic und Auth Digest habe ich schon probiert). 

Ich meine klar Sicherheit, aber mal ehrlich im lokalem Lan mit IP Filterung in der cupsd.config ist das meiner Ansicht nach im Falle cups nicht nötig.

cheers  :Wink: 

----------

