iptablesの初期設定を実施する
SSHについては、前述のとおりにパスワード認証を無効にしました。これまでにも不要なサービスを起動しないようにして、外部に対してサービスを待 ち受けているポートは最小限になっています。サーバーを構築する前には、最低限のフィルタリングは実施しておくのが基本です。
Linuxで標準的に使われているしくみはiptablesですが、sargeではiptablesのためのスクリプト類は存在しません。このため、以下にあげた内容などからいずれかを実施する必要があります。
- /etc/network/interfacesに処理を記述する
- /etc/init.d/iptablesスクリプトを作成する(注3)
/usr/share/doc/iptables/examples/oldinitdscript.gz
ただし、/etc/init.d/iptablesスクリプトについては、ネットワークサービスが起動される前に実行される必要があります。このた め、「起動順序」も確認します。/etc/network/interfacesにiptablesのルール適用を記述する方法は、ネットワークインター フェイスが有効になる「前」にiptablesのルールを適用できるというメリットがあります。
元のフィルタルールを作成する(iptablesで作成する)
iptablesそのものの解説は本稿では省略します。元のフィルタルールを作成するためのアプローチとしてはいくつかあり、例えば以下のようなものが考えられます。
- 手動でiptablesコマンドを用いてルールを設定する
- あらかじめ別のディストリビューションで作成したルールを移植する
前者は、iptablesを逐次実行し、ルールを追加していくものであり、最終的に完成したルールをiptables-saveを用いて保存します。
後者は、すでにでき上がっているルールをiptables-saveで保存し、それをDebian用に使うというものです。
筆者は、本稿で構築するサーバー向けに、リスト12のようなルールを作成しました。
リスト12:iptablesのルール(/etc/fwrules)
このルールは、もともとはFedora Core 5で作成されたものを改変して使っています。決してベストということはありませんが(注4)、さしあたりこのような形で設定するのだな、と知っていただければよいでしょう。
本稿のルールでは、サーバーから外に対する接続は特に制限していませんが、必要に応じてフィルタを実施したほうがよいでしょう。
また、必要なサービスが他にある場合には、リスト12において「--dport 22 -j ACCEPT」で終る行をコピーし、ルールを追加すれば事足りますが、よほどのことがない限りはDomain-0に対するアクセスはむやみに許可しないほ うが賢明です。普通に使う分には、SSHのポートフォワードを用いるなどして、限定されたユーザーのみが接続を行えるようにしておきましょう。
