はじめに
以前書いた記事で、リモートのXサーバにウィンドウを飛ばす方法を紹介しました。
(http://qiita.com/kkk627/items/8db34266722488eae412)
この記事では、デフォルトでは開いていない6000番ポートを、Xサーバを起動し直すことによって開ける方法を紹介しました。
今回は、前回の記事では紹介しなかった「X Window System用の6000番ポートが開いた状態をデフォルトにする」ための方法を紹介します。
(**今回紹介する方法はCentOS7でGNOMEを利用している場合の設定です。**他のディストリビューションやKDEを利用している場合は、設定方法が異なります。)
あまりおすすめはしませんが、Xの通信をよく使うというのであれば、ポートを開きっぱなしにすると手間が省けて楽です。
・注意点
前回の記事にも書きましたが、6000番ポートが開いていない状態がデフォルトになのはセキュリティ上の理由からです。
6000番ポートが開きっぱなしになっていると、外部からディスプレイを操作されたり、スクリーンショットを撮られたりする危険があります。これを防ぐために、デフォルトでは6000番ポートを閉じているのです。
**敢えて6000番ポートを開きっぱなしするというのは、セキュリティ上のリスクが非常に高まりますので、以下の設定を行った際にはくれぐれも注意してください。**家庭内LAN等の安全なネットワーク内での利用をおすすめします。(何かしらのトラブルが起こっても、当記事の筆者は責任を負いかねます)
設定の手順
1. /etc/gdm/custom.confを書き換える
/etc/gdm/custom.confはgdm (GNOME Display Manager) の設定ファイルです。このファイルの中身は、デフォルトだと以下のようになっています。
# GDM configuration storage
[daemon]
[security]
[xdmcp]
[greeter]
[chooser]
[debug]
このファイルを、次のように書き換えます。
# GDM configuration storage
[daemon]
[security]
DisallowTCP=false
[xdmcp]
[greeter]
[chooser]
[debug]
DisallowTCPをfalseに設定することで、Xサーバが起動する時の--nolisten tcpオプションが無効になります。
2. ファイアウォールの設定をする
ファイアウォールの設定を変えてポートを開けるのも忘れずに。
$ sudo firewall-cmd --add-port=6000/tcp --permanent
$ sudo firewall-cmd --reload
注意
利用するディスプレイ番号が0以外の場合は、(6000+ディスプレイ番号)番のポートが使われますので、適切な方を開いてください。('echo $DISPLAY'のコマンドで確認できます)
例えば、ディスプレイ番号が2なら開けるべきポートは6002番です。
3. PCを再起動する
/etc/gdm/custom.confの内容は再起動しないと反映されません。
4. xhostの設定をする
Xのアクセス制御を行うxhostの設定も必要です。以下のどちらかのコマンドでxhostの設定を変更します。
(xhostの設定は再起動するとリセットされるので、起動時には毎回必要です)
$ xhost +(IPアドレス or ホスト名) # 指定したホストからのXの通信を許可する
$ xhost + # アクセス制御をすべて無効にする
5. 動作確認
設定がうまくいっているかチェックします。以下のコマンドによって、xeyesがちゃんと表示されれば成功です。
$ xeyes -display (設定したPCのIPアドレス or ホスト名):0
netstatでポートが開いているかを確認する方法もあります。
$ netstat -anp | grep 6000
おわりに
繰り返しますが、セキュリティ的にリスクの高い方法ですので、利用する場合は注意してくださいね。