ctf之linux基础和网络基础
Linux应用
Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型、大型甚至巨型项目都在使用Linux
使用Linux的部分公司
厂商:网宿/深信服/绿盟/…
互联网公司:新浪/京东/淘宝/…
运营商:移动/电信/联通/…
Linux相关岗位
主机工程师·
系统工程师
运维工程师·
安全工程师…
如何学习Linux
先建立一个整体框架,然后细节用什么,再学什么
计算机是一门“做中学”的学科,不是会了再做,而是做了才会
先know how,再know why
学习Linux系统是在琢磨别人怎么做
适当的囫囵吞枣
Linux诞生背景
1991年9月17日,这是计算机发展史上值得纪念的一天,Torvalds将自己的开发的系统源程序完整地上传
到FTP服务器上,供大家下载测试。本来,Torvalds想用“Freax”这个名字,但AriLemke更喜欢开发时用的代号“Linux”,根据Ari Lemke的建议,Torvalds将这个具有划时代意义的操作系统命名为: Linux,由于Torvalds认为这个系统还很不完善,因此谦虚地将其命名为:0.01版。Linux诞生后的几个月里,Torvalds在不断地听取试用者的反馈的同时,仍然潜心于不断地改进程序,使其功能更强大、性能更稳定。到了1991年底,已经陆续推出了0.02版、0.03版、0.1版、0.11版。
尽管当时Torvalds已欠了大约五千美元的学生货款,但在开始发布源代码时,在开始发布源代码时,他就制定了这样的版权规则:
·任何人可以免费使用该操作系统,但不得将其作为商品出售;
·任何人可以对该操作系统进行修改,但必须将其修改以源代码的形式公开;·如果不同意以上规定,任何人无权对其进行复制或从事任何行为。
显然,Torvalds在Linux诞生时确定的版权规则体现了开放源代码运动的基本思想,在Linux诞生的初期有
力地促进了它的传播、发展、完善,吸引网络上越来越多的程序高手(这些人常常被称作黑客)加入到Linux的测试、开发中来。但是,由于这里的版权规则禁止销售Linux,实际上又阻碍了Linux的推广、传播,因为软件分发需要时间、精力、物质、资金的投入,如果一味禁止分发者获得回报,必然阻碍Linux的推广和传播,使得Linux最终局限在计算机软件爱好者的小范围内传播,无法到达普通计算机用户手中。
不久,Linux的机遇又出现了。Torvalds有机会聆听了自由软件运动之父Richard Stallman(理查德·斯托
曼,生于1953年)的一次演讲,促使他考虑转向GUN的GPL。Richard Stallman是自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者、著名黑客。他最大的成就是为自由软件运动创立了道德、政治以及法律框架,因而被誉为当今自由软件的斗士、伟大的理想主义者。GNU计划是由Richard Stallman在1983年9月27日公开发起的,它的目标是**创建一套完全自由的操作系统。**为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件必须遵守GNU通用公共许可证(GNU General Public License,简称GNU GPL),GNU GPL创造性地提出了“反版权”(即Copyleft)的概念,这是一个不同于商业软件的“版权所有”^(即Copyright)的法律概念,GNU GPL并不是为了否认版权,也不禁止分发软件时收取费用或取得利润。其核心思想是任何人发布一个遵守GNU GPL的软件时,不管是收费的还是免费的,都必须将发布者具有的一切权利给予软件的接受者,必须保证软件接受者能同时收到或通过其他途径得到源程序,并且将GNU GPL附加在软件的版权声明中,使软件接受者知道自己有这样的权利。GNU GPL本身也是受法律保护的版权声明。
从0.12版本开始,Torvalds把GNU GPL作为Linux的版权声明,把Linux奉献给了自由软件,奉献给了GNU,从而铸就了包括Linux在内的自由软件今天的辉煌。从此,Linux走上迅速发展的康庄大道。
Unix与Linux联系与区别
联系
Linux就是模仿Unix界面和功能的操作系统,但是源代码和Unix一点关系都没有。换句话讲,Linux不是Unix,但像Unix
Unix的历史久于Linux,Linux的思想源于Unix
区别
系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上
Unix有些版本比如aix,hp-ux是商业软件是闭源的(不过solaris,*bsd等Unix都是开源的),而Linux是自由软件,免费、公开源代码的
最大的不同: Linux是开发源代码的自由软件,而Unix是对源代码实行知识产权保护的传统商业软件
Linux四大组成部分
Linux内核
内核是系统的核心,是运行程序和管理的核心程序如进程管理,进程间的通讯调用等
Linux Shell
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口
Linux文件系统
是文件存放在磁盘等存储设备上的组织方法,linux是开放性的,能够支持多种异构的文件系统,如ext2,ext3,fat,vfat(fat32),ISO9660,nfs等
Linux应用系统
标准的linux系统都有一整套成为应用程序的程序集,包括文本编辑器、办公套件、数据库等
linux文件系统的一般结构
Vmware基础
网卡操作
·增加、删除、修改网卡
网卡类型
. Bridge-桥接:VMnet0
桥接到…
. Host-Only-仅主机:VMnet1
NAT-地址转换:VMnet8
NAT设置:网关、端口转发
. LAN区段
仅虚拟机内部通信使用
·服务开启
VMware NAT、VMware DHCP
快照
·开机快照/关机快照
克隆
·链接克隆/完整克隆
VMware上网方式
1、桥接:选择桥接方式,上网方式与物理机相同;ip地址是由公司网络分配
如果物理机使用无线和有线同时上网;此时需要选择桥接到什么网络
2、仅主机:虚拟机只能与物理机通信,无法上网
3、NAT:可以上网;但是与物理机网络不同;虚拟机可以访问公司网络,但是公司网络的其他人是无法访问这台虚拟机的。相当于内外网(内网可以访问外网;外网不能访问内网)
vmware虚拟网络
基本守则
- 区分大小写
- 文件名前面带””是隐藏文件
- 配置文件#开头代表是注释行,程序不执行该行linux
- 系统下的””相当于DOS下的”\”(路径)“”放在命令最后,说明下行的命令接在此行的后面
- 跳脱字符“”,将特殊字符转换成普通字符(“”也可以是单或双引号),如:空格、@、$等
空格
cd my\ documents
cd ‘my documents’
@
cd my@documents
cd ‘my@documents’
基础
- pwd显示当前所在的工作目录
- cd更改路径
. cd dir进入一个目录dir
. cd .可以验证“”代表当前目录
. cd …进入当前目录的上一级目录cd …/…当前目录的上两级目录(父目录)
. cd -回到刚才工作的目录 - ls [option] [dir]显示当前目录或dir目录中的文件optipn的一些值
. '-à显示所有文件((包含隐藏文件)
. -l显示文件或目录的详细信息
. -d显示当前目录本身的属性,而不是目录内容(配合-l使用)
. -i显示文件或自录的indoes(配合-I使用,一目了然)
创建、删除、修改
touch fle创建文件file
文性存在时,touch命令会更新文件的时间戳
mkdir dir创建目录dir
rm [option]删除文件或目录
option的一些值
-i确认信息,root用户默认会有此参数,而普通用户没有
-r递归recursion,删除目录时必须使用
-f强制删除,不提示和确认
mv [option] file dst移动、重命名文件或目录
dst仅是文件名,重命名
dst是目录和文件名,但目录不是当前目录,移动并重命名
dst仅是目录,是移动文件,此时可以移动多个文件
文本查看及相关操作
cat显示文件的所有内容
more查看文件内容,只可以往下查看不能往上查看
less分页显示文件内容
head、 tail显示文件的首、尾行(默认为10行)
. tail -num file显示文件file的末尾10行 tail -20 /var/log/messages
文本编辑Vi——初级三种模式
·命令模式:可移动光标位置,可修改、删除、复制、粘贴、搜索关键字
·插入模式:输入新的字符,点esc键回到命令模式
·扩展模式:命令模式下输入“”进入扩展模式,保存、退出、搜索等
扩展模式的命令
:w保存
:w!强制保存
:q退出
:q!强制离开
:wq保存及退出
:wq!强制保存离开
命令模式的命令
cc 修改,即删除当前行并进入插入模式
-dd 删除当前行,numdd删除num行,比如删除两行;
x 删除光标处的字符,numx删除num个字符
yy 复制当前行,numyy复制num行
p、P 修改,删除,或者复制的内容作粘贴(p粘贴在当前行下面,P粘贴在当前行上面)
u、U 撤销最近的操作(u最近一次,U最近操作的那行)
ctrl+r 恢复一次撤销的动作,(恢复)
/、? key-word 搜索关键字(/往下寻找,?往上寻找)
n、N 搜索关键字的时候继续寻找下一个(n同方向,N反方向)
G 光标跳到最后一行,numG光标跳到第num行
H、M、L 光标跳到屏幕的第一行、正中间、最后一行
网络地址配置
ifconfig 网络配置命令
- 不带任何参数 查看所有网卡的信息,同windows中的ipconfig
- ifconfig ethN 查看网卡N的信息
- ifconfig ethN up/down,ifdown/ifup ethN 启用/禁用网卡N,断开/连接
- ifconfig ethN 192.168.1.1 netmask 255.255.255.128 为网卡N配置ip地址,但是重启网络服务后,此配置将丢失,一般将配置写进ifcfg-ethN文件中
手动重新动态获取地址
- dhclient(重新获取IP地址)
- -r此参数释放地址
shell&文件传输
shell
- SecureCRT/xshell
- Linux需要启用sshd
文件传输
启动sshd服务
1.修改配置文件
vi /etc/ssh/sshd_config
添加permitrootlogin yes
添加PasswordAuthentication yes
2.然后重启ssd服务
/etc/init.d/ssh restart
3.添加开机启动
update-rc.d ssh enable
软件安装形式
源码
绝大多数开源软件都是以源代码形式发布的,源代码一般会被打包成tar.gz的归档压缩文件,程序源代码需要编译成为二进制形式之后才能够运行使用。虽然源代码形式的软件使用起来较为麻烦,但是兼容性及可控制性较好。
源代码基本安装流程:
- ./configure 进行软件配置:开启功能、调整安装目录、工作目录
- make 进行编译,make命令会根据当前软件开发时的语言,自动识别跟调用相应的编译器,进行二进制编译
- make install 进行软件的安装(设置启动文件、移动执行文件)
apt-get包管理工具
install联网安装软件
remove卸载
推荐书籍:鸟哥linux私房菜
OSI模型
应用层:我们的app产生数据表示层:格式转换
会话层:区分不通会话
传输层:端到端连接;通过端口号识别上层协议;比如443识别https; 80-http;
端口号:小于1023的是知名端口,一些应用层协议都是默认为知名端口
网络层:ip寻址
数据链路:mac寻址(每台设备都有唯一的地址)
物理层:决定数据zai际同介质的传输方式