サーバーのポート6379へのアクセスをブロックしたいのですが、それでも内部的に接続したいと思います。redis-serverアプリケーションはそのポートで実行され、ローカル(127.0.0.1)にのみ接続したいと思います。これどうやってするの?
サーバーのポート6379へのアクセスをブロックしたいのですが、それでも内部的に接続したいと思います。redis-serverアプリケーションはそのポートで実行され、ローカル(127.0.0.1)にのみ接続したいと思います。これどうやってするの?
回答:
これを行うには、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
何かのようなもの
iptables -A INPUT -s 0.0.0.0 -i eth0 --protocol tcp --dport 6379 -j DROP
うまくいくはずです。