すべてのIPがサーバー上のすべてのエントリにアクセスできないようにブロック

すべてのIPがサーバー上のすべてのエントリにアクセスできないようにブロック

私の家のIP以外のすべてのIPをブロックしたいです。これを行う何もない私のサーバーに。

iptablesでどうすればいいですか?たとえば、私の家のIPが1.2.3.4であるとします。

私のサーバーはまださまざまなIPに接続できるはずです。また、これを行うと一般的な問題が発生しますか?

このような? (動作しない)

/sbin/iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -j DROP
iptables -A OUTPUT -d 0.0.0.0/0 -j DROP

答え1

OUTPUTチェーンを静かに保ちます。これをあなたのINPUTチェーンに入れる

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -j DROP    # or REJECT

最初のルールを使用すると、構成iptablesで確立された接続へのトラフィック(つまり、自分のサーバーから開始して別の宛先に向かうトラフィック)を許可できます。

答え2

/etc/hosts.denyとを使用できます/etc/hosts.allow

/etc/hosts.allow:

ALL: allowed_ip

/etc/hosts.deny:

ALL: ALL

この設定は許可されたIPからのみサーバーにアクセスします(一部の場合は問題になる可能性があります)。おそらくfirewallサーバーへのアクセスを指定するには、一部を使用する必要があります。

ただし、上記の方法はICMP要求を処理しませんhttpd。次のことを試すことができます。

# Allow your server to other destinations
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Default Policy to DROP all incoming traffic
iptables -P INPUT DROP

# Allow traffic from source 1.2.3.4
# Add an additional rule for each allowed source
iptables -A INPUT -s 1.2.3.4 -j ACCEPT

関連情報