zip unzip(圧縮解凍)

データというものは、サイズがあり、それは年々肥大化していくが、それらの情報をそのまま使用していては、効率が良くないことは分かっている。
保存しておく情報、インターネット上の、いわゆる公共データ網でやり取りする情報などを中心に、効率性を上げるための技術として、「圧縮」という技術が存在する。
続きを読む

コマンドの連続実行

コマンド処理をしていると、セットで処理する項目が多々あります。
例えば、「apt-get」を利用したアップデートなどがそうです。
こういった物はそれぞれの処理に時間がかかる事があり、その間は次のコマンドの”入力待ち”だったりします。
そこで、連続でコマンドを入力する方法を解説します。

有名なところでは以下の3つです。

 「;」
  連続処理1つ目の処理の後に2つ目の処理します。 例:( [コマンド1] ; [コマンド2] )

 「&&」
  真処理1つ目の処理が成功であれば次の処理を実行します。 例:( [コマンド1] && [コマンド2] )

 「||」
  偽処理1つ目の処理が失敗であれば次の処理を実行します。 例:( [コマンド1] || [コマンド2] )

以上です。

CUIの表示結果の制御(less & more)

最近CUIでの操作が多く、コマンドを入力し結果が返ってくる訳ですが、よく出力行数は画面の高さを超えることがあります。
一行目は勿論、重要な部分までもがフレームアウトしてしまう為、困ってしまう事態に陥ります。
DOSでは末に”/p”と入力すれば画面が”待って”くれました。
Linuxでは以下のコマンドを利用していきます。
続きを読む

yum(ファイル管理)

 「yum」コマンドはファイル管理をするプログラムです。

 「yum」コマンドでは、rpmパッケージの管理、アップデート、インストールやアンインストールを行う事が出来ます。
 なお「アップデート」「インストール」「アンインストール」に付いては「-y」オプションを指定しておくと、アナウンスに対して、全てを「はい(yes)」に指定します。

 例:「# yum -y <オプション>

 コマンドは以下の方法で記述します。

 # yum <オプション>

 オプションについては以下の指定となります。

 check-update
  アップデート可能なパッケージを確認

 clean all
  ダウンロードしたパッケージ
  古いヘッダを削除します(cleanだけでも可)

 install <パッケージ名>
  指定したパッケージをインストール

 list
  利用可能なパッケージを確認

 remove <パッケージ名>
  指定したパッケージをアンインストール

 update
  アップデート可能なパッケージをアップデートします
  <パッケージ名>を指定すると特定のパッケージをアップデート出来ます。


yumの高速化・ミラーサーバーの最適化

ここで一つお奨めですが、ミラーサーバーは世界に多数あります。
それぞれ速度にもばらつきがありますので、速度の速いサーバーへの接続が好まれます。
そこで以下のパッケージを予めインストールしておけば、そういった設定を自動的に行ってくれますので、以下のコマンドを実行してインストールしてみて下さい。

 # yum -y install yum-fastestmirror

rpm(ファイル管理)

 「rpm」コマンドは「レッドハット」社は開発した、「rpmファイル」の管理をするプログラムです。

 「rpm」コマンドでは、rpmファイルのアップデート、インストールやアンインストールを行う事が出来ます。

 コマンドは以下の方法で記述します。

 # rpm <オプション>

 オプションについては以下の一部の指定となります。

 -qa
  全てのパッケージを確認

 -qi <パッケージ名>
  指定したパッケージの情報を表示

 -pl <パッケージ名>
  指定したパッケージのインストール先を参照

 -i <パッケージ名のパス>
  指定したパッケージをインストール
  進捗度の確認をする為に「-v」と「-h」オプションを指定しておく
   例:「# rpm -ivh <パッケージ名のパス>

 -U <パッケージ名のパス>
  指定したパッケージをアップデート
  進捗度の確認をする為に「-v」と「-h」オプションを指定しておく
   例:「# rpm -Uvh <パッケージ名のパス>

 -e <パッケージ名>
  指定したパッケージをアンインストール

apt-get(ファイル管理)

 「apt-get」コマンドはLinuxのディストリビューションの代表系列の一つ、「Debian」系のパッケージ管理プログラムです。

