CentOS7の仮想サーバー構築にチャレンジ その4
投稿日:2016年06月26日
最終更新日:
もくじ
- CentOS7 ISOファイルの入手(その1)
- VMwareの準備(その1)
- 仮想マシンの作成(その1)
- CentOS7のセットアップ(その2)
- 初回ログイン(その3)
- ファイアウォール(iptables)(その4)
- sudoの有効化(その5)
- リモートからのrootログインの禁止設定(SSH)とセキュリティ強化(その5)
- Apacheのインストール(その6)
- WEBサーバーとして運用するための設定(その7)
- SFTPによるファイルのアップロード(その7)
- PHPのインストール(その8)
- ユーザーディレクトリでWEBサイトを公開する(その8)
- PHPをCGIモードで(ユーザー権限で)動かす(その8)
- デフォルトパーミッションの変更(その9)
- php.iniと.user.ini(その9)
- MySQLの導入(その10)
- phpMyAdminのインストール(その11)
- WordPressのインストール(その12)
初めにやっておくべきこと
サーバーを運用する場合は、当然ながらセキュリティ対策はキチンと行う必要があります。最初にセットすべきなのは、
- ファイアウォール(iptables)
- リモートからのrootログインの禁止設定(SSH)とセキュリティ強化
- sudoの有効化(CentOSでSudoを使えるようにする | 自由とテクノロジーを愛す者のサイト)
ファイアウォール(iptables)
当方ではiptablesを用います。なので、CentOS7で最初から稼働しているfirewalldにはご退場願うことにします。以下のコマンドを順番に打っていって下さい。 [VIM] systemctl stop firewalld systemctl disable firewalld systemctl status firewall [/VIM]
こんな感じで、「systemctl status firewall」のコマンドを打った後に、「Active: inactive (dead)」と表示されればOKです。続いてiptablesの有効化に入ります。以下のコマンドを順番に打っていって下さい。
[VIM]
yum install iptables-services
# Is this ok [y/d/N]: と訊かれるので y を打ち込んでEnterキーを押せばOK
systemctl enable iptables
systemctl start iptables
systemctl status iptables
[/VIM]
最後に「Active: active (exited)」と表示されれば起動成功です。続いて以下のコマンドを打ちます。
[VIM]
iptables -L
[/VIM]
おそらくこんな感じの表示になっていると思います。ここから設定を変更していきます。以下のコマンドを打っていきます。
[VIM]
vim /etc/sysconfig/iptables
[/VIM]
先ほどのコマンドでiptablesの設定ファイルを開くことができます。編集はvimで行うので、コマンドがわからない方はVimのコマンド メモ書き | 自由とテクノロジーを愛す者のサイトを見るかググるかして下さい。ファイルを開いたら編集モードに入り、一旦全部消します。消したら以下のテキストをコピペします。
[VIM]
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
# INPUT,OUTPUT Basic
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp ! –tcp-flags FIN,SYN,RST,ACK SYN -m state –state NEW -j DROP
-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
#SSH INPUT,OUTPUT
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp –sport 22 -j ACCEPT
-A INPUT -p tcp -m tcp –sport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –sport 443 -j ACCEPT
-A OUTPUT -p tcp -m tcp –dport 443 -j ACCEPT
-A INPUT -p udp –sport 53 -j ACCEPT
-A OUTPUT -p udp –dport 53 -j ACCEPT
COMMIT
[/VIM]
最後の「COMMIT」の後ろに改行がある点に注意して下さい。ファイルを保存した後、以下のコマンドを打ちます。
[VIM]
systemctl restart iptables
[/VIM]
無事に再起動できたら、設定を改めて確認してみましょう。
[VIM]
iptables -nL -v
# iptables -L よりも細かく表示される
[/VIM]
うまく設定できればこんな感じになります。なお、今回のiptablesの設定の詳細はiptablesでもっとしっかりセキュリティを固めてみる メモ書きにて解説しています。iptablesの設定を色々と弄りたいときは、こちらを参考にしてください。
iptablesの設定参考サイト
- さくらのVPS を使いはじめる 3 ? iptables を設定する | アカベコマイリ
- 【CentOS7】インストール直後からiptableの設定 – Notitle
- 習うより慣れろ! iptablesテンプレート集(1):ステートフルパケットフィルタを使ったサービスの公開 (2/6) – @IT
- iptablesの設定方法|さくらインターネット公式サポートサイト
- iptables : filter テーブル / CentOS 6.5 (64-bit): “HP ML115 G5”と自作機で、できたこと
- 「さくらのVPS」CentOS の初期設定の作業のまとめ&解説(iptablesによるファイアウォール編) | 5 LOG
- iptables のコマンド書式