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://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を解除することができる

## 報告書
@メンター
課題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が起動しているか確認した。

### ポート解放をする。
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}`);
});
```
## 現状の問題点
- Log4jを用いて、サーバーにアクセスして、フラグを取得する
- 手順
- 不正なHTTPレスポンスを送る
- LDAPからレスポンスを受け取る
- LDAPからクラスファイルをダウンロードさせ、実行させる。

## 考えられる原因
-
## 対策方法
- 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テンプレート
## 現状の問題点
## 考えられる原因
## 対策方法
## 報告書