はじめに
WindowsからBrowser製プリンタHL-2365DW(以降、プリンタ)を用いた印刷をする際に、うまくいかないときがあるため、ラズパイでプリンタサーバ(cups)を建ててみました。本記事に簡単にその記録を残すことにします。
Who am i ?
しがないエンジニアです。Qiitaには主にセキュリティ系の資格について書くことが多いです。
この記事の想定読者
特になし
本題
既存の我が家のネットワークはこんな感じ(端末とプリンタ間)です。
端末(Windows、Linux、Mac)⇔Router⇔プリンタ
プリンタサーバは大体こんな感じで配置します。ちょっと文字列だけなのでわかりにくいですが、プリンタサーバを同一セグメント内に配置して、端末からの印刷はプリンターサーバが代理するようにしました。前述した通り、プリンタサーバはラズパイ上にcupsを使用して建てています。
ただし、ファームウェアのアップデートなどでメンテナンス用のLANは残しました。
プリンタサーバ経由の通信経路:
端末(Windows、Linux、Mac)⇔Router⇔プリンタサーバ⇔プリンタ
メンテナンス(ファームウェアアップデートや設定変更等)用の通信経路:
端末(Windows、Linux、Mac)⇔Router⇔プリンタ
Windows側のプリントスプーラ脆弱性修正パッチの影響なのか、Windows側からプリンタへの印刷がうまくいかないときがあります。Windows側でプリンタセットアップした直後は正常に印刷できるのですが、WindowsUpdateした後などではうまく印刷できなくなってしまいます。なおLinuxやMacからは正常に印刷できます。WindowsはWindows10とWindows11を使用しており、この記事を書いている2023年8月ではパッチについて最新の状態です。
Windowsからプリンタサーバ経由で印刷をさせるように設定してから、特に印刷できなくなるという事象は起こっていません。20年近く前の古いプリンタなどでも効果ありかもしれません。
使用したラズパイ
今回、プリンタサーバを建てるために使用したラズパイは以下になります。
やってませんが、ラズパイゼロなんかでも似たようなことができるはずです。
ラズパイの設定(cups)
OSのインストールは事前に行っていると仮定して話を進めます。
以下rootユーザで編集します。
$ sudo su -
cups入っていない可能性を考慮して、念のためインストール。
# apt update
# apt upgrade
# apt install cups
IPアドレスの固定
作業しにくいので、IPアドレスを固定します。事前に「ip a」コマンドでIPどのネットワークインターフェースにIPアドレスが紐づいているか確認しておく。
# vi /etc/dhcpcd.conf
以下を追記します。
interface XXX
static ip_address=XXX
static routers=XXX
static domain_name_servers=XXX
cupsの設定ファイルを編集します。
# vi /etc/cups/cupsd.conf
シャープ記号のコメントで記載している、直後の部分を編集する。
# Only listen for connections from the local machine.
#change Listen <ip>:631
Listen localhost:631
Listen /var/run/cups/cups.sock
# Restrict access to the server…
<Location />
Order allow,deny
#add Allow all
Allow all
</Location>
# Restrict access to the admin pages…
<Location /admin>
Order allow,deny
#add Allow all
Allow all
</Location>
再起動しておく。
# systemctl enable cups
# reboot
ウェブブラウザからcupsのサービスにアクセスし、プリンタの登録をする。
http://<IP>:631
わりと直感的に操作可能です。
上記の設定については以下のサイトを参考にさせて頂きました。
最後に
セキュリティパッチをあてることは大切ですが、パッチが原因で動作しなくなるリスクも考える必要があると思います。パッチマネジメントは難しいですね!