iptablesを素で使うほうが馴れてるんだけど、
Ubuntu流では ufw を使うものらしい。
ufw を使うと、簡単にファイアウォールの設定ができる。
具体的には iptableのルールをそれっぽく作ってくれて便利。
IPv6のルールも作ってくれるのがおいしいところ。
ちなみに iptables を素で使うやり方は以下。
Ubuntu で iptables を起動時に立ち上げる --> [2010-10-04-2]
下準備として sshd のポートは変更しておきたいので、
sshd の設定を変更。
sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.dist
sudo vi /etc/ssh/sshd_config
変更点。
diff -u /etc/ssh/sshd_config.dist /etc/ssh/sshd_config
...
-Port 22
+Port <変更したポート番号>
sshd再起動。
sudo vi /etc/init.d/ssh restart
接続確認。
ssh -p <変更したポート番号> ホスト名
ufwのアプリケーション設定ファイルにも、
ポートを変更したsshdサーバの設定を追加。
cd /etc/ufw/applications.d
sudo cp openssh-server openssh-server-another
sudo vi openssh-server-another
変更点は以下。
diff -u openssh-server openssh-server-another
-[OpenSSH]
+[OpenSSH Another]
..
-ports=22/tcp
+ports=<変更したポート番号>/tcp
sshに関する下準備終了。
いよいよ、ufwの設定。
まずは現状確認。
sudo ufw status
ufwの有効化。
sudo ufw enable
ステータスの確認。
sudo ufw status
その時の iptables の確認。
ちゃんとそれっぽいベースルールができている。
icmp回りのルールもしっかりできている。
sudo iptables -L
いよいよ、ルール投入。
ssh と apache のポートだけ空けてる。
Apache Fulle を指定すると 80番と443番が開く。
sshの接続には limit も追加。
sudo ufw default deny && sudo ufw allow 'OpenSSH Another'
sudo ufw allow 'Apache Full'
sudo ufw limit 'OpenSSH Another'
最初の1行は分けても良いけど、ssh接続して設定してる場合では、
SSH接続してる足場がなくなっちゃうので && で繋げてる。
ステータスを確認。
sudo ufw status
iptables のルールを見ると、ちゃんと limit もかかっている。
便利で簡単。