カテゴリ:13.実際にやってみる > 13.3 Linux

■Kali linux ダウンロード
https://www.kali.org/downloads/

■VMへインストール
・VM workstation plyaerをダウンロード
・あとでOSをインストールする
インストールする際、Linuxでバージョンは「Debian」系である。version は不明
・HD 30G、メモリ1Gで設定
・VMwareツールをインストール
★CTL+ALTで仮想と実環境の切り替え
デフォルトのパスワードはtoor

■起動後
イメージを更新するには
apt-get update
apt-get dist-upgrade

■1.インストール
 yum -y install httpd
ただ、Linuxをインストールすると、デオフォルトでWebサーバが起動していることが多いだろう。入れ方にもよるが。
念のため、再起動してみる。(CentOS6)
$service httpd restart

・サービスの状態確認 (CentOS7)
systemctl status httpd

・サービスを開始する
systemctl start httpd

となりのPCから見てみよう。
http://WebサーバのIPアドレス

もしかすると、見えないかもしれない。
原因は、SELinuxが有効になっているのと、サーバのFirewallなどの設定などが入っているからだろう。($system-config-firewallで設定を解除すればいいだろう)

Firewallを開けるには、以下。
・httpを許可する
firewall-cmd --add-service=http --zone=public --permanent      
 ※--permanent によって、永続的にHTTPを開ける
・再起動
firewall-cmd --reload  
・確認
iptables -L -n | grep 80

※AWSの場合、インバウンドルールにhttp(80)を追加する。

■コンテンツ
コンテンツは/var/www/htmlに入れる

・デフォルトのTest Page
htmlコンテンツのありかは、/var/www/html である。
ただ、デフォルトのTest Pageだけは特別。
以下のconfファイルに設定が記載されている。
/etc/httpd/conf.d/welcome.conf
実際のコンテンツはこれ
/usr/share/httpd/noindex/index.html

■httpsにする場合
設定ファイルは以下
/etc/httpd/conf.d/ssl.conf  

■Webサーバのログ
/var/log/httpd/access_logに保存されている。
ログとしてはこんな感じ。
192.168.1.3 - - [08/Sep/2018:23:36:16 +0900] "GET /  HTTP/1.1" 403 4961 "-" "Mozilla/5.0 (Windows NT 6.3;・・・
先頭がアクセス元のIPアドレス
 
■その他
(1)バージョンの確認
httpd -version
または、
rpm -qa | grep httpd でもいいだろう。

(2)ファイルの一覧表示
/etc/httpd/conf/httpd.confの
Options Indexes FollowSymLinks で設定する
上記の場合は該当ディレクトリのファイル一覧が表示される

一覧表示されないようにする方法は、
①Indexesを消す
Options FollowSymLinks

②「-」を付ける
Options -Indexes FollowSymLinks 

※設定変更する場合は、もとの設定は#によるコメントアウトで残しておきましょう。

2004年に登場したnginxですが、今ではApacheのシェアを超えたともいわれています。
読み方は「エンジンエックス」
Apacheと同じくWebサーバのソフトであるが、
高速で軽量な点が特徴。利用されるケースが増えている。
LBとしても使える。・・・これがnginxの大きな意義の一つである。

LBの設定は以下が参考になる。とても簡単
https://www.nedia.ne.jp/blog/tech/2016/08/04/7938

・yumでインストールしてみよう
# yum install nginx
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile

 →しかし、デフォルトでやレポジトリが無いと怒られる。
 
・レポジトリの作成
sudo vi /etc/yum.repos.d/nginx.repo

https://qiita.com/tomy0610/items/0884c77f1ac52957fa96

・改めてインストール
#yum install nginx -y

今度は成功する。

・バージョンの確認
#nginx -v
nginx version: nginx/1.17.7

・自動起動の設定
# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

・サービスの起動
#systemctl start nginx

・ブラウザを立ち上げ、http://IPアドレス を指定
「Welcome to nginx!」と出て、Webサーバが起動していることが確認できる。

・設定ファイルは以下。ここで、LBの設定などもできる。
/etc/nginx/nginx.conf

/etc/nginx/conf.d/default.conf

・コンテンツファイルの置き場所
 /usr/share/nginx/html

ここにたとえば、a.htmlというファイルを設置し、中身に「hello」と書けば、ブラウザでアクセスすると「Hello」と表示される。

MTAとしてはPostfixMUAとしてはdovecotなのは、長年変わらない。(※dovecotがメールボックスを持っているわけではなく、dovecotはユーザからのメール取得要求を受け付けるサービス)

どんな本でもいいので、一冊購入するといいですよ。
私は 秀和システム「はじめてのFedoraCore5」を買いました。
以下の内容は上記の本を参照してます。

1.sendmailの停止
service sendmail stop

2.Postfixのインストール
rpmpostfixをインストール

