お知らせ

  • パソコン関連

VeertuのCentOS7でhttpサーバーを設定

noimage

VeertuのCentOS7でhttpサーバーを設定

前回紹介したMacOS用の仮想化ソフトウェアVeertuですがこれでWebサーバーを設定し、Macから繋いでみました。 仮想マシンイメージはVeertuが用意しているCentOS 7 minimalのイメージを使います。 まず仮想マシンイメージをダウンロードし、起動します。 CentOS7のインストーラーを立ち上げると、日本語を選択し、インストール先のボリュームを指定、ネットワークがデフォルトで使用しない設定になっているので、使用するように変更しインストールを開始します。 インストール開始後にrootパスワードと管理者のユーザーを設定しておきましょう。 仮想マシンが再起動し、ログインを求められればユーザーでログインします。 まず最初に全てのモジュールを sudo yum update で全てアップデートします。 minimalインストールなのでApacheがインストールされていません。 sudo yum install httpd でインストールを行います。 仮想マシンのIPアドレスを確認するためにifconfigを行いますが、Cent OS 7ではifconfigはデフォルトでインストールされていないため sudo yum install net-tools の取得を行いました。 ローカルでhttpの確認のために sudo yum instal wget でwgetを取得します。 vi /etc/httpd/conf/httpd.conf でApacheの設定ファイル内ServerNameのコメントアウトを外し、 sudo systemctl start httpd.service でApacheを起動します。Cent OS 6ではService httpd startを使っていましたので、Cent OS 7に合わせた記述をしています。 sudo systemctl enable httpd.service を行って起動時にスタートするように設定します。Cent OS 6ではchkconfigに当たる記述です。 sudo vi /var/www/html/index.html で簡単なテキストを作成、記述しセーブします。 wget http://localhost でindex.htmlがダウンロードされます。 ホストのMacからの接続のためには80番ポートを解放します。 Cent OS 7ではiptablesの代わりにfirewalldが利用されているので、これに合わせた記述をしてポート解放してみます。 sudo firewall-cmd --add-service=http --zone=public --permanent これでポートが解放されたので、ifconfigで表示されたローカルIPアドレスをホストのMacのブラウザで開きます。 index.htmlで記述したテキストが表示されれば完了です。 sshは最初から使えましたので、Macのターミナルからsshをすると簡単なように思います。 /var/www/htmlの所有権をユーザーにしておけばTransmitなどSFTPクラインアントからファイル転送をして、仮想マシン上でのWEBの作成などが可能になります。

  • シスキュー技術部

amavisd-newの問題解決

noimage

amavisd-newの問題解決

spamassassinの日次アップデートスクリプトがエラーを送ってくるようになったので、その原因を調査して解決しました。 spamassassinは迷惑メール定義ファイルを持ち、迷惑メールをサーバー側で削除してくれるプログラムです。 sa-update.cronを日次処理で実行させると、cronがエラーのメールを送ってきます。 タイトルは /usr/share/spamassassin/sa-update.cron 2>&1 | tee -a /var/log/sa-update.log 内容は The amavisd daemon is apparently not running, no PID file /var/run/amavisd/amavisd.pid という風になっています。 amavisdはamavisd-newというサーバー側のウィルスメールスキャナーで、spamassassinと連動して動作しています。 このエラーメッセージを見ると、amavisdが起動していないのかな?と考えます。 サーバーにログインして、 [bash] service amavisd status [/bash] としてみて、停止しているかどうかを確認してみます。 結果は amavisd (pid xxxxx xxxxx xxxx) is running... となって、プロセスは動作しているようです。 では再起動させようとして、 [bash] service amavisd restart [/bash] としてみると、 amavisd を停止中: The amavisd daemon is apparently not running, no PID file /var/run/amavisd/amavisd.pid amavisd を起動中: [  OK  ] 同じエラーが出ます。 [bash] ls /var/run/amavisd/ [/bash] してもamavisd.pidが確かにありません。 設定ファイル /etc/amavisd/amavisd.conf には $pid_file = “/var/run/amavisd/amavisd.pid”; とあります。 この辺を検索してみると、 $pid_file = “$MYHOME/var/amavisd.pid” という記述もあるので、もしかしたら、と/var/spool/amavisd/var/を確かめるとamavisd.pidはありました。 DaemonをStopするのにも、別のところのpidファイルを探しに行っていたようなので、一度Service amavisd statusで表示されたプロセスをkillしてみます。 そして再度起動、さらに再起動してみます。 [bash] service amavisd restart [/bash] amavisd を停止中: [  OK  ] amavisd を起動中: [  OK  ] というわけで、うまくいきました。 [bash] ls /var/run/amavisd/ [/bash] すると amavisd.pid があることが確認できます。

  • シスキュー技術部

