D&I Blog

このブログでは、今までに培ってきた技術的なことや、得意としている地図のことなどについて、幅広く取り扱っていこうと考えています。積極的に新しいことにチャレンジしたいメンバーもいるので、そのようなトピックも扱っていきたいと思います。

D&I BLOG

To mind the creative destruction

外部端末からPostgreSQLに接続する方法

はじめに

GISでよく利用するShapeデータを、VM上のLinuxサーバに構築していたPostgreSQLへ格納していたのですが、データ確認を行う必要があった為、クライアントPCからQGISを用いて接続を試みたのですが、デフォルト設定では接続できませんでした。

f:id:d-and-i:20170403212125p:plain

接続できなかった理由

調べてみると、デフォルトでは

  1. 外部からのアドレス(ホスト名)、ポートがListenされていない。
  2. 接続する際の認証方式が、外部からの設定は行われていない。

ことが原因でした。

「1.」については、 postgresql.conf を修正することで、「2.」については、 pg_hba.conf を設定することで解決できるようになります。

実際の設定例

設定ファイルを修正

listen_addresses = '*'    # '*'を指定することで全てのアドレスから許可できるようになります。
                          # 他にIPアドレスの指定も行うことができます。
port = 5432               # 外部から接続を許可するためのポート番号を指定します。
  • /var/lib/pgsql/9.4/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
# ADDRESS -> all を指定することで、全てのアドレスを接続許可
# METHOD -> trust をしているすことで無条件で接続許可
host    all             all             all                     trust

PostgreSQLの再起動

$ sudo service postgresql-9.4 restart

最後に

今回紹介した方法は、開発環境下においての利用を想定していたので、セキュリティ面などは考慮に入れていません。実際の利用においては、用途に応じて、セキュリティを考慮に入れてくださいね。

yumのProxy設定

はじめに

先日、とある場所でサーバ設定作業(OSはCentOS6.8)を行なっていた時に、なにやら yum コマンドが正しく動かないことがありました。

少し調べてみると、設定作業をしていた環境はインターネツトに接続する際に、Proxyサーバを経由していることがわかりました。

しかしサーバ自体には、プロキシサーバへの接続設定はしてあるので、問題ないはずなのに・・・・

もしかして、

yumを使う上での設定ファイルがどこかにあって、その設定ファイルにProxyの設定を書く必要があるんじゃないか?」

ということが、頭をよぎりました。 で、調べて見たら ビンゴ

やはり、yumの設定ファイルにproxyの設定を書く必要がありました。

前置きが少々長くなりましたが、今回はyumを使う上でのProxy設定方法を紹介します。

yumのProxy設定方法

  • ターゲットOS:CentOS 6.8
  • 設定対象ファイル: /etc/yum.conf

設定方法

〜 省略 〜

proxy=[proxyへのアドレス]
proxy_username=[proxyのユーザ名]   # 必要無い場合は本設定は書かなくても良い
proxy_password=[proxyのパスワード] # 必要無い場合は本設定は書かなくても良い

〜 省略 〜

さいごに

ちょっとした知識の紹介でしたが、これを読んで頂いた方のお役に立てたら幸いです。

CentOS7でのサービス起動・停止方法

はじめに

CentOS6以前においては、httpdなどのサービスの操作などを行うコマンドとして、 /etc/init.d/httpd start/etc/init.d/httpd stop を使用していましたが、CentOS7以降はこれらのコマンドが systemctl コマンドを使用するように変更になっていたようでした。

本記事では、CentOS7以降で使用する systemctl コマンドの使い方について整理しました。

systemctlの基本的な使用方法

基本的な使用方法は、以下に示すように意外と簡単です。

  • サービスの開始

    $ systemctl start サービス名.service

  • サービスの停止

    $ systemctl stop サービス名.service

  • サービスの再起動

    $ systemctl restart サービス名.service

  • サービスの状態確認

    $ systemctl status サービス名.service

  • サービスの自動起動設定解除

    $ systemctl enable サービス名.service

  • サービスの自動起動設定解除

    $ systemctl disable サービス名.service

  • サービスの自動起動設定確認

    $ systemctl list-unit-files

なお、各コマンドの一番後ろにつけてある .service については、つけなくてもコマンドとしては正しく動作するようです。

さいごに

サービス操作については、そう頻繁に行うものではありませんが、いざ操作したいという時には、コマンドの早見表があれば便利だなと感じましたので、本ブログの記事にさせて頂きました。

このブログを読んでいただいた方に対して、少しでも役に立てたら幸いと思います。

macOSのSSHポート変更

はじめに

macOS(Sierra)でのSSHポートの変更方法について紹介します。

SSHポートの変更手順概要

  • リモートログイン機能を無効にする。
  • /etc/services ファイルの内容を編集する。
  • リモートログイン機能を有効にする。

リモートログイン機能を有効にする。

「システム環境設定」->「共有」->「リモートログイン」にチェックを外します。 f:id:d-and-i:20161216223123p:plain

/etc/services ファイルの内容を編集する。

