JAVA反序列化

序列化:
将一个类进行序列化存储成二进制文件,然后再将该文件进行反序列化生成对象。

upload successful

文件上传

文件上传漏洞原理:

网站web应用都有一些文件上传功能,比如文档、图片、头像、视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型,此时攻击者就可以上传一个webshell到一个web可访问的目录上,并将恶意文件传递给PHP解释器去执行,之后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理,服务器命令执行等恶意操作。
根据网站使用及可解析的程序脚本不同,此处可以上传的恶意脚本可以是PHP、ASP、JSP文件,也可以是篡改后缀后的这几类脚本。

WebShell 就是以 asp、php、jsp 或者 cgi 等网页文件形式存在的一种命令执行环境,也可以将其称之为 一种网页后门。攻击者在入侵了一个网站后,通常会将这些 asp 或 php 后门文件与网站服务器 web 目录 下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)。

绕过方式:
客户端检测一般只是在JavaScript代码中加入了对扩展名的黑白名单检查,这种方式只能防止一些普通用户上传错误,只要用burpsuite在文件上传时进行截断改文件后缀名就可绕过。

(就是检查Content-Type的值,MIME类型决定了某种扩展名用什么应用程序打开,GIF的MIME值为image/gif.)

(与前端js后缀名检测类似,只不过是在后端进行检查,有时候还可以配合解析漏洞结合目录路径攻击,例如test.asp/test.jpg,解析漏洞后面会讲到)
后端后缀名检查也分两种,黑名单与白名单。

黑名单检查绕过:

1、文件名大小写绕过,比如代码中有php规则,那么可以使用PHP或者pHP绕过

2、黑名单列表绕过,对黑名单列表中没有的扩展名进行攻击,比如asa

3、利用windows和Linux系统的特性进行特殊文件名绕过,a.asp. a.asp_等

4、htaccess 文件攻击

5、配合解析漏洞(IIS、apache等,后面会单独提到)

白名单绕过:

1、截断攻击,比如a.asp%00.gif等

2、配合解析漏洞

目录路径的检查

(对目录路径可进行0x00截断绕过;以及可以控制目录地址,上传文件夹的参数可控)

检测文件内容是否包含恶意代码

这种方式主要检查图片文件的幻数,比如GIF的值为GIF89a,后端代码会检测改值判断是否为GIF图片文件,想要绕过只要在幻数后面加上一句话木马就行。

upload successful

tangka

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

来自 pteridosperm

XML 指可扩展标记语言
XML 被设计用来传输和存储数据
HTML 被设计用来显示数据

XML与HTML的主要差异:
XML不是HTML的替代。
XML和HTML为不同的目的而设计:
XML被设计为传输和存储数据,其焦点是数据的内容。
HTML被设计用来显示数据,其焦点是数据的外观。
HTML旨在显示信息,而XML旨在传输信息。

< < 小于

大于
& & 和号
' ‘ 单引号
“ “ 引号
在 XML 中,有 5 个预定义的实体引用:

XML教程

来自 /www.kanxue.com/book-6-108.htm

upload successful

(800) 919-1316

SSRF(Server-Side Request Forgery)服务端请求伪造 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统。

正常情况下,我们无法从外网去访问一个公司的内部系统,但是如果服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。攻击者就可以利用该漏洞绕过防火墙等访问限制,进而将受感染或存在漏洞的服务器作为代理进行端口扫描,甚至是访问内部系统数据。

ssrf的攻击利用主要有以下几种:
1、内网、本地端口扫描,获取开放端口信息
2、主机信息收集,web应用指纹识别,获取服务banner信息
3、根据识别出的应用针对性的发送payload攻击,例如struts2
4、攻击内网和本地的应用程序及服务。
5、穿越防火墙
6、利用file协议读取本地文件,比如file://etc/passwd

备注:第一个文件可以得知,通过curl命令获取同一目录下的其他文件,即便其他文件外网无访问权限,但是由于调用的本体是第一个文件,存在于内网,因此可以打开原本无法直接打开的文件

漏洞验证方式:
1、右键图片在新窗口打开,如果浏览器地址显示为 www.xxx.com/xx.jpg 类似格式的,说明不存在ssrf漏洞,但是如果资源地址类似 /www.xxx.com/1.jsp?image= 的格式就有可能存在漏洞。

2、另一种方式是使用抓包工具burp fiddler来判断,SSRF漏洞是构造服务器发送请求的安全漏洞,所以就可以通过抓包分析请求是否有服务端发起的来判断是否存在漏洞。

防御措施
过滤返回的信息,甚至必要情况下不返回

限制http端口,仅可使用http https

检查IP是否为内网IP,进行黑名单过滤

禁止不需要的协议,gopher,ftp,file协议等

来自 7575251038

upload successful

EIGRP

EIGRP
network 允许某些接口向外发包
Metric计算公式
带宽BW,延迟DLY,可靠性, 负载 ,MTU (show int f0/0)
Show int f0/0 查看的值,BW主要用于协议选择或算法
K1 K3 K2 K4 K5 ->用于给每个参数一个系数
1 1 0 0 0
Router eigrp 90
X修改EIGR批延迟metric weights 0 K1 K2 K3 K4 K 5 /系数 1or0

