読者です 読者をやめる 読者になる 読者になる

まるまるこふこふ

数々の次元が崩壊し、全ての生命が塵と化すのを見てきた。私ほどの闇の心の持ち主でも、そこには何の喜びも無かった。

ServersMan@VPSを使う - 2日目

今日はシステムのアップデート及び iptables
ファイヤウォールの設定をします。

システムのアップデート

# sudo yum update

これだけ。120MBくらいダウンロードしだして、
結構時間かかった。

ファイヤウォールのルールを作成

ルールを一つ一つコマンドラインで設定していっても良いのですが、
量が多くて面倒なので、設定用のスクリプトを作成します。

# vi ./iptables.sh
#!/bin/bash

#ルールのクリア
/etc/init.d/iptables stop

#受信パケットは一旦すべて許可
iptables -P INPUT ACCEPT

#転送(FORWARD)は使わないのでDROP(破棄)
iptables -P FORWARD DROP

#送信パケットはすべて許可
iptables -P OUTPUT ACCEPT

#icmp(ping)と自端末からの入力を許可
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

# syn flood攻撃無効化(1秒に1回制限)
iptables -A INPUT -i ppp+ -p tcp --syn -m limit --limit 1/s -j ACCEPT

# Ping of Death無効化(1秒に1回制限)
iptables -A INPUT -i ppp+ -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT 

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここから)               #
#----------------------------------------------------------#

# 外部からのTCP2526番ポート(SSH)へのアクセスを許可
iptables -A INPUT -p tcp --dport 2526 -j ACCEPT

# 外部からのTCP80番ポート(HTTP)へのアクセスを許可
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 外部からのTCP443番ポート(HTTPS)へのアクセスを許可
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここまで)               #
#----------------------------------------------------------#

#他の受信パケットはすべて破棄
iptables -P INPUT DROP

# サーバー再起動時にも上記設定が有効となるようにルールを保存
/etc/rc.d/init.d/iptables save

# ファイアウォール起動
/etc/rc.d/init.d/iptables start

今回、ルールとしては
ssh, http, https は許可
・それ以外の受信は遮断
pingは許可
・自端末へのループバックは許可
・syn flood攻撃無効化(1秒に1回制限)
Ping of Death無効化(1秒に1回制限)

権限をつけて実行

# chmod 700 ./iptables.sh
# sudo ./iptables.sh
iptables: Setting chains to policy ACCEPT: filter mangle na[  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

chmod で実行権限をつけて実行します。
iptablesの設定のリセット、新規ルールの設定、設定の保存、iptables再起動
まで自動でやってくれます。

終わり

って感じです。今回はマジで最小限の設定しかしてなくて
セキュリティは甘々なので、おいおいその辺は追加していきます。
(一応syn floodやPing of Deathの対策はしてるけど、まだまだ甘い)

本気でセキュリティ対策するなら以下のサイト辺りを参考にしてください。
ファイアウォール構築(iptables) - CentOSで自宅サーバー構築
連載記事 「ゼロから始めるLinuxセキュリティ」