「Debian」系のパッケージ、「debファイル」等の管理、アップデート、インストールやアンインストールを行う事が出来ます。
なお「アップデート」「インストール」「アンインストール」に付いては「-y」オプションを指定しておくと、アナウンスに対して、全てを「はい(yes)」に指定します。

例:「# apt-get -y <オプション>

コマンドは以下の方法で記述します。

# apt-get <オプション>

オプションについては以下の一部の指定となります。

clean
ダウンロードしたアーカイブファイルを削除

install <パッケージ名>
指定したパッケージをインストール

list
利用可能なパッケージを確認

remove <パッケージ名>
指定したパッケージをアンインストール

update
パッケージリストの更新

upgrade
アップデート可能なパッケージをアップデートします
<パッケージ名>を指定すると特定のパッケージをアップデート出来ます。

dpkg(ファイル管理)

 「dpkg」コマンドは「Debian」系で利用されている「debファイル」の管理をするプログラムです。

 「dpkg」コマンドでは、「debファイル」のインストールやアンインストールを行う事が出来ます。

 コマンドは以下の方法で記述します。

 # dpkg <オプション>

 オプションについては以下の一部の指定となります。

 -L
  全てのパッケージを確認

 -i <パッケージ名のパス>
  指定したパッケージをインストール

 -r <パッケージ名>
  指定したパッケージをアンインストール

alien(ファイル管理)

 「alien」コマンドは主に「rpm」パッケージを、debian系の「deb」パッケージへ変換する為のコマンドです。

 なお、通常変換されたパッケージはユーザーフォルダに作成されます。(例/home/<user>)

 コマンドは以下の方法で記述します。

 # alien <オプション> ファイル名

 オプションについては以下の一部の指定となります。

 -i
  変換後、インストールを行う。

 –to–<形式>
  パッケージの形式を指定できます。
   例:「alien –to–rpm」でdebからrpmへ変換

SSH(暗号通信)

 「SSH」とは様々な通信規格で暗号化を実現しているツールです。
 通常FTPやTelNETのネット回線を利用したサービスは暗号がされない平文のまま、インターネットをパスワード等を含み流れていきます。
 こういった状況ではパスワードを盗まれ、悪用されるというリスクが常に付きまといます。

 ここで出てくるのが「SSH」です、これは色々な場所で今までに使ってきた通信技術を暗号化した安全な状態で提供してくれます。

 ここではSSHを利用したLinuxの遠隔操作方法を解説します。

まずはインストールから

 「yum」の場合

 # yum -y install ssh

 「apt-get」の場合

 # apt-get -y install ssh

 簡単ですね~(笑)

 「Debian」系は基本的に再移動後、自動的に起動します。
「RedHat」系は以下のコマンドを実行します。

 # chkconfig sshd on
 # service sshd start

 SSHサーバの準備が出来ましたら、クライアント側よりリモートログインをしてみましょう。
コマンドは以下の通りです。

 $ ssh -l <ユーザー名> <IPアドレスorホスト名>

 この直後に「yes」と入力し、「ログイン先ユーザー」のパスワードを入力します。これでホスト認証によるログインが完了し、ユーザー名及びホスト名が変わります。リモートを解除するには「exit」と入力します。

