sql >> データベース >  >> RDS >> Mysql

MySQLポートアクセスを制限する方法

    一部のLinuxディストリビューションでは、MySQLをインストールした後にポート3306が開いています。この記事では、管理されていないサーバーのポート3306へのアクセスを制限またはブロックする2つの方法について説明します。

    この記事の情報は、管理されていない製品にのみ適用されます。以下に説明する手順を実行するには、サーバーへのルートアクセス権が必要です。

    方法#1:MySQLネットワーキングを無効にする

    外部コンピュータからMySQLにアクセスする必要がない場合は、MySQLネットワーキングを無効にすることができます。

    Linuxディストリビューションについては、以下の適切な手順に従ってください。

    MySQLネットワーキングが無効になっている場合でも、必要に応じてリモートコンピューターからMySQLに安全にアクセスできます。これを行うには、SSHトンネルを構成できます。これを行う方法については、この記事を参照してください。
    CentOSとFedora

    CentOSおよびFedoraでMySQLネットワーキングを無効にするには、次の手順に従います。

    1. SSHを使用してサーバーにログインします。
    2. コマンドプロンプトで、お好みのテキストエディタを使用して /etc/my.cnfを開きます。 ファイル。
    3. my.cnfで次の行を見つけます ファイル:
      #skip-networking
      この行がmy.cnfにない場合 ファイル、追加します。
    4. を削除します 行の先頭に署名して、行が次のようになるようにします。

      skip-networking
    5. 変更を/etc/my.cnfに保存します ファイルを作成し、テキストエディタを終了します。
    6. 次のコマンドを入力して、MySQLサービスを再起動します。

      service mysqld restart

      これで、サーバーでポート3306が閉じられました。

    DebianとUbuntu

    デフォルトでは、DebianおよびUbuntu上のMySQLは localhostのみを使用するように構成されています。 ネットワーキング用のインターフェース(IPアドレス127.0.0.1)。これは、ポート3306が外部接続に対して閉じられていることを意味します。これがサーバーの構成であることを確認するには、次の手順に従います。

    1. SSHを使用してサーバーにログインします。
    2. コマンドプロンプトで、お好みのテキストエディタを使用して /etc/mysql/my.cnfを開きます。 ファイル。
    3. MySQLを見つけます バインドアドレス my.cnfの行 ファイル。次のようになります。
      bind-address = 127.0.0.1
      MySQLの場合 バインドアドレス 行は0.0.0.0に設定されます (またはアドレスがまったくない場合)、接続はすべてのインターフェイスで開かれます。
    4. /etc/my.cnfに変更を加えた場合 ファイルを作成して保存し、テキストエディタを終了します。
    5. MySQLサービスを再起動するには、次のコマンドを入力します。

      service mysql restart

      これで、サーバーでポート3306が閉じられました。

    方法#2:ファイアウォールルールを構成する

    iptablesを使用して、ポート3306へのアクセスを制限するファイアウォールルールを作成できます。この方法の利点は、IPアドレスまたはその他の基準に基づいてポート3306へのアクセスを選択的に許可または拒否できることです。

    たとえば、ポート3306への外部アクセスを完全にブロックするには、次のコマンドを入力します。

    iptables -A INPUT -p tcp --dport 3306 -j DROP
    

    同様に、特定のIPアドレスへのアクセスを許可し、他のすべてのIPアドレスをブロックするには、次のコマンドを入力します。 xxx.xxx.xxx.xxxを置き換えます アクセスを許可するIPアドレス:

    iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT
    iptables -A INPUT -p tcp --dport 3306 -j DROP
    

    INPUT にルールを挿入することで、MySQLに追加のIPアドレスへのアクセスを許可できます。 DROPの前のチェーン ルール。例:

    iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT
    

    1. MySQLで日付から年と月を取得する方法

    2. データ型の選択はどの程度の影響を与える可能性がありますか?

    3. ORA-12704:文字セットの不一致

    4. SQLiteデータベースの特定の行を削除するにはどうすればよいですか?