3.Postfix環境へスイッチ
alternatives --config mta
ここで、postfixを選択する。

4.main.cfの設定
vi /etc/postfix/main.cf
myhostname = ns1.network-exam.com 
mydomain = network-exam.com
inet_interfaces = all   ←利用するNIC
mydestination = $myhostname, localhost.$mydomain, $mydomain ←受信するドメインとホスト
mynetworks = 192.168.1.0/24, 127.0.0.0/8

postfixの設定で、メールボックスはMaildir方式が最近の主流で、メールが1通1ファイルになっている
home_mailbox = Maildir/ 

POP3サーバの設定
dovecotを利用します。

サーバ構築などが非常に簡単。たとえば、以下
https://knowledge.sakura.ad.jp/13265/

ここにあるように、1行でWebサーバが構築できてしまう。

docker run --name some-nginx -d -p 8080:80 nginx

もちろん、その前にDockerをインストールしてサービスを起動する必要がある。それにしても楽だ。

・コンテナと呼ばれる仮想化技術
・説明は、いろいろな本やサイトを読んで
もらえばいい。特徴は、ファイルで管理できる。→軽量
・複数人で同じ環境でシステムを構築できる。
・イメージファイルそのものは、Docker HUBなどに置かれている。なので、テキストファイルで指定するだけで、
イメージファイルを共有する必要が無い。
・Docker Composeが便利だと思う。
複数のアプリケーションをDockerfileで定義
docker-compose.ymlファイルで定義し、
docker-compose upで一斉に環境を起動できる。
http://docs.docker.jp/compose/overview.html

■インストールなど
■準備
①gitを入れる
# yum -y install git

②Dockerを入れる
・インストール
# sudo yum -y install docker

・参考までにversionを確認しておこう(うまくインストールできたかの確認も込めて
# docker --version

・dockerの起動
# systemctl start docker
※以下サイトにあるユーザ追加もしたが、必須かは不明 →不要だった。
https://qiita.com/uhooi/items/f8c67a9e716a226e28cd

③Docker Composeをインストール
以下サイトの「Linux」のタブを開く
https://docs.docker.com/compose/install/
curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

■FTPサーバ
(1)インストール
①vsftpdのインストール
yum -y install vsftpd
②サービスの起動
systemctl start vsftpd

(2)FWの設定変更
簡単なのは、FWを止めること
systemctl stop firewalld

(3)PCから接続してみる。
Windows8や10では、デフォルトではFTPコマンドは使えない
が、設定すれば使えるようになる。
https://creativeweb.jp/personal-site/ftp/


(4)ちゃんとやるなら
ローカルでテストするなら不要だが、公開サーバ
でやる場合にはセキュリティ対策をきちんとしよう
①FTPユーザの作成
anonymousは、公開サーバではNGだ
#useradd ftpuser -m
 →ftpuserというユーザ名で、-mオプションで
ホームディレクトリも作成

②FTPユーザのパスワード設定
# passwd ftpuser
Changing password for user ftpuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

③設定ファイルの変更
/etc/vsftpd/vsftpd.conf
※設定を変える前のオリジナルファイルは.orgとして
バックアップ(cpコマンド)しておきましょう。
たとえば、以下で、Anonymousからのアクセスを拒否できる。
anonymous_enable=NO

(1)インストール
①パッケージの最新化
#yum -y update

②Apache(httpd)のインストールと起動
# yum -y install httpd
※バージョンの確認は #httpd -v

# systemctl start httpd

③PHPのインストール
yum install -y php php-devel php-mysql php-gd php-mbstring

※バージョンの確認は #php -v
また、以下も参照
http://sm.seeeko.com/archives/21294406.html

(④PHPの設定ファイル)
 /etc/php.ini に設定ファイルがあるが、デフォルトでよい

(2)コンテンツの配置
・phpファイルを/var/www/html/aaa.php配置する。
http://192.168.1.100/aaa.phpにて見ることができる。
※もしphpファイルのソースがそのまま表示されるようであれば、httpdを再起動してみよう。きちんとスクリプトが動作するはずである。

(3)コンテンツの構文
・拡張子を.phpにすればPHPのプログラムとして処理される
・HTMLなどにPHPのスクリプトを埋め込むが、<?php と ?> で囲む。
<?php
 echo 'こんちくは'; //ここにスクリプトを記載。
?>
・スクリプトの最後には「;」をつける。
 このあたりは、他のプログラム言語でもよくあることだ。
・PHPファイルでも、<?php と ?> で囲ったところ以外は、普通にHTMLのタグが書ける。
・極端なはなし、PHPのスクリプトを書かなくてもいい。
以下、少し見てみよう
・コメントは //
 または、複数行のコメントは以下

/*
複数行のコメントは
このように
*/

↑このページのトップヘ