Windowsでlinuxコマンドを実行できるツールbusybox

Linuxに慣れてくるとWindowsが不便に感じることがありませんか?

たとえば、”grepがしたい” とか ”シェルやawkを使いたい”などなど。。。

”もっと手軽にlinuxコマンドが使えたら”って思うことはないでしょうか。

WindowsにもlinuxのようなCLIコマンド(DOSプロンプト)や、PowerShellといった環境はありますが、Linuxに慣れてしまっていると使いづらいと感じるのではないでしょうか。

Windows上でHyper-VやVMwareなどの仮想環境を作ってlinux OSを動かしたり、Unixコマンドを詰め合わせたツール(Cygwinなど)をインストールして使うという方法もありますが手軽に使うにはちょっと重たく感じます。

Windows 10 Fall Creators Update(バージョン1709)から「Windows Subsystem for Linux(WSL)」が正式版が提供されましたね。

このWSLを有効にすることで「bash」などのシェルが、Windows 10上で利用できるようになります。

しかし、Windows10でない方は諦めるしかないのでしょうか?

そんなことはありません(^^♪

今回ご紹介するツール「busybox」はWindows10でなくても、Linuxコマンドやシェルなどを手軽に使うことができます!

Windows上でLinuxコマンドやシェルを使ってもっとパソコンを快適に使いたいと考えられるている方に「busybox」をご紹介致します。

Windowsでlinuxコマンドを実行できるツールbusybox

こちらがbusyboxで使用できるコマンドです。

ar, arch, ash, awk, base64, basename, bash, bunzip2, busybox, bzcat, bzip2, cal, cat, chmod, cksum,clear, cmp, comm, cp, cpio, cut, date, dc, dd, df, diff, dirname, dos2unix, dpkg, dpkg-deb, du, echo, ed,egrep, env, expand, expr, factor, false, fgrep, find, fold, fsync, ftpget, ftpput, getopt, grep, groups,gunzip, gzip, hd, head, hexdump, iconv, id, ipcalc, kill, killall, less, link, ln, logname, ls, lzcat, lzma,lzop, lzopcat, man, md5sum, mkdir, mktemp, mv, nc, nl, od, paste, patch, pgrep, pidof, pipe_progress, pkill,printenv, printf, ps, pwd, readlink, realpath, reset, rev, rm, rmdir, rpm, rpm2cpio, sed, seq, sh, sha1sum,sha256sum, sha3sum, sha512sum, shred, shuf, sleep, sort, split, ssl_client, stat, strings, su, sum, tac, tail,tar, tee, test, timeout, touch, tr, true, truncate, ts, ttysize, uname, uncompress, unexpand, uniq, unix2dos,unlink, unlzma, unlzop, unxz, unzip, usleep, uudecode, uuencode, vi, watch, wc, wget, which, whoami, whois,xargs, xxd, xz, xzcat, yes, zcat

 

busyboxのインストール方法です。

1. Download

下記のURLからbusyboxをダウンロードします。
http://frippery.org/busybox/

busyboxのインストール方法

2. Installation

busybox64.exe –install インストールするディレクトリー名

(例) busybox64.exe –install c:¥busybox64
※インストールディレクトリーは予め作成しておくこと

3. 環境変数の設定でpathを設定する

検索ウィンドウから「環境変数」を入力し検索する。
「Path」のところ選択し、「編集」をクリックします。

busyboxのインストール方法

「環境変数名の編集」が開いたら「新規」をクリックして、busyboxをインストールしたフォルダーを追加します。

busyboxのインストール方法

 

cisco双方向NATの設定と陥りやすい間違いを詳しく解説

今回は双方向NATについてご紹介をさせて頂きます。

その前にNATについて簡単に説明をさせて頂きますと、NATとは、Network Address Translationの略でIPアドレスを変換する技術です。

一般的には、プライベートIPアドレスをグローバルIPアドレスに変換する技術とされています。多くの企業様では社内ではプライベートアドレスを使用していて、インターネットに接続する際はグローバルIPアドレスに変換して通信ができるようになっています。

NATにもソースNAT、ディスチネーションNATがあります。それぞれ送信元アドレスの変換、宛先アドレスの変換を行うことを意味しています。

今回ご紹介する双方向NATとは、1台のNAT機能を持ったデバイスで内部の送信元アドレス、および外部の送信元アドレスを同時にNAT変換を行うことを言います。

例えば、ご覧のネットワークがある場合
insideの送信元を、192.168.4.1 から192.168.2.3へ
また、 outsideの送信元を192.168.3.1 から 192.168.1.3 へとIPアドレスを変換します。

cisco双方向NATの設定と陥りやすい間違いを詳しく解説

 

この双方向NATのメリットは、
 内部ホストと外部ホストの両方が相手のネットワークを意識する必要が無い。
 内部ホストと外部ホストともにデフォルトゲートウェイの設定をしなくても通信ができる
 お互いの実IPアドレスを知らなくても通信可能な双方向NATです。

などのメリットがあります。

では、実際に設定をしてみましょう。

cisco双方向NATの設定と陥りやすい間違いを詳しく解説

要件はこのとおりで、
・大阪RT、名古屋RTともにお互い相手のnetworkを知らない。
・大阪RTは東京RTの192.168.1.3しか知らない。
・名古屋RTも東京RTの192.168.2.3しか知らない。

前回、第26回で無料のciscoシミュレーションソフトである「パケットトレーサー」をご紹介させて頂きました。
今回は実際にそのパケットトレーサーを使用しながら設定したいと思います。

まず、最初に大阪RTの設定ですが、このようにとてもシンプルです。
見てお分かりのように名古屋RTへのルーティング192.168.3.0/24は入っておりません。

Osaka_RT#sh run
Building configuration…

Current configuration : 821 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Osaka_RT
!
ip cef
no ipv6 cef
!
license udi pid CISCO2901/K9 sn FTX152438F9-
!
spanning-tree mode pvst
!
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.240
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 192.168.4.254 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
line con 0
logging synchronous
login
!
line aux 0
!
line vty 0 4
logging synchronous
login
!
end

同様に、名古屋RTの設定も行います。
大阪RTへのルーティング192.168.4.0/24は設定されていません。
また、スタティックルートされたパケットが到着しているかどうかを確認する為、gi0/0にアクセスリストを追加しております。

Nagoya_RT#sh run
Building configuration…

Current configuration : 880 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Nagoya_RT
!
ip cef
no ipv6 cef
!
license udi pid CISCO2901/K9 sn FTX152463Q1-
!
spanning-tree mode pvst
!
interface GigabitEthernet0/0
ip address 192.168.2.1 255.255.255.240
ip access-group 100 in
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 192.168.3.254 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
access-list 100 permit ip any any
!
line con 0
logging synchronous
login
!
line aux 0
!
line vty 0 4
logging synchronous
login
!
!
!
end

東京RTの設定ポイントは、この3つのコマンドです。

ip nat inside source static 192.168.4.1 192.168.2.3
ip nat outside source static 192.168.3.1 192.168.1.3
ip route 192.168.1.3 255.255.255.255 gi0/1

上の2つのコマンドでは、
inside側の送信元IPアドレス192.168.4.1を192.168.2.3へ、
outside側の送信元IPアドレス192.168.3.1を192.168.1.3へNAT変換しています。

ここで注意したいのは送信元IPアドレス192.168.4.1を192.168.2.3へ変換するということは、送信先192.168.2.3が192.168.4.1へNAT変換されるということでもあります。

また、3つ目のコマンドは、192.168.1.3へのルートを追加しています。
これはinside側の処理がルーティングをしてからNAT変換される為、このルーティングコマンドがないと通信できませんのでご注意下さい。

outside側はNAT変換してからルーティングされるので特別なルーティングは不要です。

そしてこちらが東京RTの設定です。

Tokyo_RT#sh run
Building configuration…

Current configuration : 1226 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Tokyo_RT
!
ip cef
no ipv6 cef
!
license udi pid CISCO2901/K9 sn FTX1524U402-
!
spanning-tree mode pvst
!
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.240
ip access-group 101 in
ip nat inside
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 192.168.2.2 255.255.255.240
ip access-group 102 out
ip nat outside
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip nat inside source static 192.168.4.1 192.168.2.3
ip nat outside source static 192.168.3.1 192.168.1.3
ip classless
ip route 192.168.1.3 255.255.255.255 GigabitEthernet0/1
ip route 192.168.4.0 255.255.255.0 192.168.1.1
ip route 192.168.3.0 255.255.255.0 192.168.2.1
!
ip flow-export version 9
!
!
access-list 101 permit ip any host 192.168.1.3
access-list 102 permit ip any host 192.168.3.1
!
line con 0
logging synchronous
login
!
line aux 0
!
line vty 0 4
logging synchronous
login
!
end

youtubeでもご紹介しておりますのでぜひご覧ください。

 

nginx入門|簡単インストール方法と設定を詳しく解説

ここでは、nginxのインストール方法についてご紹介致します。

CentOSなどRedhat系でのインストール方法と設定になります。

と、その前にnginx(エンジンエックス)をよく知らない方に説明すると、nginxはwebサーバーのミドルソフトウェアです。

メジャーなwebサーバーと言えば、apache、IISなどがありますが、nginxの一番の特徴はリバースプロキシの機能があることです。

ちなみに、このリバースプロキシとは、サーバーの手前に設定してクライアントからの接続を複数のwebサーバーなどを振り分ける働きです。

言わばロードバランサー的な働きをすることです。ですので、webサーバーの負荷を分散したり、また、webサーバーを停止することなくメンテナンスをすることができたりと大変便利な機能なんです(^^♪

nginx入門|簡単インストール方法と設定を詳しく解説

初めてnginxを使用する入門の方から少しご存知の方に向けた内容となっております。

OS/Middleware Version
CentOS 7.6.1810 (x86 64bit)
nginx 1.15.7

nginx入門|簡単インストール方法と設定を詳しく解説

1-1. nginx用のレポジトリー「nginx.repo」を/etc/yum.repos.dフォルダーの下に作成する

#vi /etc/yum.repos.d/nginx.repo
↓↓↓nginx用のレポジトリーファイルnginx.repoを作成し以下を入力↓↓↓

~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
~~~~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~~~~

 

1-2. nginxをインストール

#yum install nginx

Complete!を確認する

 

1-3. nginx起動・再起動・ステータス確認

# systemctl start nginx ← 起動
# systemctl reload nginx ← 再起動(userへの影響ナシ
# systemctl status nginx ← ステータス確認

 

1-4. 設定

nginxの基本的なconfigurationです。設定に必要なファイルはサーバー名毎に定義するファイルとバックエンド側の処理が定義されたupstream.confの2種類です。

[設定条件]
今回設定する条件は、http(port#80)で着弾したアクセスをhttps(port#443)へリダイレクト(301)し、バックエンドサーバーへ接続をします。https(port#443)で来た接続はそのままバックエンドサーバーへ接続をします。

※リダイレクト(301)とは、httpで通信を行う際のステータスコードの一種であり、特定のページから別のページへ転送させる際のステータスコードになります。このリダイレクトには301と302の2種類のステータスコードがあります。301は恒久的な転送を意味しており、302は一時的な転送を意味しています。ちなみに、httpでホームページなどをwebサーバーから正常にGETできた場合のステータスコードは200です。301のコードをもらったパソコンのブラウザーは、その転送先のページが表示されます。その際、ブラウザーのアドレスバーには転送先のURLが表示されます。

nginx入門|簡単インストール方法と設定を詳しく解説

ファイル名:/etc/nginx/conf.d/example.jp.conf
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

server {
listen 443 ssl ;

server_name example.jp;

access_log /var/log/nginx/example.jp_access.log main;
ssl_certificate /cert/example.jp/example.cer;
ssl_certificate_key /cert/example.jp/example.key;

proxy_http_version 1.1;
proxy_set_header Connection “”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;

# ELB X-Forwarded-For Settings
set_real_ip_from 10.1.1.0/24;
real_ip_header X-Forwarded-For;

location / {
proxy_pass https://example-furiwake;
}

}

server {
listen 80;

server_name example.jp;

access_log /var/log/nginx/example.jp_access.log main;

proxy_http_version 1.1;
proxy_set_header Connection “”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;

set_real_ip_from 10.1.1.0/24;
real_ip_header X-Forwarded-For;

location / {
rewrite ^(.*)$ https://example.jp$1 permanent;
proxy_pass https://example-furiwake;
}

}
~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~

permanent 恒久的なリダイレクトをするときに使用します。HTTPのステータスコードは「301」を返します。
redirect 一時的なリダイレクトをするときに使用します。HTTPのステータスコードは「302」を返します。

 

 

ファイル名:/etc/nginx/conf.d/upstream.confの設定内容
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
upstream example-furiwake {
keepalive 256;
server 192.168.1.154:443 max_fails=0;
server 192.168.1.155:443 max_fails=0;
}
~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~
※max_fails=0は、サーバーとのヘルスチェックを無効にしている
※keepalive connections数

 

1-5. 文法チェック
再起動の前に文法チェックをします。文法に誤りがあると行番号を表示してエラーがあることを教えてくれます。

# nginx -t   ← 文法チェック。サービスに影響を与えません。
エラーが無くなったらnginxを再起動しましょう。