次は「ホスト認証」だけでは心許無いので、「ユーザー認証」を行えるようにします。
「ユーザー認証」を行う為にクライアント側、ユーザー別に「鍵」を作る必要性があります。
ここでは「RSAアルゴリズム」に依る「公開鍵暗号方式」の鍵を作ります、
この方式は一人が「閉める(暗号化)鍵」と「開ける(復号化)鍵」の二つを持ちます。例えばAさんがこの状況で「閉める鍵」は世界にばら撒いても第三者は鍵を閉める(暗号化する)事しか出来ません。それを開けれるのは「開ける鍵」を持つAさんだけです。
また、Aさん「開ける鍵」は安全性をあげる為、盗まれても大丈夫な様に、使う時に「パスフレーズ」(パスワードと思えば良いです)が求められますのて、第三者は簡単に使えません。

 以下のコマンドと操作です。

 $ ssh-keygen -t rsa
 —-(/home/<ユーザー名>/.ssh/id_rsa): ←「Enter」キー
 —-(empty for no passphrase): ←「パスフレーズ」を入力

 —-Enter same passphrase again: ←「パスフレーズ」を再入力

 これで「/home/<ユーザー名>/.ssh/」内に鍵が出来ます。形式としては以下の状態です

 id_<アルゴリズム><.pub>

 <アルゴリズム>は認証方式です、「rsa」と入っていればRSA認証、「dsa」ならDSA認証となります。(DSAは共通鍵方式で良く使われ、お互い同じ開け閉めの出来る一つの鍵を持つ方式、プライベート性が高い。)
 <.pub>が二つペアキーの内の一つに付いています、これが付いている方が「公開鍵」上で言う「閉める鍵」です、付いてない方が「秘密鍵」、「開ける鍵」です。
 リスク回避の為にも「秘密鍵」は厳重に管理して下さい!。

 次にクライアント側の公開鍵をSSHサーバに登録します。公開鍵ですので、メ-ルやフロッピーなどで渡しても問題になりません。コマンドを使う場合は、折角ですから以下の回線を暗号化した方法で移してみましょう。

 $ scp ~/.ssh/id_rsa.pub <ユーザー名>@<IPアドレスorホスト名>:

 この後パスワードを入力しますとコピーが始まります。

 次にサーバ側で上記のユーザーでログインしている状態で以下のコマンドを実行します

 $ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
 $ chmod 700 ~/.ssh
 $ chmod 600 ~/.ssh/authorized_keys

これでクライアンド側の「公開鍵」は登録され、サーバの「./ssh」と「./ssh/authorized_keys」は第三者に扱われては困るので、所有者のみが書き換え可能に権限を変更、設定は完了です。

 クライアント側よりリモートログインをしてみましょう、コマンドは以下の通りです。

 $ ssh -l <ユーザー名> <IPアドレスorホスト名>

「パスワード」の代わりに「パスフレーズ」を聞いて来ますので入力します。

最後にセキュリティ性を上げる為の幾つかの設定方法を紹介します。扱うファイルと設定項目を下記にまとめておきます。

「パスワード認証」の禁止

 # vim /etc/ssh/sshd.conf
 PasswordAuthentication yes
  ↓
 PasswordAuthentication no

「root」ログインの禁止

 PermitRootLogin yes
  ↓
 PermitRootLogin no

「ホスト」のアクセス制限

 # vim /etc/hosts.allow
 sshd:192.168.1 ←(この系列のIPのみ許可)
 sshd:127.0.0.1 ←(必要な場合)

「SSH用ポート」の変更

 # vim /etc/ssh/sshd_config
 #Port 22 ←(コメントアウト)
 Port *** ←(空いているポート番号に変更)

設定項目を変更しましたら、SSHの再起動を忘れないで下さい。

nmap(ポートスキャン)

 「nmap」とは、そのLinux機のポートスキャンをし、現在どの様なポートが開いているかを検査する高度な検査コマンドです。

注意事項ですが、ポートスキャンはクラッキングの常套手段です、全く関係ないパソコンやサーバーをスキャンしますと、攻撃と判断され、下手をしますと法的処置をも取られかねません。くれぐれも無断で他人をスキャンしない様にして下さい。

 以下の方法で行います。

 # mnap <オプション> <IPアドレス>

 主なオプションです

 -v
  スキャン過程で結果をリアルタイムに出力する。

 -sV
  そのポートを使用しているサーピスを出力する。

 -O
  OSの種類などの情報を出力する。

 -oN <ディレクトリ>
  検査結果をファイルへ書き出す。

 -oX <ディレクトリ>
  検査結果をXMLファイルへ書き出す。

 -p <ポート番号>
  指定されたポートを検査する。
  例:

   -p 100
   -p 100,110,140
   -p 100-140
   -p T:100,U:140
(100番を検査)
(100、110、140番を検査)
(100~140番を検査)
(TCP100番とUDP140番を検査)

以下の内容が出力例です

 PORT STATE SERVICE
<ポート番号>/tcp open <サービス名>
<ポート番号>/tcp open <サービス名>
<ポート番号>/tcp open <サービス名>

以上でどういったサーピスが、どのようなポートを使用しているか確認できます。
このような情報を基本にセキュリティを向上させていきましょう。

Nmapのより高度な設定は以下からどうぞ。
Nmapリファレンスガイド