sshdのポートを変更する(Linux・CentOS編)

最近、vpsサーバでsshdのポートに対するアタックが増えているようなので、ポートを22番から変更することにしました。

まず最初に、sshdのポートそのものの設定を変更します。

vi /etc/ssh/sshd_config

でファイルを開くと、中に、

#Port 22

という記述がありますので、それを

Port xxxx

のように変更します。(xxxxは、お好きなポート番号を指定してください。)

また、LinuxというかCentOSでは一般的にiptablesでルーティングの設定をしています。

上記の設定でポートだけ変更しても、このルーティングの規則を変更していないと、外からアクセスできません。

設定変更してもアクセスできない!という問題の原因はこれのことが多いですので、気をつけてください。

vi /etc/sysconfig/iptables

で設定ファイルを開くと、

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

といった記述があります。

これが22番ポートに対するルーティングの設定ですので、これをコピーして、

-A INPUT -m state --state NEW -m tcp -p tcp --dport XXXX -j ACCEPT

のように変更した行を追加しましょう。設定が終わったら、

/etc/init.d/iptables restart

で再起動しておきます。(追加したのは、新しいportで接続できなかった時の保険です。接続確認できたら、22番ポートの記述は削除して再度、再起動しておくとよいと思います。)

最後に、

/etc/init.d/sshd restart

でsshdのポート変更を反映するために再起動しておきましょう。

おまけ

おまけというか、直接は関係ないですが、やっておくと良い設定は、「/etc/services」の設定の変更です。

サービス名とそこで使われるポート番号、プロトコル(tcp/udp)との 対応関係を記述したファイルが /etc/services です。

このファイルは サービス名のデータベースで、netstat コマンドやinetd などで参照され、どのポートが既に使われているかを把握する手段となるため、今後、思わぬところで足をすくわれないよう変更しておくことをお勧めします。

vi /etc/services

でファイルを開き、

ssh 22/tcp
ssh 22/ucp

の22の部分を、xxxxのように変更後のsshdポートに変更しておきましょう。