简化后:带宽+延迟
(10^7/BW+DLY/10)256\
带宽取值:路由传递入方向所有接口的带宽最小值
延迟取值:所有接口延迟的和
10^7/1544+45000/10 )
256 =2809856
在公式计算中,如果10^7/BW,得到小数,直接省略

通过10.1.12.2 去往 192.168.1.0/24的路由,必须成为备份路径
通过10.1.12.2 去往192.168.1.0/24路由的AD值必须小于主选路径的FD值
2809856={A +(b+X)/10)*256
Offset-list (偏移列表)
作用:修改EIGRP/RIP路由的Metric值 (只能加不能减)
10.1.13.3(409600/128256)修改为2809856 。无法将2809856变为409600

大-小=差值
小+差值=大
Offset-list增加的就是差值

Offset-list基于协议router_EIGRP90
offset-list 编号 方向 差值(接口)
编号:ACL->匹配需要修改的路由条目
方向:in|out
接口:指定从某个接口接受或发出.不指定接口则表示设备所有接口
Offset-list 1 in 100 e0/0

Offset-list 1 permit 192.168.1.0
等价负载均衡/不等价负载均衡
不等价负载均衡路径:
• 要实现不等价负载均衡路径,必须确保有备份路径
• Variance 默认=1

FS(备份路径) FD / S(主选路径) FD
S FD* variance >FS FD

EIGRP手动汇总&自动汇总
no auto-summary/关闭自动汇总

12.4及以下 默认开启 自动汇总 ,需要手动关闭
15.0及以上,默认关闭自动汇总

当需要传递的路由和传递路由的出接口主类网络不一致的情况下,设备会自动将传递路由汇总成其主类网络

手动汇总:
开启手工汇总必须关闭自动汇总
EIGRP的汇总都是基于接口进行的
ip summary-add eigrp (number) a.b.c.d netmask
一 将需要汇总的网段IP,换算成二进制数
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24

1100 0000 .10101000.00000001.00000000->1.0
1100 0000 .10101000.00000010.00000000->2.0
1100 0000 .10101000.00000011.00000000->3.0
二 将二进制数从左往右进行匹配,匹配到最后一个相同位的位数,确定汇总的掩码
1100 0000 .10101000.000000

三
由于IP一共三十二位,用0补齐剩余位,将补齐后的二进制数换算成十进制

第四部 得到汇总后的网段及掩码总信息

00001010.00000001.00010000.00001000
00001010.00000001.00010000.00010000
00001010.00000001.00010000.00011000

汇总后自动生成一条NULL0的路由,防止路由环路

10.1.16.0/27
255.255.255.192

EIGTP 查询and应答
A:当A自身去往某个网段S和FS的路由都丢失后,A会向本地所有EIGRP邻居发出查询消息。
B:收到A的查询消息后,先回复ACK确认,然后B会本地查找是否有查询网段的路由信息,若无,继续向所有的EIGRP邻居发出查询消息

运行EIGRP的设备数量越多,查询范围越广。默认时间三分钟(SIA),如果三分钟还是没有收到来自邻居的回复,设备会主动Down邻居关系,尝试重建。

如何避免出现查询消息泛洪
1、summary
2、stub(末梢区域)
当一台路由器配置成为STUB以后,其余设备不会向Stub设备发出路由查询
Eigrp stub
*限制stub路由器的路由发送,默认设备只允许发送直连和汇总
IOU2(config-router)#eigrp stub ?
connected Do advertise connected routes /只发送直连

receive-only Set receive only neighbor/只收不发
redistributed Do advertise redistributed routes /只发送重分发的路由
static Do advertise static routes /只发送静态
summary Do advertise summary routes/只发送汇总

EIGRP的认证
Ø 认证指在建立邻居过程中,确保邻居是合法邻居。
->MD5(128)认证->标准EIGRP
Key chain cisco
Key 1
key-string ccnp
Int s2/0
Ip autuentication mode eigrp 90 MD5 /启用MD5认证
Ip authentication key-chain eigrp90 cisco /启用key-chain cisco进行认证
->64位命名EIGRP(最强认证(SHA-256))

Router eigrp ccnp
Address-family ipv4 autonomous-system 90
Network a.a.a.a b.b.b.b
Af-interface s2/0
Authentication mode hmac-sha-256 cisco

EIGRP->单播邻居
正常EIGRP邻居默认组播发送: s:自身 D:224.0.0.10
手工设置EIGRP和某个邻居发送单播邻居建立,不基于组播。
Router eigrp 90
no auto-summary
network 10.1.12.0 0.0.0.255
Neighbor 10.1.12.2 s2/0 ->通过S2/0接口和10.1.12.2 建立单播邻居关系
• 双向指定

被动接口
Router eigrp 90
passive-interface s1/0

水平分割
从接口收到的路由不从同接口发出
Int s2/0
No ip split-horizon eigrp 90 /在s2/0口下,关闭水平分割。

