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 ...

【自己責任でお願いします】centOS monoファイルをインストール。

centOS, mono, レンタルサーバ(さくらインターネット)

“centOS” に “c#” を入れ見たいと思い “mono” ファイルをインストールしてみました。
インストールは出来ましたが・・・これが正しいやり方なのか・・・解りません。
このやり方でのインストールは、自己責任でお願いします。
今回は、”checkinstall” 使用します。

【開発環境】
・さくらVPS 2G HDD200
・CentOS release 6.6 (Final) 64ビット版

【前提条件】
・checkinstall をインストールしていることを前提とします。

1.必要なファイルをインストールします。

[user@localhost] yum -y install gcc gcc-c++ bison pkgconfig glibc-devel glib2-devel libX11 libX11-devel libpng-devel giflib giflib-devel libjpeg-devel libtiff-devel libexif-devel httpd-devel cairo-devel gettext make

2.ソースコードの取得とコンパイル・ビルド インストールする。
2.1 libgdiplus をダウンロードする。
libgdiplus-3.12.tar.gz (2015-02-13 現在)

[user@localhost] wget http://origin-download.mono-project.com/sources/libgdiplus/libgdiplus-3.12.tar.gz

2.2 解凍して、解凍先のディレクトリに移動する。

[user@localhost] tar jxvf libgdiplus-3.12.tar.gz
[user@localhost] cd libgdiplus-3.12

2.3 configure を行う。

[user@localhost] ./configure --enable-win64

2.4 makeを行う。

[user@localhost] make

3分ぐらい掛かったと思われます。

 

2.5 checkinstallを行う。

[user@localhost] checkinstall

RPMパッケージに生成する。
エラーが無い限り、rpmファイルが出来ると思われます。

3. mono本体をインストールを行う。
3.1 本体をダウンロードします。
※mono-3.12.0.tar.bz2 (2015-02-13 現在)

[user@localhost] wget http://download.mono-project.com/sources/mono/mono-3.12.0.tar.bz2

3.2 解凍して、解凍先のディレクトリに移動する。

[user@localhost] tar jxvf mono-3.12.0.tar.bz2
[user@localhost] cd mono-3.12.0

3.3 configure を行う。

[user@localhost] ./configure --enable-win64

数秒程度で完了するかと思います。

3.4 make を行う。

[user@localhost] make

自分の場合は・・・15分ぐらい掛かりました。

3.5 checkinstall を行う。

[user@localhost] checkinstall
checkinstall 1.6.3, Copyright 2010 Felipe Eduardo Sanchez Diaz Duran
           このソフトウェアはGNU GPLの下でリリースしています。

The checkinstallrc file was not found at:
/usr/local/lib/checkinstall/checkinstallrc

デフォルトの内容を使うものとします

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]: y

パッケージのドキュメンテーションを準備..OK

使用するパッケージ方式を選んでください。
Slackwareなら[S], RPMなら[R], Debianなら[D]を入力R


このパッケージの説明を書いてください
説明の末尾は空行かEOFにしてください。
>>

**************************************
**** RPM package creation selected ***
**************************************

このパッケージは以下の内容で構成されます:

1 -  Summary: [ Package created with checkinstall 1.6.3 ]
2 -  Name:    [ mono ]
3 -  Version: [ 3.12.0 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ Applications/System ]
7 -  Architecture: [ x86_64 ]
8 -  Source location: [ mono-3.12.0 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ mono ]

変更するものの番号を入力してください。Enterで続行します:

Installing with make install...
   :
      :
      :

実行を行うと・・・エラーが起きます。

【エラー内容】

