開発者ドキュメント

MongoDB – リモートアクセスを許可する

このチュートリアルでは、MongoDBサーバーへのリモートアクセスを有効にする方法を説明します。テスト済みの環境を次に示します。

__P.Sデフォルトでは、MongoDBはリモート接続を許可しません。

1.バインドIP

$ vim/etc/mongod.conf

#/etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.
bind__ip = 127.0.0.1

デフォルトでは、MongoDBはローカルインタフェースにのみバインドされ、リモート接続を制限します。セキュリティを気にしない場合は、コメントアウトしてリモート接続を受け入れる(推奨しない)。

  • 1.1 Application ServerからのLAN接続を許可する** 両方が同じLANネットワークにあるため、MongoDBを専用のプライベートIPインタフェースにバインドするだけで済みます。

$ vim/etc/mongod.conf

#/etc/mongod.conf

# Listen to local and LAN interfaces.
bind__ip = 127.0.0.1,192.168.161.100
  • よくある間違い** Application Server IPを `bind

    ip`オプションに入れないでください。この `bind

    ip`オプションは、MongoDBにローカルネットワークインタフェースからの接続を受け入れるように指示します。リモートIPアドレスではありません。

デフォルト – 接続失敗

AS (192.168.161.200) <-- LAN --> MongoDB(192.168.161.100) <--> bind__ip (127.0.0.1)

今すぐ – 接続の成功

AS (192.168.161.200) <-- LAN --> MongoDB(192.168.161.100) <--> bind__ip (192.168.161.100, 127.0.0.1)
  • 1.2開発者は自宅の開発者にリモートアクセスを許可する** 開発者はMongoDB public IP 45.56.65.100を介してリモートアクセスし、これを許可してパブリックIPインターフェイスもバインドする。

$ vim/etc/mongod.conf

#/etc/mongod.conf

# Listen to local, LAN and Public interfaces.
bind__ip = 127.0.0.1,192.168.161.100,45.56.65.100
  • Note ** +家庭の開発者にとっては、MongoDBパブリックIP接続を開く代わりに、VPN接続を設定することをお勧めします。これは人の攻撃に対して脆弱です。

MongoDBを再起動して有効にします。

$ sudo service mongod restart[ok]Restarting database: mongod.

2. IpTablesファイアウォール

もしあなたがファイアウォールを持っていれば、 `27017`ポート、MongoDBのデフォルトポートで接続を許可してください。

  • 2.1任意の接続はポート27017でMongoDBに接続できます**

iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
  • 2.2特定のIPだけがポート27017のMongoDBに接続できます**

iptables -A INPUT -s <ip-address> -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d <ip-address> -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

iptables -A INPUT -s 192.168.161.200 -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d 192.168.161.200 -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
  • 注意** このhttp://docs.mongodb.org/manual/tutorial/configure-linux-iptables-firewall/[MongoDBファイアウォールのドキュメント]を参照してください。

2.3私のMongoDBサーバーの1つで使用されているファイアウォールルールを次に示します。

/etc/iptables.firewall.rules

** filter

-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp --dport 27017 -j ACCEPT

#-A INPUT -s <ip address> -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
#-A OUTPUT -d <ip address> -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

#  Allow SSH connections
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Drop incoming connections if IP make more than 15 connection attempts to port 80 within 60 seconds
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60  --hitcount 15 -j DROP

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

iptablesのルールを更新する

sudo vim/etc/iptables.firewall.rules
sudo iptables-restore </etc/iptables.firewall.rules

参考文献

設定ファイルのオプション]。

http://docs.mongodb.org/manual/tutorial/configure-linux-iptables-firewall/

[Configure

Linuxのiptablesファイアウォールfor MongoDB]。

https://help.ubuntu.com/community/IptablesHowTo

[Ubuntu:

あなたのサーバーを保護する]

リンク://タグ/iptable/[iptable]リンク://タグ/mongodb/[mongodb]リンク://タグ/リモートアクセス/[リモートアクセス]

モバイルバージョンを終了