web-dev-qa-db-ja.com

sshとhttpsのみを許可するiptables

[〜#〜] ssh [〜#〜]のみを許可するために、デバイスのiptablesを設定しようとしています/ [〜#〜] https [〜#〜]トラフィック。特に、HTTPSプロトコルは、JavaクライアントからREST APIをリモートサーバーに向けて呼び出すために使用されます。

これは私のiptablesです:

iptables -F

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#HTTPS
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

IptablesによってブロックされるHTTPSトラフィックを除いて、すべてが期待どおりに機能します。

私は何を間違えましたか?

2
wyr0

すべての送信ルールをブロックしないでください。他のサーバーからデータを取得するためのソースとしてポート443は選択されません。また、サーバーのセキュリティを確保するには、受信規則をブロックするだけで十分だと思います。残りはすべて良いです。必要に応じて、以下のルールを使用できます。

iptables -F
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -j DROP
5
Gaurav Pundir