SUBSONICの構築

centOS, java, SSL, VPS

VPSサーバに “SUBSONIC” というweb上で音楽ストリーミングできるwebアプリケーションを入れてみました。
PC・スマートフォンで音楽聴ければ良いなぁ~と思ってやってみました。
また、セキュリティの部分でSSL設定も設定ができましたので・・・ご紹介が出来たらなと思います。

【前提条件】
1.Apacheの設定が出来ていることを前提とします。
2.SSL証明書が購入されていることを前提とします。
3.JAVA言語が必要になりますので、その設定が出来ていることを前提とします。

【開発環境】
OS:centOS7
必要環境:Apache, java

【設定方法】
1.SUBSONIC からwebアプリケーションソフトをダウンロードします。
ダウンロード先:http://www.subsonic.org/pages/download.jsp
OS環境が “centOS” なので、”Red Hat / Fedora” からダウンロードします。
VPSサーバにアップロードする場合はFTPなどを使用し、指定の場所に保存をする。

コマンドの場合は、保存先の指定してから実行を行う。

[user@localhost] wget http://www.subsonic.org/pages/download2.jsp?target=subsonic-6.0.rpm

2.インストールを行う。
※インストールが無事した場合、自動的に起動がされます。

[user@localhost] rpm -ivh subsonic-6.0.rpm

3.ApacheにSSL通信が出来るように設定する。
※Apacheですが、個々の設定がされていると思います。
設定が壊れないように気をつけて行って下さい。
今回は自分が設定したことを記述します。
また、”https://[サブドメイン]” だけ起動が出来るように設定しています。

3.1 SSLのモジュールをインストールする。

[user@localhost] yum -y install mod_ssl 

3.2 SSL・バーチャルホスト・リバースプロキシの設定を行う。
※SSL通信を行う場合は、リバースプロキシを使わないと出来ませんので設定をしていきます。
※サブドメインで行っていきますので、バーチャルホストの設定もしていきます。
※SSL設定で細かい部分は省かせて頂いています。

【ファイルを開く】

[user@localhost] vi /etc/httpd/conf.d/ssl.conf

【ファイル内容】


~~~ 省く ~~~

<VirtualHost *:443>

#---サブドメインの設定 ---
ServerName subsonic.tmyinsight.net:443
#---

#--- リバースプロキシの設定
proxyRequests off
ProxyPass / http://tmyinsight.net:4040/
ProxyPassReverse / http://tmyinsight.net:4040/
#---

#---ログの設定
ErrorLog logs/ssl_subsonic_error_log
TransferLog logs/ssl_subsonic_access_log
#=--

#---暗号方式の設定
#---個々の設定があると思いますので省きます。
#---

#---証明書場所指定の設定
SSLCertificateFile /home/localhost/SSL/subsonictmyinsightnet.crt
SSLCertificateKeyFile /home/localhost/SSL/subsonictmyinsightnet.key
SSLCACertificateFile /home/localhost/SSL/subsonictmyinsightnetinter.crt
#---

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

3.3 Apacheを再起動する。

systemctl restart httpd

エラーが発生しなければ設定が完了です。

【念のために確認】
◎正規のSSL証明なのか確認。
android・iphoneで subsonicの専用のアプリがあります。
SSL証明書が正規ではないとエラー起きますので確認が必要です。

自分はシマンテック社のサイトで確認をしました。
Symantec.CryptoReport

◎SUBSONICが起動に時間が掛かる場合があります。
起動に時間が掛かる場合は “エラーコード503″ がサイトで出力する場合があります。
少し待ってから更新などをして頂いた方がよろしいと思います。
しかし、かなり時間が掛かる場合はシステム上に何らかのエラーが疑われると思いますのでチェックが必要になります。

◎subsonicを自動起動設定がされていませんので、”hsystemctl” のコマンドを設定を行って下さい。

◎初期IDとパスワードについて
ID:admin
pass: admin
ログインが出来ると思います。後々は管理者用のID・PASSをして下さい。
その他、subsonic内の細かな設定は、個々に調べて下さい。
特に難しい部分は無いと思いますが。。。

