/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Linux som printserver?
Fra : Martin Bech


Dato : 29-04-03 19:09

Hej,

På mit netværk modtager jeg printjobs til en HP JetDirect printserver på
port 9100 (RAW). På denne printserver sidder en printer forbundet med et
parallelkabel.

Nu vil gerne have disse jobs sendt videre til en LPD-kø på netværket
(port 515). Hvis jeg lader en linux-server overtage HP-printserverens
IP-nummer, kan jeg så få linux-serveren til til at lytte på på 9100 og
sende printjobbet videre til LPD-køen et andet sted? Altså få serveren
til at være en bro mellem RAW- og LPD-køer.

--
Med venlig hilsen / Greetings from

Martin Bech
http://www.MartinBech.dk Mail: Remove XYZ from mail address.

 
 
Kent Friis (29-04-2003)
Kommentar
Fra : Kent Friis


Dato : 29-04-03 19:32

Den Tue, 29 Apr 2003 20:09:09 +0200 skrev Martin Bech:
>Hej,
>
>På mit netværk modtager jeg printjobs til en HP JetDirect printserver på
>port 9100 (RAW). På denne printserver sidder en printer forbundet med et
>parallelkabel.
>
>Nu vil gerne have disse jobs sendt videre til en LPD-kø på netværket
>(port 515). Hvis jeg lader en linux-server overtage HP-printserverens
>IP-nummer, kan jeg så få linux-serveren til til at lytte på på 9100 og
>sende printjobbet videre til LPD-køen et andet sted? Altså få serveren
>til at være en bro mellem RAW- og LPD-køer.

Port 9100 bruger ikke nogen protokol udover TCP, alt bliver bare dumpet
direkte til printeren. Så du skal egentlig bare have noget til at lytte
på porten, og sende alt hvad den modtager som printjobs.

Hvis man er lidt kreativ, forsøger man følgende, jeg har IKKE testet
det, men jeg kan ikke umiddelbart se noget der forhindrer det i at
virke.

inetd kan lytte på en port, og starte en program med stdin tilsluttet
TCP-forbindelsen.

lpr læser - hvis intet filnavn er angivet - printjobbet fra stdin.

Er man lidt kreativ, forsøger man derfor at tilføje flg. i
/etc/inetd.conf:
9100 stream tcp nowait root /usr/sbin/tcpd /usr/bin/lpr

Man kan lige så godt bruge root, for lpr er alligevel setuid root.

En smule sikkerhed opnås ved at køre igennem tcpd, og sætte fornuftige
begrænsninger i hosts.allow og hosts.deny

- og som sagt, utestet og uden garanti for at det virker. Det er de
mest underlige ting der kan få det til at fejle når man propper ting
i inetd.conf som ikke er beregnet til det.

Mvh
Kent
--
unsigned long main = 0xC8C70FF0;

Martin Bech (29-04-2003)
Kommentar
Fra : Martin Bech


Dato : 29-04-03 23:07

In article <b8mgeb$9nc$2@sunsite.dk>, leeloo@phreaker.net (Kent Friis)
wrote:

> inetd kan lytte på en port, og starte en program med stdin tilsluttet
> TCP-forbindelsen.
>
> lpr læser - hvis intet filnavn er angivet - printjobbet fra stdin.
>
> Er man lidt kreativ, forsøger man derfor at tilføje flg. i
> /etc/inetd.conf:
> 9100 stream tcp nowait root /usr/sbin/tcpd /usr/bin/lpr

Interessant bidrag der giver mig håb. Takker.

Findes der en kommando a la tcpdumps, som smider alt data til en port
ud? Jeg tænker på et eller andet som dette (jeg ved godt at det ikke er
headerne jeg skal have ud):

tcpdump dst port 9100 | lpr -Pkø

Men ellers vil jeg eksperimentere ud fra dit forslag, Kent.
--
Med venlig hilsen / Greetings from

Martin Bech
http://www.MartinBech.dk Mail: Remove XYZ from mail address.

Kent Friis (30-04-2003)
Kommentar
Fra : Kent Friis


Dato : 30-04-03 17:31

Den Wed, 30 Apr 2003 00:06:37 +0200 skrev Martin Bech:
>In article <b8mgeb$9nc$2@sunsite.dk>, leeloo@phreaker.net (Kent Friis)
>wrote:
>
>> inetd kan lytte på en port, og starte en program med stdin tilsluttet
>> TCP-forbindelsen.
>>
>> lpr læser - hvis intet filnavn er angivet - printjobbet fra stdin.
>>
>> Er man lidt kreativ, forsøger man derfor at tilføje flg. i
>> /etc/inetd.conf:
>> 9100 stream tcp nowait root /usr/sbin/tcpd /usr/bin/lpr
>
>Interessant bidrag der giver mig håb. Takker.
>
>Findes der en kommando a la tcpdumps, som smider alt data til en port
>ud? Jeg tænker på et eller andet som dette (jeg ved godt at det ikke er
>headerne jeg skal have ud):
>
>tcpdump dst port 9100 | lpr -Pkø

Det løsning vil ikke virke, da lpr først leverer dokumentet videre til
printeren når den møder EOF, altså når "tcpdump" afslutter.

Bortset fra det, kan netcat lytte på en port.

Mvh
Kent
--
Which one is faster - Lotus Notes or Lotus Esprit?

RR (04-05-2003)
Kommentar
Fra : RR


Dato : 04-05-03 09:35

Hejsa

Det kan du sagtens.

Du kører bare kommandoen printtool og så tror jeg at den fortæller dig
resten af vejen :)



On Tue, 29 Apr 2003 20:09:09 +0200, Martin Bech <bechX@iY.amZ> wrote:

>Hej,
>
>På mit netværk modtager jeg printjobs til en HP JetDirect printserver på
>port 9100 (RAW). På denne printserver sidder en printer forbundet med et
>parallelkabel.
>
>Nu vil gerne have disse jobs sendt videre til en LPD-kø på netværket
>(port 515). Hvis jeg lader en linux-server overtage HP-printserverens
>IP-nummer, kan jeg så få linux-serveren til til at lytte på på 9100 og
>sende printjobbet videre til LPD-køen et andet sted? Altså få serveren
>til at være en bro mellem RAW- og LPD-køer.


Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste