Abstract: 对第二周学习的内容进行总结,note6-note10的笔记。

周一

Linux权限

1.内容简介

  • Linux权限控制

  • git服务器搭建与安全检查

  • tomcat服务器搭建与安全检查

2.几种文件类型

  • [d] 是目录

  • [-] 是文件

  • [l] 是链接文件(link file)

3.读写执行权限

文件类型 属主权限 属组权限 其他用户权限
0 123 456 789
d rwx r-x r-x
目录文件 读写执行 读—执行 读—执行

对于目录的rwx

1
2
3
* r可以显示文件夹的结构
* w可以在文件夹里添加删除文件
* x可以进入到文件夹
权限命令:

rwx在系统中对应一个个的值,r-4,w-2,x-1

chown修改当前文件或文件夹的所属用户

1
chown root:root /tmp/tmp1
1
chown -R root:root /tmp/tmp1

chmod修改当前文件或文件夹的权限

语法:chmod [who] [+|-|=] [mode] 文件名

操作对象who:

  • u表示“用户(user)”,即文件或目录的所有者
  • g表示”同组(group)用户”,即与文件属主有相同组ID的所有用户
  • o表示”其他(other)用户”
  • a表示”所有(all)用户”,它是系统默认值

推荐使用数字的方式修改文件或者文件夹的权限

操作符可以是:

  • +添加某个权限

  • -取消某个权限

  • =赋予给定权限并取消其他所有权限

    *不指定用户的情况下,=只会给文件所有者加权限,+给所有者加权限

一个网站最合理的权限是755

4.渗透测试中常用的命令

  • whoami 查看当前用户

  • tar 压缩和解压文件

  • netstat 查看网络状态

  • nslookup 查看dns信息

  • ps 查看运行的程序

  • top 实时查看运行的程序

  • service 使用service控制服务启动关闭

  • curl 获取网页,可以使用输出重定向来下载文件

  • wget 下载文件

    1
    more /etc/apt/sources.list

    sources.list是各种软件源,常用的源有阿里云、清华大学、中科院

    1
    sudo apt-get update

    Note: 推荐关机快照

周二

tomcat和git服务器搭建

1.内容简介

  • 复习

  • tomcat服务器搭建

2.网络不通该如何调试

先用ficonfig查看网卡信息,若正常,ping 网卡,若不正常,查看配置文件和网络环境;若网卡默认不启用,修改配置文件,onboot=yes 重启网络服务,配置文件路径:/etc/sysconfig/network-scripts/ifcfg-eth0

1
2
3
cat /etc/sysconfig/network-script/ifcfg-eth0
vi /etc/sysconfig/network-script/ifcfg-eth0
service network restart

若网络环境是dhcp,修改上网方式为dhcp,重启网络服务

若网络环境是静态ip,修改上网方式为static,ipaddr=, netmask=, gateway=

能够ping通8.8.8.8

1
curl www.baidu.com

若不能打开,查看dns配置文件

1
vi /etc/resolv.conf

添加servername 1.1.1.1

3.搭建tomcat服务器

1
2
3
4
5
#启动防火墙
systemctl start firewalld
#将80端口添加到防火墙例外并重启
firewall-cmd --zone=public --add-por=8080/tcp --permanent
firewall-cmd --reload

防火墙=硬件+软件

1
yum apt-get -y install tomcat
1
vi .../apache-tomcat-8.5.43/webapps/manager/META-INF/context.xml

修改tomcat配置文件为

1
2
3
4
5
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="\d+\.\d+\.\d+\.\d+" />
</Context>

进入conf目录下修改tomcat-users.xml 用户名和密码

1
vi /usr/local/tomcat/conf/tomcat-users.xml
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-usersversion="1.0" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" xmlns:xsi="http://www/w3.org/2001/XMLSchema-instance" xmlnx="http://tomcat.apache.org/xml">
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<user roles="manager-gui, manager-script, manager-jmx, manager-status, admin-script" password="tomcat" username="tomcat"/>
</tomcat-users>

4.git服务器搭建

