ポートスキャンで攻撃手法を理解しセキュリティ思考を深める!
脆弱性診断やペネトレーションテストで使われる技術にポートスキャンがあります。本書では、ポートスキャンを用いて攻撃者がネットワークを経由してどのように攻撃してくるのかを具体的な手法を交えて学び、攻撃手法を知ることでセキュリティレベルの向上を目指します。Scapyを用いたポートスキャナの自作、ポートスキャンの仕組みとネットワークプログラミングの基本、脆弱性診断やペネトレーションテストで不可欠なツールなどについて解説します。
Linux初心者にもわかる「わかる解説」+「豊富な問題」で一発合格を目指す!
Webシステムの構築・運用にかかわる技術や知識を、実際にLinuxサーバーを動かしながら学べるように解説しました!
本書の特徴は、実際に手を動かしながら学べる「ワークショップ」を多数用意していることです。概念だけでなく実践的なスキルも同時に身に付く構成となっています。本書を頭から読むのではなく、先に「ワークショップ」を読んで実際にLinuxサーバーを操作してから、補足が必要なときだけ解説パートを読んでも構いません。
内容は、Webインフラエンジニアとしての基礎から応用までを網羅しています。初心者から経験者まで幅広いスキルの読者に対応できるように工夫しました。本書の冒頭部分から順に読み進めることで、基本的な知識から段階的に学ぶことができます。各章は独立したテーマを扱っているため、興味のある章から読み始めることもできます。
読者のLinuxスキルをレベルアップする実用的な実践書!
Linuxスキルをレベルアップする実用的な実践書。本書では、コマンドを組み合わせて複雑なコマンドを作成することで、手動で行われているタスクを自動化するための方法を学びます。具体的には、パスワードの管理、大量のテストファイルの生成、テキストファイルを変換してデータベースのように扱う方法など、現実的なビジネスの問題を解決する方法を明らかにします。単なるテクニックではなく、背後で何が行われているかについても学べるので、読者はLinuxのシェルに対する理解を深められます。
カーネルの機能を拡張する注目の技術を概観できる!
eBPFは、ネットワーク、セキュリティ、オブザーバビリティなど、さまざまなインフラ関連の分野のプラットフォームとして使用されるなど、近年最も注目されている技術の1つです。本書ではカーネルの機能を拡張する方法として注目度の高いeBPFについて、どんな技術であるか、何ができるかを概観することができます。仕組みを理解できるだけでなく、サンプルコードを示して、基本的なeBPFコードの書き方も紹介します。
systemd(システムディー)はLinuxの基本的な構成要素を提供するソフトウェア群です。システムやサービスの管理機能を中心として、ハードウェアの管理、ログの管理などを行う多数の独立したソフトウェアからなっています。
Linuxでシステム管理を行うときにはsystemdの知識が必要になります。systemdに関するオンラインマニュアルなどは充実しているものの、systemdがどんな機能を提供しているかを知らなければ「どのドキュメントを読めばいいのか」「何を探すべきなのか」の見当がつかないでしょう。
本書はsystemdの概要をつかみ、マニュアルなどを適切に参照できるようになることを目的としています。systemdの設定変更や、設定ファイル(unit file)の解釈/作成/変更、systemdが記録したログの読解などのシーンで役立つトピックを解説します。また、systemdの機能に対応するLinuxカーネルの機能を知ることができます。Red Hat Enterprise Linux 8と9を題材にして解説しますが、多くの内容は他のディストリビューション(Debian、Ubuntu、openSUSEなど)でも活用できます。
※本書は雑誌『Software Design』の2021年6月号〜2022年11月号に掲載された連載記事「systemd詳解」を再編集した書籍です。
◆特集1 新モデルラズパイ5完全対応 電子工作のはじめ方
世の中には膨大な種類の電子パーツがありますが、ラズパイやラズパイPicoを使えばそれら電子パーツの多くを制御可能です。基本的な動かし方から作品の作り方まで一気にマスターしましょう。話題の「ChatGPT」を使って作品作りを効率化する方法も紹介します。
最新のラズパイ5やPicoを使い電子パーツを自在に制御しよう
Part1 電子パーツを電池で動作させてみよう
Part2 ラズパイやPicoで電子パーツを制御しよう
Part3 定番電子パーツ11種を動作させよう
Part4 生成AIも活用しつつ、実用的な作品を作る
◆特集2 I/O、CPUが高速になったラズパイ5
「NVMe」対応でSSDアクセスは2倍速に
◆特集3 ラズパイPicoをNode-REDで動かす
GUI上のフローでプログラミング
◆特集4 ラズパイ&AIによる画像認識でアームクローラーを制御しよう
◆特集5 ラズパイで楽しむLinuxライフ
「今、会議中」と家族に伝えるプレートをPythonで作ろう
◆特集6 ラズパイで楽しむLinuxライフ
「GitLab」で課題管理と資料の整理をしよう
●講座 実験して分かる電子パーツの動かし方
第13回 磁気センサーと磁石を試す
●講座 ハード&ソフトをちょい足し 新しいラズパイの遊び方 第15回
Part1 ラズパイを大容量NASに仕立てる
Part2 ラズパイでお手軽AIカメラを使う
●講座 ラズパイ&PC両対応 Linuxで学ぶセキュリティ入門
第2回 暗号化でデータを守る
●講座 IoT時代の電子工作
第4回 非接触温度センサーを使う
●講座 電子工作にも役立つ! 基礎からわかるLinuxコマンド 第11回
Part1 基本的なネットワークコマンド(その3)
Part2 基本的なネットワークコマンド(その4)
・ラズパイと周辺機器の買い方からOS導入方法、工作基礎まで
【特別付録】
・第1部 自動で動くカメラ&センサー完全25パターン
・第2部 温湿度センサーで室内を監視
・第3部 スカイツリーを好きな色に光らせる
・第4部 拡張ボードHATを自作しよう
Linuxの基礎からセキュリティまで、Webサーバーを運用するために身に付けるべき知識をまとめた書籍です。Rocky LinuxとさくらのVPSを使用して、実際に手を動かしながらWebサーバーを構築・運用します。前半ではLinuxのインストールから始まり、基本的なコマンドやネットワークを学びます。後半では実用的なWebサーバー構築演習としてLAMP(Linux、Apache、MariaDB、PHP)環境を構築し、CMSとして有名なWordPressを動かしていきます。作成したLAMP環境を運用し、ログの解析、ファイヤーウォールの設定、公開鍵による安全な通信などを学んでいきます。最終的にはDockerでコンテナの作成まで習得できます。第2版のポイント、CentOSからRocky Linuxに変更、サーバー周りの技術情報のアップデート。
TCP/IP&ネットワークコマンドの解説書。『Linux×コマンド入門』(技術評論社、2021/04)、『macOS×コマンド入門』(技術評論社、2020/4)の姉妹本です。
本書では、TCP/IP&ネットワークの今の基本を押さえ、ネットワークコマンドや各種ツールの基礎知識や作法を平易に解説。コマンドやWiresharkなどのツールを使って、TCP/IPのしくみ&ネットワークの基本概念を手を動かして実際の動作を見ながら学べる点が特徴です。動作確認環境としてはLinux(Ubuntu)を中心に、Windows/WSL2、macOSに対応。コマンドラインがはじめての方でも試せるようにサポートサイトも用意しました。変わる基本、変わらない基本を広く初学者の方々へ。スマートフォン、Wi-Fi、無線通信をはじめとしたコンピューターネットワークの今を気軽に体感できる1冊です。
コマンドラインを極めろ!!
MS-DOSを知らない世代のエンジニアに向けたLinux入門書の決定版。
Linux自身の機能だけでなく、シェルスクリプトを使ったプログラミングや、
Gitによるソフトウェア開発のバージョン管理など、
エンジニアの定番知識を徹底的に、丁寧に解説しました!!
[Redhat系、Debian系に対応]
CHAPTER01 Linuxを使ってみよう
CHAPTER02 シェルって何だろう?
CHAPTER03 シェルの便利な機能
CHAPTER04 ファイルとディレクトリ
CHAPTER05 ファイル操作の基本
CHAPTER06 探す、調べる
CHAPTER07 テキストエディタ
CHAPTER08 bashの設定
CHAPTER09 ファイルパーミッション、スーパーユーザ
CHAPTER10 プロセスとジョブ
CHAPTER11 標準入出力とパイプライン
CHAPTER12 テキスト処理
CHAPTER13 正規表現
CHAPTER14 高度なテキスト処理
CHAPTER15 シェルスクリプトを書こう
CHAPTER16 シェルスクリプトの基礎知識
CHAPTER17 シェルスクリプトを活用しよう
CHAPTER18 アーカイブと圧縮
CHAPTER19 バージョン管理システム
CHAPTER20 ソフトウェアパッケージ
APPENDIX01 リモートログインとSSH
APPENDIX02 infoドキュメントを読む
APPENDIX03 Linuxでの日本語入力について
APPENDIX04 参考文献
コマンドを使えば開発はもっと楽しくなる!新人のITエンジニアにとって開発現場でぶつかる壁の1つが、通称「黒い画面(CLI/CUI)」でのコマンド操作です。グラフィカルなUIに慣れ親しんだ若手のエンジニアの中には、得体のしれないCLIの操作に苦手意識や恐怖感を持っている人も多いのではないでしょうか。本書はそんな「黒い画面が怖い!」という新人エンジニアや学習者に向けて、CLIやコマンドとの付き合い方・活用法をやさしく解説する入門書です。黒い画面にまつわる用語、基本的なコマンドの使い方や書式(コマンドプロンプト、PowerShell、WSL)、コマンドを使った作業効率化の手法(シェルスクリプト、ワンライナー)など、エンジニアとして開発に取り組む上でおさえておきたい知識と技術を、実践例とともにわかりやすく解説しています。
サーバ管理者が押さえておくべきLinuxコマンドとLinuxサーバの基礎的な知識を解説しました!
本書は、サーバ管理者やプログラム開発者などのエンジニアを目指す方のためのLinux とサーバ管理の入門書です。大きく次の二つの内容で構成しています。
(1)Linuxコマンドと使い方を解説
(2)Linuxサーバーの基礎知識を解説
基本的にデスクトップ環境を使用したGUI 操作はやったことがあるものとして、「端末」アプリなど端末エミュレータでのコマンドライン操作をベースに解説しています。もちろん、大学や専門学校の学生がLinuxのようなUNIX系OSのコマンド操作やサーバ管理を学びたいといった場合にもお薦めです。
Linux には現在、さまざまなディストリビューションがあり、用意されているパッケージの種類やその内容、ファイルシステムの構造などが若干異なります。本書では次の2つのディストリビューションを基本に解説しています。
(1)Ubuntu
(2)Red Hat Enterprise Linux(RHEL)
コマンドの実行例を挙げながら解説しているので、実際に手元のLinux環境で試しながら読み進めてください。UbuntuとRHELのインストール方法は、電子版をサポートサイトでダウンロードできます。
Chapter1 Linuxの概要
LinuxとはどんなOSなのかを説明します。その後で、「端末」アプリを使用した、CUIコマンドの基本的な実行方法について説明します。
Chapter2 コマンドの基本操作
コマンド操作はサーバ管理には必須です。「端末」アプリを利用したCUIコマンドの実行方法とシェルの操作について説明します。
Chapter3 CUIエディタの操作
CUIで動作するエディタの操作方法もサーバ管理には必須のスキルです。代表的なCUIエディタであるnanoとvimを説明します。
Chapter4 シェルを活用するための基礎知識
ファイルのパーミッションの取り扱い、ジョブ制御、シェルの環境設定、シェルスクリプトの基礎を解説します。
Chapter5 システム管理の基本
ユーザ/グループの管理、サービスの管理、ソフトウエアのバイナリパッケージの取り扱いを解説します。
Chapter6 ネットワークの活用方法
ネットワークの設定、ファイアウォールの設定、Sambaを使用したファイル共有、SSHサーバを使用したリモートログインとファイル転送を解説します。
Chapter7 ApacheによるWebサイトの構築方法
オープンソースのWebサーバアプリ「Apache」を使用したWebサイトの構築方法を解説します。
Chapter8 Dockerによる仮想環境の構築方法
Ubuntuで「Docker」(ドッカー)を使用したコンテナ型仮想環境の構築方法を解説します。
付録
Document1 コマンド操作の応用
Document2 WordPress によるブログサイトの構築方法
Document3 Ubuntu とRHEL のインストール
「サーバー故障やヒューマンエラーに備えるには?」
「アクセス数の増加時にパフォーマンスを保つには?」
「異常検知をして復旧するには?」
運用・管理における長く役立つ視点を、実践経験豊富なエンジニアがどのように動いているのかをふまえて解説。
本書では、MySQLサーバーの稼働状況の確認方法といった基礎知識を始め、アカウントの権限の評価順序や認証プラグインなど、運用管理者として知っておくべき知識をまず身につけます。そして、正規化プロセスの基本、CRUDを支える仕組み、ロックの仕組みといった、内部構造について理解を深めます。
そのあと、多くのクエリ実行計画を読み解くので、どのようにクエリを書き換え、どの順番でインデックスを使って処理をしてコストを最小にするのかといった、オプティマイザの考え方がわかるようになるでしょう。レプリケーション、バックアップとリストア、監視など、障害発生に対応するためのノウハウも詰め込みました。
現場で通用する知識の地固めをしたい方、より良い運用・管理のためのポイントを知りたい方におすすめの1冊です。
LinuCは、LPI-Japanが提供するLinux技術者認定資格試験です。日本の大手IT企業などを中心に採用・導入が進んでいます。本書はこのLinuC試験のうち、2020年4月に試験が改定されたLinuCレベル1バージョン10.0(101試験、102試験)の出題範囲をカバーする教科書です。実績ある講師によるわかりやすい解説で、資格取得に必要な確かな力を身につけることができます。改訂新版では、学習用OSとして仮想環境で動作するAlmaLinuxおよびDebian GNU/Linuxのイメージをダウンロード提供します。学習用環境を利用することで、コマンドの実行や設定ファイルの編集など、実際に手を動かしながら学ぶことが可能です。
■基礎編 Linuxの基本
Linuxカーネルとディストリビューション
仮想化環境の利用
Linuxのディレクトリ構造
Debian(CUI)環境へのログインとrootユーザー
AlmaLinux(GUI)環境へのログインと端末の起動
コマンド端末の使い方
主な基本コマンド
■1章 Linuxのインストールと仮想マシン・コンテナの利用
1.1 Linuxのインストール/起動/接続/切断/停止
1.2 仮想マシン・コンテナの概念と利用
1.3 ブートプロセスとsystemd
1.4 プロセスの生成/監視/終了
1.5 デスクトップ環境の利用
■2章 ファイルとディレクトリの操作と管理
2.1 基本的なファイル管理の実行
2.2 ファイルの所有者とパーミッション
2.3 ハードリンクとシンボリックリンクの作成
2.4 ファイルの配置と検索
■3章 GNUとUnixのコマンド
3.1 コマンドラインの動作
3.2 フィルタを使ったテキストストリームの処理
3.3 ストリーム、パイプ、リダイレクトの使用
3.4 正規表現を使用したテキストファイルの検索
3.5 エディタを使った基本的なファイル編集の実行
■4章 リポジトリとパッケージ管理
4.1 アプリケーション管理
4.2 aptコマンドによるパッケージ管理
4.3 Debianパッケージ管理
4.4 yumコマンドによるパッケージ管理
4.5 RPMパッケージ管理
■5章 ハードウェア、ディスク、パーティション、ファイルシステム
5.1 ハードウェアの基本知識と設定
5.2 HDD/SSDのレイアウトとパーティション
5.3 ファイルシステムの作成/管理/マウント
■101試験模擬問題
■6章 シェルおよびスクリプト
6.1 シェル環境のカスタマイズ
6.2 シェルスクリプト
■7章 ネットワークの基礎
7.1 インターネットプロトコルの基礎
7.2 基本的なネットワーク構成
7.3 基本的なネットワークの問題解決
7.4 クライアント側のDNS設定
■8章 システム管理
8.1 アカウント管理
8.2 ジョブ管理
8.3 ローカライゼーションと国際化
■9章 重要なシステムサービス
9.1 システム時刻の保守
9.2 システムのログ
9.3 メール配送エージェント(MTA)の基本
■10章 セキュリティ
10.1 セキュリティ管理業務の実施
10.2 ホストのセキュリティ設定
10.3 暗号化によるデータの保護
10.4 クラウドセキュリティの基礎
■11章 オープンソースの文化
11.1 オープンソースの概念とライセンス
11.2 オープンソースのコミュニティとエコシステム
■102試験模擬問題
Linux初心者でも安心して学習できます。イラストをたくさん使って説明しています。大きな文字で読みやすい紙面です。
本書では、Raspberry PiのOSセットアップからLinuxの基本操作、電子工作用のプログラミング学習、電子工作の実践まで、初心者に分かりやすいように内容を省略せずきっちり解説しています。
「ラズ・パイ超入門」の特長は、とにかく「初心者にわかりやすい」ことです。
巷の電子工作の本は意外と不親切な作りのものが多く、ある程度の予備知識があることを前提に書かれているものが多いのですが、本書は回路図はじめ徹底的に図解で説明し、初心者が戸惑う部分を排除しています。
Part1 Raspberry Piとは
Part2 Raspberry Piを動作させよう
Part3 Raspberry Piの操作と設定
Part4 小型LinuxマシンとしてRaspberry Piを利用
Part5 プログラムを作ってみよう
Part6 電子回路をRaspberry Piで制御する
Part7 I2Cデバイスを動作させる
Part8 Raspberry Piの応用
Appendix 付録(Linuxコマンドリファレンスなど)
従来型サーバからクラウドネイティブ型サーバの構築に至るまで、RHEL9互換OSにおける最新のサーバ構築手法を解説。
Linuxにおいてカーネル寄りの話になると、あれもこれもよく分からずにパニックになってしまう人が多いです。
本書では、そのような人に向けて、LinuxやLinuxカーネルとは何かなどの基礎的な部分をはじめ、自分の手でLinuxの環境構築を行ない、
ソースコードを読み込む方法を解説。
20年以上Linuxカーネルに取り組んできた著者が、苦い経験をもとに積み上げた知識とノウハウをこの一冊に濃縮しました。
はじめに
第1章 Linuxカーネルの基本
[1.1] Linuxとはなにか
[1.2] Linuxはどんなところで使われているか
[1.3] Linuxカーネルとはなにか
[1.4] オープンソースとライセンス
[1.5] Linuxカーネルはどうやって学べばいいのか?
第2章 ログ・ソースコードの確認
[2.1] Rust
[2.2] ログとソースコード
第3章 Yocto
[3.1] Linuxシステムを構築する
[3.2] ドキュメント
[3.3] Yoctoが提供するもの
[3.4] ビルドの流れ
[3.5] ソースコードを手動でビルドしてみる
[3.6] レシピ
[3.7] 環境構築を始める
[3.8] Ubuntuのセットアップ
[3.9] Yoctoのビルド環境構築
[3.10] Yoctoのビルド準備
[3.11] Yoctoのビルド
第4章 Linuxの起動とビルド
[4.1] Linuxの起動
[4.2] ファイルの送受信
[4.3] ビルド物件
[4.4] レシピを作ってみる
第5章 UbuntuのBIOS破壊問題を振り返る
[5.1] きっかけ
[5.2] どのような問題だったか
[5.3] Ubuntu公式によるバグレポートを解釈する
[5.4] 再現条件にBIOSが含まれる?
[5.5] フラッシュメモリを理解する
[5.6] フラッシュメモリを制御する
[5.7] フラッシュメモリのライトプロテクト
[5.8] 発生条件をまとめる
[5.9] カーネルパッチの読み方
[5.10] ICHを理解する
[5.11] PCHを理解する
[5.12] BARを理解する
[5.13] RCBAを理解する
[5.14] LPCインターフェイスを理解する
[5.15] SPIフラッシュメモリを理解する
[5.16] SPIフラッシュメモリの区分け
[5.17] デバイスドライバの実装を読む
[5.18] probe処理
[5.19] SPI領域へのアクセス
[5.20] 問題の実装をチェックする
[5.21] BIOS Write Enableの意味
[5.22] SMMを理解する
[5.23] 根本原因を探る
あとがき
索引
本書は、「Linux(リナックス)」の心臓部にあたるカーネルについて理解を深め、Linuxを本格的に学ぶ人のための「初めて読むLinuxカーネルの専門書」です。1991年に一人の大学生が趣味で開発を始めたLinuxというOSは、今や、あらゆる分野で使われていると言っても過言ではありません。組み込み機器やスマートフォンなどのモバイル機器、パソコンのOSとしてはもちろん、スーパーコンピュータのOSとしても使われています。
LinuxのカーネルはOSS(Open Source Software)として開発されていて、ソースコードがすべて公開されています。そのソースコードを調べれば、機能の詳細や動作の仕組みが分かりますし、改造して好きなようにカスタマイズすることもできます。
本書の狙いは、Linuxカーネルについて知りたい方に、学習の「入り口」を提供することです。まずはカーネルの全体像を把握して実験できるように、概要解説とモジュールの管理方法、ビルド手順の紹介から始めています。後半では、主だった機能をピックアップし、動作に必要なハードウエアに関するものを含めて仕組みをやや詳しく解説しています。
今回改訂した第2版では、カーネルやディストリビューションの変化に合わせて内容をアップデートすると共に、「プロセス間通信」「仮想化機能」についての解説を追加しました。
第1章 Linux カーネルの基礎
第2章 Linux カーネルのモジュール管理
第3章 Linux カーネルのビルド方法
第4章 タスクスケジューラの仕組み
第5章 仮想メモリーを実現する仕組み
第6章 コンテキストスイッチの仕組み
第7章 物理メモリー管理の仕組み
第8章 ファイルシステムの仕組み
第9章 プロセス間通信の仕組み
第10章 仮想化機能「KVM」の仕組み
ソフトウェアの開発・利用において、カーネルのような根幹部分について理解せずにすむのがOSの役割ではあるものの、エンジニアとしてはこうしたシステムの根本的な仕組みを知り、具体的にイメージできることが大きな強みになります。本書では、長くLinuxカーネルを扱ってきた著者陣が、スケジューリングやメモリ管理など古典的なOS機能はもちろん、VMやコンテナ、セキュリティ機能など、より新しい内容も幅広く、多くのイラストを交えて解説します。これまで専門的な知識がなければなかなかアプローチできなかったLinuxカーネルの構造や仕組み、働きについて、さまざまな視点から解説する一冊といえるでしょう。