===省く~~~
/usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/mod.exe /usr/local/lib/mono/4.5
test ! -f ./../../class/lib/net_4_5/mod.exe.mdb || /usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/mod.exe.mdb /usr/local/lib/mono/4.5
test ! -f mod.exe.so || /usr/bin/install -c -c -m 755 mod.exe.so /usr/local/lib/mono/4.5
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mod' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mod' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/installvst' に入ります
make install-local
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/installvst' に入ります
/bin/sh ./../../mkinstalldirs /usr/local/lib/mono/4.5
/usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/installvst.exe /usr/local/lib/mono/4.5
test ! -f ./../../class/lib/net_4_5/installvst.exe.mdb || /usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/installvst.exe.mdb /usr/local/lib/mono/4.5
test ! -f installvst.exe.so || /usr/bin/install -c -c -m 755 installvst.exe.so /usr/local/lib/mono/4.5
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/installvst' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/installvst' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/lc' に入ります
make install-local
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/lc' に入ります
/bin/sh ./../../mkinstalldirs /usr/local/lib/mono/4.5
/usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/lc.exe /usr/local/lib/mono/4.5
test ! -f ./../../class/lib/net_4_5/lc.exe.mdb || /usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/lc.exe.mdb /usr/local/lib/mono/4.5
test ! -f lc.exe.so || /usr/bin/install -c -c -m 755 lc.exe.so /usr/local/lib/mono/4.5
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/lc' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/lc' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto' に入ります
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto/lib' に入ります
make install-local
make[8]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto/lib' に入ります
/bin/sh ./../../../mkinstalldirs /usr/local/lib/mono/mono-configuration-crypto/4.5
mkdir -p -- /usr/local/lib/mono/mono-configuration-crypto/4.5
mkdir: ディレクトリ `/usr/local/lib/mono/mono-configuration-crypto' を作成できません: そのようなファイルやディレクトリはありません
make[8]: *** [install-local] エラー 1
make[8]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto/lib' から出ます
make[7]: *** [do-install] エラー 2
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto/lib' から出ます
make[6]: *** [install-recursive] エラー 1
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto' から出ます
make[5]: *** [install-recursive] エラー 1
make[5]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools' から出ます
make[4]: *** [install-recursive] エラー 1
make[4]: ディレクトリ `/root/mono/mono-3.12.0/mcs' から出ます
make[3]: *** [profile-do--net_4_5--install] エラー 2
make[3]: ディレクトリ `/root/mono/mono-3.12.0/mcs' から出ます
make[2]: *** [profiles-do--install] エラー 2
make[2]: ディレクトリ `/root/mono/mono-3.12.0/mcs' から出ます
make[1]: *** [install-exec] エラー 2
make[1]: ディレクトリ `/root/mono/mono-3.12.0/runtime' から出ます
make: *** [install-recursive] エラー 1

****  インストールは失敗しました。パッケージの作成を中断します

クリーンアップ..OK

Bye

checkinstall中にディレクトリの作成を試みているみたいですが・・・
なぜか、作成が出来ないみたいです。
自分の場合は・・・ディレクトリを作成しました。
また、「ディレクトリを作成をして下さい」というエラーが数回起きました。

作成をしたディレクトリは以下の通りになります。

/usr/local/share/mono-2.0
/usr/local/share/mono-2.0/mono
/usr/local/etc/mono
/usr/local/etc/mono/2.0
/usr/local/etc/mono/4.0
/usr/local/etc/mono/4.5
/usr/local/lib/mono
/usr/local/lib/mono/xbuild-frameworks
/usr/local/lib/mono/xbuild-frameworks/.NETFramework
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v2.0
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v3.0
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.0
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.0/Profile
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.0/Profile/Client
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.5.1
/usr/local/lib/mono/xbuild
/usr/local/lib/mono/xbuild/Microsoft
/usr/local/lib/mono/xbuild/Microsoft/Portable
/usr/local/lib/mono/xbuild/Microsoft/VisualStudio
/usr/local/lib/mono/xbuild/Microsoft/VisualStudio/v9.0
/usr/local/lib/mono/xbuild/Microsoft/VisualStudio/v10.0
/usr/local/lib/mono/xbuild/Microsoft/VisualStudio/v11.0
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v3.5
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.5
/usr/local/lib/mono/mono-configuration-crypto

ディレクトリを作成したことによって、checkinstall が無事完了してrpmパッケージを生成することが出来ました。

【完了の内容】

~~~ 省く ~~~
./LICENSE
./COPYING.LIB
./NEWS
./AUTHORS
./ChangeLog

tempディレクトリにファイルをコピー..OK

Stripping ELF binaries...OK

manページを圧縮..OK

ファイルリストを作成..OK

RPMパッケージを作成..OK

注意: パッケージはインストールされません

tempファイルを削除..OK

バックアップパッケージを書き込み..OK

temp dirを削除..OK


**********************************************************************

 Done. The new package has been saved to

 /root/rpmbuild/RPMS/x86_64/mono-3.12.0-1.x86_64.rpm
 You can install it in your system anytime using:

      rpm -i mono-3.12.0-1.x86_64.rpm

**********************************************************************

3.6 生成したRPMパッケージをインストールする。

[user@localhost] rpm -ivh /root/rpmbuild/RPMS/x86_64/mono-3.12.0-1.x86_64.rpm

これで、無事にインストールが完了しました。

【参考文献】
ギーク志望。さん – [Bash]CentOS用Mono2.10.8インストールスクリプト
ITmedia エンタープライズさん – Linux Tips 環境設定
ごった煮さん – [CentOS]CentOS6にWineの最新版をソースからインストール

記事を読む   【自己責任でお願 ...

lftp コマンド接続の仕方

centOS, FTP, SSL, ubuntu, VPS

こんにちは。
自分の諸事情で全然更新していませんでしたが・・・。
FTPについて書きたいと思います。

FTPサーバに接続をするために、ソフトを使用しています
しかし、自分の諸事情でコマンドを使用しなければいけなくなったので、今回はコマンドでやってみました。
今回は “FTP接続方法だけ” について書きます。

自分の場合は、ちょっとめんどくさいやり方なので・・・箇条書と図で説明します。

1.パソコンから自宅サーバにSSH接続をする。
2.自宅サーバからVPSサーバにFTP接続をする。また、SSL通信で行う。

lftp

【設定環境】
・自宅サーバのOSは “Ubuntu”
・VPSサーバのOSは “centOS”
・PCのOSは “Windows7”
・PCから自宅サーバにSSH接続する場合は “Tera Term” を使用します。
・自宅サーバでFTP接続する場合は “lftp” を使用します。

【設定方法】
※1 パソコンから自宅サーバにSSH接続が出来ている前提とします。
※2 VPSサーバにはFTPサーバが構築されている前提とします。
※3 lftpのコマンドについては、省略させて頂きます。

1.自宅サーバに “lftp” をインストールする。

[user@localhost]# apt-get install lftp

2.自宅サーバに接続されている “ユーザ” で、その “ユーザ” から コマンドでFTPサーバに接続ができる設定をする。
※ユーザ全体にする場合は、”/etc/lftp.conf” で記述する。
1) 必ずホームディレクトリ内で設定する。
念のために、ホームディレクトリに移動する。

[user@localhost]# cd

2)”.lftprc” を作成する。

[user@localhost]# vi .lftprc

内容

#aliasの設定
alias ls "ls -la"

#通信の設定
set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-allow yes
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
# ※4
set ssl:verify-certificate no

※4 “set ssl:verify-certificate no” については、SSL証明書について検証エラーが出てしまうために切断されてしまう。
そのため、オフにする。
なお、自分自身理解が出来ていない部分がありますので、ネットなのでお調べをして下さい。

3.接続

[user@localhost]# lftp -u 【ユーザ】-e "debug 10" ftp://【ドメイン or ipアドレス】:【ポート】

※【】は、ご自身が指定されている記述をして下さい。”ポート” が変更されている場合は、指定されているポート記述をして下さい。

実行が行われた場合
実行1)パスワードが聞かれます。パスワードを入力する。

[user@localhost]# lftp -u 【ユーザ】-e "debug 10" ftp://【ドメイン or ipアドレス】:【ポート】
パスワード:

実行2)パスワードが入力後

lftp 【ユーザ】@【ドメイン or ipアドレス】:~>

実行3)接続を確認する。
lsで確認。
lftp 【ユーザ】@【ドメイン or ipアドレス】:~> ls

実行内容
※一部変更させて頂きます。

---- dns cache hit
---- 【ドメイン】 (【ipアドレス】) ポート 【番号】 に接続中
<--- 220 (vsFTPd 2.2.2)
---> FEAT
<--- 211-Features:
<---  AUTH SSL
<---  AUTH TLS
<---  EPRT
<---  EPSV
<---  MDTM
<---  PASV
<---  PBSZ
<---  PROT
<---  REST STREAM
<---  SIZE
<---  TVFS
<---  UTF8
<--- 211 End
---> AUTH TLS
<--- 234 Proceed with negotiation.
---> OPTS UTF8 ON

【SSL証明内容が出力されます。】

<--- 200 Always in UTF8 mode.
---> USER 【ユーザ】
<--- 331 Please specify the password.
---> PASS XXXX
<--- 230 Login successful.
---> PWD
<--- 257 "/"
---> PBSZ 0
<--- 200 PBSZ set to 0.
---> PROT P
<--- 200 PROT now Private.
---> PROT P
<--- 200 PROT now Private.
---> PASV
<--- 227 Entering Passive Mode (【ipアドレス】,195,87).
---- データソケットを (【ipアドレス】) のポート 【ポート番号】 に接続中
---- Data connection established1
---> LIST -la
<--- 150 Here comes the directory listing.


【証明書の内容が出力されます。】


drwx------   37 5002      5002          4096 Jun 09 18:51 .
drwx------   37 5002      5002          4096 Jun 09 18:51 ..
          :
          :
---- Got EOF on data connection
---- データソケットを閉じています
<--- 226 Directory send OK.
copy: get hit eof
copy: waiting for put confirmation
copy: put confirmed store
copy: get is finished - all done

これで接続が出来たことになります。

【参考文献】
yuu_nkjm blog さん – コマンドラインからFTPSでFTPサーバ上のデータを取得
憩いの場 さん – lftp – 致命的エラー: Certificate verification: Not trusted
ITPRO さん -【lftp】FTPサーバに接続してファイルを転送する

【素材】
パソコン・ルータ・サーバの素材を使わせて頂きました。
Digipot さん –

記事を読む   lftp コマンド接続の仕方

centOS:メモリを定期的に解放

centOS, VPS

サーバのメモリを定期的に解放する設定について書きたいと思います。
定期的に動かすために “cron” を使います。

【設定方法】

[user@localhost]# vi /etc/crontab

内容(変更前)

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

(1) 月日・時間・曜日などの設定が出来る

# .---------------- minute (0 - 59) ・・・[分]
# |  .------------- hour (0 - 23)   ・・・[時]
# |  |  .---------- day of month (1 - 31) ・・・[日:
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... ・・・[月]
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat ・・・[曜日]
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

今回、詳しいことは勉強していません。
自分の目的は定期的に動いて欲しいということで、30分に1回実行をするように設定しています。

30 *    * * *

(2) 実行者はについて “user-name”
管理者で実行するということで・・・ root

(3) “vm.drop_caches=” “1~3” の値について
1・・・ページキャッシュを解放
2・・・ディレクトリエントリとinodeの解放
3・・・1と2の解放

sysctl -w vm.drop_caches=1

(4) メールで連絡を行うのか?
(1)~(3)を入力後、保存をして再起動すれば完了になります。
しかし、この設定だと30分に行った後にメール連絡がされます。
ちょっと、迷惑なので停止の設定をします。

#MAILTO=root ・・・コメント化
MAILTO=""    ・・・root宛なので "root" を "" にする。

(5)再起動を行う。

/etc/rc.d/init.d/crond restart

内容(変更後)

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#---rootメール宛停止
#MAILTO=root
MAILTO=""
#----
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

#定期的にメモリを解放する
30 *    * * *   root    sysctl -w vm.drop_caches=1

これで設定が完了です。

【参考文献】
kazua’s tech memo さん – Linuxのメモリ解放
VineLinuxパフォーマンスアッププロジェクト さん – ■root宛てに届くcronメールの配信を停止する方法■

記事を読む   centOS:メモリを ...

mount について

centOS, ubuntu, VPS

久々に更新します。

古いノートPCをNASサーバに構築した時の出来事。
Ubuntuサーバで外付けHDD(ファイルシステム:NTFS)をマウントした時には・・・

[user@localhost]# mount /dev/sda1 /home/test_HDD
[user@localhost]#

マウントが出来ました。

ただ、centOSの時にはマウントすることが出来ませんでした。
この時の centOS5 を使っていました。
本当は、centOS6 を使いたかったのですが・・・古いPCだったので “CPU” “Boot” のどちらかだったと思ったのですが・・・何かが対応してなかった。
なので、centOS5を使いました。

それで・・・
普通にマウントしようとしたら、エラーが発生してしました。
centOS自体が、HDDのファイルシステム:NTFS に対応してなかったそうです。

それで、インターネットで調べた結果・・・
ファイル “ntfs-3g” をインストールすることによりマウントすることが判明した。

[user@localhost]# yum install ntfs-3g

そして、マウントのやり方は・・・

[user@localhost]# mount -t ntfs-3g /dev/sdb1 /home/test_HDD

これで完了です。

【参考文献】
しがないNEの呟き さん – [覚書] CentOS 5.4にUSBディスク(NTFS)を接続

記事を読む   mount について

centOS:dovecot(受信サーバ)のアタック対策(denyhosts)

centOS, denyhosts, dovecot, VPS

今まで出来なかったこと、”dovecot(受信サーバ)” のセキュリティ対策でした。
ブルートフォースアタックが1日に何回か起きていました。

受信サーバに長時間のアタックがありました。
何らかの対策を探したところ・・・

友人からdenyhostsを教えてもらいました。
しかし、 “dovecot”については全然出来ませんでした。

インターネットで “denyhosts dovecot” と、検索をしてみたところ幾つかヒットしました。
その設定で試したのですが・・・出来ませんでした。
自分の設定がいけないのかなぁ・・・と、”dovecot”・”denyhosts”を再インストールしてみたり、VPSサーバを初期化してやり直しをしたのですが・・・全然出来ませんでした。

それで、サイトを再度確認してみることにしました。

※サイトで書かれていた “/etc/denyhosts.conf ” 追記した内容※

BLOCK_SERVICE = ALL 
SSHD_FORMAT_REGEX=.*(sshd.*:|\[sshd\]
|dovecot-auth.*:|vsftpd.*:) (?P<message>.*)
USERDEF_FAILED_ENTRY_REGEX=authentication failure.* 
ruser=(?P<user>\S+) rhost=(?P<host>\S+)
USERDEF_FAILED_ENTRY_REGEX=authentication failure.* 
rhost=(?P<host>\S+)\s+user=(?P<user>\S+).*
USERDEF_FAILED_ENTRY_REGEX=authentication failure.* 
rhost=(?P<host>\S+).*

※/var/log/secure の内容(自分のログ)※

Sep  1 00:26:35 [ホスト名] auth: pam_unix(dovecot:auth): 
authentication failure; logname= uid=0 euid=0 
tty=dovecot ruser=[user-name] rhost=[ip-address]

※[ ]については変更させて頂いています。

ずーと眺めてみたら・・・

Sep 1 00:26:35 “[host-name]” auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser= “[user-name]” rhost= “[ip-address]”

の太字部分と、

BLOCK_SERVICE = ALL SSHD_FORMAT_REGEX=.*
(sshd.*:|\[sshd\]|dovecot-auth.*:|vsftpd.*:) (?P.*)

の太字部分が違うので以下の設定に変更する。
※警告:最後の部分が “(?p)” になっていますが、 “(?p≪message≫.)” なので注意して下さい。
wordpressの設定上だと思うのですが、 “と中身のmessage” の出力がされなかったので、二重かっこを使いました。

※変更:denyhosts.conf※

BLOCK_SERVICE = ALL 
SSHD_FORMAT_REGEX=.*(sshd.*:|\[sshd\]|
dovecot:auth.*:|vsftpd.*:) (?P<message>.*)
USERDEF_FAILED_ENTRY_REGEX=authentication failure.* 
ruser=(?P<user>\S+) rhost=(?P<host>\S+)
USERDEF_FAILED_ENTRY_REGEX=authentication failure.* 
rhost=(?P<host>\S+)\s+user=(?P<user>\S+).*
USERDEF_FAILED_ENTRY_REGEX=authentication failure.* 
rhost=(?P<host>\S+).*

この設定でテストしてみたところ、”hosts.deny” に追加されたことが確認されました。
ただ、まだ油断が出来ないので、様子をみたいと思います。

追記:2013-09-03
今のところ安定して動いていることが確認されています。
今後も油断しないように監視したいと思います。

追記:2013-10-04
テキスト形式で書き方を作成しました。
テキスト形式

追記:2013-10-11
“BLOCK_SERVICE = ALL” という部分がありますが、”denyhosts.conf” の最初部分あたりにもあります。
ブログ内のソースコードに “BLOCK_SERVICE = ALL” 書いてありますが、2つ記入する必要はありません。

追記:2013-10-12
“テキスト形式” の部分で、記述ミスをしていました。
本当にすみません。

追記:2014-12-20
タイトルの変更と文章の変更をします。
内容が違う部分があったので訂正させて頂きます。
centOS:dovecot(受信サーバ)のセキュリティ対策(denyhosts)→ centOS:dovecot(受信サーバ)のアタック対策(denyhosts)

記事を読む   centOS:dovecot( ...

cnetOS:whoisパッケージをインストール

centOS, VPS

centOSのサーバで “whois” コマンドを使ってみたら、パッケージがインストールされていませんでした。
そこで、パッケージをインストールしたいと思います。

【設定方法】
1.”jwhois” のパッケージをインストールする。

[user@localhost]# sudo yum install jwhois

入力後、インストールをするのか、質問がされるので “y” を入力して実行する。

これで、インストールが完了です。

記事を読む   cnetOS:whoisパ ...

centOS:handbrake(GUI)インストール方法

centOS

centOSに “handbrake” をインストールしてみました。
どうしても、コマンドを入力での操作が出来なかったので、インストールをしてみました。

【設定方法】
1.centOSにリポジトリを追加する。

[user@localhost]# sudo vi /etc/yum.repos.d/linuxtech-testing.repo

ソース内容

[linuxtech-testing]
name=LinuxTECH Testing
baseurl=http://pkgrepo.linuxtech.net/el6/testing/
enabled=0
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET

2.パッケージをインストールする。

[user@localhost]# sudo yum --enablerepo=linuxtech-testing install handbrake-gui

これでインストールが開始されます。

【参考文献】
LINUX PACKAGES SEARCH さん – handbrake-gui-0.09.8-1.el6.i686.rpm
LINUX PACKAGES SEARCH さん – handbrake-gui-0.09.8-1.el6.i686.rpm
※どちらのリンクも同じサイトです。バージョンによっては異なりますので、要注意です。

記事を読む   centOS:handbrak ...

PAGE TOP