---
# System prepended metadata

title: DevSecOpsThon チームD チームボード

---

DevSecOpsThon チームD チームボード
===

$ title="$(curl -sL http://www.gmo.jp | xmllint --html --xpath '/html/head/title/text()' - 2>/dev/null)"
$ echo ${title}
テスト

# Q1
## 現状の問題点
- GLobal-ipにsshをアクセスして、そこからcurlを`http://ww.gmo.jp`に飛ばしてもwelcomenginxが帰ってくる。
- 自分たちのPCからCURLを飛ばしたら、`GMOインターネットグループ`株式会社が表示される。
- テスト用のコンテンツが帰ってくるらしいが、そもそもテストコンテンツが表示されていない。

## 考えられる問題
- DNS
- 
```　:VM
; <<>> DiG 9.16.1-Ubuntu <<>> www.gmo.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 339
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.gmo.jp.			IN	A

;; ANSWER SECTION:
www.gmo.jp.		3600	IN	A	192.168.144.224

;; Query time: 0 msec
;; SERVER: 192.168.144.224#53(192.168.144.224)
;; WHEN: Sat Apr 29 03:13:07 UTC 2023
;; MSG SIZE  rcvd: 55
```

```:ローカル
; <<>> DiG 9.10.6 <<>> www.gmo.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8684
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.gmo.jp.			IN	A

;; ANSWER SECTION:
www.gmo.jp.		29	IN	A	104.17.171.108
www.gmo.jp.		29	IN	A	104.17.172.108

;; Query time: 49 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Apr 29 12:13:30 JST 2023
;; MSG SIZE  rcvd: 71
```


### DNSサーバーを確認する。

- VM
```bash=
scott@assignment-2-d:~$ cat /etc/resolv.conf
# generated by bash script called from cloud-init
nameserver 192.168.144.224
```

- ローカル
```
~/devsec on  master
❯ cat /etc/resolv.conf
#
# macOS Notice
#
# This file is not consulted for DNS hostname resolution, address
# resolution, or the DNS query routing mechanism used by most
# processes on this system.
#
# To view the DNS configuration used by this system, use:
#   scutil --dns
#
# SEE ALSO
#   dns-sd(1), scutil(8)
#
# This file is automatically generated.
#
nameserver 8.8.8.8
nameserver 1.1.1.1
nameserver 8.8.4.4
```

DNSがおかしかったぽい

## 対処法