1
2
3
4
5
#修改yum源
cat CentOS-Base.repo
#[base]注释掉mirrorlist和baseurl添加以下语句
baseurl=http://192.168.100.110:8000/yum/
#以下三个修改为enable=0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#下载git
[root@localhost]$ yum install git
#添加git用户
[root@localhost]$ useradd git
[root@localhost]$ cd /home/git/
[root@localhost]$ ll
total 0
[root@localhost]$ pwd
/home/git
[root@localhost]$ cd ..
[root@localhost]$ su git
[git@localhost]$ mkdir .ssh
[git@localhost]$ cd .ssh/
[git@localhost]$ touch authorized_keys
[git@localhost]$ chmod 600 authorized_keys
[git@localhost]$ cd /
[git@localhost~]$ mkdir Project
[git@localhost~]$ cd Project
[git@localhost Project]$ git init --bare icq.git

win10启动powershell dir ssh

1
ssh-keygen -t rsa

产生两个文件.pub是公钥

1
2
3
dir .ssh
type .\.ssh\id_rsa.pub
#获得公钥

粘贴到git用户authorized_keys

1
2
chmod 700 .ssh
chmod 600 authorized_keys
  • 1
    yum install git
  • 再创建用户git //管理git中所有的项目

  • 在git用户家目录,创建.ssh文件夹,修改权限为700 //这个是因为ssh服务限制

  • 在.ssh文件夹下创建authorized_keys文件 ,修改权限为600 //这个因为ssh服务的限制,权限不正确认证会失败

  • 在git用户家目录创建project目录,用来存放git项目

  • 1
    2
    #初始化一个git项目
    git init --bare icq.git

git客户端

  • 安装git // git for windows git for linux

  • windows 10 使用ssh创建公钥和私钥

  • ssh-keygen -t rsa 就会在家目录创建.ssh文件夹,里面就会有两个文件,将公钥(.pub结尾)写入到服务器authorized_keys文件中

  • 1
    git clone git@ip:/home/git/project/icq.git

Note:默认情况下 ssh git@192.168.100.167可以登录虚拟机,从而产生安全问题,在虚拟机里切换到root权限修改git的shell

1
[root@localhost ~] usermod -s /sbin/nologin git

这样ssh就禁止了

5.搭建博客

  1. 安装Github桌面版和Node.js

  2. 然后cmd中

    1
    npm install -g hexo-cli --registry=https://registry.nom.taobao.org
    1. 创建一个blog目录,用来存放博客
    2. 进入到blog中,启动cmd执行命令
    1
    2
    3
    4
    5
    6
    #初始化hexo
    hexo init
    #生成博客
    hexo g
    #搭建服务
    hexo s
    1. 然后浏览器访问播客主页

安装CentOs Mini,安装好后执行

1
yum groupinstall "development tools"

周三

Linux下应用的安装

1.CentOS系统中有三种安装软件的方法

  • 通过源码安装
    • ./configure
  • make && make install
  • 通过rpm安装
    • rpm -ivh …
  • 通过yum安装
    • yum search …
  • yum install …

rpm类型文件安装的时候,会先去读取文件内记载的设置参数内容,然后将该数据用来比对linux系统的环境,以找到是否有属性相依的软件尚未安装的问题。RPM使用自动化安装软件,比较类似windows下的.exe需要下载的安装包,但是它安装过程中会有很多依赖问题。

  • -q: 仅查询,后面接软件名称是否有安装

  • -qa: 列出所有,已经安装在本机linux系统上面的所有软件名称

  • -ql: 列出该软件所有的文件与目录所在完整文件名(list)

  • -qR: 列出与该软件有关的相依软件所在的文件(requried)

源码安装:先阅读README文件,找到安装方法,安装相依赖的库,最后执行

1
make && make install

周四

搭建apache+php+mysql和iptables+firewall

1.昨天回顾

1
2
3
4
5
yum install
rpm -ivh a.rpm/http/ftp:baidu.com/a.tpm nginx.tar.gz
tar cat readme install
./configure --help --prefix=安装路径 --with-apr=指定依赖位置
make && make install

