2019年8月31日土曜日

Debian10のPCのルータ化

目的


Debian10 (Buster) をインストールしたPCをルータにします。

インターネット側のネットワークインターフェイスenxと、内部ネットワーク側のネットワークインターフェイスeniがあるとして説明します。

[内部PC1]┬(eni)[ルータ化するPC](enx)─[インターネット]
[内部PC2]┘
なお、試行錯誤したあとにまとめているため、記載通りでは動かない可能性があります。

おおまかな手順


おおまかな作業手順は次のとおりです。
  • IPアドレスの固定
  • isc-dhcp-server (DHCPサーバ)のインストールと設定
  • nftables (NAT用)のインストールと設定
  • bind9 (DNSサーバ)のインストールと設定
以下の作業ではすべてルートで行うか、sudoで実行してください。

IPアドレスの固定


Debian10ではNetworkManagerがデフォルトで動作しています。そのため、nmcliを使って、eniのIPアドレスの固定します。 残念なことにGUIを使った設定では、いずれか1つのネットワークインターフェイスしか有効にできないようです。

nmcliの解説はhttps://go-journey.club/archives/4124が参考になります。

有線LANの場合、作業の開始前にLANケーブルを接続しておくことをお薦めします。 接続がないとSTATEに利用不可と表示され、設定した結果を確認できなくなります。

最初に、ネットワークインターフェイスをNetworkManagerから見えるようにします。

$ nmcli connection add type ethernet ifname eni con-name eni
次に、eniのIPアドレスを指定します。
$ nmcli connection modify eni ipv4.method manual ipv4.addresses 10.0.0.1/27
しばらくすると、IPアドレスが固定され、ネットワーク接続が完了します。

ネットワークの状態は

$ nmcli device
で確認できます。

DHCPサーバの設定


isc-dhcp-serverをインストールします。
$ apt install isc-dhcp-server
isc-dhcl-serverの設定ファイルは /etc/dhcp/dhcpd.conf にあります。

そこに次の内容を追記します。

subnet 10.0.0.0 netmask 255.255.255.224 {
  range 10.0.0.10 10.0.0.20;
  option routers 10.0.0.1;
  option domain-name-servers 10.0.0.1;
}
IPアドレスは適宜変更してください。この設定で配布されるIPアドレスは、10.0.0.10〜10.0.0.20の範囲です。

最後に、DHCPサービスを再起動します。

$ systemctl restart isc-dhcp-server
これで内部PCにIPアドレスが配布されます。

NATの設定


ルータとして動作するようにするために、まず、 /etc/sysctl.conf に
  net.ipv4.ip_forward=1
を追記します。コメントアウトされた状態で記載されているので、コメントを外すだけです。

この設定を次のコマンドを実行することで有効にします。

$ sysctl --system
有効になっているかは
$ cat /proc/sys/net/ipv4/ip_forward
で確認できます。出力が1になっていれば、OKです。

次に、NATを有効にします。NATはファイアウォールの機能の一部ですので、Debian10から標準となったnftablesを用います。

$ apt install nftables
でインストールし、/etc/nftables.conf に次の内容を追加します。
table ip nat {
  chain prerouting {
    type nat hook prerouting priority 0;
  }
  chain postrouting {
    type nat hook postrouting priority 100;
    oifname "enx" masquerade
  }
}
追記できればサービスを有効化し、実行します。
$ systemctl enable nftables.service
$ systemctl restart nftables
クライアントから8.8.8.8にpingが通るようになっていれば成功です。

DNSサーバの設定


BIND9をインストールするだけです。
$ apt install bind9
https://www.clear-code.com/blog/2010/11/19.htmlが参考になります。

もし、クライアントのブラウザからドメイン名を使ったアクセスができない場合は、

$ systemctl restart isc-dhcp-server
で、DHCPサービスを再起動してみてください。

以上で、ルータが完成です。セキュリティー関連の設定は別途実施してください。

2019年8月25日日曜日

Debian10でのデスクトップ環境の変更

Debian10は、インストール時にデスクトップ環境を複数インストールすることができます。

例えば、GNOMEとCinnamonの2つをインストールすると、ログイン時にどちらの環境でログインするかを選択することができます。 この2つをインストールしておくと、デフォルトではGNOMEが選択されるようになっています。

デスクトップ環境をGNOMEからCinnamonに変更するには、ログイン画面のパスワード欄の下にある、小さいギアのアイコンのボタンを押します。 すると、選択できるデスクトップ環境の一覧が表示されるので、使いたい環境を選択します。

その後、ログインすると、選択した環境で作業できるようになります。

ボタンの場所は記事の図を参考にしてください。
https://computingforgeeks.com/how-to-install-cinnamon-desktop-en\ vironment-on-debian/
具体的には、 install-cinnamon-deb10-03.pngです。

Debian10でWacomタブレットを使う

現象


Debian10を標準でインストールし、Wacomのタブレット(CTH-480)をつなげ、ペンで操作していると、マウスカーソルが頻繁に消失します。 また、タブレット操作とペン操作のそれぞれに対してマウスカーソルが表示されるという症状も出ていました。

原因


Waylandがタブレットを正しく処理できていないことが原因のようです。

解決策


/etc/gdm3/daemon.conf でコメントアウトされている次の行のコメントを外して有効にします。
WaylandEnable=false
その後、再起動すると、Waylandの代わりに従来のXが使われるようになります。

Xは正しくペンタブレットを処理できるようで、マウスカーソルが消えたり2つになったりする現象はなくなりました。

WaylandをOFFにする方法は、
https://linuxfan.info/ubuntu-gdm-wayland-false
を参考にしました。