upload successful

考证RHCE

自定义分区

[root@1 Desktop]# man -k 查找未知命令

显示登陆的终端:
[root@1 Desktop]# w
10:23:55 up 19 min, 2 users, load average: 0.04, 0.10, 0.22
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root :0 10:08 ?xdm? 56.19s 0.35s gdm-session-worker [pam/gdm-pas
root pts/0 10:17 3.00s 0.06s 0.02s w

Ctrl+Shift+T 新建选项卡

默认使用命令行模式启动:
[root@1 Desktop]# systemctl -f enable multi-user.target
rm ‘/etc/systemd/system/default.target’
ln -s ‘/usr/lib/systemd/system/multi-user.target’ ‘/etc/systemd/system/default.target’

启动图形化:
[root@1 ~]#startx

默认使用命令行模式启动:
[root@1 ~]# systemctl -f enable graphical.target

将flame加入wheel组:
[root@1 Desktop]# gpasswd -a flame wheel
Adding user flame to group wheel

flame用户以root用户运行fdisk -l:
[flame@1 ~]$ sudo fdisk -l

查看用户属性:
[root@1 Desktop]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@1 Desktop]# id flame
uid=1000(flame) gid=1000(flame) groups=1000(flame),10(wheel)

[root@1 Desktop]# history 显示已执行的命令
[root@1 Desktop]# !20 执行历史记录中的20命令
[root@1 Desktop]# !! 执行上一条命令

Ctrl+R 搜索之前命令中

Alt+. 调用命令中的最后一个参数(命令中最后一个空格后的参数)

[root@1 Desktop]# cat
[root@1 Desktop]# less
[root@1 Desktop]# head 显示文件前10行
[root@1 Desktop]# tail 显示文件后10行
[root@1 Desktop]# head -n 5 显示文件前5行
[root@1 Desktop]# cut -d “:” -f3 /etc/passwd 显示以”:”分割的第三列字符
[root@1 Desktop]# cut -c3-5 /etc/passwd 显示文件中第3到第5个字符的列

~ 用户的家目录

[root@1 Desktop]# wc /etc/passwd
38 66 1911 /etc/passwd
[root@1 Desktop]# wc -l /etc/passwd 显示行数
38 /etc/passwd
[root@1 Desktop]# wc -w /etc/passwd 显示列数
66 /etc/passwd
[root@1 Desktop]# wc -m /etc/passwd 显示字数
1911 /etc/passwd
[root@1 Desktop]# wc -c /etc/passwd 显示字节数
1911 /etc/passwd

; &&

Bin和Sbin bash shell指令路径(软链接)
Boot 启动路径
Dev 硬件
Etc 操作系统服务和软件服务的配置文件
Home 用户的家目录
Root root用户的家目录
Run 运行时留下的运行文件
Tmp 存放个人或服务的临时文件
Usr 指令路径和个人信息
Var 邮箱和日志
/lib /lib64 共享库目录

[root@1 Desktop]# pwd 显示当前目录的绝对路径
[root@1 Desktop]#cd ..
[root@1 Desktop]#cd -
[root@1 Desktop]#ls -a
[root@1 Desktop]#ls -l
[root@1 Desktop]#ls -R 递归目录
[root@1 Desktop]#ls -d

[root@1 Desktop]# touch a 创建空文件a
[root@1 Desktop]# touch {1,2,3}
[root@1 Desktop]# mkdir dir1 创建目录
[root@1 Desktop]# mkdir /etc/dir2
[root@1 Desktop]# mkdir -p dir3/dir4/dir5

[root@1 Desktop]# rm b 删除文件
rm: remove regular empty file ‘b’? y
[root@1 Desktop]# rm -f 1
[root@1 Desktop]# rm -f *.txt 删除所有以.txt结尾的文件
[root@1 Desktop]# rmdir dir1
[root@1 Desktop]#rm -r dir3
[root@1 Desktop]#rm -rf dir3

[root@1 Desktop]# cp file1 dir1/ 复制
[root@1 Desktop]# cp /home/flame/.bashrc ./bash
[root@1 Desktop]# cp -r dir1 dir2/
[root@1 Desktop]# cp -r dir1 dir2/newdir
[root@1 Desktop]# cp file2 file3 ./dir2/
[root@1 Desktop]# mv file1 file2 file3 ./dir3/ 剪切
[root@1 dir3]# mv file1 flie_1 重命名

输出重定向
[flame@1 ~]$ find /etc/ -name passwd>find.out 查找/etc下名字为passwd的文件,将find.out中的内容改为搜索结果
[flame@1 ~]$ find /etc/ -name passwd 2> /dev/null 查找/etc下名字为passwd的文件,将不符合的输出到/dev/null中
[flame@1 ~]$ find /etc/ -name passwd > find.out 2> find.err

覆盖原来的内容

在原来的内容后追加内容

输入重定向
[flame@1 ~]$ wall 0< test1

[flame@1 ~]$ echo ‘hellow’ > test1

[flame@1 ~]$ ll /etc/ | less 管道