/etc/resolv.conf を変更して、DNS先を変えた。
![](https://i.imgur.com/3Ug7dtf.png)

参考文献


https://qiita.com/kasei-san/items/137b7fc86a0eacd60765


sshd
のログ 不正ログインの検出を見る `/var/log/secure`
```
Apr 23 11:07:25 q3-d-01 sshd[137925]: Accepted password for root from 210.172.128.230 port 6724 ssh2
Apr 23 11:07:25 q3-d-01 sshd[137925]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 23 11:17:34 q3-d-01 sshd[137927]: Received disconnect from 210.172.128.230 port 6724:11: disconnected by server request
Apr 23 11:17:34 q3-d-01 sshd[137927]: Disconnected from user root 210.172.128.230 port 6724
Apr 23 11:17:34 q3-d-01 sshd[137925]: pam_unix(sshd:session): session closed for user root
Apr 28 18:14:39 q3-d-01 sshd[141770]: Accepted password for root from 210.172.128.230 port 62709 ssh2
Apr 28 18:14:39 q3-d-01 sshd[141770]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 28 18:16:27 q3-d-01 sshd[141770]: pam_unix(sshd:session): session closed for user root
Apr 29 13:27:44 q3-d-01 sshd[142406]: Accepted password for root from 210.172.128.230 port 56308 ssh2
Apr 29 13:27:44 q3-d-01 sshd[142406]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 29 13:37:13 q3-d-01 sshd[142438]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=122.222.95.5  user=root
Apr 29 13:37:15 q3-d-01 sshd[142438]: Failed password for root from 122.222.95.5 port 52068 ssh2
Apr 29 13:37:26 q3-d-01 sshd[142438]: Failed password for root from 122.222.95.5 port 52068 ssh2
Apr 29 13:37:36 q3-d-01 sshd[142440]: Accepted password for root from 122.222.95.5 port 52543 ssh2
Apr 29 13:37:36 q3-d-01 sshd[142440]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 29 13:37:40 q3-d-01 sshd[142438]: Failed password for root from 122.222.95.5 port 52068 ssh2
Apr 29 13:37:42 q3-d-01 sshd[142438]: Connection closed by authenticating user root 122.222.95.5 port 52068 [preauth]
Apr 29 13:37:42 q3-d-01 sshd[142438]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=122.222.95.5  user=root
Apr 29 13:42:46 q3-d-01 sshd[142447]: Received disconnect from 122.222.95.5 port 52543:11: disconnected by user
Apr 29 13:42:46 q3-d-01 sshd[142447]: Disconnected from user root 122.222.95.5 port 52543
Apr 29 13:42:46 q3-d-01 sshd[142440]: pam_unix(sshd:session): session closed for user root
Apr 29 13:46:04 q3-d-01 sshd[142483]: Accepted password for root from 210.172.128.230 port 61455 ssh2
Apr 29 13:46:04 q3-d-01 sshd[142483]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 29 13:46:05 q3-d-01 sshd[142485]: Received disconnect from 210.172.128.230 port 61455:11: disconnected by user
Apr 29 13:46:05 q3-d-01 sshd[142485]: Disconnected from user root 210.172.128.230 port 61455
Apr 29 13:46:05 q3-d-01 sshd[142483]: pam_unix(sshd:session): session closed for user root
Apr 29 13:49:55 q3-d-01 sshd[142530]: Accepted password for root from 122.222.95.5 port 63408 ssh2
Apr 29 13:49:55 q3-d-01 sshd[142530]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 29 13:49:58 q3-d-01 sshd[142524]: Accepted password for root from 122.222.95.5 port 56012 ssh2
Apr 29 13:49:58 q3-d-01 sshd[142524]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 29 13:50:09 q3-d-01 sshd[142528]: Connection closed by authenticating user root 122.222.95.5 port 55960 [preauth]
Apr 29 13:50:13 q3-d-01 sshd[142526]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=122.222.95.5  user=root
Apr 29 13:50:14 q3-d-01 sshd[142526]: Failed password for root from 122.222.95.5 port 52230 ssh2
Apr 29 13:50:22 q3-d-01 sshd[142526]: Accepted password for root from 122.222.95.5 port 52230 ssh2
Apr 29 13:50:22 q3-d-01 sshd[142526]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 29 13:50:35 q3-d-01 sshd[142593]: Accepted password for root from 122.222.95.5 port 55977 ssh2
Apr 29 13:50:35 q3-d-01 sshd[142593]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 29 13:52:32 q3-d-01 sudo[142666]:    root : TTY=pts/3 ; PWD=/root ; USER=root ; COMMAND=/sbin/faillock
Apr 29 13:52:32 q3-d-01 sudo[142666]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Apr 29 13:52:32 q3-d-01 sudo[142666]: pam_unix(sudo:session): session closed for user root
```



## 報告書
@メンター

課題1番について完了しました。
確認お願いします。

==(コマンド結果以外は1～2行の簡潔なものでOK)==
1.期待とは違うレスポンスが得られた理由の推定
★内容★
DNSの接続先が異なっているため本来のwww.gmo.jpのコンテンツにアクセスできていなかった

2.行った対策の内容
★内容★
DNSによる名前解決を改善するために/etc/resolv.confを
```
# generated by bash script called from cloud-init
nameserver 8.8.8.8
nameserver 192.168.144.224
```
とし
title="$(curl -sL http://www.gmo.jp | xmllint --html --xpath '/html/head/title/text()' - 2>/dev/null)"
$ echo ${title}
を命令しなおした。



3.対策後のcurlコマンド結果
★内容★

scott@assignment-2-d:~$ sh shell.sh



# Q2

## 現状の問題点
- sshがVM2とVM1同士では接続できない
- パスワードを何回も間違えたからだと思われる。

## 考えられる原因

これは違った。faillock
https://www.server-memo.net/server-setting/ssh/account_lock_ssh.html

fail2banが不正アクセスを守ってくれていた。
https://qiita.com/hana_shin/items/1233b3b8eea241bcadad

## 対策方法
- fail2banによってsshの接続が遮断されているためその設定を変更する
- まず，`fail2ban-client status`コマンドで現在稼働しているjailの確認を行う
- 次に，`fail2ban-client status sshd`先ほど確認したjailの`Banned IP list`を確認する．今回の場合2の方のプライベートIPがbanされていることが確認できる．
- 次に，`fail2ban-client set sshd unbanip <IP>`を実行しbanされているIPを解除する
- 最後に`firewall`をリロードし変更を反映させる．
上記の流れでbanされたIPを解除することができる
![](https://i.imgur.com/uzHj2u4.png)


## 報告書
@メンター

課題2番について完了しました。
確認お願いします。

====
1.【q3-[*]-02　→　q3-[*]-01】のSSHコマンド結果
★内容★
```
[root@q3-d-02 /]# ssh 192.168.144.64 -l root
root@192.168.144.64's password:
Last login: Sat Apr 29 13:50:35 2023 from 122.222.95.5
[root@q3-d-01 ~]#
```


2.原因解消のために行ったコマンド
★内容★
```
[root@q3-d-01 fail2ban]# fail2ban-client status
Status
|- Number of jail:	1
`- Jail list:	sshd
[root@q3-d-01 fail2ban]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	8
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	1
   |- Total banned:	3
   `- Banned IP list:	192.168.144.74
[root@q3-d-01 fail2ban]# fail2ban-client set sshd unbanip 192.168.144.74
1
[root@q3-d-01 fail2ban]# firewall-cmd --reload
success
```

# Q2 ボーナス

## 現状の問題点
- fail2banのコンフィグを変更したい。

アクセス禁止時間:1ヶ月(30日)

監視時間:1時間

リトライ回数:3回

## 考えられる原因
- jail.localの設定を変更する。
    
下記URLを元に、jail.localを変更する。
https://qiita.com/hana_shin/items/1233b3b8eea241bcadad#71-%E8%A8%AD%E5%AE%9A%E5%86%85%E5%AE%B9
    
## 対策方法

vim /etc/fail2ban/jail.local

```bash
[sshd]
enabled  = true
bantime  = 2592000
findtime = 3600
maxretry = 3
```

## 報告書

@ug-menter

課題3-2番(ボーナス問題)について完了しました。
確認お願いします。

[sshd]
enabled  = true
bantime  = 2592000
findtime = 3600
maxretry = 3

# Q3
| HOSTNAME | GLOBAL-IP     | INTERNAL-IP    | USER-ID | USER-PASS              |
| -------- | ------------- | -------------- | ------- | ---------------------- |
| q1-d-web | 150.95.35.231 | 192.168.144.47 | root    | `M).hB,+XJ(C-*G4ZsF=R` |
| q1-d-db  | 150.95.35.232 | 192.168.144.48 | root    | `M).hB,+XJ(C-*G4ZsF=R` |

設定などのパス集
https://penpen-dev.com/blog/ubuntuapache2/


## 現状の問題点
- ポート解放をする。

## 考えられる原因
- ポート解放がされていない
- アパッチの設定が間違っている?間違ってなさそう
- wordpressのDBの設定が間違っていそう　間違ってなさそう
- IPアドレスの固定ができていない。pingが飛ばなかった。なんで？
- 
## 対策方法

### apacheが起動しているか確認した。
![](https://i.imgur.com/YZFqfmp.png)

### ポート解放をする。
ufw周り。

### 固定IPアドレスの設定をする
https://office54.net/iot/linux/ubuntu-ipaddress-netplan#section2-2
IPADDR= 192.168.11.1YY#固定IPアドレスの設定
```bash
network:
    version: 2
    ethernets:
        eth0:
            dhcp4: false
            dhcp6: false
            accept-ra: false
            addresses:
            - 150.95.35.231/23
            match:
                macaddress: fa:16:3e:c7:e5:01
            mtu: 1500
            nameservers:
                addresses:
                - 127.0.0.1
                search: []
            routes:
            -   to: 0.0.0.0/0
                via: 150.95.34.1
```

設定ファイルの再読込
`systemctl daemon-reload`
`sudo netplan apply`

### アパッチ設定が間違っている。


## 報告書


# Q4

## 現状の問題点
- ホストがない
- 監視していない

## 考えられる原因
- エージェントを追加する

## 対策方法



8. sshのActive Check
/etc/nginx/conf.d/zabbix.conf
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_server.conf

/etc/zabbix/zabbix_server.conf
SSHKeyLocation=/var/lib/zabbix/.ssh/id_rs

## 報告書

# Q5

https://himawaritech.jp/linux/nginx-config-check/

nginx -t で文法チェックができる。
systemctl restart nginx　で再起動。

## 現状の問題点
ログを確認します。
サーバログ　/var/log/nginx/access.log
172.25.0.51
172.25.1.*からの大量のPOSTリクエスト
```bash
172.25.1.61 - - [29/Apr/2023:16:36:57 +0900] "POST /wp-login.php HTTP/1.1" 200 9483 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" "-" "log=root&pwd=N&redirect_to=http%3A%2F%2F2023-q6-team-d.devsecopsthon.net%2Fwp-admin%2F&testcookie=1&wp-submit=%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3"
```
122.222.95.5(同一IPからの)大量のGETリクエスト
```bash
122.222.95.5 - - [29/Apr/2023:16:33:43 +0900] "GET /wp-includes/images/w-logo-blue-white-bg.png HTTP/1.1" 200 4119 "http://2023-q6-team-d.devsecopsthon.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" 
```

nginxのエラーログ /var/log/nginx/error.log
```
2023/04/29 16:36:18 [warn] 64799#64799: *530747 an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/1/00/0000000001 while reading upstream, client: 122.222.95.5, server: localhost, request: "GET /wp-admin/load-scripts.php?c=1&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.2 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php-fpm.sock:", host: "2023-q6-team-d.devsecopsthon.net", referrer: "http://2023-q6-team-d.devsecopsthon.net/wp-admin/"
2023/04/29 16:36:18 [warn] 64799#64799: *530722 an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/2/00/0000000002 while reading upstream, client: 122.222.95.5, server: localhost, request: "GET /wp-admin/load-styles.php?c=1&dir=ltr&load%5Bchunk_0%5D=dashicons,admin-bar,site-health,common,forms,admin-menu,dashboard,list-tables,edit,revisions,media,themes,about,nav-menus,wp-poi&load%5Bchunk_1%5D=nter,widgets,site-icon,l10n,buttons,wp-auth-check,wp-color-picker,media-views&ver=6.2 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php-fpm.sock:", host: "2023-q6-team-d.devsecopsthon.net", referrer: "http://2023-q6-team-d.devsecopsthon.net/wp-admin/"
2023/04/29 16:38:13 [warn] 64799#64799: *537746 an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/3/00/0000000003 while reading upstream, client: 122.222.95.5, server: localhost, request: "GET /wp-admin/load-styles.php?c=1&dir=ltr&load%5Bchunk_0%5D=dashicons,admin-bar,common,forms,admin-menu,dashboard,list-tables,edit,revisions,media,themes,about,nav-menus,wp-pointer,widgets&load%5Bchunk_1%5D=,site-icon,l10n,buttons,wp-color-picker&ver=6.2 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php-fpm.sock:", host: "2023-q6-team-d.devsecopsthon.net", referrer: "http://2023-q6-team-d.devsecopsthon.net/wp-admin/update-core.php"
2023/04/29 16:41:29 [warn] 64799#64799: *543560 an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/4/00/0000000004 while reading upstream, client: 122.222.95.5, server: localhost, request: "GET /wp-admin/load-styles.php?c=1&dir=ltr&load%5Bchunk_0%5D=dashicons,admin-bar,common,forms,admin-menu,dashboard,list-tables,edit,revisions,media,themes,about,nav-menus,wp-pointer,widgets&load%5Bchunk_1%5D=,site-icon,l10n,buttons,wp-auth-check,wp-color-picker&ver=6.2 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php-fpm.sock:", host: "2023-q6-team-d.devsecopsthon.net", referrer: "http://2023-q6-team-d.devsecopsthon.net/wp-admin/plugins.php"
2023/04/29 16:48:20 [notice] 64798#64798: signal 15 (SIGTERM) received from 82221, exiting
2023/04/29 16:48:20 [notice] 64799#64799: exiting
2023/04/29 16:48:20 [notice] 64798#64798: signal 15 (SIGTERM) received from 1, exiting
2023/04/29 16:48:20 [notice] 64799#64799: signal 15 (SIGTERM) received from 1, exiting
2023/04/29 16:48:20 [notice] 64799#64799: exit
2023/04/29 16:48:20 [notice] 64798#64798: signal 17 (SIGCHLD) received from 64799
2023/04/29 16:48:20 [notice] 64798#64798: worker process 64799 exited with code 0
2023/04/29 16:48:20 [notice] 64798#64798: exit
2023/04/29 16:48:20 [warn] 82222#82222: conflicting server name "localhost" on 0.0.0.0:80, ignored
2023/04/29 16:48:20 [emerg] 82222#82222: zero size shared memory zone "one"
2023/04/29 16:49:25 [warn] 82313#82313: conflicting server name "localhost" on 0.0.0.0:80, ignored
2023/04/29 16:49:25 [emerg] 82313#82313: zero size shared memory zone "one"
2023/04/29 16:50:02 [warn] 82473#82473: conflicting server name "localhost" on 0.0.0.0:80, ignored
2023/04/29 16:50:02 [warn] 82473#82473: 4000 worker_connections exceed open file resource limit: 1024
```
ここでもclient: 122.222.95.5が確認できる。


sshdのログ 不正ログインの検出 /var/log/secure

## 考えられる原因

## 対策方法
/etc/nginx/conf.d
```bash
geo $access_filter {
    default OK;
    include /etc/nginx/conf.d/ip_deny_list.txt;
}

server {
    listen 80;
    server_name 172.25.0.51;
    root /var/www/html;
    deny 172.25.0.1;
    index index.html index.htm;
}
```
/etc/nginx/conf.d/brute_protect.conf
```bash
server {
    server_name http://2023-q6-team-d.devsecopsthon.net/;
    root /var/www/html/;

    #limit connection per ip
    limit_conn perip 10;

    #protect /admin/login
    location ~/admin/login {
        limit_req zone=login; #use login limit_req_zone
        limit_req_status 444; #return 444 when limiting
    }

    location / {
        #other none rate limited requests
    }
}
```

ブラックリストの作成
```
122.222.95.5  NG;
172.25.0.51   NG;
172.25.1.1    NG;
172.25.1.2    NG;
172.25.1.3    NG;
172.25.1.4    NG;
172.25.1.5    NG;
172.25.1.6    NG;
172.25.1.7    NG;
172.25.1.8    NG;
172.25.1.9    NG;
172.25.1.10   NG;
172.25.1.11   NG;
172.25.1.12   NG;
172.25.1.13   NG;
172.25.1.14   NG;
172.25.1.15   NG;
172.25.1.17   NG;
172.25.1.18   NG;
172.25.1.19   NG;
172.25.1.20   NG;
172.25.1.21   NG;
172.25.1.22   NG;
172.25.1.23   NG;
172.25.1.24   NG;
172.25.1.25   NG;
172.25.1.26   NG;
172.25.1.27   NG;
172.25.1.28   NG;
172.25.1.29   NG;
172.25.1.30   NG;
172.25.1.31   NG;
172.25.1.32   NG;
172.25.1.33   NG;
172.25.1.34   NG;
172.25.1.35   NG;
172.25.1.36   NG;
172.25.1.37   NG;
172.25.1.38   NG;
172.25.1.39   NG;
172.25.1.41   NG;
172.25.1.42   NG;
172.25.1.43   NG;
172.25.1.44   NG;
172.25.1.45   NG;
172.25.1.46   NG;
172.25.1.47   NG;
172.25.1.48   NG;
172.25.1.49   NG;
172.25.1.50   NG;
172.25.1.51   NG;
172.25.1.52   NG;
172.25.1.53   NG;
172.25.1.54   NG;
172.25.1.55   NG;
172.25.1.56   NG;
172.25.1.57   NG;
172.25.1.58   NG;
172.25.1.59   NG;
172.25.1.60   NG;
172.25.1.61   NG;
172.25.1.62   NG;
172.25.1.63   NG;
172.25.1.64   NG;
172.25.1.65   NG;
172.25.1.67   NG;
172.25.1.69   NG;
172.25.1.71   NG;
172.25.1.72   NG;
172.25.1.73   NG;
172.25.1.74   NG;
172.25.1.75   NG;
172.25.1.76   NG;
172.25.1.78   NG;
172.25.1.79   NG;
172.25.1.80   NG;
172.25.1.81   NG;
172.25.1.82   NG;
172.25.1.83   NG;
172.25.1.84   NG;
172.25.1.85   NG;
172.25.1.86   NG;
172.25.1.87   NG;
172.25.1.88   NG;
172.25.1.89   NG;
172.25.1.90   NG;
172.25.1.91   NG;
172.25.1.92   NG;
172.25.1.93   NG;
172.25.1.94   NG;
172.25.1.95   NG;
172.25.1.96   NG;
172.25.1.97   NG;
172.25.1.98   NG;
172.25.1.99   NG;
172.25.1.100  NG;
172.25.1.101  NG;
172.25.1.102  NG;
172.25.1.103  NG;
 172.25.1.104 NG;
 172.25.1.105 NG;
 172.25.1.106 NG;
 172.25.1.107 NG;
 172.25.1.108 NG;
 172.25.1.109 NG;
 172.25.1.110 NG;
 172.25.1.112 NG;
 172.25.1.113 NG;
 172.25.1.114 NG;
 172.25.1.115 NG;
 172.25.1.116 NG;
 172.25.1.118 NG;
 172.25.1.119 NG;
 172.25.1.120 NG;
 172.25.1.122 NG;
 172.25.1.123 NG;
 172.25.1.124 NG;
 172.25.1.125 NG;
 172.25.1.126 NG;
 172.25.1.127 NG;
 172.25.1.128 NG;
 172.25.1.129 NG;
 172.25.1.130 NG;
 172.25.1.131 NG;
 172.25.1.132 NG;
 172.25.1.133 NG;
 172.25.1.134 NG;
 172.25.1.135 NG;
 172.25.1.136 NG;
 172.25.1.137 NG;
 172.25.1.138 NG;
 172.25.1.139 NG;
 172.25.1.140 NG;
 172.25.1.141 NG;
 172.25.1.142 NG;
 172.25.1.143 NG;
 172.25.1.144 NG;
 172.25.1.145 NG;
 172.25.1.146 NG;
 172.25.1.147 NG;
 172.25.1.148 NG;
 172.25.1.149 NG;
 172.25.1.150 NG;
 172.25.1.151 NG;
 172.25.1.152 NG;
 172.25.1.153 NG;
 172.25.1.154 NG;
 172.25.1.155 NG;
 172.25.1.156 NG;
 172.25.1.157 NG;
 172.25.1.158 NG;
 172.25.1.159 NG;
 172.25.1.160 NG;
 172.25.1.161 NG;
 172.25.1.162 NG;
 172.25.1.163 NG;
 172.25.1.164 NG;
 172.25.1.165 NG;
 172.25.1.166 NG;
 172.25.1.167 NG;
 172.25.1.168 NG;
 172.25.1.169 NG;
 172.25.1.170 NG;
 172.25.1.171 NG;
 172.25.1.172 NG;
 172.25.1.173 NG;
 172.25.1.174 NG;
 172.25.1.175 NG;
 172.25.1.176 NG;
 172.25.1.177 NG;
 172.25.1.178 NG;
 172.25.1.179 NG;
 172.25.1.180 NG;
 172.25.1.181 NG;
 172.25.1.182 NG;
 172.25.1.183 NG;
 172.25.1.184 NG;
 172.25.1.185 NG;
 172.25.1.186 NG;
 172.25.1.187 NG;
 172.25.1.188 NG;
 172.25.1.189 NG;
 172.25.1.190 NG;
 172.25.1.191 NG;
 172.25.1.192 NG;
 172.25.1.193 NG;
 172.25.1.194 NG;
 172.25.1.195 NG;
 172.25.1.196 NG;
 172.25.1.197 NG;
 172.25.1.198 NG;
 172.25.1.199 NG;
 172.25.1.200 NG;
 172.25.1.201 NG;
 172.25.1.202 NG;
 172.25.1.203 NG;
 172.25.1.204 NG;
 172.25.1.205 NG;
 172.25.1.206 NG;
 172.25.1.207 NG;
 172.25.1.208 NG;
 172.25.1.209 NG;
 172.25.1.210 NG;
 172.25.1.211 NG;
 172.25.1.212 NG;
 172.25.1.213 NG;
 172.25.1.214 NG;
 172.25.1.215 NG;
 172.25.1.216 NG;
 172.25.1.217 NG;
 172.25.1.218 NG;
 172.25.1.219 NG;
 172.25.1.220 NG;
 172.25.1.221 NG;
 172.25.1.222 NG;
 172.25.1.223 NG;
 172.25.1.224 NG;
 172.25.1.225 NG;
 172.25.1.226 NG;
 172.25.1.227 NG;
 172.25.1.228 NG;
 172.25.1.229 NG;
 172.25.1.230 NG;
 172.25.1.231 NG;
 172.25.1.232 NG;
 172.25.1.233 NG;
 172.25.1.234 NG;
 172.25.1.235 NG;
 172.25.1.236 NG;
 172.25.1.237 NG;
 172.25.1.238 NG;
 172.25.1.239 NG;
 172.25.1.240 NG;
 172.25.1.241 NG;
 172.25.1.242 NG;
 172.25.1.243 NG;
 172.25.1.244 NG;
 172.25.1.245 NG;
 172.25.1.246 NG;
 172.25.1.247 NG;
 172.25.1.248 NG;
 172.25.1.249 NG;
 172.25.1.250 NG;
 172.25.1.251 NG;
 172.25.1.252 NG;
 172.25.1.253 NG;
 172.25.1.254 NG;
```

### 1秒に5回以上アクセスさせないようにする。

参考文献
https://wtnb.mydns.jp/wordpress/archives/6967

```
http {
  limit_req_zone $binary_remote_addr zone=one:10m rate=10r/m;
  server {
     :
     location = /path/wp-login.php {
      limit_req zone=one burst=5 nodelay;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_pass unix:/var/run/php-fpm.sock;
    }
  }
}
```


```
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$request_body"';

   access_log  /var/log/nginx/access.log  main if=$log_combined;
 access_log  /var/log/nginx/zabbix_access.log combined if=$log_zabbix;

 map $http_user_agent $log_zabbix {
        default 0;
        ~ZABBIX-MONITORING-CHECK 1;
     }

 map $http_user_agent $log_combined {
        default 1;
        ~ZABBIX-MONITORING-CHECK 0;
     }

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;


    # ↓以下のものを追加する。
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;


    include /etc/nginx/conf.d/*.conf;
}
```

## 報告書

# Q6

## 現状の問題点
- 写真が重い

## 考えられる原因

## 対策方法
worker_process
```
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


worker_rlimit_nofile 100000;
events {
worker_connections  2048;
multi_accept on;
}
```

nginxの静的ファイルのキャッシュ
/etc/nginx/sites-available#
```
location ~ .*\.(html?|jpe?g|gif|png|css|js|ico|swf|inc) {
    expires 7d;
    access_log off;
}
```

nginx.confのgzip onのコメントアウトを外し下記を追記
```
    gzip  on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
```

`worker_processes auto;`nginxに任せる

Ubuntuのチューニングパラメータを変更
`sudo apt install tuned`

```
# ネットワークデバイス別にカーネルが処理できるように貯めておくqueueのサイズ
net.core.netdev_max_backlog

# backlog値のhard limit
net.core.somaxconn = 4096

# ソケット当たりのSYNを受け付けてACKを受け取っていない状態のコネクションの保持可能数
net.ipv4.tcp_max_syn_backlog = 16000

# NIC に対する受信パケットの最大キューイング数
net.core.netdev_max_backlog = 16000

# TCPとUDPの受信バッファのデフォルトサイズと最大サイズ
net.core.rmem_max = 4194304

# TCPとUDPの送信バッファのデフォルトサイズと最大サイズ
net.core.wmem_max = 4194304

# データ受信バッファ サイズ
net.ipv4.tcp_rmem = 4096        87380   4194304

# FINのタイムアウト時間
net.ipv4.tcp_fin_timeout = 12

# tcpのSYNを送信するリトライ回数
net.ipv4.tcp_syn_retries = 2

# TCP/IPの送信時に使用するポートの範囲
net.ipv4.ip_local_port_range = 32768    60999

# 自分からの接続を使い回す
net.ipv4.tcp_tw_reuse = 1

# RFC1337に準拠させる
net.ipv4.tcp_rfc1337 = 1

# システムが同時に保持するtime-waitソケットの最大数
net.ipv4.tcp_max_tw_buckets = 360000

# クライアントからの Sync パケットは捨てずに、 Syn cookies を利用した通信を行うかの設定
net.ipv4.tcp_syncookies = 1

# accept キューがあふれた場合、クライアントからの SYN に RST を返す
net.ipv4.tcp_abort_on_overflow = 0

# SYN flood攻撃対策。
net.ipv4.tcp_syncookies = 1
```


ヒント3のToo many open filesを改善
`echo 320000 > /proc/sys/fs/file-max`


## 報告書


# Q7

Exploit.java
```
import static java.util.stream.Collectors.joining;

import java.util.Map;

public class Exploit {
  public Exploit() {
  }

  static {
    try {
      String[] cmds = new String[] { "echo", "Hello !" };
      java.lang.Runtime.getRuntime().exec(cmds).waitFor();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) {
    Exploit e = new Exploit();
  }
```

httpd.js
```
const express = require("express");
const app = express();

const argv = process.argv[2];
if (!argv) {
  console.error(`Please pass server address.

Usage: nodejs httpd.js <ip address>:<port>`);
  return;
}

const address = argv.split(":")[0];
const port = parseInt(argv.split(":")[1]);

app.use(express.static("."));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.get("/", (req, res) => {
  console.log(req.method, req.originalUrl, req.query);
  res.send("Hello World!");
});

app.post("/", (req, res) => {
  console.log(req.body);
  res.send("hi");
});

app.listen(port, address, () => {
  console.log(`Example app listening on ${address}:${port}`);
});
```


## 現状の問題点
- Loｇ4ｊを用いて、サーバーにアクセスして、フラグを取得する
- 手順
    - 不正なHTTPレスポンスを送る
    - LDAPからレスポンスを受け取る
    - LDAPからクラスファイルをダウンロードさせ、実行させる。
![](https://i.imgur.com/SNfTu51.png)

## 考えられる原因
- 

## 対策方法
-　Javaからポストを飛ばして、取得する方法。
-　サンプルで攻撃した。
-　HTTPリクエストをとばしてみた。

## 報告書

@メンター

課題7番について完了しました。
確認お願いします。
============================================================================================
1. 対象のサーバから得られた文字列 (Flag)
DEVSECOPSTHON5FLG=????

2. 今回取り上げている脆弱性の CVE 識別番号 
CVE-2021-44228

参考文献
https://www.jpcert.or.jp/at/2021/at210050.html

3. 今回取り上げた脆弱性の影響範囲 (バージョン番号) 
Apache Log4j core 2.0-beta9 から 2.12.1 より前のバージョン
Apache Log4j 2.13.0 から 2.15.0 より前のバージョン

参考文献
https://jvndb.jvn.jp/ja/contents/2021/JVNDB-2021-005429.html

4. 今回取り上げたソフトウェアの脆弱性が見つかったことより、影響のあったサービス、または企業名を 3 つ
(例)・サービス/企業名 (ソースとなる URL があるとなおよし)
・　ACOS Access Toolkit
・　CONNEXIVE Application Platform
・　SMPRO/UPSManager

参考文献
https://jvndb.jvn.jp/ja/contents/2021/JVNDB-2021-005429.html
=============================================================================================

# Q8

https://esa-pages.io/p/sharing/19973/posts/34/cf03b3ab398352c91889.html


scpによるwordpress/のエクスポート

```
$ ssh scott@old_server_ip
$ cd /var/www/html/
$ tar -czvf wordpress.tar.gz wordpress/
$ exit
$ scp user@old_server_ip:/var/www/html/wordpress.tar.gz ~/wordpress.tar.gz
```
    

DBのエクスポート
```
$ ssh scott@old_server_ip
$ mysqldump -u DB_USER -p DB_NAME > db_backup.sql
$ exit
$ scp scott@old_server_ip:/path/to/db_backup.sql ~/db_backup.sql
```



以降先のDBインポート～DNSレコードを変更
```
mysql -u DB_USER -p DB_NAME < ~/db_backup.sql
cd /var/www/html/wordpress/
sudo cp wp-config-sample.php wp-config.php
sudo vim wp-config.php
# 以下を修正
# define('DB_NAME', 'database_name_here');
# define('DB_USER', 'username_here');
# define('DB_PASSWORD', 'password_here');
sudo systemctl restart apache2
ssh user@old_server_ip
exit
ssh user@domain_registrar_ip
# ドメインレジストラのウェブサイトでDNSレコードを変更する
exit
```


## 現状の問題点
- wordpressの物理データの移行
    - 移動完了
- wordpressのDBの移動
- wordpressの設定
    - 現在進行形
- DNSの設定
    - みんなで行う
- nginxの移動
    - やる必要なし

http://mng.devsecopsthon.local:9191/dashboard/

## 考えられる原因

## 対策方法



## 報告書


# Q9

## 現状の問題点
- カーネルアップデートをして、サーバーのデータにアクセスできなくなった。
- データをアクセスするために、カーネルバージョンをロールバックする必要
- mntを行ってデータを取り出す。

## 対策方法
- 

## 報告書

---

# Qテンプレート

## 現状の問題点

## 考えられる原因

## 対策方法

## 報告書