web-dev-qa-db-ja.com

ubuntuの外部トラフィックに対してポート6379をブロックするにはどうすればよいですか?

サーバーのポート6379へのアクセスをブロックしたいのですが、それでも内部的に接続したいと思います。 redis-serverアプリケーションはそのポートで実行されており、ローカル(127.0.0.1)にのみ接続したいと思います。これどうやってするの?

8
Steve Rodrigue

これを行うには、IPTablesルールが正しく構成されていることを確認する必要があります。 Ubuntuは通常、デフォルトでサーバーを広く開いたままにします。そのため、すでに適切にこれを行う方法を十分に理解していない限り、サーバーとしての使用はお勧めしません。

私はあなたのiptables -L -nvはこのように見えます、そうですか?

# iptables -L -nv
Chain INPUT (policy ACCEPT 4M packets, 9M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 8M packets, 4M bytes)
 pkts bytes target     prot opt in     out     source               destination

それは空で、大きく開いています。 Ubuntu IPTables HowToはおそらくこれでかなり役に立ちます。 ( https://help.ubuntu.com/community/IptablesHowTo

私は次のようなものをお勧めします。これにより、任意のインターフェースでSSHを許可し、TCP 6379で任意のインターフェースを許可しますが、不要なインターフェースは許可します。

*filter
:INPUT DROP [92:16679]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [203:36556]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 6379 -j ACCEPT
-A INPUT -i lo -p udp -m udp --dport 6379 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT

次に、このファイルを/etc/iptables.rulesに保存します。

明らかに、特に開いてほしい他のポートを追加する必要があります。

注:明確にするために、特定の6379行を追加しました。 Linuxシステムでは、適切な操作のためにすべてのループバック接続を許可する必要があるため、COMMITの直前のACCEPTは実際にはこれを許可します。

また、ルールが/ etc/network/interfacesファイルにも含まれるようにして、インターフェースが起動したときにルールが追加され、ブートプロセスの後半では追加されないようにします。このようなものを追加することをお勧めします:

auto eth0
iface eth0 inet dhcp
  pre-up iptables-restore < /etc/iptables.rules

編集:この構成を最初にロードするには、上記のiptables-restoreコマンドを実行する必要があります。

iptables-restore < /etc/iptables.rules
10
Magellan

まあ、私は "複雑でないファイアウォール"(ufw)を使うことを勧めます。これはcanonicalでも推奨されています。 iptablesの読み書きは、たまにポートロックタスクを行うには複雑すぎます。

ここを参照してください: https://wiki.ubuntu.com/UncomplicatedFirewall

3
mojovski

何かのようなもの

iptables -A INPUT -s 0.0.0.0  -i eth0 --protocol tcp --dport 6379 -j DROP

うまくいくはずです。

2
Kedare