[root@1 ~]# vim /root/.vimrc

用户和组:
UID username home shell
0 root /root /bin/bash
1-999 [systemuser] * /sbin/nologin
1000+ [normaluser] /home/[username] /bin/bash

[root@1 Desktop]# man 5 passwd
[root@1 Desktop]# man 5 shadow

sha-256 加密是附加的内容(防止相同的密码加密的值相同) 加密的值

[root@1 Desktop]#vim /etc/passwd

最后一次更改密码的时间 密码最短使用期限 密码最长使用期限 密码到期前几天提醒

Useradd -c添加注释 -u设置UID -d指定家目录 -s指定shell -G指定附加组 -g指定主要组 -e指定用户账户的到期日
Usermod
Userdel

[root@1 Desktop]# useradd user1 添加用户user1
[root@1 Desktop]# echo “123456” | passwd –stdin user1 更改user1账户的密码为123456
[root@1 Desktop]# useradd -c “Third Person” -u 1234 -d /newhome/user3 -s /sbin/nologin -G wheel,root user3
[root@1 Desktop]# echo “123456” | passwd –stdin user3
[root@1 Desktop]# usermod -d /newhome/user1 -m user1
[root@1 Desktop]# userdel -r user3 删除用户(包括家目录和邮件)

Groupadd -g GID -n 改名
Groupmod
Groupdel
[root@1 Desktop]# groupadd -g 5000 team
[root@1 Desktop]# groupmod -g 4500 team
[root@1 Desktop]# groupmod -n iso team
[root@1 Desktop]# groupdel iso 删除组

文件                    目录

R 查看文件内容 列出目录下的内容

W 修改文件的内容 创建,删除目录下的文件或目录

X 将文件运行为进程 进入目录

文件类型 所有者权限 所有组权限 其它权限 所有者 所有组

修改文件权限:
[root@1 test]# chown user1 rootfile
[root@1 test]# chgrp user1 rootfile

[root@1 ~]# chown -R user1:user2 /test/ 修改目录及其所有的目录和文件的所有者和所有组(递归)

u g o a

  • -

r w x

[root@1 test]# chmod a+w rootfile
[root@1 test]# chmod go-r rootfile
[root@1 test]# chmod g+wx rootfile3

rwx rwx rwx
111 111 111
421 421 421

[root@1 test]# chmod 640 rootfile

Suid u+s 4 文件 让所有的使用者拥有和所有者一样的权限

Sgid g+s 2 目录 目录下的子文件或目录自动继承父目录所有组

Sbit o+t 1 目录 使目录下的子文件或目录只能被所有者删除

[root@1 test]# chmod 4755 /usr/sbin/fdisk
[root@1 test]# chmod g+s .
[root@1 test]# chmod 1755 .

[root@1 test]# setfacl -m u:user2:rwx rootdir
[root@1 test]# getfacl rootdir/
[root@1 test]# setfacl -m m:r-x rootdir/
[root@1 test]# setfacl -m d:u:user2:rwx rootdir/
[root@1 test]# setfacl -b rootdir/
[root@1 test]# setfacl -R -b rootdir/

虚拟内存页 真实物理内存

[root@1 Desktop]# ps aux
[root@1 Desktop]# pstree
[root@1 Desktop]# ps auo
[root@1 Desktop]# ps -ef |grep sshd

grep 匹配字符

[root@1 Desktop]# cat /etc/passwd | grep /bin/bash
[root@1 Desktop]# cat /etc/passwd | grep -v /bin/bash

nice值(优先级)-20~19
[root@1 Desktop]# ps axo command,nice,pid
[root@1 Desktop]# nice -n -5 ps axo comm,nice,pid 设置nice值为-5

[root@1 Desktop]# ps aux | grep sshd
root 1537 0.0 0.1 82956 3576 ? Ss 11:47 0:00 /usr/sbin/sshd -D
root 4777 0.0 0.0 112640 980 pts/0 R+ 14:08 0:00 grep –color=auto sshd
[root@1 Desktop]# kill -15 1537 整洁终止
-9 立即终止

[root@1 Desktop]# firefox

(process:4188): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0’ failed
^Z 暂停进程
[1]+ Stopped firefox
[root@1 Desktop]# bg %1 继续进程
[1]+ firefox &
[root@1 Desktop]# jobs
[1]+ Running firefox &
[root@1 Desktop]# kill -19 %1 暂停进程
[1]+ Stopped firefox
[root@1 Desktop]# kill -18 %1 继续进程
[root@1 Desktop]# jobs
[1]+ Running firefox &

[root@1 Desktop]# firefox &
[root@1 Desktop]# jobs

[root@1 Desktop]# systemctl start
[root@1 Desktop]# systemctl status 状态
[root@1 Desktop]# systemctl restart
[root@1 Desktop]# systemctl stop
[root@1 Desktop]# systemctl reload
[root@1 Desktop]# systemctl mask 屏蔽服务
[root@1 Desktop]# systemctl unmask 撤销屏蔽

