- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
----
Linux関連のFirewall、っていうかパケットフィルタリングの定番、iptablesを使ってみます。
#contents
Linux関連のFirewall、っていうかパケットフィルタリングの定番、iptablesを使ってみます。
Ubuntu Server 16.04.2 LTS で構築しています。
**インストール [#i79be57e]
# sudo apt install iptables
*** リスト表示 [#pbeadb90]
# sudo iptables -L
# sudo iptables --list -n -v
**使い方 [#j9bd2631]
*** install直後の初期状態 [#a68ecb7c]
# sudo iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
*** リスト表示 [#pbeadb90]
# sudo iptables -L (もしくは --list)
# sudo iptables --list -n -v (詳細に。)
*** たとえば、HTTPは任意のIPから許可。 [#e40645f7]
# sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
*** たとえばsshは所定のIPだけ許可 [#g7bf4a90]
# sudo iptables -A INPUT -p tcp -s 192.168.0.10/32 --dport 22 -j ACCEPT
[[[linux-users:103966] Re: iptables -m tpc>http://search.luky.org/linux-users.a/msg03917.html]] をみると、-p tcp をつけてる限り、-m tcp はあってもなくても変わらない、、、ぽいです。
*** 設定の保存 [#ub3b26e8]
上記のように変更した内容は、再起動したら消えてしまうようで、保存するには下記のツールを使用します。
# sudo apt list iptables-persistent
# sudo apt install iptables-persistent
保存と、読み込み
# sudo /etc/init.d/netfilter-persistent save
# sudo /etc/init.d/netfilter-persistent reload
設定は
# sudo cat /etc/iptables/rules.v4
ココに反映されるようですね。
-[[UbuntuをWebサーバで使う時のiptablesの例 - DB@WEB>http://dbweb.0258.net/wiki.cgi?page=Ubuntu%A4%F2Web%A5%B5%A1%BC%A5%D0%A4%C7%BB%C8%A4%A6%BB%FE%A4%CEiptables%A4%CE%CE%E3]]
-[[Ubuntuでiptablesの設定をiptables-persistentで永続化する>http://iwashi.co/2015/01/16/ubuntu-iptables-persistent]]
-[[iptablesの設定 入門編 - Murayama blog.>http://murayama.hatenablog.com/entry/20100206/1265444193]]
-[[iptablesの設定方法 さくらのサポート情報>https://help.sakura.ad.jp/hc/ja/articles/206208121-iptables%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95]]
***よくある設定? [#q6464a92]
***デフォルトのポリシーを替える [#rec043c0]
install直後の初期状態はこちら。
# sudo iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
なんでも許可になっていますね。以下のように変更してみます。
# sudo iptables -P INPUT DROP // 自分への送信先のばあい、はすべて破棄
# sudo iptables -P FORWARD DROP // ルーティング?時はすべて破棄
# sudo iptables -P OUTPUT ACCEPT // 自分からの送信のばあい、はすべて許可
$ sudo iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
デフォルトの設定が変更されました。あ、この状態で、リモートで接続している場合は遮断されるのでご注意。
sshでつないでる場合は、上記より先に
# sudo iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
とやってSSHを許可しておいたり、
# sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
すでに確立されている接続についての応答パケットなどは許可、などを入れておきましょう。
**よくある設定? [#q6464a92]
# sudo iptables -F // defaultのポリシー以外の初期化。INPUTが DROPだとココで接続切れるので注意。
# sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT //セッション確立後の応答パケットとかなどは許可
# sudo iptables -P INPUT DROP // 自分への送信先のばあい、はすべて破棄
# sudo iptables -P FORWARD DROP // ルーティング?時はすべて破棄
# sudo iptables -P OUTPUT ACCEPT // 自分からの送信のばあい、はすべて許可
# sudo iptables -A INPUT -p icmp -j ACCEPT // pingなどICMPは許可
# sudo iptables -A INPUT -i lo -j ACCEPT // loopback 自分から自分への通信は許可。
あとは個別に、使ってるポートだけ穴開け。
# sudo iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
これでいいかな?
-[[立ち上げ直後のiptablesを設定する。 - Qiita>http://qiita.com/shimohiko/items/ec672655edb84578a82e]]
-[[セキュリティ強化対策(Iptables編)>http://www.aconus.com/~oyaji/security/iptables.htm]]
**TIPS集 [#t4d39c62]
*** 個別に設定の削除 [#i7f24d62]
$ sudo iptables -L --line-number
で行番号を表示して、
$ sudo iptables -D INPUT 2 ←行番号
で個別に削除可能
**関連リンク [#m465047f]
-[[UbuntuをWebサーバで使う時のiptablesの例 - DB@WEB>http://dbweb.0258.net/wiki.cgi?page=Ubuntu%A4%F2Web%A5%B5%A1%BC%A5%D0%A4%C7%BB%C8%A4%A6%BB%FE%A4%CEiptables%A4%CE%CE%E3]]
-[[iptablesの設定 入門編 - Murayama blog.>http://murayama.hatenablog.com/entry/20100206/1265444193]]
-[[iptablesの設定方法 さくらのサポート情報>https://help.sakura.ad.jp/hc/ja/articles/206208121-iptables%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95]]
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}