nomurabbitのブログ

nomurabbitのブログはITを中心にした技術ブログです。

nomurabbitのブログ

Linuxサーバー構築~その3~

<はじめに>
Linuxサーバー構築シリーズその3です。

Linuxサーバー構築シリーズその2の訂正
・ghcはyumでインストールせずに、ghc7.6.3とhaslkell-platformを
 ソースからインストールします。
httpdをyumでインストールしました。
 configの設定は次回以降で書きます。

<実施内容>
さて、今回はghcとhaskell-platformをインストールします。

haskell-platformにはghcが含まれるようなのですが…

とりあえず、先にインストールを試みます。

// ダウンロード
sudo wget http://www.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz

// チェックサムの確認
sha1sum haskell-platform-2013.2.0.0.tar.gz

// 展開
tar xvzf haskell-platform-2013.2.0.0.tar.gz

と、ここでREADMEの中を見てみると…

f:id:nomurabbit:20131211233312p:plain

どうもghc7.6.3が必要みたいですね。

そこで、ghcのダウンロードサイトを確認すると

最新版(2013年12月11日時点)が7.6.3でしたので、これをインストールします。

// ダウンロード
sudo wget http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-x86_64-unknown-linux.tar.bz2

// 展開
tar xvfj haskell-platform-2013.2.0.0.tar.gz

// .configureの実行
./configure --prefix=/usr/local/haskell/ghc/7.6.3

// インストール
sudo make install

これで、ghcのインストールは無事に完了したはずです。

いざ、haskell-platformのインストール!…と、いきたいことろですが

このままだとgmplibが無えよ!って怒られます。

さらにzlibも無えよ!って怒られます。

ついでにOpenGLのライブラリが無えよ!とも怒られるみたいです。

それらのライブラリをインストールします。

// gmpのインストール
sudo wget https://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2

tar xjvf gmp-5.1.3.tar.bz2

./configure

make

make check

sudo make install

// /etc/ld.so.confの編集
>include ld.so.conf.d/*.conf
>
>/usr/lib
>/usr/local/lib

sudo ldconfig

// zlibのインストール
sudo wget http://zlib.net/zlib-1.2.8.tar.gz

tar zxvf zlib-1.2.8.tar.gz

./configure

make

sudo make install

// freeglut-develのインストール
sudo yum -y install freeglut-devel

これでようやくhaskell-platformがインストールできます。

// haskell-platformのインストール
./configure --prefix=/usr/local/haskell/haskell-platform/2013.2.0.0

make 

sudo make install

// cabalのupdateもしておきます
cabal update

<まとめ>
今回でghcが使えるようになりました。

次回はiptablesやApacheのあたりを設定していく予定です。

<参考>
http://takuya71.hatenablog.com/entry/2013/02/04/000022

http://neetmenblog.blog116.fc2.com/blog-entry-9.html

Linuxサーバー構築~その4~

<はじめに>
Linuxサーバー構築シリーズその4です。

今回はiptablesの修正を行い、80番ポートでwebサーバーにアクセスできることを確認します。

<作業内容>
まず、iptablesの設定を行います。

iptablesの設定ファイルは、/etc/sysconfig/iptablesです。

中身はこのようになっています。

f:id:nomurabbit:20131214111650p:plain

まずは、この部分

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

「:INPUT」と書いてある行は、自分宛のパケットについての定義です。

続いて「ACCEPT」とあるので、自分宛のパケットは受け入れるという意味になります。

同様に「:FORWARD」、「:OUTPUT」はそれぞれ、

自分を経由するパケット、自分から発信するパケットとなります。

次に、この部分

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

「-A INPUT」とあるので、自分宛のパケットについての定義です。

「-m state --state ESTABLISHED,RELATED」より、

「過去に接続したもの」や「既存コネクションに関係のあるもの」が該当します。

「-j ACCEPT」は、条件に一致するパケットを許可するという意味です。

さらに、

-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

1行目はicmpの許可、2行目はループバックの許可を指します。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

前半の「-A INPUT -m state --state NEW」は

「自分宛のパケットで、新規の接続」を指します。

後半の「-m tcp -p tcp --dport 22」のうち、

「-m tcp --dport 22」はtcpの宛先ポート(今回はINPUTなので自分のポート)

が22番であることを、また「-p tcp」はtcpプロトコルを使用することを指します。

最後に「-j ACCEPT」とあるので、

「自分宛で22番ポートに新規で接続となるパケットを許可する」となります。

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

最後に、ここまでの条件に一致しなかったパケットを破棄します。

では22番ポートを開く記述にならって80番ポートを開いてみます。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

編集内容を保存したら、iptablesを再起動して確認します。

<まとめ>
iptablesの設定ファイルを編集し、ポートの解放が確認できました。

次回はhttp.confファイルの編集を行います。