プログラミング修行記

Webサービスを自作したい25歳の修行記

【ssh】ポート番号を変更しよう

ssh接続を利用する際にはポート番号を変更したほうがよかです。


ポート番号を変更したほうが良い理由

なぜ、ポート番号を変更したほうが良いのか。
それは、セキュリティ強化のためです。

ssh接続ってデフォルトだとポート番号は”22”になっています。
この22が結構危険らしい。

と言うのも、インターネットでは全世界の22番ポートをくまなく調べて、セキュリティホールのあるサーバーが無いかチェックしている危ないロボットがいるそう。

参考:「ssh port 変更 さくら 専用サーバ できない」 などのワードで検索引っかかってこい

ポート番号の変更は、こうした無差別攻撃を簡単に防ぐことができるので、できればというか、必ずやっておきたいですね。


ポート番号の変更方法

ポート番号の変更はいたって簡単です。

設定ファイル/etc/ssh/sshd_configの中にポート番号の記述があるので、それを変えてあげるだけ。
実際にやっていきます。


1. vim/etc/ssh/sshd_configを開きます。

sudo vim /etc/ssh/sshd_config

/etc/ssh/sshd_configはrootユーザーかsudoコマンドを使って開きます(じゃないと編集できない)


2. ファイルの中にポート番号っぽい記述があるので、コメントアウト#を外して、お好みの番号に変えてあげます。

#Port 22

今回は、ポート番号を33333に変更してみます。

Port 33333


3. ポート番号の変更ができたら、ファイルは保存して終了しましょう。

4. sshdを再起動します。

sudo /etc/init.d/ssh restart

このような表示がされればOKです。

estarting ssh (via systemctl): ssh.service


5. ポート番号を未指定で接続を試みた場合どうなるか確認します。

% ssh <ユーザー名>@<接続先のIPアドレス>

ssh: connect to host <接続先のIPアドレス> port 22: Connection refused

「ポート22への接続が拒否されました」という表示が出ています。
22番ポートへの接続は無事封鎖されているみたいですね。


6. ポート番号33333で接続できるかチェック。

ssh -p 33333 <ユーザー名>@<接続先のIPアドレス>
.
.
(省略)
.
.
[<ユーザー名>@<ホスト名>] ~ 16:10:40 $

接続先のプロンプトが表示されました!
無事接続に成功しました。


まとめ

今回は、sshのポート番号変更についてでした。

「22番とウェルノウンポートは危ないよ」ということが勉強になりました。
変更方法は非常にシンプルなので、やっておいて損はないですね!

OS(Operating System)についてのまとめ

Webアプリケーション開発を学んでいくにあたって、OSのことをきちんと理解しておいたほうが良いと思ったので、調べたことを本ブログにまとめておく。


OS(Operating System)とは

パソコンやスマートフォンといったコンピュータ類を動かすために欠かせない基本的なソフトウェア。

ユーザーの使いやすいように、システム全体を統制(オペレーション)するのが大きな役割。

コンピュータの2大構成要素であるソフトウェアとハードウェアの間に立って、お互いが問題なく連携/動作できるように面倒を見てくれているイメージ。

どの端末でどんなアプリケーションを使っても一貫した操作が可能なのは、OSが入っているため。

逆にOSが入っていなければコンピュータが動くことは一切ない。


OSの役割

OSの役割は非常に多岐にわたるので、今後知っておいた方が良いと思われるものだけを抜粋。


ハードウェア管理・制御
  • キーボードやマウスを初めとした多種多様な外部からの入力を認識/統制して、アプリケーション側に伝える。
  • スピーカー出力や画面表示などの出力も担う。
  • OSがこの役割を担ってくれているから、ハードウェアを意識することなくアプリケーション開発ができる。
タスク管理
  • アプリケーションの起動や終了、切り替えなどを管理する。
  • 処理の順序(プロセスという)を統制したり、タスクを実行するのに必要なリソース(容量やメモリなど)を割り振るといったマネージャー的なことも行う。
  • 複数のアプリケーションを同時にサクサク動かすことができるのもOSのおかげ。
ファイル管理
  • ファイルを作り、名前をつけたり、読み書きしたりすることができる。(ファイルシステムという)
  • これによって、膨大な量のデータをまとめて効率的に管理することが可能。
