インターネットに外部公開するCentOS+SQLServerサーバで、外部からSQLServerへ接続可能にする場合、パスワードを強固なものにするだけでは不十分で、SQLServerの接続ポート番号変更とIP制限するセキュリティ対策が必須です。その設定を簡潔に纏めました。
自分の管理下にあるマシンからのみ、任意のポート番号でSQLServerへ接続できるようにすることで、セキュリティを強固に出来ます。
[今回の設定値]
外部公開サーバ:192.168.11.31
管理下のマシン:192.168.11.30
任意ポート番号:50002
OSバージョン:CentOS Linux release 7.6.1810 (Core)
SQLServer:Microsoft SQL Server 2017 (RTM-CU15-GDR) – 14.0.3192.2 (X64)
[手順]
外部公開したCentOSサーバには、SQLServer本体と、mssqlツールがインストール済みであることが前提。
1. SQLServerのポート番号を変更
SQLServerの構成マネージャー(mssql-conf コマンド)で、Network.tcpportのsetコマンドを使用して、SQLServerのポート番号を変更。
デフォルトポート番号は 1433 。
1 2 3 |
# sudo /opt/mssql/bin/mssql-conf set network.tcpport 50002 |
SQLServerのサービスを再起動。
1 2 3 |
# sudo systemctl restart mssql-server |
2. CentOSのファイアウォールでSQLServerのポートをIP制限付きで開放
ポート開放
1 2 3 |
# firewall-cmd –zone=public –add-rich-rule=’rule family=ipv4 source address=192.168.11.30 port protocol=tcp port=60002 accept’ –permanent |
ファイアウォールリロード
1 2 3 |
# firewall-cmd –reload |
3. 接続確認
管理下のWindowsマシン(192.168.11.30)から、SQLServer Management Studioで外部公開したSQLServer(192.168.11.31)に接続。
IPの後ろにカンマ区切りでポート番号を入力する。
※ポート番号を変えた場合、localhostで内部接続する際も、ポート番号の指定が必要になる。
1 2 3 |
# sqlcmd -S localhost,50002 -U sa |
参考
SQL Server on Linux
SQL Server をインストールします
Linux 上の SQL Server を mssql-conf ツールを構成します
コメント