最初に、/etc/servicesを変更する前に、念の為バックアップをとっておきます。

$ sudo cp -p /etc/services /etc/services_V001

つぎに、SSHで使用するポート番号を以下の様に変更します。

<変更前>

ssh         22/udp     # SSH Remote Login Protocol
ssh         22/tcp     # SSH Remote Login Protocol

<変更後>

ssh         60000/udp     # SSH Remote Login Protocol
ssh    [f:id:d-and-i:20161216223123p:plain]     60000/tcp     # SSH Remote Login Protocol

リモートログイン機能を有効にする。

「システム環境設定」->「共有」->「リモートログイン」にチェックを入れます。 f:id:d-and-i:20161216221158p:plain

さいごに

macOSでは、意外と簡単にSSHのポート番号を変更することができるんです。

macOSでのSSH接続パスワード認証の無効化

はじめに

macOS(Sierra)へSSHで接続するにあたり、公開鍵認証を用いるため、パスワード認証を無効化した際の手順を紹介します。

SSHパスワード認証無効化設定概要

  • リモートログイン機能を無効にする。
  • /etc/ssh/sshd_configファイルの内容を編集する。
  • リモートログイン機能を有効にする。

リモートログイン機能を有効にする。

「システム環境設定」->「共有」->「リモートログイン」にチェックを外します。 f:id:d-and-i:20161216223123p:plain

/etc/ssh/sshd_configファイルの内容を編集する。

最初に、/etc/ssh/sshd_configを変更する前に、念の為バックアップをとっておきます。

$ sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_V001

つぎに、パスワード認証を無効化するために以下の様に変更します。

<変更前>

#PasswordAuthentication yes
#ChallengeResponseAuthentication yes

<変更後>

PasswordAuthentication no
ChallengeResponseAuthentication no

リモートログイン機能を有効にする。

「システム環境設定」->「共有」->「リモートログイン」にチェックを入れます。 f:id:d-and-i:20161216221158p:plain

さいごに

今回は、シンプルにパスワード認証を無効化するための設定について紹介しましたが、/etc/ssh/sshd_configファイルには様々な設定項目がありますので、セキュリティに注意しながら他の項目の役割も把握しておきたいですね。

QGISでGoogleMapを表示してみる

以前、QGIS地理院タイルを表示してみました。今回は、私たちの生活に馴染みのある Google Map を表示してみたいと思います。

用意するもの

  • QGIS ※本ブログではMac版のQGISを利用しています。
  • インターネット環境

具体的な作業

OpenLayers Plugin をインストールします。

  1. QGIS を起動します。
  2. プラグイン」->「プラグインの管理とインストール」を選択します。
  3. 検索ボックスより「openlayers」と入力することで、「OpenLayers Plugin」がリスト上に現れますので、それを選択し「プラグインをインストール」ボタンを押します。 f:id:d-and-i:20161003223831p:plain

Google Mapを表示します。

  1. 「Web」->「OpenLayers Plugin」-> 「Google Maps」 -> 「Google Streets」を選択します

すると、あっという間にQGIS上に Google Maps が表示することができました。 f:id:d-and-i:20161003225243p:plain

最後に

プラグインを用いることで、 Google Maps の他にも OpenStreetMapBing Map などを表示することもできるようでした。

背景の地図を作るのが面倒な場合は、手っ取り早く Google Maps を利用するのも良いかもしれませんね。

Basic認証の設定方法

はじめに

WebサイトにBasic認証を設定する際、 .htaccess.htpasswd を1セットとして作成していたのですが、毎回「 .htaccess.htpasswdをどうやって作成していたんだっけ?」ということが頻繁に起きていたので、簡単に設定方法をまとめておきたいと思います。

.htaccess の作成方法

.htaccessを作成するのは実に簡単で、以下の書式に従い作成するだけで良いです。

本記事は、あくまでシンプルな設定方法の場合です。
「特定のIPアドレスから接続可能にする」と言ったような凝った設定にする時は、ここに示されているような、マニュアルを読んで見ると良いでしょう。

AuthUserFile /virtual/ドメイン(IPアドレス)/[.htpasswdが配置されているディレクトリ]/.htpasswd
AuthName "Input ID and Password."
AuthType Basic
require valid-user
AddType text/cache-manifest .appcache

ファイルパーミッション0644 としておきましょう。

$ chmod 0644 .htaccess

.htpasswd の作成方法

.htpasswdファイルは、以下のコマンドを用いて作成します。

$  htpasswd -c -b .htpasswd username password  

// .htpasswd : パスワードファイル
// username : Basic認証で使用したいユーザ名
// password : Basic認証で使用したいパスワード

ファイルパーミッション0644 としておきましょう。

$ chmod 0644 .htpasswd

仕上げに

生成できた .htaccess.htpasswd を、Basic認証をかけたいサイトに配置しましょう。

うまくいくと、以下のような認証画面が表示され、ユーザ名とパスワードを入力することで、そのサイトを閲覧できるようになります。 f:id:d-and-i:20160925213703p:plain