sendmail程序接受到待发邮件后,经过关键字@判断邮件的格式是否符合要求,匹配成功后提取邮件后缀域名信息并查询DNS数据库相关MX(邮件专用)记录,如有匹配信息多于一条,选择优先级更高的主机IP进行投递,若是没有查询到相关域名的MX记录则尝试与其根域名(163.com)25端口通信并投递邮件,成功链接则投递信件,失败则将邮件打包退还发件者。linux
A:10.0.0.0 ~ 10.255.255.255程序员
B:172.16.0.0 ~ 172.31.255.255web
C:192.168.0.0 ~ 192.168.255.255正则表达式
国外:Mcafee,AVAST,BitDefender,Kaspersky,ESET Nod32,Symantec,AVIRA(小红伞),Dr.web算法
网内:金山,江民,微点,瑞星,360,VRV背信源,安铁诺,可牛,超级巡警sql
Mcafee:Intel antivirus software,迈克菲。shell
AVAST:avast是一款来自捷克的杀毒软件,已有数十年的历史,avast在国外市场一直处于领先地位。avast分为家庭版、商业版、手机版以及专为Linux和Mac设计的版本等等众多版本。avast的实时监控功能十分强大,免费版的avast杀毒软件拥有八大防御模块:文件系统防御、网页防御、邮件防御、网络防御、P2P防御、即时消息防御、行为防御、脚本防御。免费版的须要每一年注册一次,注册是免费的!数据库
BitDefender:BitDefender(中文名:比特梵德,简称BD)是来自罗马尼亚的老牌杀毒软件,拥有超大病毒库,防病毒引擎被业界公认领先,独有游戏免打扰模式,TopTenREVIEWS网站全球杀毒软件评比排名第一!用户遍布100多个国家和地区,以小于4小时的新病毒响应时间在众多防病毒软件中独占鳌头。安全
Kaspersky:卡巴斯基服务器
ESET Nod32:ESET这一名称最先来源于埃及神话中的女神Isis。
nessus:漏洞扫描器提供几个重要的扫描特性,好比高速发现、资产概况和漏洞分析。
Nmap:是一个用于网络检测或安全审计的免费开源工具。
SAINT:漏洞扫描器只提供集成漏洞评估和渗透测试工具。
metasploit:Metasploit Project 是已经催生了大量工具的一系列项目的总和,这些工具用途普遍,几乎能够完成从击败法规约束到躲避对其最著名软件 —— Metasploit Framework —— 的探测的任何任务。Metasploit 的设计初衷并非做为一个黑客工具,尽管它听起来就像是一个黑客工具。实际上,这个工具的主要目标是研究安全性。可是,就像这种类型的其余工具同样,它的用途取决于使用者。记住,“权力越大,责任越大”,所以,请当心使用
ps:
简言之,漏洞扫描器 是专门设计用于查找和暴露应用程序和操做系统中的弱点的软件。每一个扫描器可能都有本身的扫描和探测方法,但它们的结果都大同小异:报告所发现的问题或输出信息。
本地漏洞扫描器 host scaner有:COPS,tripewire,tiger只能扫描本地存在的漏洞。
网络漏洞扫描器:nsfocus的极光远程安全评估系统,优势:硬件设备,扫描不占系统资源,快速高效准确。缺点:付费产品且较贵。
漏洞扫描过程能够划分为一系列步骤,每一个步骤都是查找应用程序或操做系统中的弱点所需的关键任务:
www.nsfocus.com
forum.eviloctal.com
www.xfocus.net
www.hackline.net
www.chinacissp.com
链接创建时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另外一端
接收方发送的确认信息中包含了本身剩余的缓冲区尺寸
剩余缓冲区空间的数量叫作窗口
tcp创建须要三次握手,断开须要四次挥手。包头结构:
源端口 16位
目标端口 16位
序列号 32位
回应序号 32位
TCP头长度 4位
reserved 6位
控制代码 6位
窗口大小 16位
偏移量 16位
校验和 16位
选项 32位(可选)
这样咱们得出了TCP包头的最小长度,为20字节。
udp 用户数据包协议
(1) UDP是一个非链接的协议,传输数据以前源端和终端不创建链接,当它想传送时就简单地去抓取来自应用程序的数据,并尽量快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每一个消息段放在队列中,应用程序每次从队列中读一个消息段。
(2) 因为传输数据不创建链接,所以也就不须要维护链接状态,包括收发状态等,所以一台服务机可同时向多个客户机传输相同的消息。
(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
(5)UDP使用尽最大努力交付,即不保证可靠交付,所以主机不须要维持复杂的连接状态表(这里面有许多参数)。
(6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,所以,应用程序须要选择合适的报文大小。
咱们常用“ping”命令来测试两台主机之间TCP/IP通讯是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,而后对方主机确认收到数据包,若是数据包是否到达的消息及时反馈回来,那么网络就是通的。
UDP的包头结构:
源端口 16位
目的端口 16位
长度 16位
校验和 16位
区别
TCP UDP
是否链接 面向链接 面向非链接
传输可靠性 可靠 不可靠
应用场合 传输大量数据 少许数据
系统资源 多 少
结构 复杂 简单
数据正确性 有序 无序
速度 慢 快
7.防火墙的三种技术
1).应用代理技术
2).电路层网关技术
3).自适应代理技术
8.使用linux的安全风险有哪些?
多用户系统带来的帐户及权限安全。包括多用户带来的帐户权限,文件归属管理的难度。linux自身安全及上端应用程序所面临的威胁。未通过专业人员安全加固过的厨师linux系统在攻击者面前,显得很脆弱,运行在上端的开源程序有着跟新维护不及时,存在漏洞的状况。系统自身服务安全性,运行在linux上的默认服务有着相互依存,安全设置有相互独立的现象,对于广大普通用户来讲,根本没法制定出适合且有效的安全策略。
9.主流的防火墙厂商和产品
国外:1.checkpoint firewall-1
2.Cisco cisco pix
3.Netscreen netscreen
国内:1.360 360安全卫士
2.联想 网御
3.天融信 网络卫士
4.中网 黑客愁
10.使用select查询语句的不安全之出在哪?
例如db_datareader,它授予对数据库里面全部对象的select权限。虽然你能够用db_datareader角色授予select权限,而后有选择地对个别用户或组拒绝select权限,但使用这种方法时,你可能忘记为某个用户或者对象设置权限。
11.实现纯文本操做
要求:程序可新建文件,打开文件,查看文件,在某一行插入文件,删除某行的文字,运行时的显示菜单。提示用户选择操做或退出操做,输入文件名,行号或文字,选择退出,程序结束,不然完成后应返回菜单继续。
/** * File name :file.c * Author :kangkangliang * File desc :file operator * Mail :liangkangkang@yahoo.com * Create time :2016-09-19 */ /** * headfile */ #include <stdio.h> #include <stdlib.h> void show() { printf("------------------\n"); printf("1.show line code\n"); printf("2.insert line code\n"); printf("3.delete line code\n"); printf("4.show all line code\n"); printf("0.exit\n"); printf("------------------\n"); } void printLine(FILE *fp ,int line) { int count = 0; char buf[1024]; // read line while(!feof(fp)){ if(count == line){ fgets(buf,1024,fp); printf("%d %s\n", line,buf); break; } if(fgets(buf,1024,fp) != NULL) ++count; else if(fgets(buf,1024,fp) == NULL && count < line){ printf("your line too big over file line number"); break; } } } void insertLine(FILE *fp,int line,char *buf) { int count = 0; // 保证在行的范围内 // read line while(!feof(fp)){ if(count == line){ fprintf(fp, "%s\n", buf); break; } if(fgets(buf,1024,fp) != NULL) ++count; } } void deleteLine(FILE *fp,int line) { /* * 1、最简单的办法,建议读到链表里,删除其中一个节点。而后再覆盖写回到文件。 2、找到要删除的位置,fseek到该位置,将以后须要保留的文件内容,从这里开始写。 3、利用内存映射,将文件映射到内存,直接对内存修改,可是对内存修改,也是须要相似于方法2,将须要保留的内容从新移动位置。 */ int count = 0; char buf[1024]; // 保证在行的范围内 // read line while(!feof(fp)){ if(count == line){ break; } if(fgets(buf,1024,fp) != NULL) ++count; } } void showAll(FILE *fp) { char buf[1024]; int count = 0; while(!feof(fp)){ count++; fgets(buf,1024,fp); printf("%d %s",count, buf); } } /** * main function */ int main(int argc,char **argv) { char file_name[10]; printf("please input filename:\n"); scanf("%s",file_name); FILE *fp; if((fp = fopen(file_name,"rw")) == NULL){ printf("open file error\n"); exit(-1); } int code; int line; char buf[1024]; while(1){ fseek(fp,0,0);
// rewind(fp); // 把文件内部的位置指针移到文件开头的地方,该函数没有返回值 show(); printf("input operateor code:"); scanf("%d",&code); if(0 == code) break; switch(code){ case(1): { printf("input line number:"); scanf("%d",&line); if(line <= 0){ printf("your line invalid\n"); break; } printLine(fp,line); break; } case(2): { printf("input line context:"); scanf("%s",buf); insertLine(fp,line,buf); break; } case(3): { printf("input delete line number:"); scanf("%d",&line); deleteLine(fp,line); break; } case(4): { showAll(fp); break; } default: printf("input error\n"); break; } } return 0; }
12.linuxshell 实现
假设主机没有防火墙,该主机ip地址由命令带人,判断主机哪些端口开放,并将结果输入到文件中
使用netstat命令,就能够解决这个问题
# netstat -tln
netstat -tln 命令是用来查看linux的端口使用状况
/etc/init.d/vsftp start 是用来启动ftp端口~!
看文件/etc/services
netstat
查看已经链接的服务端口(ESTABLISHED)
netstat -a
查看全部的服务端口(LISTEN,ESTABLISHED)
sudo netstat -ap
查看全部的服务端口并显示对应的服务程序名
nmap <扫描类型><扫描参数>
13.139端口和445端口
139端口: NetBIOS File and Print Sharing 经过这个端口进入的链接试图得到NetBIOS/SMB服务。这个协议被用于Windows"文件和打印机共享"和SAMBA。在Internet上共享本身的硬盘是多是最多见的问题。
445端口:445端口是一个毁誉参半的端口,他和139端口一块儿是IPC$入侵的主要通道。有了它咱们能够在局域网中轻松访问各类共享文件夹或共享打印机,但也正是由于有了它,黑客们才有了可乘之机,他们能经过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉!咱们所能作的就是想办法不让黑客有隙可乘,封堵住445端口漏洞。
15.Cisco中哪一个命令可让登录密码是明文显示
service password xxxxx
16.指定ping数据包的大小
默认是4个数据包,咱们能够经过-n来指定:ping baidu.com -n 100
17.ACL列表number分别支持的协议
1-99 基于IP的标准访问控制列表
100-199 基于IP的扩展访问控制列表
200-299 基于协议类型码的访问控制列表
18.列举Unix,Linux,FreeBSD各个版本的历史发行版本
Unix:V1,V4,V6,V7
著名,流行的Linux发行版本:Red hat Centos SUSE,Debian,GNU/Linux,Ubuntu,Fedora
FreeBSD:1.x 从386BSD0.1发展而来,2.x版从4.4BSD lite而来。
19.名词解释
Ddos:(Distirbuted Denial of service)分布式拒绝服务
Worm:蠕虫,网络传播类计算机恶意代码
IP Spoof:IP欺骗,假装成可信任的IP地址,对目标实施信息欺骗以达到目的。
SYN Flood:SYN洪水攻击,拒绝服务攻击的一种。经过大量伪造TCP三次握手中的SYN包达到对目标拒绝服务攻击的目的。
Brute Attack:强力攻击
Social Engineering:社会工程学,经过非技术的其余任意手段达到最终的目的
Honeybot:蜜罐系统,一般指经过对不设防的虚拟主机(蜜罐)进行监控,达到追踪攻击者(蜜蜂)的目的
ShellCode:溢出代码,一般指能对某系统溢出漏洞获取特定权限的指针位代码
20.网络安全的标准
iso9000:ISO9000质量管理体系是企业发展与成长之根本,ISO9000不是指一个标准,而是一类标准的统称。是由TC176(TC176指质量管理体系技术委员会)制定的全部国际标准,是ISO12000多个标准中最畅销、最广泛的产品。
BS7799:BS 7799(ISO/IEC17799):即国际信息安全管理标准体系,2000年12月,国际标准化组织ISO正式发布了有关信息安全的国际标准ISO17799,这个标准包括信息系统安全管理和安全认证两大部分,是参照英国国家标准BS7799而来的。
sql注入:
所谓SQL注入,就是经过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来讲,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它能够经过在Web表单中输入(恶意)SQL语句获得一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。[1] 好比先前的不少影视网站泄露VIP会员密码大多就是经过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击. 20.数据库的漏洞如何挖掘
21.一次典型的网络攻击分为几个阶段,每一个阶段采用什么技术
攻击的基本步骤:搜集信息 实施入侵 上传程序、下载数据 利用一些方法来保持访问,如后门、特洛伊木马 隐藏踪影 【 信息搜集 】 在攻击者对特定的网络资源进行攻击之前,他们须要了解将要攻击的环境,这须要搜集汇总各类与目标系统相关的信息,包括机器数目、类型、操做系统等等。踩点和扫描的目的都是进行信息的搜集。
攻击者搜集目标信息通常采用7个基本步骤,每一步均有可利用的工具,攻击者使用它们获得攻击目标所须要的信息。找到初始信息 找到网络的地址范围 找到活动的机器 找到开放端口和入口点 弄清操做系统 弄清每一个端口运行的是哪一种服务 画出网络图
22.知道的扫描器有哪些?
Retina:Retina是eEye公司(www.eeye.com)的产品,强大的网络漏洞检测技术能够有效的检测并修复各类安全隐患和漏洞,而且生成详细的安全检测报告,兼容各类主流操做系统、防火墙、路由器等各类网络设备。曾在国外的安全评估软件的评测中名列第一。
iss:(internet security scanner)ISS公司开发和维护的商业漏洞扫描程序,它的可移植性和灵活性很强,众多的UNIX的平台上均可以运行ISS。
22.动态路由和静态路由
静态路由
是在路由器中设置的固定的路由表。除非网络管理员干预,不然静态路由不会发生变化因为静态路由不能对网络的改变做出反映,通常用于网络规模不大、拓扑结构固定的网络中。静态路由的优势是简单、高效、可靠。在全部的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准
动态路由
是网络中的路由器之间相互通讯,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。若是路由更新信息代表发生了网络变化,路由选择软件就会从新计算路由,并发出新的路由更新信息。这些信息经过各个网络,引发各路由器从新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。