こんにちは、ファルコンM です。
さくら VPS Ubuntu でApache2 を設定した。下の記事を参考にやっているのだが、、、
タイトル通り、Ubuntu でApache2 の接続ができなかった。
原因は、デフォルトの設定だった!
開発環境
- さくら VPS 1G プラン
- Ubuntu 16.04
- Apache 2.4.18
Apache2 のインストール
インストールは以下のコマンド
$ sudo apt-get install apache2
インストール確認はバージョンコマンド
$ apache2 -v
その後、起動する。
$ sudo service apache2 start
これだけで起動するはず。クライアントのブラウザからアクセスすれば、デフォルトページが見れるはずだが。。。
応答がない。。。見れない。。。
原因調査
Apache が起動していることを確認するため、以下のコマンドを叩いてみた。
$ curl http://( ホスト名 )
応答は、返ってきている。つまり、Apache は正常に起動している。ブラウザからサーバーへの接続に問題があるようだ。
ファイアウォールはどうか?
$ sudo ufw status
「Status: inactive」と表示された。ファイアーウォールは動作していないが、いつの間にかインストールされている。他にもいつの間にかインストールされているものがあるかもしれない。
原因はiptables の設定
でした。iptables はいつの間にかインストールされてデフォルトの設定になっていた。( たぶん、一番最初にubuntu の設定をしたとき。なんか自動でいろいろ動いていたような。 )
ってことでhttp とhttps のポートのアクセスを許可する。
参考サイト
$ sudo vi /etc/iptables/iptables.rules
iptables の設定を開き、以下を追加する。
*filter INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT : 追加 -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT : 追加 -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
最後に、設定を反映し、Apache を再起動する。
sudo /sbin/iptables-restore < /etc/iptables/iptables.rules sudo service apache2 restart
これで、クライアントのブラウザからアクセスできた。
まとめ
さくらVPS でUbuntu をインストールしたとき、一緒にiptables がインストールされていた。なので、Apache は起動しても外部から接続できなかった。
Apache以外でも、ポートの設定が必要になるときは、iptables を考慮する必要がある。
コメントを残す