Linux安全基础(一)

Linux安全基础(一) 本文仅用于网络安全学习、防御加固与合法渗透测试所有操作仅限在靶机或已获得书面授权的环境中进行。严禁用于非法攻击、入侵、数据窃取等违法犯罪行为否则后果自负。一、Linux起源林纳斯·本纳第克特·托瓦兹Linus Benedict Torvalds是Linux内核的发明人及该计划的核心合作者。Linux并非由单一机构开发而是依靠全球开发者协作贡献最终形成了如今丰富多样、广泛应用的各类发行版操作系统成为服务器领域的主流选择。二、Linux发行版类型及对比Linux发行版众多但核心分为两大系列各自有明确的应用场景1. 两大主流系列RedHat 系列代表系统有 RHEL、Fedora Core、CentOS由商业公司维护主打企业级服务器场景稳定性强、售后完善适合企业部署。Debian 系列代表系统有 Ubuntu、Kali由社区组织维护开源免费操作便捷。其中 Ubuntu 适合桌面办公、新手入门Kali 专注网络安全实战内置大量安全工具。2. Linux 服务器的优势个人电脑Windows/macOS优势在于易用性、直观性强操作便捷适合日常办公、娱乐、普通用户使用。虽然有 Windows Server 服务器版本但综合性能稳定性、高并发不及 Linux仅在特殊场景如部署微软 .net 服务中使用。服务器Linux核心优势是稳定性、高并发、安全性可长期不关机不崩溃能轻松扛住海量用户访问且运维成本低是互联网、企业服务器的首选系统。对比Windows Server (服务器版)Linux (服务器发行版)稳定性长期运行易内存泄漏、资源占用高需定期重启内核精简无冗余桌面组件长期运行性能稳定容错性强高并发支持但IO调度低效同等硬件下并发量为Linux的1/3-1/2高并发场景首选成本需商业授权企业级部署成本高开源免费兼容适配微软生态对开源软件兼容与性能弱于Linux开源软件原生平台主流服务端软件均优先支持无兼容性问题安全性闭源系统漏洞披露与修复慢默认配置偏易用性开源透明社区快速发现修复漏洞默认配置偏安全性资源占用内核图形界面资源占用多无图形界面资源占用极低硬件利用率高运维依赖图形界面命令行与自动化脚本生态不完善全命令行操作Shell脚本自动化工具成熟适合大规模集群运维三、Linux目录结构Linux 目录结构为树状结构所有目录都从根目录/开始以下是常用目录的功能说明binbinaries存放二进制可执行文件比如ls查看目录、pwd查看路径等常用命令。sbinsuper user binaries存放二进制可执行文件仅超级用户root可访问用于系统管理命令如reboot重启。etcetcetera存放系统所有配置文件比如网络配置、用户配置等常用如etc/passwd用户配置文件。usrunix shared resources存放共享的系统资源比如软件安装目录、共享库等。home普通用户文件的根目录每个普通用户都有一个专属子目录如home/test。root超级用户root的专属目录仅root可访问。devdevices存放设备文件比如硬盘、U盘等设备相当于Windows的“设备管理器”。liblibrary存放文件系统中程序运行所需的共享库及内核模块保证程序正常运行。mntmount系统管理员安装临时文件系统的挂载点比如挂载U盘、移动硬盘。boot存放系统引导相关文件比如内核文件、启动菜单缺一不可。tmptemporary存放临时文件系统重启后会自动清空可用于临时存放文件。varvariable存放运行时需要动态改变的数据比如日志文件var/log/syslog、缓存等。路径说明相对路径从当前目录开始的路径比如当前在home进入test目录路径为./test.代表当前目录。绝对路径从根目录/开始的完整路径无论当前在哪个目录都能准确定位文件/目录比如home/test/test.txt。四、Linux命令提示符及常用命令1. 终端基础操作Ubuntu终端打开方式快捷键CtrlAltT最便捷。常用快捷键CtrlC终止当前正在执行的命令。CtrlL清屏。用户权限切换sudo su提升权限至超级用户root需输入当前用户密码。exit退出root权限回到普通用户。su 用户名切换到指定用户比如su test切换到test用户。2. 命令提示符含义终端提示符格式以Ubuntu为例用户名主机名:当前目录$前当前登录的用户名。后主机名称。:后当前所在目录。$代表当前是普通用户。#代表当前是root用户超级权限。~代表当前用户的家目录比如普通用户是home/用户名root是root。3. 常用基础命令带实操示例1目录操作pwd查看当前所在目录路径。ls列出当前目录内容ls -l以详细列表形式显示包含文件权限、大小、修改时间等。ls -a显示隐藏文件Linux中以.开头的文件是隐藏文件。cd切换目录cd /home通过绝对路径切换到home目录。cd ../返回上一级目录..代表上一级目录。cd ~快速回到当前用户的家目录。mkdir创建目录mkdir test在当前目录创建名为test的目录。mkdir -p a/b/c递归创建多级目录a目录下有bb目录下有c无需手动创建a和b。2文件操作touch创建空文件touch test.txt在当前目录创建名为test.txt的空文件。cp复制文件/目录cp test.txt /home将当前目录的test.txt文件复制到/home目录。cp -r a/ /home复制目录必须加-r参数递归复制目录下所有内容。mv移动文件/目录或重命名mv test.txt /home将test.txt文件移动到/home目录。mv test.txt new.txt将test.txt文件重命名为new.txt同一目录下。rm删除文件/目录谨慎使用删除后无法恢复rm test.txt删除当前目录的test.txt文件。rm -rf a/强制删除a目录及目录下所有内容-r递归删除-f强制删除不提示确认。3文件内容查看cat查看文件内容适合小文件一次性显示全部内容cat /etc/passwd查看系统用户配置文件。more/less分页查看大文件适合日志文件等大文件more /var/log/syslog按空格键翻页按q退出查看。less功能更强大可上下滚动查看按q退出。4系统/进程操作ifconfig/ip addr查看系统IP地址两种命令均可ip addr更通用。ps -ef查看系统所有进程的详细信息包含进程ID、运行状态等。top实时查看进程资源占用情况按q退出实时监控。kill -9 进程ID强制终止指定进程需先通过ps -ef找到进程IDkill -9 1234终止PID为1234的进程。pkill -f 进程名按进程名终止进程无需找进程ID更便捷pkill -f shell.elf终止名为shell.elf的进程。5软件安装/卸载Linux安装软件需通过包管理器类似Windows的软件商店不同系列包管理器不同Debian 系列Ubuntu/Kali使用apt包管理器apt update更新软件库源安装软件前可做保证获取最新软件版本。apt install 软件名安装软件示例apt install openssh-server安装SSH服务。apt remove 软件名卸载软件示例apt remove openssh-server。RedHat 系列CentOS使用yum包管理器yum install 软件名安装软件示例yum install httpd安装Apache服务。yum remove 软件名卸载软件示例yum remove httpd。yum search 软件名查找软件示例yum search ssh查找与ssh相关的软件。五、SSH协议及远程连接SSH协议是Linux远程控制的核心协议类似Windows的RDP远程桌面但以命令行为主稳定性强、安全性高是服务器管理的必备技能。1. 镜像源修改默认软件源多为国外服务器下载速度慢国内推荐修改为阿里云镜像源具体配置可参考阿里云官方文档https://developer.aliyun.com/mirror/文档包含各Linux发行版的镜像配置步骤。Ubuntu查看当前安装源步骤切换到包源配置目录cd /etc/apt查看包源文件cat sources.list2. SSH服务安装注意安装SSH服务需使用root权限普通用户无法完成安装。切换到root用户sudo su输入当前用户密码输入时不显示密码正常输入即可。安装SSH服务apt install openssh-server若无法下载检查网络是否正常、是否已获取root权限。修改SSH配置文件允许root远程登录nano /etc/ssh/sshd_confignano是终端文本编辑器也可使用vim。修改配置项删除行前的#注释修改对应值PermitRootLogin yes允许root用户远程登录。PasswordAuthentication yes允许密码认证。保存退出按CtrlX然后按Y确认保存最后按回车键退出。重启SSH服务service ssh restart修改配置后必须重启服务才能生效。查看SSH服务状态service ssh status确认服务正常运行。3. Xshell使用Xshell是Windows下常用的SSH远程连接工具操作简单步骤如下打开Xshell点击「文件」→「新建」弹出新建会话窗口。配置会话信息名称随便填写如“Ubuntu远程”方便区分。协议选择「SSH」默认就是SSH无需修改。主机填写被控制机器Ubuntu/Kali的IP地址通过ip addr查看。端口默认22SSH默认端口无需修改若修改过配置需对应填写。点击「用户身份验证」输入被控制机器的root用户名和密码。直接点击「连接」或者点击「确定」然后双击会话名称接受并保存密钥即可成功远程连接Linux系统。六、Hydra工具基础Hydra是Kali Linux中内置的一款通过批量尝试密码组合猜测系统、SSH等服务的登录密码仅用于合法授权的测试禁止用于非法攻击。1. 核心前提需准备「密码本」包含大量可能的密码组合可自行编写或网上下载常用密码字典。目标靶机器需开启对应服务如SSH服务且知道目标IP和登录用户名。2. 核心命令hydra -l 【用户名如root】 -P 【密码字典路径】 【ssh://目标机IP】说明-l指定单个用户名小写L比如-l root。-P指定密码字典路径大写P比如-P /root/password.txtpassword.txt是密码本。ssh://目标机IP指定破解的服务为SSH以及目标机器的IP地址。七、注意事项Linux命令严格区分大小写比如ls和LS是两个不同的命令。rm -rf命令极其危险删除前务必确认目录/文件是否正确避免误删系统文件导致系统崩溃。修改系统配置文件前建议先备份文件比如cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak避免修改错误无法恢复。国内使用Linux时优先修改为国内镜像源阿里云、清华源等大幅提升软件下载速度。八、 重要声明本文为学习笔记整理如有错误或不足欢迎大家在评论区指正交流一起进步本文所涉及的网络攻击、渗透测试、漏洞验证、流量分析等技术内容仅限在合法授权的私有靶场、实验环境、教学平台内进行学习与研究。严禁将任何攻击手段、工具、思路用于未获得明确书面授权的真实网站、服务器、网络设备及个人设备。未经许可对他人系统、网络、数据进行扫描、入侵、破坏、窃取或干扰均属于违法行为。一切测试与学习行为必须严格遵守《中华人民共和国网络安全法》《中华人民共和国刑法》《中华人民共和国数据安全法》等相关法律法规恪守网络安全职业道德与底线。坚守白帽底线维护网络空间安全做合法合规的安全从业者与学习者。