スポンサードリンク

2012年4月1日日曜日

MacからVNCサーバにSSH経由で安全に外部接続する方法

自宅サーバ(CentOS6)のVNCサーバにMacからSSH経由で安全に外部接続する方法。


外出先から自宅サーバにSSH経由で接続することができることが前提。
安全のためSSH2による公開鍵でSSH接続していることとする。

<手順>
1. Macでターミナルを起動する。

2.SSH接続する
※公開鍵認証で安全に接続していること

3.vncサーバの待ち受けポートを確認する。
  VNCサーバ設定で1番で指定ユーザが起動するように設定しているので
 5901となるはず。

$ps -aux | grep vnc
~ rfbport 5901 ~
  5901番で待ち受けていることを確認

4. Macのターミナルをもう一つ起動して、以下コマンドを入力してENTER
macbookpro:~ shuji$ ssh -N www.hoge.com -L 1234:www.hoge.com:5901

5. MacでCommand + Kで「サーバへ接続」を起動し
    サーバアドレス入力欄にvnc://localhost:1234と入力し、接続ボタンを押す。
 (SSHトンネリングで1234ポート経由で安全にVNCサーバへ接続できる。)

6.  VNCサーバ接続時のパスワードを入力する

7. これで無事接続できれば、ログイン画面が表示される。

以上




2012年3月31日土曜日

PC再起動後もVNCサーバに接続する為の設定

Linuxサーバは家のどこかに置いといて、日常的にMacからリモートでアクセスしたい!
そんなことを叶えてくれるのが、「VNC」サーバ・クライアントソフトだ!
(このとき、LinuxサーバがVNCサーバ、MacがVNCクライアントとなる。)

単に、CentOS6ではyumコマンドでVNCインストールするだけなので、
簡単にこの環境は構築できる。
ソフトインストールして、ファイアウォールでポート例外許可して、
毎回起動時にVNCサーバが自動起動するようにするだけなので。

だが、ちょっと細工をしないと、CentOS6再起動後は
コンソールで一度ログインしないとMac(VNCクライアント)から
VNCサーバに接続できなくなる。

そこでその設定・環境構築の備忘録。

1.rootになる
$su -

2.VNCのインストール
#yum list installed | grep vnc

3.VNCがインストールされていない場合
#yum -y install vnc vnc-server

4. /etc/sysconfig/vncserversを編集する
#vi /etc/sysconfig/vncservers

#以下を追記する
VNCSERVERS="1:ユーザ"
VNCSERVERARGS[1]="-geometry 1680x1050 -nolisten tcp"

5.4で指定したユーザのVNCパスワードを作成する
#su - "ユーザ"
$vncpasswd /etc/passwd_vnc
Passwd:
Veryfy:

6.5で作成したパスワードのアクセス権限を変更する
#chmod 644 /etc/passwd_vnc

7. /home/ユーザ/.vnc/xstartupを編集する
#vi /home/ユーザ/.vnc/xstartup

以下の部分をコメントアウトする
xterm -geometry ....
twm &

#xterm -geometry
#twm &
gnome-session &

8.vncサーバを再起動する
#/etc/rc.d/init.d/vncserver restart

9.vncサーバをOS起動時に自動起動させる
#chkconfig vncserver on


でも、Macから接続するときだけVNCサーバを起動させたい
そういうときは、「xinetd」をインストール+稼働させなければいけない。

10. xinetdをインストールする
#yum -y install xinetd

11./etc/servicesを編集する
#vi /etc/services

元々以下で設定されているものを変更する
[変更前]
vnc-server 5900/tcp
vnc-server 5900/udp

[変更後]
vnc 5900/tcp
vnc 5900/udp

12./etc/xinetd.d/下に11で名称変更したvncに合わせて起動ファイルを作成する
#vi /etc/xinetd.d/vnc