CentOSにMailmanのインストール

noimage

CentOSにMailmanのインストール

メーリングリストサーバーをVPSに構築した際のメモです。 オープンソースのメーリングリストサーバーMailmanを利用します。 ApacheとPostfixが稼働している状態から開始します。 yumでインストールできるパッケージがMailmanの2.1.13でしたので、 http://docs.python.jp/contrib/mailman/releases.html こちらから最新版を取得します。 こちらでダウンロードできるバージョンは細かい日本語向けカスタマイズが施されています。 [bash] yum -y install python-devel [/bash] pythonのインストールを行います。 [bash] groupadd mailman useradd -c "GNU Mailman" -s /sbin/nologin -M -g mailman mailman mkdir /usr/local/mailman chown mailman. /usr/local/mailman chmod a+rx,g+ws /usr/local/mailman [/bash] Mailmanのグループとユーザーを作ります。 [bash] wget http://docs.python.jp/contrib/mailman/_static/mailman-2.1.14+j7.tgz tar zxvf mailman-2.1.14+j7.tgz mv mailman-2.1.14+j7 /tmp/ chown -R mailman. /tmp/mailman-2.1.14+j7.tgz [/bash] Mailmanの最新バージョン2.1.14+j7をダウンロードし解凍、/tmp/以下に移動させます。 [bash] cd /tmp/mailman-2.1.14+j7 su mailman -s "/bin/bash" -c "./configure --with-cgi-gid=apache" su mailman -s "/bin/bash" -c "make" && make install [/bash] makeを実行し、インストールフォルダにインストールします。 [bash] cd /usr/local/mailman/ ./bin/check_perms -f ./bin/check_perms [/bash] アクセス権チェックを行います。-fオプションで自動的に修正してくれます。 [bash] rm -rf /tmp/mailman-2.1.14+j7/ [/bash] ソースを削除します。 [bash] vi /usr/local/mailman/Mailman/mm_cfg.py [/bash] ここでMailmanのコンフィグファイルを設定します。 [text] DEFAULT_URL_HOST = 'hostname' DEFAULT_EMAIL_HOST = 'hostname' add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) MTA = 'Postfix' DEFAULT_SERVER_LANGUAGE = 'ja' DEFAULT_URL_PATTERN = 'http://%s/mailman/' [/text] URLホスト名には、正確なURLを記述してください。ここが実際アクセスするものと違う場合、管理画面でエラーになります。 EMAIL_HOSTにはメールサーバーのドメイン名を入力してください。 ここに入力した文字列が、メーリングリストへの投稿先となります。 メーリングリスト名@DEFAULT_EMAIL_HOSTが投稿先となります。 mm_cfg.pyには新たにメーリングリストを作成する際のデフォルト値をいろいろと設定することができます。 GUIの管理画面からも設定できる部分ですが、同じような性格のメーリングリストを複数作成する際は、ここに記述しておくと便利です。 このような設定があるとすると、mm_cfg.pyには [text] DEFAULT_MAX_MESSAGE_SIZE=0 [/text] のように記述しておくと、新規に作られるメーリングリストにあらかじめ適用されます。 [text] /usr/local/mailman/bin/mmsitepass password [/text] Mailman全体のパスワードを設定します。 [bash] crontab -u mailman /usr/local/mailman/cron/crontab.in [/bash] MailmanのCronの設定を行います。 [bash] /usr/local/mailman/bin/genaliases chown mailman. /usr/local/mailman/data/aliases* chmod g+w /usr/local/mailman/data/aliases* [/bash] Mailmanのエイリアス設定を行います。 メーリングリストを作成する度に、メーリングリスト用に新たな複数のエイリアスが作成されます。 入退会用、コマンド送信用、メーリングリスト送信用などです。 [bash] vi /etc/postfix/main.cf [/bash] main.cfの中の以下に、mailmanのaliasesを設定します。 [text] alias_maps = hash:/etc/aliases, hash:/usr/local/mailman/data/aliases [/text] これをpostfixに反映させます。 [bash] service postfix reload [/bash] Apacheの設定ファイルをMailman用に作成します。 [bash] vi /etc/httpd/conf.d/mailman.conf [/bash]   [text] ScriptAlias /mailman/       /usr/local/mailman/cgi-bin/ <Directory /usr/local/mailman/cgi-bin/> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> Alias   /pipermail/     /usr/local/mailman/archives/public/ <Directory /usr/local/mailman/archives/public/> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> [/text] これを保存し、 [bash] service httpd checkconfig service httpd graceful [/bash] apacheをリスタートします。 [bash] /usr/local/mailman/bin/newlist mailman [/bash] 管理用メーリングリストを作成します。 管理者メールアドレスと、mailmanパスワード、を入力し、エンターを入力すると、作成が完了します。 [bash] /usr/local/mailman/bin/config_list -i /usr/local/mailman/data/sitelist.cfg mailman [/bash] メーリングリストの初期設定を行います。 [bash] cp /usr/local/mailman/scripts/mailman /etc/rc.d/init.d/ /etc/init.d/mailman start chkconfig --add mailman chkconfig mailman on [/bash] 起動スクリプトを設定して、自動で起動させます。 ここで http://hostname/mailman/admin にアクセスし、Mailmanの管理画面が表示されれば、インストール完了です。 アイコンが表示されていなかったので、アイコンをwww配下のiconsディレクトリにコピーします。 [bash] cp /usr/local/mailman/icons/* /var/www/icons/ [/bash] これでアイコンも正常に表示されました。 設定次第で、双方向のメーリングリストや、メールマガジン風など様々な設定が可能で、つかいやすい印象です。 ユーザーも管理画面から様々な操作ができますが、今回必要なメーリングリストは閉じたものですので、認証をかけて管理画面にアクセスできないようにしました。 Mailmanの設定項目はかなりいろいろありますので、最適な設定を探してみてください。

  • シスキュー技術部