ネットワーク管理
  • 異なるコンピュータ間でのデータの送受信。
  • HTTPS通信を利用したWebサーバーとのやり取り。


代表的なOS

OSにもいろいろと種類がある。 代表的なものをピックアップ。

Windows

Microsoft社が開発するパソコン用のOS。

圧倒的なシェアを誇るため対応しているソフトが多いが、ユーザーが多い分セキュリティは脆弱がち。

GUI操作ができて、大きな会社はほぼほぼWindowsを使っているイメージ。

MacOS

Apple社が開発するパソコン用のOS。

グラフィックや操作性に強み。クリエイティブ系の作業で使われることが多い。

ベンチャー企業Macのイメージが強い。

Linux

サーバー用に使われることの多いOS。

オープンソースのため誰でも無償で利用、改変などができる。

Red HatCentOSなど、派生OSもたくさん。(Linuxディストリビューションと言う。)

軽さを重視したCUI操作が中心で、Webアプリ開発などにおいてはLinuxを扱うことが多い。

ChromeOS

Google社が開発するパソコン用のOS。

Linuxをベースとして、GUI機能を拡充させた形で開発された。

ブラウザ上で多くの作業が行えることや、Androidのアプリを扱えることが特徴。

Chromebook欲しい。)

iOS

Apple社が開発するスマートフォン用のOS。

iPhoneに搭載。

Android

Google社が開発するスマホ用のOS。


まとめ

  • OSは、コンピュータの構成要素である「ソフトウェア」と「ハードウェア」の仲介役となる基本的なソフトウェア。
  • システムの中核となる様々な役割を担っており、コンピュータを動かすために欠かせない存在。
  • Microsoft社やApple社を中心に、いろんなOSが開発されている。
  • Webアプリ開発では、サーバー用OSであるLinuxへの理解が求められる。


参考にしたURL

【まとめ】CSS|セレクタによるスタイルの優先順位

CSSを勉強していると、きちんとスタイルを指定しても何故かそれが反映されないということがありました。
不思議に思ったので調べてみると、どうやらCSSにはスタイルの優先順位があるそう。
良い機会なので、CSSスタイルの優先順位について簡単にまとめてみました。


【目次】


パターン① セレクタの種類が同じ場合

これはシンプルです。
全く同じセレクタに対して同じプロパティを設定している場合です。
この場合は、より後から読み込まれたスタイルが優先されてプロパティが上書きされます。

例えば、以下のようなパターン。

p {
    color: orange;
}
.
.
.

p {
    color: red;
}

pタグに対して、先にcolor:orange;と指定をした後に、またcolor:red;というように、同じセレクタに対して同じプロパティを設定しています。
この場合は、後に書かれているcolor:red;が優先され、文字は赤色になります。


パターン② セレクタの種類が異なる場合

こちらのパターンが少しややこしかったです。
ですが、一度法則を頭に入れてしまえば問題なさそうです。

このパターンはつまり、
「指定方法(セレクタ)は違うんだけど、指定している箇所は同じor一部被っている」
場合のことです。

classやidをセレクタにしている時ですね。
例えば、以下のようなパターン。

【HTML】

<p id="abc" class="def">テキスト</p>

CSS

p#abc {
    color: red;
}
.
.
.
p.def {
    color:orange;
}
.
.
.
p {
    color:black;
}

このCSSは、セレクタの種類こそ違いますが、すべて同じ箇所のスタイルを指定しています。
この場合は、”テキスト”の部分が何色になるのが正解なのか...

正解は...

テキスト

です。

どういうことかと言うと、セレクタごとに優先順位があるみたいです。
優先順位は以下のとおりです。

id > class > タイプセレクタ(要素のみを指定するパターン) > 全称セレクタ

更に細かく言うと、

要素を特定したid(p#abc) > id > 要素を特定したclass(p.def) > class > タイプセレクタ(要素のみを指定するパターン) > 全称セレクタ

となります。

上の例だと、「要素を指定したidセレクタ」であるp#abc {color: red;}が最優先されたというわけですね!


まとめ

最後にまとめです。

①同じセレクタで、同じプロパティが指定された場合

  後から読み込まれたスタイルが優先される

②異なるセレクタで、同じプロパティが指定された場合

  要素を特定したid > id > 要素を特定したclass > class > タイプセレクタ > 全称セレクタ

優先順位をきちんと理解した上で、きれいなCSSをかけるようになりたいですね!