写下服务器的笔记

0x00 前言

最近买了一年的国内某云的服务器。这篇文章主要记录一下我在这台服务器上做的事情,避免以后采坑。操作系统是Ubuntu18.04,持续更新。

0x01 换源

备份源文件

$ sudo  cp   /etc/apt/sources.list   /etc/apt/sources.list.bak

更改文件权限使其可编辑

$ sudo  chmod  777  /etc/apt/sources.list

Ubuntu 18.04 阿里源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

别忘了更新一下

$ sudo apt update

Ubuntu 18.04,代号 Bionic Beaver,这个版本完整的版本号是18.04 LTS(Long Term Support),是一个长期支持版本(10年)。

0x02 安装docker

用安装脚本一键安装

 $ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装docker-compose

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.

先安装一个pip

$ sudo apt install python-pip

再用pip安装docker-compose

$ pip install docker-compose 
$ docker-compose --version  //测试是否安装成功

报错了,执行以下语句,再继续安装docker-compose

$ mkdir ~/.pip/
$ cd ~/.pip/
$ vim pip.conf 
# 添加以下代码
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
$ pip install --upgrade pip  # 更新pip

有可能启动不了docker-compose,用官方的三条命令安装

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version  //测试是否安装成功

0x03 搭建vulhub

这是官方的搭建步骤

# Download project
wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip
unzip vulhub-master.zip
cd vulhub-master

# Enter the directory of vulnerability/environment
cd flask/ssti

# Compile environment
docker-compose build

# Run environment
docker-compose up -d

但是在wget的时候因为是国内的服务器所以下载速度太慢了。

于是我先用科学上网在本机下好了这个包,再用Xshell的好兄弟Xftp传到了服务器里

解压

$ unzip vulhub-master.zip

切换到想要开启的漏洞环境中

输入以下命令即可运行一个容器

# Compile (optional) 
$ docker-compose build 

# Run 
$ docker-compose up -d 

docker加速

加速地址在阿里云的容器镜像服务中获取

$ sudo mkdir -p /etc/docker 
$ vim /etc/docker/daemon.json 
# 加入以下代码 {   "registry-mirrors": ["加速器地址"] }  
$ sudo systemctl daemon-reload 
$ sudo systemctl restart docker 

0x04 利用docker搭建sqli-labs、dvwa、upload-labs、...

sqli-labs

$ docker pull acgpiano/sqli-labs 
$ docker run -d --name sqli -p 80:80 --rm acgpiano/sqli-labs
//-p 必不可少,将docker的端口映射到本地端口←

upload-labs

$ docker pull c0ny1/upload-labs
$ docker run -d --name upload -p 8080:80 --rm c0ny1/upload-labs

dvwa

$ docker pull citizenstig/dvwa
$ docker run -d --name upload -p 8000:80 --rm citizenstig/dvwa

停止所有容器:

$ docker stop $(docker ps -a -q)

0x05 安装LAMP

Apache2 web服务器

$ apt install apache2

安装的时候遇到了以下情况

考虑到可能是之前开了docker,80端口被占用了,于是先把docker关了

$ systemctl stop docker

再查看一下apache2的状态

$ systemctl status apache2

发现还是刚才那样 Failed to start The Apache HTTP Server. 令人绝望的是,重新安装也还是这样。

于是在网上找到一个教程,两行命令解决

$ apt purge apache2 //删除应用程序同时删除配置文件
$ apt install apache2

可能是之前端口被占用的时候配置文件出错了吧。

开启、关闭和重启 Apache服务的命令,和之前我的 centos7 vps 不同(apache2 处为 httpd)

$ systemctl start apache2 

$ systemctl stop apache2 

$ systemctl restart apache2 

MySQL 数据库

https://www.cnblogs.com/opsprobe/p/9126864.html

PHP

只需要一行命令

$ apt install php

查看php版本信息

$ php -v

把 Apache 的默认页面的优先权给 index.php,也可以自定义默认页面。

$ vim /etc/apache2/mods-enabled/dir.conf //把index.php排在前面

修改配置文件后,重启一下Apache服务器

$ systemctl restart apache2

在 /var/www/html 中写入一个 index.php文件,内容为

$ vim /var/www/html/index.php

访问服务器ip,看到这个结果就代表成功了

0x06 cp命令复制多个文件

cp {apple.php,bitch.php,cat.txt} /var/www/html/

0x07 php连接mysql

最近给校赛出题,需要连接数据库,然后到网上搜了一下,给出的代码是这样的

connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
echo "连接成功";
?>

但是网页上一片空白,可能是哪里出错了,于是我打开了apache服务器的 error.log

位置: /var/log/apache2/error.log

发现了错误,原来是 php高版本不再使用mysql_connect()来连接数据库,用mysqli_connect()代替

有一种更方便的办法就是让网页直接显示错误信息,弄好了是这个样子

先通过phpinfo找到php的配置文件php.in的位置

在配置文件的头部添加两行代码

ini_set("display_errors", "stderr");  //ini_set函数作用:为一个配置选项设置值
error_reporting(E_ALL);  //显示所有的错误信息

like this

重启apache服务器即可

接下来我把 mysql_connect() 改成了mysqli_connect(),结果还是报错了

原因是php没有添加mysqli扩展

如果源码安装的PHP就用源码的方式解决,如果apt install安装的PHP就用apt install的方式解决

我当时是用apt install 来安装php的,所以解决这个问题只需要2行命令

$ apt install php-mysql
$ systemctl restart apache2

命令执行后,再查看phpinfo页面,这时发现了mysqli扩展

这时候再测试一下,发现已经可以连接上数据库了

0x08 standard_init_linux.go:211: exec user process caused "no such file or directory"

做Dockerfile的时候运行容器报这个错误,打开vim看看文件格式

$ :set ff

如果显示fileformat=dos,输入以下命令把dos改成unix即可

$ :set ff=unix

0x09 tips for linux&docker

分析文件,可查看文件最近修改时间等等

$ stat [filename]

docker 批量停止运行中的容器

$ docker stop $(docker ps -q)

删除所有容器

$ docker rm $(docker ps -a -q)

删除所有镜像

$ docker rmi $(docker images)

0x10 iptables封禁ip

比如要办 202.206.96.49

$ iptables -I INPUT -s 202.206.96.49 -j DROP //也可以办一个网段

解禁

$ iptables -D INPUT -s 202.206.96.49 -j DROP

查看当前规则

$ iptables -L -n  //numeric

清空封掉的IP地址

$ iptables -F

更多:
https://www.jb51.net/article/135785.htm

0x11 find命令

在根目录中按照文件名来查找(区分大小写)

$ find ./ name filename

在根目录中按照文件名来查找(不区分大小写)

$ find ./ iname filename

找flag

find ./ -name "flag*" |xargs grep "flag*"

更多:
https://blog.csdn.net/m0_38121874/article/details/77019127

0x12 远程传输文件

$ scp [email protected]:/flag /home  //输入远程用户密码即可

新服务器

0x13 su root失败

真邪门,一直切换 root用户都认证失败,自己的服务器还root不了?

网上查找原因后发现原来是因为root没有初始化。

$ sudo passwd root

然后输入两次密码就行了

0x14 删除的时候显示^H

经常在某些程序中输入命令,输入错了一个字却删除不了出现的是按下的是Backspace 出现的却是^H。这时候在系统命令处执行

$ stty erase ^H

即可解决问题

你可能感兴趣的:(写下服务器的笔记)