LoginSignup
6
6

More than 5 years have passed since last update.

インストール直後の簡易的なファイアーウォールスクリプト

Last updated at Posted at 2015-02-28

概要

最近ハンズオンや検証でテスト環境が必要になったとき、AWSやらAzureで仮想サーバーを立てて使っている。
しかし、インターネット上で使うので当然IPフィルタリングをしなければいけない。
AWSはセキュリティグループでIP制限をかけられるがAzureの場合は自分でiptablesを設定しないといけない。
毎回調べて書いていて煩わしいのでまとめます。

さくらVPSや直接コンソロールを叩く場合

直接コンソロールに接続している場合はこう。
sudoするなりroot権限で行う
3行目のxxx.xxx.xxx.xxxは接続元IPに置き換える

iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP

出力パケットはすべて許可、
入力パケットは指定したIPからとサーバー側から送った接続の戻りのみ許可。

これで指定IPからの接続はすべて使えてyumもaptも使える。
ミスってSSHが繋がらなくなったら再起動すればリセットされます。

すでにSSH接続をしている場合

SSHでログインしている場合に↑をやると最初の一行目を打ち込んだ瞬間に接続が途切れてしまうので、
スクリプトを書いてそれを始動させる。

下記の頭の変数の値を変えてiptable.shとかいう名前で保存、そしてroot権限で動かす。

#!/bin/sh
MYIP=xxx.xxx.xxx.xxx


iptables -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT


# accept local roopback
iptables -A INPUT -i lo -j ACCEPT

# accept my IP
iptables -A INPUT -p tcp -s ${MYIP} -j ACCEPT

# accept established connection
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# drop other connection
iptables -A INPUT -j DROP

これも失敗してしまったときはサーバーを再起動すれば元に戻ります。

仕上げ


sudo service iptables save

これで再起動しても戻らなくなる。
※debianは使えません

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6