中北网安实训笔记(开源聚合)-(20200618)-中间件、php环境(lamp或lnmp的安装与卸载)、java环境搭建、find和ps与netstate命令详解
中间件
中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。目前,它并没有很严格的定义,但是普遍接受IDC的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。从这个意义上可以用一个等式来表示中间件:中间件=平台+通信,这也就限定了只有用于分布式系统中才能叫中间件,同时也把它与支撑软件和实用软件区分开来。
还有另一种说法:中间件是Tcp、ip协议+http协议+html(超文本编辑语言)格式:发送请求→接收响应→渲染页面→
————————————————————————————————————
安装bottle:
先装python3-pip:
然后安装bottle:
——————————————————————————————————————
编写一个bottle文件:
1.创建一个1.py;使用vim编辑器
2. 写入:
3. 编译:
4. 浏览器输入 http://192.168.56.101:8080/
这个是你的虚拟机端口号
给电脑装一个apache2-utils,来对192.168.56.101:8080进行(ab测试)疯狂访问,可使它瘫痪:
shell端输入:ab -c 20 -n 1000 http://192.168.56.101:8080
进行恶意攻击
————————————————————————————————————————
PHP环境搭建
网站服务构成:
php的环境之LAMP:
安装apache:
1).下载源代码安装:
翻看apache HTTP服务器文档–》编译与安装http://httpd.apache.org/docs/2.4/install.html
1. 进入apache官网,下拉,找到HTTP Server:
2. 下载apache:
3. 点进去后下载.bz2或者.gz
4. 对它右击,复制链接地址:https://mirror.bit.edu.cn/apache//httpd/httpd-2.4.43.tar.gz
5. 用ssh链接虚拟机(ubuntu)
6. 使用wget下载: wget https://mirror.bit.edu.cn/apache//httpd/httpd-2.4.43.tar.gz
7. 。。。不了了之有点麻烦不说了
2).下载安装包安装:
sudo apt install apache2
下载好后浏览器输入ip地址就会出现apache2的默认页面:
软件包安装的apache2配置文件在etc目录下:
apache2配置文件:
其中,apache2.conf文件为主配置文件;使用vim apache2.conf查看配置文件内容
网站根目录:
所有用网址访问的ip地址所含有index.???的都可以用apache2渲染出来
接下来对正在使用的配置文件进行介绍:
已经启动的网站:
现在我们查看下apache2的正在使用的配置文件:网站根目录:
错误日志存放地方:
注:错误日志只含程序错误、404不算.
自定义(访问日志)保存在:
查找目录:
访问apache2网站根目录:
卸载apache2:sudo apt remove apache2:
————————————————————————————————————————————
php的环境之LNMP:
Nginx是黑客编的,比apache性能更好一点
安装Nginx:
1).源代码安装:
- 进入nginx官网: http://nginx.org/en/download.html
2.复制stable version(稳定版本)的下载地http://nginx.org/download/nginx-1.18.0.tar.gz - 使用wget下载:wget http://nginx.org/download/nginx-1.18.0.tar.gz
- 解压:tar xvf :
- 进入 nginx;
- 配置文件:./configure
- 安装GCC、C编译器:sudo apt install gcc、sudo apt install c
缺少pcre库,百度一下pcre库叫啥名字:
装个库:sudo apt install libpcre3 libpcre3-dev:- 缺少zlib库:
装它:sudo apt install zlib1g zlib1g-dev
7.安装完成:
- 缺少zlib库:
8.编译make,若无make,则安装make:sudo apt install make,完后make
9.sudo make install
2).安装包安装
sudo apt install nginx:
安装好后在网页端访问下:
网站根目录、配置文件文件夹不变,同apache
卸载nginx:sudo apt remove nginx
3).手动与自动安装不同:(源代码安装与安装包安装不同)
- 安装目录不同,源代码安装的目录为/usr/local/nginx
- 手动安装编译的linux没有启动,因此需要重新启动后才能在网页端输入ip地址启动:
- 配置目录在安装目录下:
找到网站根目录后写个test.html文件保存,在网站上查到
首先要找到网站根目录,在/usr/local/nginx/html中:
新建一个.html文件: sudo touch ./test.html
打开新建的文件进行编写:vim ./test.html
————————————————————————————————————
java环境搭建
java
find命令使用方法:
基本格式:find path expression
1.按照文件名查找
(1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf #在/etc目录下文件httpd.conf
(3)find /etc -name ‘srm’ #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(4)find . -name ‘srm*’ #表示当前目录下查找文件名开头是字符串‘srm’的文件
2.按照文件特征查找
(1)find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2 # 查找在系统中最后48小时访问的文件
(3)find / -empty # 查找在系统中为空的文件或者文件夹
(4)find / -group cat # 查找在系统中属于 group为cat的文件
(5)find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(7)find / -user fred #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件
————————————————————————————————————————————
ps命令详解:
ps命令详解
Linux上进程有5种状态:
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
名称:ps
使用权限:所有使用者
使用方式:ps [options] [–help]
说明:显示瞬间行程 (process) 的动态
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
范例:
ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps
% ps -A
PID TTY TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kflushd
3 ? 00:00:00 kpiod
4 ? 00:00:00 kswapd
5 ? 00:00:00 mdrecoveryd
…
% ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
具体命令解释如下:
1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号>
指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u
以用户为主的格式来显示程序状况。
13)ps x
显示所有程序,不以终端机来区分。
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
———————————————————————————————————————————————
netstate命令使用方法:
一、netstat命令简述
netstat命令用来打印Linux系统的网络状态信息,包括网络连接(network connections)、路由表(routing tables)、网络接口设备统计信息(interface statistics)、伪装连接(masquerade connections)和多播成员信息(multicast memberships)等,可显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。。
二、输出解释
在linux下直接执行netstat会得到如下结果
从整体上看netstat的输出结果可以分为两个部分。一个是Active Internet connections,二是Active UNIX domain sockets。
(1)Active Internet connections Active Internet connections表示活跃的网络连接,包括UDP和TCP连接信息。其中"Recv-Q"和"Send-Q"指接收队列和发送队列,这些数字一般都是0,如果不是则表示数据发送和接收队列存在堆积,这种情况较为少见。Local Address和Foreign Address表示本地和远端的IP、端口,State表示连接的状态,主要有:
ESTABLISHED:已建立连接的状态
LISTEN :侦听来自远方的TCP端口的连接请求
SYN_SENT:发出主动连接(SYN)的数据包
SYN_RECV :接收到一个要求连接的主动连接数据包
FIN_WAIT1 :该套接字服务已中断,该连接正在断线中
FIN_WAIT2:该连接已挂断,正在等待对方主机响应断线确认的数据包
TIME_WAIT :连接已挂断,但socket还在网络上等待结束
CLOSE_WAIT:等待从本地用户发来的连接中断请求
——————————————————————————————————————————
在lunux下:ps(process进程)
ps aux指令
查看哪一个用户启动了什么
ps可以快速看到谁启用了。
——————————————————————————————————————
装PHP:
php -v:查看php脚本
编写一个1.php文件,内容如 上上图:
首先vim ./1.php(创建并进入1.php文件内进行编写)
网站根目录关系:
练习:在网站根目录下写一个动态网站(每次访问结果不一致)
得装个libapache-mod-php
然后apache2与php联通了:
给虚拟机装mysql的服务器端和客户端:
部署一个开源项目