iptableの設定

DROPREJECTの違いに関して

DROPの場合は、パケットを破棄するのみで、送信元への通知は行われません。

Chain INPUT (policy DROP)
target     prot opt source               destination  

一方REJECTの場合は、「reject-with icmp-port-unreachable」のように送信元に対してエラーメッセージの通知を行います。その後DROPと同様にパケットの破棄を行います。

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

エラーメッセージはここを参照にして、以下のように設定できます。

[root@new-host ~]# iptables -A INPUT -j REJECT --reject-with icmp-host-unreachable

のようにport-unreachableからhost-unreachableに設定することで、サーバの存在を外部から隠蔽することもできます。

どちらを選ぶべきなのか

REJECTの場合は、返信を返すという特性上サーバの存在を攻撃者に対して曝露してしまうことになります。一方DROPの場合は、確かにサーバの存在を隠蔽できますがリモートからの保守性が落ちてしまいます。どちらを選ぶべきかは、それぞれのメリット・デメリットに合わせるとよいでしょう。