CentOSとownCloudで社内用のDropboxをつくる

noimage

CentOSとownCloudで社内用のDropboxをつくる

オンラインストレージ、Dropboxなどはかなりメジャーな存在となっています。 クライアントをインストールしておくと、指定フォルダーの内容をサーバーにアップロードし、同じアカウントを登録してある他のPCと同期します。 またwebブラウザを介して、ファイルのダウンロードもでき、公開用URLを設定して、他の方との共有も可能です。 このDropboxはファイル送信経路や、ファイルサーバー側での暗号化は行われており、無料から利用できるとはいえ、セキュリティー的な部分で不安なものではありません。 しかしながら、たとえば消去や、取り出し、バックアップなど、具体的なデータの取り扱いについて、完全にコントロール下におけるものではありませんので、社内ポリシーで禁じられている、あるいは一定以上のセキュリティー基準を設けて、重要なファイルを置かないようにする、などさまざま運用方針を持っている方もいらっしゃると思います。 これを自社保有のサーバーで同じような仕組みを提供するもので、ownCloudというオープンソースソフトウェアがあります。 今回はこれを試してみます。 ownCloudのインストール CentOS6.3+apache2+mod_SSL+PHP5.3.3+PostgreSQLがあらかじめ構築されたVPS環境を利用しました。 ownCloudは仕組み的にはWebDAVを利用しますので、経路暗号化のために、自局認証ではなく公的認証局によるSSL証明書を用意しておくことが重要です。 ownCloudのwebサイトから、Install、LinuxPackagesでCentOSを選び、指示された通りにリポジトリを追加し、yumでインストールします。 これで必要な他のパッケージとともにインストールされます。 [bash] cd /etc/yum.repos.d/ wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-6/isv:ownCloud:community.repo yum install owncloud [/bash] これで [text] /var/www/html/owncloud/ [/text] 以下にインストールされます。 初回セットアップの前にpostgreSQLにデータベースとユーザーを作っておきます。 [bash] su - postgres createdb -E UTF8 -U ユーザー名 -T template0 owncloud [/bash] https://yourhost/owncloud にアクセスすると、セットアップが始まります。 今回、gdがないというエラーが出ましたので、gdをインストールし、 [bash] yum -y install gd [/bash] apacheをリスタートします。 [bash] service httpd restart [/bash] 再度セットアップをはじめます。 ここで管理ユーザーとパスワード、使用するDBをPostgreSQLを設定します。 Finish Setupを選択します。 ここでoc_ユーザー名にテーブル作成権限がない、というエラーが出ましたので、owncloudデータベースに権限を与えます。 [bash] su – postgres psql GRANT ALL PRIVILEGES ON DATABASE owncloud TO oc_ユーザー名; [/bash] 再度セットアップを行うと、無事インストールが終了しました。 owncloud/config/config.php に [text] 'forcessl' => true, [/text] と加えておくとssl接続に限定されます。   インストール後の利用方法 ひとまず管理者でログインし、動作を確認しましょう。 新規ボタンでファイルをアップロードできます。 DropboxのWebを利用したことがあれば、すぐに操作方法はわかります。 管理者であれば、左下の設定アイコンからメニューを出して、ユーザーを追加できます。 その他にもプラグインや、全体設定などを操作することができます。この辺りはDropboxにはない操作ですので、いろいろ試してみてください。 WebDAVですので、 [text] https://yourhost/owncloud/remote.php/webdav/ [/text] でアクセスできます。 PC・スマートフォンのクライアント PC・Mac・iOS・Android各クライアントで動作を確認しました。 http://owncloud.org/support/install/ PC・Macでは任意のフォルダと同期、iOS、Androidでは、ダウンロードしたファイルを開いたり、写真をアップロードしたりできます。 PC版 Windows8のスタート画面ではこんな感じです。 Mac版 iPad版 Android版 それぞれ、 https://yourhost/owncloud ユーザー名 パスワード を入力して、認証が通れば、すぐに使用可能です。 PC・Mac版は無料、iOSは85円、Androidは99円(記事作成時の価格)でした。 セキュリティーなど httpsでの接続でなければ、経路の暗号化はできませんし、公的認証でなければ成りすましを防ぐ方法はないので、SSLの公的認証は必須と言えるでしょう。 それさえクリアできれば、細かい使い勝手の差はありますが、Dropbox等と同じように利用し始めることができます。 少なくとも自己管理できる範囲で、状況を把握でき、独自運用できるものとしては、かなり簡単な仕組みです。 一通りのLinuxOSの構築ができていれば、1~2時間もあれば、十分使い始められます。 ファイルはownCloudディレクトリ内に暗号化されずに保管されます。 .htaccessによって、外部からのアクセスはできませんが、サーバーの管理権限があれば、自由に閲覧、移動、削除などが可能です。 プラグインによって、保管ディレクトリの暗号化はできますが、その際は制約があるようです。 プラグインによって、様々な機能を追加できるのもownCloudの利点ですが、それによる不都合も出てくる可能性は考慮すべきです。 運用にあたっては、ownCloudの脆弱性、Apacheの脆弱性などについて、情報収集が必要となりそうです。 あとはユーザー名、パスワードのみの認証ですので、十分複雑なパスワードを設定する必要があります。 VPNでさらに通信の暗号化や、iptablesによって公開するグローバルIPアドレスなどを自社の各拠点や取引先に限定する、などを行えば、さらにセキュリティーの向上が望めるのは自己管理のサーバーならではの利点でしょう。