忍者ブログ

エンジニア初心者の備忘録

エンジニア初心者が躓いたことハマったことを公開します!

SSHのポート番号を初期値の22番から変更する目的と方法

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

SSHのポート番号を初期値の22番から変更する目的と方法

今回はSSHのポート番号を初期値の22番から任意の番号へ変更する目的と方法についてまとめたいと思います。
また、このテーマに関して、単純ですが、プログラミング超初心者がかなりハマったことがあるのでそれも書き留めておきます。




1.目的

目的は下記の様なものになります。

SSHサーバーの初期設定は、22番ポートを利用します。このポート番号は一般的で広く知られているため、不正侵入のリスクが高まります。
『SSHのポート番号を変更 - SSHサーバーの設定』

また、このSSHのポートを変えるという方法には、当社の上司がまとめたこちらのサイト(『スイーツ(笑)と呼ばないで!! 08/31/16:29 ポートの変更とセキュリティ』)にあるように高度なセキュリティ対策ではないですが、

「セキュリティ上は変えたほうが良いに決まっている」と書いたが、すごく効果があるかは不明だが、変えたほうが良いのは間違いない、という程度の意思表示だ。
『スイーツ(笑)と呼ばないで!! 08/31/16:29 ポートの変更とセキュリティ』

このような、効果はあるようです。


2.方法


2-1
SSHの設定ファイル(/etc/ssh/sshd_config)のポート番号を初期値の22番から任意のポート番号(ここでは、12345番で説明します)に変更します。

sudo vi /etc/ssh/sshd_config

【変更前】
#Port 22
【変更後】
#Port 22
Port 12345

SSHの設定を反映させるために、sshdを再起動します。

sudo /etc/rc.d/init.d/sshd restart


2-2
Linux に実装されたパケットフィルタリング型のファイアウォール機能であるiptablesの設定を変更します。
変更前のSSHのポート番号の初期値である22番を拒否するようにして、新規に割り当てた任意のポート番号である12345番を許可します。

sudo vi /etc/sysconfig/iptables

【変更前】
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
【変更後】
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12345 -j ACCEPT

iptablesの設定を反映させるために、iptablesを再起動します。

sudo /etc/init.d/iptables restart

ここで、設定が間違っていた場合、接続できなくなるので、現在のSSH接続は切らないようにします。
別の画面で新規にSSH接続を行います(新規に割り当てた任意のポート番号である12345番で接続を行います)。
新規のポート番号である12345番で接続ができ、22番で接続できなければ変更が成功です。


3.ハマったこと...

SSHの設定ファイルを「/etc/ssh/sshd_config」ではなく「/etc/ssh/ssh_config」でおこなっていました。
/etc/ssh/ssh_config」はクライアント側の設定で、「/etc/ssh/sshd_config」はサーバー側の設定ファイルとなります。
今回は、外部からのSSH接続のための設定ですので「/etc/ssh/sshd_config」を変更する必要があります。
同じ階層にあるので、間違ってしましました!

sshとsshdの違いの詳細は下記の通りです。

man ssh

SSH(1)                    BSD General Commands Manual                   SSH(1)

NAME
     ssh - OpenSSH SSH client (remote login program)

~ (略) ~

DESCRIPTION
     ssh (SSH client) is a program for logging into a remote machine and for
     executing commands on a remote machine.  It is intended to replace rlogin
     and rsh, and provide secure encrypted communications between two
     untrusted hosts over an insecure network.  X11 connections and arbitrary
     TCP ports can also be forwarded over the secure channel.

     ssh connects and logs into the specified hostname (with optional user
     name).  The user must prove his/her identity to the remote machine using
     one of several methods depending on the protocol version used (see
     below).

man sshd
SSHD(8)                   BSD System Manager’s Manual                  SSHD(8)

NAME
     sshd - OpenSSH SSH daemon

~ (略) ~

DESCRIPTION
     sshd (OpenSSH Daemon) is the daemon program for ssh(1).  Together these
     programs replace rlogin(1) and rsh(1), and provide secure encrypted com-
     munications between two untrusted hosts over an insecure network.

     sshd listens for connections from clients.  It is normally started at
     boot from /etc/rc.  It forks a new daemon for each incoming connection.
     The forked daemons handle key exchange, encryption, authentication, com-
     mand execution, and data exchange.

     sshd can be configured using command-line options or a configuration file
     (by default sshd_config(5)); command-line options override values speci-
     fied in the configuration file.  sshd rereads its configuration file when
     it receives a hangup signal, SIGHUP, by executing itself with the name
     and options it was started with, e.g. /usr/sbin/sshd.

以上です!




【参考サイト】
『SSHポート番号をデフォルト22番から変更する方法【CentOS6.4(さくらVPS)】』
『Linux:SSH接続時のポート番号を変更する方法』
『SSH 接続のポート番号を変更 〜 CentOS6』
PR

コメント

プロフィール

HN:
プラムザ 太郎
性別:
非公開

P R