【参考文献】
Carpe Diem さん – Subsonicの導入
geek.note – 無料の音楽ストリーミング環境を構築する 2(SubSonic on CentOS7)

記事を読む   SUBSONICの構築

centOS7 – ファイアウォール(iptabeles)とopenvpnの設定

centOS, openvpn, VPS

centOS7 にしてから一番苦戦したのが・・・ファイアウォールの設定です。

今までは centOS6 は “iptables” を使用していましたが、centOS7 からは “firewalld” が主になります。
“firewalld”については、未だに理解が出来ていませんので調べながら勉強したいと思っています。

ファイアウォールの設定する場合は、”iptables” “firewalld” のどちらか1つ選ばなければならない。
また、”firewalld” の元からの設定されているポート設定ファイルを変更していけない決まりがあります。
ポート番号を変更する場合は、設定ファイルを複製し分かりやすいファイル名にする必要があります。

現在、VPSサーバでは “iptables” を使用しています。
理由は “firewalld” での NAT設定が思うように出来なかったからです。
“firewalld” に切り替えをしていく方向で行きますが・・・今は”iptalbes”で行きたいと思っています。

自分は “iptables.sh” というファイルを作り、シェルスクリプトで実行していました。

centOS6 では


~~~ 省く ~~~
echo "-A INPUT -p udp --dport 1194 -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A INPUT -i tun+ -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A FORWARD -i tun+ -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A FORWARD -m state --state NEW -o eth0 -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A OUTPUT -m state --state NEW -o eth0 -j ACCEPT" >> $IPTABLES_CONFIG
echo "iptables -t nat -A POSTROUTING -s 192.168.111.0/24 -o eth0 -j MASQUERADE" >> $IPTABLES_CONFIG
~~~ 省く ~~~

実行ができましたが、centOS7 ではエラーが起きてしまいました。

エラー文


~~~ 省く ~~~
iptables: Applying firewall rules: iptables-restore v1.4.21: The -t option (seen in line 2754) cannot be used in iptables-restore.

Error occurred at line: 2754
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                           [失敗]

IPマスカレード(NAT)の記述部分がどうしてもエラーが起きてしまいました。
色々調べてみた結果、以下の設定することにより解決が出来ました。

【解決方法】

1.iptables.sh で以下の記述まで記入する。
※他のサービスのポート設定が記述されていることを前提とします。


 ~~~ 省く ~~~

iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -m state --state NEW -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptalbes -A OUTPUT -m state --state NEW -o eth0 -j ACCEPT
 
~~~ 省く ~~~

2.iptabes.sh をシェルスクリプトで実行する。

[user@localhost] sh iptables.sh

3.コマンド実行でNAT設定を行う。
3.1 IPマスカレード(NAT)の設定を入力して実行する。

[user@localhost] iptables -t nat -A POSTROUTING -s 192.168.111.0/24 -o eth0 -j MASQUERADE

3.2 iptables に保存する。

[user@localhost] iptables-save > /etc/sysconfig/iptables

4.IPマスカレード(NAT)の設定確認

[user@localhost] iptables -t nat -n -L

実行結果

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.111.0/24      0.0.0.0/0

これを実行することによりopenvpnの利用が出来るようになりました。
もしかしたら、他のやり方があると思われます。
また、”firewalld” が主になりますので、IPマスカレード(NAT)の設定を勉強していきたいと思います。

【参考文献】
@it さん – ハマる前に理解する「Firewalld」の設定方法、「iptables」との違い
UnixPower on Networking さん – CentOS7 firewalldの設定

記事を読む   centOS7 – ...

VPSサーバのOSをcentOS7に切り替えました。

centOS

6月の中旬あたりから・・・
VPSサーバのOSを新しくcentOS7に切り替えました。
サービスの起動系(systemctl)、ファイアウォール(iptables)、ネットワーク系などなど・・・
正直、未だに理解が出来ていません。
少しずつ勉強していきたいと思っています。

記事を読む   VPSサーバのOSをc ...

PAGE TOP