イベント参加ログ》超入門!! Linuxサーバー構築の第一歩!! 11月23日13:30 - 16:00
- 明星大学で行われたオープンソースカンファレンス2019 Tokyo/Fallコミニティ企画でLinuxの超初心者を対象とした「サーバー構築勉強会」に参加した。
- リモート接続してApacheインストール、/var/www/に用意されたホームページのファイルを配置してブラウザからアクセスするところまでのごくエッセンスだけのハンズオンであったが、実際にやってみられたのが良かった。
参加目的・獲得目標
受講ノート(ハンズオン)
- IPアドレス
- IP4 アドレス (1Byte * 4 = 4 Byte, 32bit)
- IP6 アドレス (2Byte * 8 = 16 Byte, 128bit)
CentOS7にSSH接続
SSH接続 => 2つの認証を通過する
- SSHホスト認証:
- クライアントがサーバの正当性を確認している
- SSH接続の度にクライアント、サーバ間で公開鍵の一致をチェックしている
- 一度認証されるとサーバから公開鍵が送られてくる。ホストキー
- SSHユーザ認証
- defaultは公開鍵認証
- なければパスワード認証
[2019-11-23 13:53:29] ~ $ ssh 210.197.79.201 -l root The authenticity of host '210.197.79.201 (210.197.79.201)' can't be established. ECDSA key fingerprint is SHA256:R62tNTjcPZsTXZLhIwRD+hcFAZsaNgul16wt4mK6Hys. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '210.197.79.201' (ECDSA) to the list of known hosts. root@210.197.79.201's password: Last failed login: Sat Nov 23 13:56:08 JST 2019 from 182.61.2.238 on ssh:notty There were 215 failed login attempts since the last successful login. [root@localhost ~]#
セキュリティ上の配慮: rootでSSHできないようにする
一般ユーザーを登録(rootの代わりに使う)
[root@localhost ~]# useradd {ユーザ名} [root@localhost ~]# passwd {ユーザ名} ユーザー {ユーザ名} のパスワードを変更。 新しいパスワード: 新しいパスワードを再入力してください: passwd: すべての認証トークンが正しく更新できました。 [2019-11-23 14:31:34] ~ $ ssh ユーザ名@210.197.79.201 ユーザ名@210.197.79.201's password:
rootのsshを禁止する
[root@localhost ~]# vi /etc/ssh/sshd_config [root@localhost ~]# systemctl restart sshd [root@localhost ~]# systemctl status sshd ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 土 2019-11-23 14:28:32 JST; 25s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 3235 (sshd) Tasks: 1 CGroup: /system.slice/sshd.service └─3235 /usr/sbin/sshd -D 11月 23 14:28:32 localhost.localdomain sshd[3235]: Server listening on 0.0.0.0 port 22. 11月 23 14:28:32 localhost.localdomain sshd[3235]: Server listening on :: port 22. 11月 23 14:28:32 localhost.localdomain systemd[1]: Started OpenSSH server daemon. 11月 23 14:28:39 localhost.localdomain sshd[3236]: Invalid user ibraim from 104.42.153.42 port 4544 11月 23 14:28:39 localhost.localdomain sshd[3236]: input_userauth_request: invalid user ibraim [p...th] 11月 23 14:28:39 localhost.localdomain sshd[3236]: pam_unix(sshd:auth): check pass; user unknown 11月 23 14:28:39 localhost.localdomain sshd[3236]: pam_unix(sshd:auth): authentication failure; l....42 11月 23 14:28:42 localhost.localdomain sshd[3236]: Failed password for invalid user ibraim from 1...sh2 11月 23 14:28:42 localhost.localdomain sshd[3236]: Received disconnect from 104.42.153.42 port 45...th] 11月 23 14:28:42 localhost.localdomain sshd[3236]: Disconnected from 104.42.153.42 port 4544 [preauth] Hint: Some lines were ellipsized, use -l to show in full.
- 以降は、rootでログインしようとしても 「権限ないっすよ」と叱られる
[2019-11-23 14:30:08] ~ $ ssh root@210.197.79.201 root@210.197.79.201's password: Permission denied, please try again. root@210.197.79.201's password: ← 正しいパスワードを入れても通らなくなる
既存パッケージのUpdateと、EPEL(エンタープライズ Linux 用の拡張パッケージ)追加
[ユーザ名@localhost ~]$ su パスワード:(rootのパスワード) [root@localhost ユーザ名]# yum -y update [root@localhost ユーザ名]# yum -y install epel-release
HTTP -Apacheインストール-
80番ポートの開放
先に http ポートを開放しておく。
# 80番ポート(http)を開放 [root@localhost ユーザ名]# firewall-cmd --add-service=http --zone=public --permanent success # サービスのリロード [root@localhost ユーザ名]# firewall-cmd --reload ipsuccess # 80番ポートが開放されたかチェック [root@localhost ユーザ名]# iptables -L -n |grep 80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ctstate NEW,UNTRACKED
Apacheパッケージのインストール
パッケージを4つインストールする - httpd (Apacheご本尊。httpdウェブサーバー本体) - httpd-devel (httpd関連の開発ツール、モジュール) - httpd-tools (監視、統計、ログ分析、DoS 検出、および防衛のためのツール) - httpd-manual (httpdのドキュメント)
[root@localhost ユーザ名]# yum -y install httpd httpd-devel httpd-tools httpd-manual 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile epel/x86_64/metalink | 10 kB 00:00:00 * epel: nrt.edge.kernel.org epel | 5.3 kB 00:00:00 (1/3): epel/x86_64/group_gz | 90 kB 00:00:00 (2/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00 (3/3): epel/x86_64/primary_db | 6.9 MB 00:00:00 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ httpd.x86_64 0:2.4.6-90.el7.centos を インストール --> 依存性の処理をしています: /etc/mime.types のパッケージ: httpd-2.4.6-90.el7.centos.x86_64 ---> パッケージ httpd-devel.x86_64 0:2.4.6-90.el7.centos を インストール --> 依存性の処理をしています: apr-util-devel のパッケージ: httpd-devel-2.4.6-90.el7.centos.x86_64 --> 依存性の処理をしています: apr-devel のパッケージ: httpd-devel-2.4.6-90.el7.centos.x86_64 ---> パッケージ httpd-manual.noarch 0:2.4.6-90.el7.centos を インストール ---> パッケージ httpd-tools.x86_64 0:2.4.6-90.el7.centos を インストール --> トランザクションの確認を実行しています。 ---> パッケージ apr-devel.x86_64 0:1.4.8-5.el7 を インストール ---> パッケージ apr-util-devel.x86_64 0:1.5.2-6.el7 を インストール --> 依存性の処理をしています: openldap-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64 --> 依存性の処理をしています: libdb-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64 --> 依存性の処理をしています: expat-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64 ---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ expat-devel.x86_64 0:2.1.0-10.el7_3 を インストール ---> パッケージ libdb-devel.x86_64 0:5.3.21-25.el7 を インストール ---> パッケージ openldap-devel.x86_64 0:2.4.44-21.el7_6 を インストール --> 依存性の処理をしています: cyrus-sasl-devel(x86-64) のパッケージ: openldap-devel-2.4.44-21.el7_6.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ cyrus-sasl-devel.x86_64 0:2.1.26-23.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ======================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ======================================================================================================== インストール中: httpd x86_64 2.4.6-90.el7.centos base 2.7 M httpd-devel x86_64 2.4.6-90.el7.centos base 197 k httpd-manual noarch 2.4.6-90.el7.centos base 1.3 M httpd-tools x86_64 2.4.6-90.el7.centos base 91 k 依存性関連でのインストールをします: apr-devel x86_64 1.4.8-5.el7 base 188 k apr-util-devel x86_64 1.5.2-6.el7 base 76 k cyrus-sasl-devel x86_64 2.1.26-23.el7 base 310 k expat-devel x86_64 2.1.0-10.el7_3 base 57 k libdb-devel x86_64 5.3.21-25.el7 base 39 k mailcap noarch 2.1.41-2.el7 base 31 k openldap-devel x86_64 2.4.44-21.el7_6 base 804 k トランザクションの要約 ======================================================================================================== インストール 4 パッケージ (+7 個の依存関係のパッケージ) 総ダウンロード容量: 5.8 M インストール容量: 22 M Downloading packages: (1/11): apr-util-devel-1.5.2-6.el7.x86_64.rpm | 76 kB 00:00:00 (2/11): apr-devel-1.4.8-5.el7.x86_64.rpm | 188 kB 00:00:00 (3/11): expat-devel-2.1.0-10.el7_3.x86_64.rpm | 57 kB 00:00:00 (4/11): cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm | 310 kB 00:00:00 (5/11): httpd-devel-2.4.6-90.el7.centos.x86_64.rpm | 197 kB 00:00:00 (6/11): httpd-manual-2.4.6-90.el7.centos.noarch.rpm | 1.3 MB 00:00:00 (7/11): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm | 91 kB 00:00:00 (8/11): libdb-devel-5.3.21-25.el7.x86_64.rpm | 39 kB 00:00:00 (9/11): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:00 (10/11): httpd-2.4.6-90.el7.centos.x86_64.rpm | 2.7 MB 00:00:00 (11/11): openldap-devel-2.4.44-21.el7_6.x86_64.rpm | 804 kB 00:00:00 -------------------------------------------------------------------------------------------------------- 合計 12 MB/s | 5.8 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : apr-devel-1.4.8-5.el7.x86_64 1/11 インストール中 : cyrus-sasl-devel-2.1.26-23.el7.x86_64 2/11 インストール中 : openldap-devel-2.4.44-21.el7_6.x86_64 3/11 インストール中 : expat-devel-2.1.0-10.el7_3.x86_64 4/11 インストール中 : libdb-devel-5.3.21-25.el7.x86_64 5/11 インストール中 : apr-util-devel-1.5.2-6.el7.x86_64 6/11 インストール中 : httpd-tools-2.4.6-90.el7.centos.x86_64 7/11 インストール中 : mailcap-2.1.41-2.el7.noarch 8/11 インストール中 : httpd-2.4.6-90.el7.centos.x86_64 9/11 インストール中 : httpd-devel-2.4.6-90.el7.centos.x86_64 10/11 インストール中 : httpd-manual-2.4.6-90.el7.centos.noarch 11/11 検証中 : httpd-devel-2.4.6-90.el7.centos.x86_64 1/11 検証中 : mailcap-2.1.41-2.el7.noarch 2/11 検証中 : httpd-tools-2.4.6-90.el7.centos.x86_64 3/11 検証中 : libdb-devel-5.3.21-25.el7.x86_64 4/11 検証中 : httpd-2.4.6-90.el7.centos.x86_64 5/11 検証中 : openldap-devel-2.4.44-21.el7_6.x86_64 6/11 検証中 : apr-devel-1.4.8-5.el7.x86_64 7/11 検証中 : httpd-manual-2.4.6-90.el7.centos.noarch 8/11 検証中 : apr-util-devel-1.5.2-6.el7.x86_64 9/11 検証中 : expat-devel-2.1.0-10.el7_3.x86_64 10/11 検証中 : cyrus-sasl-devel-2.1.26-23.el7.x86_64 11/11 インストール: httpd.x86_64 0:2.4.6-90.el7.centos httpd-devel.x86_64 0:2.4.6-90.el7.centos httpd-manual.noarch 0:2.4.6-90.el7.centos httpd-tools.x86_64 0:2.4.6-90.el7.centos 依存性関連をインストールしました: apr-devel.x86_64 0:1.4.8-5.el7 apr-util-devel.x86_64 0:1.5.2-6.el7 cyrus-sasl-devel.x86_64 0:2.1.26-23.el7 expat-devel.x86_64 0:2.1.0-10.el7_3 libdb-devel.x86_64 0:5.3.21-25.el7 mailcap.noarch 0:2.1.41-2.el7 openldap-devel.x86_64 0:2.4.44-21.el7_6 完了しました!
Apacheを起動する
# インストール直後は inactive の状態 [root@localhost ユーザ名]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:httpd(8) man:apachectl(8) # マシン起動時にサービスを自動起動させる設定 [root@localhost ユーザ名]# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. # 今すぐサービスを起動 [root@localhost ユーザ名]# systemctl start httpd # ステータスが active になった [root@localhost ユーザ名]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 土 2019-11-23 14:42:10 JST; 3s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 3720 (httpd) Status: "Processing requests..." Tasks: 6 CGroup: /system.slice/httpd.service ├─3720 /usr/sbin/httpd -DFOREGROUND ├─3721 /usr/sbin/httpd -DFOREGROUND ├─3722 /usr/sbin/httpd -DFOREGROUND ├─3723 /usr/sbin/httpd -DFOREGROUND ├─3724 /usr/sbin/httpd -DFOREGROUND └─3725 /usr/sbin/httpd -DFOREGROUND 11月 23 14:42:10 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
アクセスログ(/var/log/httpd/access_log)を見てみる
# access_log を tail コマンドでモニターする [root@localhost ユーザ名]# tail -f /var/log/httpd/access_log # ブラウザで http://210.197.79.201/xxx にアクセスするとログを吐く 170.238.36.66 - - [23/Nov/2019:14:44:33 +0900] "GET / HTTP/1.0" 403 4897 "-" "masscan/1.0 (https://github.com/robertdavidgraham/masscan)" 126.233.154.177 - - [23/Nov/2019:14:45:16 +0900] "GET / HTTP/1.1" 403 4897 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:70.0) Gecko/20100101 Firefox/70.0"
WEBテンプレートインストール
- あらかじめ用意されたサンプルファイルを wgetで取得
- /var/www/html/ に配置する
- ブラウザからアクセスして表示されることを確認(OK!)
[root@localhost ユーザ名]# cd [root@localhost ~]# wget --inet4-only http://usg.mydns.jp/free.zip --2019-11-23 14:47:49-- http://usg.mydns.jp/free.zip usg.mydns.jp (usg.mydns.jp) をDNSに問いあわせています... 210.197.78.243 usg.mydns.jp (usg.mydns.jp)|210.197.78.243|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 367290 (359K) [application/zip] `free.zip' に保存中 100%[==============================================================>] 367,290 --.-K/s 時間 0.01s 2019-11-23 14:47:49 (33.9 MB/s) - `free.zip' へ保存完了 [367290/367290] [root@localhost ~]# ls anaconda-ks.cfg free.zip initial-setup-ks.cfg [root@localhost ~]# unzip -d /var/www/html/ free.zip Archive: free.zip creating: /var/www/html/free/css/ inflating: /var/www/html/free/css/common.css ... inflating: /var/www/html/free/index.html
キーワード
受講中に初めて聞いたキーワードや印象に残ったことのメモ。
成果・今後のTODO
- SSH接続は、ホスト認証とユーザ認証の2つの認証を経て接続されることがわかった。
- 超入門レベルのハンズオンなのだと思うが、体験したことがあるとないでは大違いなので受けて良かった。
- Linux周りはもうちょっと使いこなせるようになりたい。