iptablesをubuntuに設定してみた

2019年5月10日

iptablesというのはLinux系OSで使われいるファイヤウォールみないたものですね。VPSで自分でサーバを管理していると常に世界中から攻撃がきますので、適宜こういったツールで攻撃を防ぐ必要がありますよね。sshやPHPmyadminを狙ったアクセスが特に多いですね。

ここではiptablesを設定するためにiptales-pesistentというツールを使用してみます。これを使うことで設定ファイルに設定することができます。

Ubuntu 18.04で実施してます

インストール

$ sudo apt-get install iptables-persistent
iptables-persistent画面

ipv4,ipv6用ファイル保存を確認されますので、yesしときます。

インストールが成功すると

/etc/iptables/ipv4.rules

/etc/iptables/ipv6.rules

と設定ファイルが2つできますので、設定していきます。

不正なアクセスIPを定期的に収集して手動で禁止してみます。

/etc/iptables/ipv4.rules に

-A INPUT -s X.X.X.X -j DROP

のように禁止したいIPを追加して、

$ sudo iptables-restore < /etc/iptables/rules.v4

で再読み込みするとX.X.X.Xがブロックされます。

似たような機能にhosts.allowファイルとhosts.denyファイルがありますが、httpアクセスはhosts.denyではブロックされないようですので、これでIPブロック実施しています。

iptablesはめちゃくちゃ多機能なので、全部を理解しきれないですが、最低限の不正HTTPアクセスは禁止したいですね。

個人的にはiptablesのChainの機能、場所を理解すれば理解も進むと思います。

よく見るのはこんな図でしょうか。青色部分が5つのChainsです。

itablesチェーン関係図
iptablesのchains関係

あんまり設定しなかもしれませんが、FORWARDを使う場合はちゃんと理解する必要があります。FORWARDの転送制御をしたい場合はFORWARDで制御する(当たりまえ?)必要がありますよね。私はFORWARDの設定制御をINPUTでやろうとして時間を激しく浪費したことがあります。。

ubuntu

Posted by kitakantech