Unix网络的两个安全问题

网络安全概论 在必须运行该服务的地方,安装最新的补丁。特洛伊木马与病毒的不同点在于,病毒的设计目标是破坏系统,而特洛伊木马的设计目标是远程控制受害系统。所以,这样的缺陷有可能使得系统运行不稳定,但是基本上不能被利用去攻击系统,因为它的运行错误不受用户的控制。安全性标志着一个信息系统的程序和数据的安全保密程度,即防止非法使用和访问的程度,可分为内部安全和外部安全。安全控制是指在微机操作系统和网络通信设备上对存储和传输的信息的操作和进程进行控制和管理,主要是在信息处理层次上对信息进行的初步的安全保护,可以分为以下3个层次。 阅读详情
Unix网络的两个安全问题
虽然已经有许多文章对有关Unix网络的安全性问题进行了广泛的论述,但随着技术的进步和人们对安全问题的认识的深入,总是不断有安全问题被暴露出来,并被加以修正。本文介绍两个由于技术上认识不足而造成的安全问题,并给出解决方法。
关机用户的安全问题。
近年来,许多文章相继介绍了一种所谓最安全的Unix的关机用户。其主要思想是直接在/etc/passwd文件或/etc/shadow文件中的关机用户一行的末尾加入/etc/shutdown命令或加入/etc/haltsys命令以代替/bin/sh命令。这样即使有人知道了关机用户的密码(或没有设置关机用户的密码),也不能通过关机用户进入Unix系统,关机用户被严格界定为有且仅有关机功能的超级用户。这一关机用户已被公认为“最安全的关机用户”。
该用户和其他的关机方法相比安全性有所提高,特别是在单机状态下,其安全性值得信赖。但令人遗憾的是,该关机用户在Unix网络中也存在着一定的安全隐患。这主要是由关机用户本身的用途所造成的,首先由于网络中的用户几乎都需要关机用户,所以关机用户往往不设密码或由多人同时掌握密码;另一方面要关闭Unix系统就必须使关机用户具有超级用户的权限。这样,虽然不能用DEL键中断或su命令等手段非法侵入Unix系统, 但利用一些网络远程命令却有可能通过关机用户侵入Unix系统,甚至进入超级用户root的sh状态。
1.提出问题
假设计算机A中有一个关机用户名为shutdown,其设置和权限控制按“最安全的关机用户”的方法设定,因为系统管理员、软件管理员、一般操作员都要使用该用户, 故而未对其设置密码。设计算机A的IP地址为129.15.21.77。
此时如果想从另一台计算机(假设为计算机B)中向计算机A发起攻击,则利用Unix系统网络远程命令, 通过计算机A的“最安全的关机用户”:shutdown即可达到目的。首先在计算机B中的/etc/hosts文件中加入如下代码:
129.15.21.77 hostshut
然后在计算机B中进入任何一个普通用户,键入以下命令:
rcmd hostshut -l shutdown vi /etc/passwd
或 rcmd hostshut -l shutdown vi /etc/shadow
这样,该普通计算机用户已在计算机B中用vi命令打开了计算机A中包括root超级用户在内的所有用户的密码文本。接下来只要改动或删除这些密码,就可以轻松地用telnet、rlogin等远程命令登录到计算机A的任何一个用户中。如果此时闯入的是一个恶意用户, 对计算机A来说其后果将不堪设想。
2.解决问题
为了解决这个安全问题,首先可以封闭inetd守护进程中的部分远程功能,如telnet、shell、login、exec等,方法是直接用vi修改/etc/inetd.conf文件,在上述功能前添加#号,然后执行/etc/inetd命令即可。但这样大大削弱了Unix系统的网络功能,并可能影响到其他计算机应用方案的实施。
经过实践,笔者发现了一种相当安全的关机方法,该方法采用了输入/输出重定向、Unix哑终端技术和Unix定时系统来实现安全的关机。具体做法如下:
首先在超级用户中输入如下命令,使tty12终端成为哑终端:
#disable /dev/tty12
由于需要在哑终端tty12中运行关机程序,而哑终端的窗口在原始模式下工作, 所以不能用Unix系统命令read进行输入,必须自己编写一个能在原始模式下实现输入/输出功能的程序。用cc -lcurses命令编译以下源程序,并生成可执行文件safehalt:
file://安全关机程序
#include<curses.h>
#include<termio.h>
#include<stdio.h>
#include<string.h>
main()
{
WINDOW *win;
char til[]=“是否现在关机?确认请按yes:”,s1[4],sum[100];
struct termio save,term;
initscr(); raw(); noecho();
keypad(stdscr,TRUE); clear();
ioctl(0,TCGETA,&term);
save=term;
win=newwin(24,80,0,0);
while(s1[0]!=‘q’)
{
s1[0]=‘/0’;s1[1]=‘/0’;s1[2]=‘/0’;
mvwaddstr(win,5,0,til);
wrefresh(win);
read(0,&s1[0],1);
if(s1[0]==‘y’)
{
sprintf(sum,“%s%s”,til,s1);
mvwaddstr(win,5,0,sum);
wrefresh(win);
read(0,&s1[1],1);
if(s1[1]==‘e’)
{
sprintf(sum,“%s%s”,til,s1);
mvwaddstr(win,5,0,sum);
wrefresh(win);
read(0,&s1[2],1);
if(s1[2]==‘s’)
system(“/etc/shutdown -g0 -y”);
}
}
}
keypad(stdscr,FALSE); echo();
noraw(); endwin();
}
最后编制一个Unix的shell脚本atsh,包括以下内容:
at now +1 day
/usr/bin/safehalt
执行一次atsh脚本程序后,该程序以后会自动执行。
这样每天在tty12屏幕上都会自动运行一个关机程序,当输入yes后,机器将被关闭,当然也可以在程序中设置关机密码。该方法彻底排除了由关机用户引起的安全性问题。
自动传输数据的安全问题
在Unix系统中自动批量发送数据文件的方法主要有两种:一种方法是在用户的宿主目录下增加.netrc文件, 并在文件中加入远程机器的host名、用户名和密码,然后在建有.netrc文件的用户登录后用ftp自动批量发送文件;另一种方法是用Unix的shell编写一个批处理的脚本文件, 以执行该脚本文件来自动批量发送数据。上述两种方法虽然都可以实现自动批量发送数据文件的目的,但却存在一些安全隐患。这两种方法都使用了纯文本文件的方式来存放远程机器的host名、IP地址、用户名和密码,因此只要用简单的Unix命令如cat、vi、more等就可以对远程机器的主要秘密一览无遗。
为增加安全性,必须对这些秘密信息进行隐藏和加密。笔者用C语言程序的二进制代码封装远程机器的IP地址、host名、用户名和密码以增加其安全性。在用C语言进行编程封装时,注意不能在程序中把远程机器的IP地址、host名、用户名和密码等重要信息直接赋值给字符串变量。如果直接赋值给字符串变量,就很容易被人用Unix命令strings、hd和DOS操作系统的常用工具pctools从C程序的二进制代码中找到上述重要信息。还要注意不能在程序执行过程中产生带有上述远程机器重要信息的中间文件。如果出现这些中间文件,虽然可以在程序结束前删除它们,但遇到发送的数据文件数量多时间长时, 这些中间文件就有可能被调看而泄密,所以最好不要在程序中产生中间文件。
下面这个简短的程序例子是从本地机器的超级用户中把数据文件发送到另一台机器的超级用户中, 可以实现多个文件的连续自动批量发送。尽管该程序使用了超级用户进行数据发送,但由于编程时进行了巧妙的设计,所以当它被编译成可执行代码后,很难从这些二进制代码中发现有关本地计算机和远程计算机的安全方面的重要信息。同时,该程序采用了管道通信方法从而在执行过程中不会产生任何中间文件,安全性相对较高。实现代码如下:
file://安全发送数据
#include<stdio.h>
#include<string.h>
main(int argc,char *argv[])
{
int i,u1,u2,u3,u4;
float ip1,ip2;
char pw[10]=“”,us[5]=“”,ftpn[4]=“”;
char ftpcmd[500]=“”,runl[10]=“”;
char ftpprt[256]=“”;
FILE *fftp;
if(argc>1)
{
us[0]=‘u’;us[1]=‘s’;us[2]=‘e’;us[3]=‘r’;
u1=‘r’;u2=‘o’;u3=‘o’;u4=‘t’;
pw[0]=‘5’;pw[1]=‘1’;pw[2]=‘2’;
pw[3]=‘7’;pw[4]=‘3’;
pw[5]=‘7’;pw[6]=‘4’;
ftpn[0]=‘f’;ftpn[1]=‘t’;ftpn[2]=‘p’;
ip1=106.73;ip2=168.13;
printf(“/f 从本机数据:/n”);
for(i=1;i
{
sprintf(runl,“l %s”,argv[i]);
system(runl);
}
sprintf(ftpcmd,“%s%s -n -i %.2f.%.2f <
sprintf(ftpcmd,“%s%s %c%c%c%c %s /n”,ftpcmd,us,u1,u2,u3,u4,pw);
sprintf(ftpcmd,“%scd /usr/tmp /n”,ftpcmd);
for(i=1;i
{
sprintf(ftpcmd,“%sput %s /n”,ftpcmd,argv[i]);
sprintf(ftpcmd,“%sls %s /n”,ftpcmd,argv[i]);
}
sprintf(ftpcmd,“%sCMD/n”,ftpcmd);
printf(“/n正在发送……/n”);
fftp=popen(ftpcmd,“r”);
i=0;
while(fgets(ftpprt,256,fftp)!=NULL)
{
i++;
if(i>0)
printf(“%s”,ftpprt);
}
pclose(fftp);
}
}
用Syslog Server收集UNIX和Windows日志  在比较大规模的网络应用或者对安全有一定要求的应用中,通常需要对系统的日志进行记录分类并审核,默认情况下,每个系统会在本地硬盘上记录自己的日志,这样虽然也能有日志记录,但是有很多缺点:首先是管理不便,当服务器数量比较多的时候,登陆每台服务器去管理分析日志会十分不便,其次是安全问题,一旦有入侵者登陆系统,他可以轻松的删除所有日志,系统安全分析人员不能得到任何入侵信息。因此,在网络中安排一台专用的 阅读详情

相关推荐

19、强化Unix服务器与网络防御技能

本文深入探讨了Unix服务器和网络防御的关键策略与工具,包括使用iptables进行SSH暴力破解和端口扫描防护、日志的高级管理与安全分析、Nmap工具的使用与脚本扩展、无线网络和协议的安全隐患、以及入侵检测与预防系统的部署。通过这些内容,帮助读者全面了解并提升网络安全防护能力。

pluto的博客 133

UNIX系统安全(转)

UNIX系统安全(转)[@more@]UNIX系统是为支持多用户而设计的, 故为多用户提供了访问机器的多种途径, 同时也为用户之间和多机之间通信提供了多种工具, 然而在当今世界上出于各种目的, 未授权人员常常打入计算机系统. 当...

890

14、UNIX系统与互联网的深度剖析

本文深入剖析了UNIX系统的启动与操作基础、窗口系统(如X Window System)及其应用程序生态,并探讨了UNIX在互联网安全方面的挑战与进展。文章回顾了互联网从20世纪80年代初至今的发展历程,分析了不同接入技术的优劣,展望了未来发展趋势及面临的挑战与机遇,包括技术标准、安全、带宽和内容监管等问题,提出了应对策略,全面呈现了UNIX与互联网的深度融合及其对社会的深远影响。

view3的博客 50

Unix操作系统 网络相关的两个安全问题

 Unix操作系统网络相关的两个安全问题 整理:Ackarlix 虽然已经有许多文章对有关Unix网络的安全性问题进行了广泛的论述,但随着技术的进步和人们对安全问题的认识的深入,总是不断有安全问题被暴露出来,并被加以修正。本文介绍两个由于技术上认识不足而造成的安全问题,并给出解决方法。 关机用户的安全问题。 近年来,许多文章相继介绍了一种所谓最安全的Unix的关机用户。

Ackarlix的专栏 1137

UNIX系统802.1x客户端代码实现与分析

802.1x,通常被称为基于端口的访问控制协议(Port Based Network Access Control),是IEEE制定的一个标准认证协议,旨在通过网络端口控制设备访问权限,确保只有通过认证的用户才能访问网络资源。这是一种在第二层(数据链路层)上实现的网络访问控制和认证。EAP(Extensible Authentication Protocol)扩展认证协议是一种通用的认证框架,最初由RFC 2284定义。

weixin_35516624的博客 1046

jmeter小白下载安装步骤

本文仅仅简单介绍了jmeter工具的下载安装,以及基础的操作步骤。

昔年@曦的博客 3492

网络与信息安全论文――具有安全权限的微内核操作系统模型

但是在微内核操作系统中,文件管理、内存管理、I/O管理模块不在具有系统用户权限,而只具有与用户程序相同的执行权限,这样可以至少保证文件管理、内存管理、I/O管理的程序错误不会涉及到系统级的安全问题。,其他的模块可以缩小它在原来Unix系统中的权限了,就象一个国家的军队一样,各个军官拥有他本职范畴内的权力,只有非常少数军官拥有特权(这种特权军官必须存在,否则无法指挥大局),这样的军队系统被世界范围内公认为是最稳固的。微内核的结构可以保证最小的模块和代码获得最大的权限,系统的安全性也就随之增强。

qq_61141142的博客 524

量化爬虫第一步:手把手教你搞定同花顺问财的hexin-v参数(附JS逆向实战)

本文详细介绍了如何通过JS逆向技术破解同花顺问财数据接口的核心加密参数hexin-v,构建稳定可靠的量化数据采集方案。从抓包分析到Cookie Hook技术应用,再到环境补全与参数生成实现,手把手教你完成量化爬虫的第一步。文章还提供了实战注意事项与优化建议,帮助开发者规避常见问题。

weixin_42620202的博客 303

网络安全(黑客)自学

黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但是如果你想靠培养黑客态度在黑客文化中得到承认,那就大错特错了。因为成为具备这些特质的这种人对你自己非常重要,有助于你学习,并给你提供源源不断的活力。同所有有创造性的艺术一样,成为大师的最有效方法就是模仿大师的精神---不是仅从理智上,更要从感情上进行模仿。

Forget_liu的博客 5055

计算机组成原理实验二 运算器组成实验

事实上,ALU的设计是在全加器的基础上,对全加器功能的扩展来实现符合要求的多种算术/逻辑运算的功能。为了实现多种功能的运算,An、Bn数据是不能直接与全加器相连接的,它们受到功能变量F3—F1的制约,因此,可由An、Bn数据和功能变量F3-F1组合成新的函数Xn 、Yn,然后,再将Xn 、Yn和下一位进位Cn-1通过全加器进行全加运算以实现所需的运算功能。AC寄存器可用来存储ALU的输入以实现两个操作数的运算操作,也可以用来存储来自ALU的结果,以将这些结果反馈给ALU以进行更多的处理。

qq_63574533的博客 1449

企业AI Agent审计与合规:从日志留存到网络联动的完整落地指南

审计日志是企业安全与合规体系的基石,尤其在AI Agent大规模接入业务后,如何完整记录其行为链成为新的挑战。从日志留存180天到PCI DSS合规要求,审计体系需要覆盖会话、推理、工具调用、数据访问等关键环节,并结合不可篡改的存储设计,确保证据链可信。同时,借鉴上网行为管理设备对应用行为控制审计的思路,以及Kismet被动监测网络流量的方法论,将网络侧审计与应用侧日志交叉验证,能有效发现越权和异常行为。本文从日志采集、全链路追踪、基线预警到多租户隔离,系统梳理了AI Agent审计与合规落地的关键路径,帮

weixin_32234493的博客 264

优秀网络安全站点集锦

现在,因特网上许多有着不良企图的组织或个人时代都在窥探、搜集、截获、破坏网络用户的重要资料。而各种操作系统都存在的、BUG或病毒的流行都助长了上述入侵或破坏行为的漫延。但毕竟有正义感的人士还是占多数,其中不少精通网络安全技术的人士在网上开设了不少网络安全站点,动态地报导最新网络安全信息、提供许多网络安全防范软件供用户下载使用。 ★系统安全★ Unix系统安全服务 网址:www.alw.nih.go

淋雨的感觉's bolog 1640

深入浅出DDR系列(二)--DDR工作原理

学习完了DDR的基本组成和硬件结构原理之后,从整体上了解了DDR的特性和静态图,包括原理、管脚图等。那么本章就要从动态的角度来分析时序结构,包括read/write的整个过程到数据返回发生了什么,其中包括以下内容 DDR是如何完成Read、Write 等的操作 DDR的基本命令 DDR的时序参数 DDR的性能分析 1. DRAM基本组成 对于DRAM,其主要由行和列组成,每一个bit中都是由类似右下图的类晶体管的结构组成,对于sdram的数据,可以通过控制column和row就可以访问sd

奇小葩 3万+

【网络安全】考试试卷六

一、填空题(共28分,每空格1分) 1.网络安全技术的发展具有()、 () 、 () 、 () 的特点。 2.Oracle数据库的安全性按分级设置,分别为 () 、 () 、 () 。 3.单一主机防火墙独立于其它网络设备,它位于 () 。 4.综合分析Linux主机的使用和管理方法,可以把它的安全性问题归纳为如下几个方面:(1)()(2)()(3)()(4)()(5)() 5.在

计算机小白努力学习 2664

爬取B站评论+AI情感分析:Python批量抓数据+BERT正负向分类(全流程)

B站作为年轻群体聚集的内容平台,评论区蕴含海量用户真实态度(如好评、吐槽、中立观点),是情感分析的优质数据源!本文分享完整流程:批量爬取B站视频评论→数据清洗去噪→BERT模型情感分类→可视化分析,基于预训练BERT模型实现高精度正负向判断,新手也能快速复刻情感分析系统! 前置配置(关键!获取B站API访问权限) B站评论通过官方API接口返回,无需复杂解析,只需配置用户Cookie即可正常请求: 2. 完整代码(直接复制运行) 三、使用步骤(5步搞定,新手友好) 步骤1:配置关键参数 打开,在类中修改

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1068

Windows10环境下激活虚拟环境报错【source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称】

在使用Django创建Web程序前,需要创建一个虚拟的工作环境,在使用【source ll_env/bin/activate】命令激活虚拟环境时报错:source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 2。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

Unix的TTY机制的明文输入密码的安全问题

问题的提出 网上一位网友提出了如下的问题:代码:ssh root@a.b.c.cn mysqldump abcd emp > emptoeee -u root -proot@a.b.c.cn password:Enter password: 第一个系统密码是看不见的,而第二个mysql的密码竟明文显示了... 第一个密码显然是ssh密码验证所需要

Gnap's Not Another Programmer! 2738

SAP特殊库存全解析:供应商寄售、客户寄售、分包与项目库存说明

客户寄售库存(Customer Consignment)是企业将物料存放于客户处,客户实际领用后才确认销售收入。这种模式能缩短交货周期、提高客户满意度,但需严格跟踪寄售库存的数量与状态。

我小时候很黑的博客 822

数据安全笔记——操作系统安全

***

m0_61869253的博客 1263

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

怎样自学网络安全(黑客)

首先我谈下对黑客&网络安全的认知,其实最重要的是兴趣热爱,不同于网络安全工程师,他们大都是培训机构培训出来的,具备的基本都是防御和白帽子技能,他们绝大多数的人看的是工资,他们是为了就业而学习,为了走捷径才去参加培训。而我进大厂主要是靠自学内推进来是,当时我才20岁,基于对脚本小子的热爱,我每次工作做完了,就天天抱着本书看,甚至不会计较和主动研究各个技术和包揽一些任务(和大多数躺平族不一样),可能还是觉得自己不足,我又把tcp/ip协议大全,路由交换°这些基础啃了一遍,c++都学了一阵子。

Forget_liu的博客 396

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

⟅UNIX网络编程⟆⦔wait和waitpid函数-补充

目录说在前面问题提出问题解决 说在前面 环境: WSL、ubuntu16 参考: UNIX网络编程、linux manual page 目录:这里 本体:⟅UNIX网络编程⟆⦔wait和waitpid函数 问题提出 见问题 已知while(waitpid)是回收所有已终止进程的,但是它是如何解决“信号处理函数不可重入”的问题? 疑问来源: 在信号处理函数sig_child中如果使用wai...

o0o 444

单用户计算机安全不包括什么,电子科技大20秋《计算机网络安全》在线作业1参考...

20秋《计算机网络安全》在线作业1g. ?3 I" bR3 ^3 S1.[判断题] TCP是传输层协议。( Q9 x( A: C& j3 W无忧答案网答案资料下载,请参考帮助中心说明! QR+ Z) O6 k8 {! }( M/ t9 AA.错误, |) ~+ [" c6 L3 t5 L2 WB.正确2 x1 ^' _8 j1 v* K1 t' P- v答:——B——g) {% Y...

weixin_31081671的博客 255

**lsof(list open files)是一个在Unix和类Unix系统上列出当前打开的文件描述符的工具**。

lsof工具可以显示哪些进程打开了哪些文件,包括网络连接、管道、套接字等。由于在Unix系统中一切皆文件,因此lsof可以提供关于系统内部活动的详细信息。综上所述,lsof是一个重要的系统管理工具,它能够帮助系统管理员和开发人员监控和诊断文件访问、网络连接以及其他系统资源相关问题。通过合理使用lsof,可以有效地提高系统的稳定性和安全性。lsof的全称是“list open files”,它是一个十分实用的系统管理工具,尤其在进行系统监控和排错时非常有用。

[Blog][Domain] programb.blog.youkuaiyun.com 454
上一篇: 进入系统后如何隐藏自己
下一篇: ARP游戏,很好玩的,以前经常用师兄的WIN版本在网吧,害人~~呵呵
bmsdr
博客等级 码龄22年 11粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值