[root@1 Desktop]# journalctl -n 3 查看最后3条命令
[root@1 Desktop]# journalctl -p err 显示err信息
[root@1 Desktop]# journalctl -f 实时更新的日志
[root@1 Desktop]# journalctl -b

[root@1 Desktop]# sort -t: -k3 -n /etc/passwd

[root@1 Desktop]# timedatectl
[root@1 Desktop]# timedatectl list-timezones
[root@1 Desktop]# timedatectl set-
set-local-rtc set-ntp set-time set-timezone

diff 对比两个文件

Root 密码重置

添加rd.break
ctrl+x

查看安装包:
[root@1 Desktop]# cd /run/media/root/RHEL-7.0\ Server.x86_64/Packages/
[root@1 Packages]# ls

主要 RPM 选项:
安装: rpm -i | –install rpmfile…
升级: rpm -F | –freshen rpmfile…
升级或安装: rpm -U | –upgrade rpmfile…
移除:rpm -e | –erase package…
输出选项: -v, -h
有许多其它安装选项可用以满足特殊需要:
–replacepkgs(重装), –force(强制执行)等.
URL支持: ftp:/ (with globbing), /

强安装

r四种基本查询类型:
rpm -qa
rpm -q package
rpm -qf file_path_name /查文件是哪
个软件包提供的
rpm -qp rpmfile
查询的信息类型:
-i 包的主要信息
-l 显示包中的文件
其它选项

挂载光盘:
[root@1 ~]# vim /etc/fstab
/dev/sr0 /cdrom iso9660 defaults 0 0
[root@1 ~]# mkdir /cdrom
[root@1 ~]# mount -a
mount: /dev/sr0 is write-protected, mounting read-only
[root@1 ~]# cd /cdrom/
[root@1 cdrom]# ls
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta

安装组

配置yum源
[root@1 ~]# vim /etc/yum.repos.d/rh7.repo
[rh7]
name=local media cdrom
baseurl=file://cdrom
enable=1
gpgcheck=0

[root@localhost Desktop]# fdisk -l 查看现有硬盘
[root@localhost Desktop]# fdisk /dev/sd?
[root@localhost Desktop]# df -Th
挂载普通分区
[root@localhost Desktop]# mkfs.ext2 /dev/sdb2
[root@localhost Desktop]# vim /etc/fstab
/dev/sdb2 /diskb2 ext2 defaults 0 0
[root@localhost Desktop]# mkdir /diskb2
[root@localhost Desktop]# mount -a

[root@localhost Desktop]# lsblk 查看分区

逻辑卷
[root@localhost Desktop]# partprobe
[root@localhost Desktop]# pvcreate /dev/sda5 /dev/sdb5
[root@localhost Desktop]# pvs
[root@localhost Desktop]# vgcreate testvg /dev/sda5 /dev/sdb5
[root@localhost Desktop]# vgs
[root@localhost Desktop]# vgdisplay
[root@localhost Desktop]# lvcreate -L 3G -n testlv testvg
[root@localhost Desktop]# lvdisplay 查看路径
[root@localhost Desktop]#mkfs.xfs /dev/testvg/testlv
[root@localhost Desktop]#mkdir /lvmtest
[root@localhost Desktop]#vim /etc/fstab
/dev/testvg/testlv /lvmtest xfs defaults 0 0
[root@localhost Desktop]#mount -a
[root@localhost Desktop]#df -Th

挂载swap分区
[root@localhost Desktop]# vim /etc/fstab
/dev/sdb3 swap swap defaults 0 0
[root@localhost Desktop]# mkswap /dev/sdb3
[root@localhost Desktop]# swapon -a
[root@localhost Desktop]# swapon -s

软链接
[root@1 ~]# ln -s /root/a.txt b.txt
[root@1 ~]# ll b.txt
lrwxrwxrwx. 1 root root 11 Feb 7 10:16 b.txt -> /root/a.txt
硬链接
[root@1 ~]# ln a.txt c.txt
[root@1 ~]# ll c.txt
-rw-r–r–. 2 root root 17 Feb 7 10:15 c.txt

[root@localhost Desktop]# vgextend testvg /dev/sdb6
[root@localhost Desktop]# lvextend -L 10G /dev/testvg/testlv

需要查找的路径(如不输入,默认当前路径) -i包含大小写 文件名字

[root@1 ~]# find /etc/ -iname “pass“
/etc/fonts/conf.d/60-overpass.conf
/etc/passwd
/etc/selinux/targeted/modules/active/modules/passenger.pp
/etc/passwd-
/etc/security/opasswd
/etc/pam.d/passwd
/etc/pam.d/gdm-password
/etc/pam.d/password-auth-ac
/etc/pam.d/password-auth

[root@1 ~]# find /var/ -user flame
[root@1 ~]# find / -user flame -group flame / 整个系统中查询
[root@1 /]# find -perm 600 按权限查找
[root@1 /]# find -iname passwd* -exec cp -rp {} /home/flame/ \; 查找并复制文件 \;结束符

