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の中を見てみると…
どうも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のあたりを設定していく予定です。
Linuxサーバー構築~その4~
<はじめに>
Linuxサーバー構築シリーズその4です。
今回はiptablesの修正を行い、80番ポートでwebサーバーにアクセスできることを確認します。
<作業内容>
まず、iptablesの設定を行います。
iptablesの設定ファイルは、/etc/sysconfig/iptablesです。
中身はこのようになっています。
まずは、この部分
: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ファイルの編集を行います。