2.搭建apache+php+mysql环境(要求使用php5.6)

  • 安装httpd

    1
    2
    3
    4
    5
    6
    7
    8
    #安装httpd
    yum install httpd httpd-devel httpd-manual mod_ssl -y
    #启动apache
    systemctl start httpd
    #设置apache开机启动
    systemctl enable httpd
    #查看开放端口,检查有没有httpd服务,80和443端口是否开放
    ss -antlp
  • 配置防火墙,可以正常访问apache

    1
    2
    3
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --zone=public --add-port=433/tcp --permanent
    firewall-cmd --reload
  • 安装php5.6

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    #卸载系统中原有的php
    yum remove php-common -y
    #安装php5.6和php扩展
    yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-mysql php56w-intl php56w-mbstring
    #进入网站根目录
    cd /var/www/html/
    #在网站根目录中创建index.php,写入phpinfo函数,测试网站php是否正常
    echo '<?php phpinfo();?>' > index.php
  • 安装mariadb

    1
    2
    3
    4
    5
    6
    7
    8
    9
    yum install mariadb-server -y
    #启动mariadb-server
    systemctl start mariadb
    #设置mariadb-server开机自启
    systemctl enablemariadb
    #初始化mysql,注意记住mysql密码
    mysql_secure_installation
    #关机+快照
    poweroff

3.关于网站搭建:

需要将网站的源代码使用工具复制到虚拟机中的网站根目录下(phpmyadmin除外),修改网站的所有者为apache

1
chown -R apache:apache /var/www/html

wordpress特性:

​ 移动网站后,网站的样式将出错,所以wordpress在安装成功后,不能移动

​ 虚拟机ip改变后,wordpress打开会卡页面,需要去数据库中修改ip

wp_options表中

​ siteurl: http://新ip

​ home: http://新ip

搭建没有提供安装引导的网站:

​ 上传网站源代码到网站根目录,找到网站的配置文件,一般是config.php

​ 再找到网站提供的sql文件,使用phpmyadmin之类工具,导入数据或直接使用mysql -uroot -p 登录数据库

1
2
3
create database database_name
use database_name
source absolute_path/name.sql

向数据库中导入内容,有多重方式,可以自行测试

周五

Linux安全检查

1.防火墙功能:

​ filter功能是防火墙一个重要功能,它定义数据通过是允许或者不允许

​ filter控制数据类型分为两类:INPUT和OUTPUT

2.Iptables命令讲解:

-A 追加

-p 指定协议类型

1
2
3
* tcp通过dport指定目标端口,sport指定源端口
* udp通tcp
* icmp通过--icmp-type指定类型,0是响应类型的数据包,8是请求类型的包

-m 表示启动扩展功能

​ 一般和-p配合,-p指定类型后,通过-m打开此类型的扩展功能

-j 指定如何进行处理DROP,REJECT,ACCEPT/丢弃,拒绝,通过

1
iptables -A INPUT/OUTPUT -j DROP/REJECT/ACCEPT

编辑iptables的配置文件:

​ 通过编辑文件可以直接修改iptables规则,编辑文件,写入指定规则:

1
2
3
4
5
6
-A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
1
2
#查看现有规则
iptables -nvL
1
2
#添加80端口通过的规则
firewallc-cmd --zone=public --add-port=80/tcp --permanent
drop 默认丢弃所有包
–zone block 拒绝所有外部连接,允许内部发起连接
public 指定外部连接可以进入

–add-port 指定添加端口 80/tcp 53/udp

–add-service 指定常见服务 http https mysql mssql ssh

–permanent 永久生效

删除80端口通过的规则

1
firewall-cmd --zone=public --remove-port=80/tcp --permanent

–remove-port 指定删除端口

–remove-service 指定删除服务

1
2
3
4
5
6
7
8
9
10
#防火墙更新规则
firewall-cmd --reload
#防火墙显示所有规则
firewall-cmd --list-all
#关闭防火墙
systemctl stop firewalld
#查看防火墙状态
systemctl status firewalld
#启动防火墙
systemctl start firewalld

临时加立即生效,–reload后失效,–pernament必须,–reload后才失效