[root@1 /]# cd /
[root@1 /]# tar cf test.tar /etc/ 将/etc/目录进行归档
[root@1 /]#tar rf test.tar /var/ 追加文件到归档
[root@1 /]#tar tf test.tar /查看归档文件内容
[root@1 /]#tar xf test.tar /解开归档文件
[root@1 /]#tar xf test.tar -C /tmp 将归档解开到指定目录
[root@1 /]#tar xf test.tar install.log /从归档中解开指定文件
[root@1 /]#tar xf test.tar -C /tmp install.log /将指定文件解开到指定目录

[root@1 /]#ll -h test.tar

[root@1 /]#bzip2 test.tar bzip压缩
[root@1 /]#bzip2 -d test.tar.bz2 gunzip test.tar.gz bzip解压
[root@1 /]#gzip test.tar gzip压缩
[root@1 /]#gzip –d test.tar.gz gunzip test.tar.gz gzip解压

设置网卡IP地址
方法一
[root@1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
HWADDR=”00:0C:29:8C:BF:DF”
TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
PEERDNS=”yes”
PEERROUTES=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_PEERDNS=”yes”
IPV6_PEERROUTES=”yes”
IPV6_FAILURE_FATAL=”no”
NAME=”eno16777736”
UUID=”5ba147e2-b87e-41f4-b990-105bc031a342”
ONBOOT=”yes”
IPADDR=192.168.200.10
NETMASK=255.255.255.0
GATEWAY=192.168.200.254
[root@1 ~]# systemctl restart network
[root@1 ~]# ifconfig

方法二
[root@1 ~]#nmcli connection modify eno16777736 ipv4.addresses ‘192.168.200.5/24 192.168.200.254’
[root@1 ~]# nmcli connection modify eno16777736 ipv4.method manual

[root@1 ~]# nmcli connection add type ethernet con-name eth0 ifname eno16777736 ip4 ‘192.168.200.10’ gw4 ‘192.168.200.254’
[root@1 ~]#nmcli connection delete eth0

修改主机名
[root@localhost ~]# vim /etc/hostname
[root@1 ~]# hostnamectl set-hostname server.s.com

[root@1 ~]#nmcli connection add type ethernet con-name fl ifname eno16777736 ip4 ‘192.168.200.100/24’ gw4 ‘192.168.200.254’
[root@1 ~]#nmcli connection modify fl ipv4.method manual
[root@1 ~]# nmcli connection up fl
[root@1 ~]#

将两张网卡绑定为一张(一张运行,一张备份,mac地址相同)
[root@server Desktop]# nmcli connection add type team con-name team0 ifname team0 config ‘{“runner”:{“name”:”activebackup”}}’
[root@server Desktop]# nmcli connection modify team0 ipv4.addresses ‘192.168.200.50/24 192.168.200.254’
[root@server Desktop]# nmcli connection modify team0 ipv4.method manual
[root@server Desktop]# nmcli connection modify team0 connection.autoconnect on
[root@server Desktop]# nmcli connection add type team-slave con-name team0-port1 ifname eno33554992 master team0
[root@server Desktop]# nmcli connection add type team-slave con-name team0-port2 ifname eno50332216 master team0
[root@server Desktop]# nmcli connection show
[root@server Desktop]# teamdctl team0 state
[root@server Desktop]# nmcli connection up team0

检验DNS服务
[root@client Desktop]# vim /etc/resolv.conf

619-602-4541Generated by NetworkManager

search s.com
nameserver 192.168.200.10 DNS服务器地址

[root@client Desktop]# nslookup client.s.com
Server: 192.168.200.10
Address: 192.168.200.10#53

Name: client.s.com
Address: 192.168.200.20

[root@client Desktop]# nslookup 192.168.200.10
Server: 192.168.200.10
Address: 192.168.200.10#53

10.200.168.192.in-addr.arpa name = server.200.168.192.in-addr.arpa.

[root@client Desktop]# nslookup 192.168.200.20
Server: 192.168.200.10
Address: 192.168.200.10#53

20.200.168.192.in-addr.arpa name = client.200.168.192.in-addr.arpa.

DNS服务器
[root@server Desktop]#yum -y install bind
[root@server Desktop]# systemctl stop firewalld
[root@server Desktop]# systemctl disable firewalld 关闭并禁用firewalld防火墙
[root@server Desktop]# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
allow-query { any; };

[root@server Desktop]# vim /etc/named.rfc1912.zones 复制该文件13-17,31-35行
zone “s.com” IN { hostname的后两部分
type master;
file “example.zone”; 需要新建的文件名
allow-update { none; };
};
zone “200.168.192.in-addr.arpa” IN { ip地址的前三位倒叙
type master;
file “192.zone”; 需要新建的文件名
allow-update { none; };
};

[root@server Desktop]# cd /var/named/
[root@server named]# cp -p named.localhost example.zone 之前文件中新建的文件名
[root@server named]# cp -p named.loopback 192.zone 之前文件中新建的文件名
[root@server named]# vim example.zone
$TTL 1D
@ IN SOA server.s.com. root (
01 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS server.s.com.
server IN A 192.168.200.10
client IN A 192.168.200.20

[root@server named]# vim 192.zone
$TTL 1D
@ IN SOA server.s.com. root (
01 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS server.s.com.
10 IN PTR server
20 IN PTR client

[root@server named]# systemctl restart named 重启DNS服务
[root@server named]# systemctl status named 查看DNS服务状态

DNS客户端
[root@server named]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
DNS1=192.168.200.10 文件中追加该条
[root@server named]# systemctl restart network

主DNS服务器
[root@server Desktop]# vim /etc/named.rfc1912.zones
zone “s.com” IN {
type master;
file “example.zone”;
allow-transfer { 192.168.200.20; };
};
zone “200.168.192.in-addr.arpa” IN {
type master;
file “192.zone”;
allow-transfer { 192.168.200.20; };
};

[root@server Desktop]# systemctl restart named

备用DNS服务器
[root@client Desktop]#vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
allow-query { any; };

[root@client Desktop]#vim /etc/named.rfc1912.zones
zone “s.com” IN {
type slave;
file “slaves/example.zone”;
masters { 192.168.200.10; };
};
zone “200.168.192.in-addr.arpa” IN {
type slave;
file “slaves/192.zone”;
masters { 192.168.200.10; };
};

[root@client Desktop]#cd /var/named/slaves/
[root@client slaves]# ls
192.zone example.zone 自动获取这两个文件
[root@client slaves]#vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
DNS2=192.168.200.20
[root@client slaves]#systemctl restart network
[root@client slaves]#systemctl restart named
[root@client slaves]#systemctl status named
[root@client slaves]#nslookup server.s.com

ftp服务器
[root@server Desktop]# yum -y install vsftpd
[root@server Desktop]# setenforce 0
[root@server Desktop]# systemctl start vsftpd
[root@server Desktop]# systemctl enable vsftpd
[root@server Desktop]# cd /var/ftp/pub/ ftp共享目录
[root@server Desktop]# touch a.txt
[root@server Desktop]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 关闭匿名用户登陆
[root@server Desktop]# systemctl restart vsftpd
[root@server Desktop]# useradd -s /sbin/nologin ftpuser 创建一个ftp用户账户
[root@server Desktop]# echo 123456|passwd –stdin ftpuser
[root@server Desktop]# cd /home/ftpuser/
[root@server Desktop]# touch importfile
[root@server Desktop]# chown ftpuser:ftpuser importfile

ftp客户端
[root@client Desktop]# yum -y install vstpd
[root@client Desktop]# setenforce 0
[root@client Desktop]# systemctl start vsftpd
[root@client Desktop]# systemctl enable vsftpd
[root@client Desktop]# yum -y install lftp
[root@client Desktop]# lftp -u ftpuser 192.168.200.10
lftp ftpuser@192.168.200.10:~> get importfile 下载
lftp 401-286-3129:~> put a.txt 上传

nfs服务器
[root@server ~]# yum -y install nfs-utils
[root@server ~]#mkdir /nfsshare
[root@server ~]#vim /etc/exports
/nfsshare 192.168.200.0/24(rw,sync,no_root_squash)
[root@server ~]#systemctl restart nfs-server

nfs客户端
[root@client Desktop]# yum -y install rpcbind
[root@client Desktop]# mkdir /nfslocal
[root@client Desktop]# vim /etc/fstab
192.168.200.10:/nfsshare /nfslocal nfs defaults 0 0
[root@client Desktop]# mount -a

自动nfs挂载(客户端与服务器文件实时同步)(客户端上操作)
[root@client ~]# yum -y install autofs
[root@client ~]# vim /etc/auto.master
/mnt /etc/auto.misc 文件末追加该行
[root@client ~]# vim /etc/auto.misc
nfsdata -fstype=nfs,rw,soft.intr 192.168.200.10:/nfsshare 文件末追加该行
[root@client ~]# systemctl start autofs
[root@client ~]# systemctl enable autofs.service
[root@client ~]# cd /mnt/nfsdata 自动生成该文件夹

服务器
[root@server ~]#cd /nfsshare/ 在该目录下的文件会与客户端共享

samba服务器
[root@server ~]#yum -y install samba
[root@server ~]#yum -y install samba-client
[root@server ~]#mkdir /smbshare
[root@server ~]#vim /etc/samba/smb.conf
[smbshare]
comment = Text Samba Directory
path = /smbshare 共享文件夹路径
public = yes
writable = yes

(817) 988-8400printable = no

(949) 303-0024write list = +staff

[root@server ~]#useradd -s /sbin/nologin smbuser 创建一个samba用户
[root@server ~]#echo 123456|passwd –stdin smbuser
[root@server ~]#smbpasswd -a smbuser 为samba用户设置密码
[root@server ~]#setfacl -m u:smbuser:rwx /smbshare/ 为samba用户设置权限
[root@server ~]#systemctl start smb nmb
[root@server ~]#systemctl enable smb nmb
[root@server ~]#cd /smbshare/

samba客户端
[root@client ~]#yum -y install cifs*
[root@client ~]#vim /etc/fstab
/192.168.200.10/smbshare /smblocal cifs defaults,multiuser,username=smbuser,passwd=654321 0 0
[root@client ~]#mkdir /smblocal
[root@client ~]#mount -a
[root@client ~]#cd /smblocal/

CA证书
[root@server ~]# yum -y install mod_ssl
[root@server ~]# cd /etc/pki/tls/certs
[root@server certs]# make example.crt
[root@server certs]# ls
[root@server certs]# make example.crt
[root@server certs]# chmod 600 example.crt
[root@server certs]# chmod 600 example.key
[root@server certs]# ll example.*
[root@server certs]# cd ..
[root@server certs]# ls
[root@server certs]# mv certs/example.key ./private/
[root@server certs]# ls private/
[root@server certs]# vim /etc/httpd/conf.d/ssl.conf
59 #DocumentRoot “/var/www/html”
60 #ServerName www.example.com:443
61 DocumentRoot “/var/www/html”
62 ServerName www.example.com:443
77 SSLProtocol all -SSLv2 -SSLv3
109 SSLCertificateFile /etc/pki/tls/private/example.crt
110 SSLCertificateKeyFile /etc/pki/tls/private/example.key

邮件
[root@server Desktop]# yum -y install postfix
[root@server Desktop]# vim /etc/postfix/main.cf
77 myhostname=server.s.com
85 mydomain=server.s.com
102 myorigin=mydomain
119 inet_interfaces = all
167 mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain
255 mynetworks=192.168.200.0/24, 192.0.0.0/8
[root@server Desktop]# systemctl restart postfifx

[root@client ~]# mail -s ‘test mail’ user1@server.s.com <<END 发送邮件

[root@server ~]# mail 查看邮件

77 myhostname=client.s.com
85 mydomain=server.s.com
102 myorigin=mydomain
119 inet_interfaces = loopback-only
167 mydestination =
321 relayhost=192.168.200.10
[root@client Desktop]# systemctl restart postfix

计划任务
[root@server ~]# crontab -e
35 19 * echo “123” >> /root/doooog

DAS直连存储
Block-JOBD-SCSI.FC-File System-AppSerrver

NAS
Block(RaidServer)-File System-EthernetSwitch-AppServer
NFS,HTTP,FTP,CIFS

SAN
Block-RaidServer-FC.Switch-File System-AppServer
SCSI,FC-AL

ISCSI服务器
[root@server Desktop]# yum -y install targetcli
[root@server Desktop]# targetcli
/> /backstores/block create s.disk1 /dev/sdb6
/> /iscsi create iqn.2018-02.com.s:server 域名:服务器名
/> /iscsi/iqn.2018-02.com.s:server/tpg1/acls create iqn.2018-02.com.s:client 域名:客户端名
/> /iscsi/iqn.2018-02.com.s:server/tpg1/luns create /backstores/block/s.disk1
/> /iscsi/iqn.2018-02.com.s:server/tpg1/portals create 192.168.200.10 3260 服务器IP及端口
/> saveconfig
/> exit
[root@server Desktop]# systemctl restart iscsi
[root@server Desktop]# systemctl enable iscsi

ISCSI客户端
[root@client Desktop]# yum -y install iscsi-initiator-utils.i686
InitiatorName=iqn.2018-02.com.s:client
[root@client ~]# vim /etc/iscsi/initiatorname.iscsi
[root@client ~]# iscsiadm -m discovery -t st -p 192.168.200.10
[root@client ~]# iscsiadm -m node -T iqn.2018-02.com.s:server -l

重连需删除的文件
[root@client Desktop]# cd /var/lib/iscsi/
[root@client iscsi]# cd nodes/
[root@client iscsi]# cd send_targets/

[root@server ~]# read -p “Enter” ANIMAL
Enterdooog
[root@server ~]# echo $AMIMAL

[root@server ~]# echo $ANIMAL
dooog
[root@server ~]# echo “This is a $ANIMAL”
This is a dooog
[root@server ~]# echo “${ANIMAL}S”
dooogS
[root@server ~]# echo “${ANIMAL}s”
dooogs

[root@server ~]# alias

[root@server ~]# export FRUIT=apple
[root@server ~]# echo $FRUIT
apple
[root@server ~]# bash
[root@server ~]# echo $FRUIT
apple

[root@server ~]# yum -y groupinstall mariadb mariadb_client
[root@server ~]# systemctl start mariadb
[root@server ~]# systemctl enable mariadb
[root@server ~]# mysql_secure_installation
[root@server ~]# mysql -u root -p

selinux
[root@server ~]# getenforce
Permissive
[root@server ~]# setenforce 1
[root@server ~]# getenforce
Enforcing

[root@server ~]# vim /etc/selinux/config 更改后重启生效

[root@server ~]# firewall-config & 图形化配置防火墙

upload successful

909-516-1956

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: 352-494-1869

Run server

1
$ hexo server

More info: (606) 523-5848

281-831-8267Generate static files

1
$ hexo generate

More info: 760-294-8790

7133825300Deploy to remote sites

1
$ hexo deploy

More info: (706) 215-3232