service vnc
{
    disable = no
    socket_type = stream
    wait = no
    user = nobody
    server = /usr/bin/Xvnc
    server_args = -inetd -query 192.168.1.20 -once -geometry 1650x1050 -depth 24 --PasswordFile=/etc/passwd_vnc
   log_on_failure += USERID
}

13. Mac(VNCクライアント)からグラフィカルログインできるようにXDMCPを許可する設定を追加。
#vi /etc/gdm/custom.conf

[xdmcp]
Enable=true

14. xinetdを再起動する
#/etc/rc.d/init.d/xinetd restart

15.OS再起動時に自動起動するようにする
#chkconfig xinetd on



2012年2月22日水曜日

ホームページのアイコン


ホームページにアイコンが表示されいてるサイトがほとんどなので、
自分のホームページにもアイコンを表示してみようと思う。
その備忘録。



HTMLに以下を記載することでよいようだ。

<HEAD>
<LINK rel="ICON" href="AAAA.ico">
</HEAD>

AAAAは実際に表示したアイコンファイル名称。

以上

2012年2月21日火曜日

ホスト名変更方法

ドメインを取得した!
websaba.comというドメイン名。
特に意味はないけど、サーバーを意識して鯖(saba)としてみた。

■まず端末パソコンのホスト名を書き換える
1.パソコンのホスト名をwebsaba.comにする。
(コマンド)
$su -
#hostname websaba.com
これで、/etc/sysconfig/networkファイルのHOSTNAMEがwebsaba.comに書き換わる

2./etc/hostsファイルを書き換える
(コマンド)
#vi /etc/hosts
<変更前>
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
<変更後>
127.0.0.1 websaba.com localhost
::1 websaba6.com6 localhost6

3.networkサービスを再起動する
(コマンド)
#service network restart

4.ターミナルを終了して、再度開く
[user名@websaba ~]となっていることでホスト名変わっていることが分かる

■Webサーバアドレスをwww.websaba.comにする
1.apche(httpd)の設定ファイルを開く
(コマンド)
#vi /etc/httpd/conf/httpd

ServerName www.websaba.com:80
に書き換える

2.apache(httpd)再起動
#service httpd restart


■ドメイン取得先のネームサーバに登録
MyDNSさまのDNSをプライマリ・セカンダリ登録する。
MyDNSさまのドメイン登録に以下として設定する

FQDN : websaba.com
MX : www
MX : websaba.com

以上

2012年2月20日月曜日

サイトアクセス制限2

よく会員限定サービスにアクセスするときに
表示される認証画面を自分のサイトにも導入したい。

1. Apacheサーバの設定でBASIC認証システムを使う方法
2. PHPでBASIC認証手順を記述する方法

2つ方法があることが分かったので、
次は、2.PHPのソースから行う方法を試してみよう。

以下に手順を備忘録。

<手順概要>
1. PHPソースを用意する

<詳細手順>
1. 以下ソースを記述したファイルを/var/www/html以下に用意する

---PHPソース ファイル名をbasicauthtest.phpとする ---
<?php
if ( !isset($_SERVER["PHP_AUTH_USER"])
  || !($_SERVER["PHP_AUTH_USER"] == "guest"
  && $_SERVER["PHP_AUTH_PW"] == "passwords") )
{
    header("WWW-Authenticate: Basic realm=\"Welcome My Site\"");
    header("HTTP/1.0 401 Unauthorized");
    echo "ユーザまたはパスワードが不正です。\n";
    echo "サイトアクセスしたい場合は、こちらへ連絡ください。\n";
    echo "mailto : \n";
    echo "sayadorisamurai@gmail.com\n";
    exit;
}

header("Location: http://www.sayadorisamurai.websaba.com/");

?>
---ここまで

<動作確認>
1.ブラウザからbasicauthtest.phpにアクセスしてみる
http://localhost/basicauthtest.php

2.ユーザ名・パスワードを入力する画面が表示されたら成功!

以上