东莞网站优化方案,如何推广一个网站,哪家购物网站做的好,跨境电商一站式服务平台目录和文件
ls -l 查看目录和文件的权限的设置情况 加固方法
对于重要目录#xff0c;建议执行如下类似操作 Chmod -R 750 /etc/rc.d/init.d/* 这样只有root可以读写和执行这个目录下的脚本 新建了一个用户Q 写入了一些信息 发现在root用户下可以进行文件打开 接下来用普通用…目录和文件
ls -l 查看目录和文件的权限的设置情况 加固方法
对于重要目录建议执行如下类似操作 Chmod -R 750 /etc/rc.d/init.d/* 这样只有root可以读写和执行这个目录下的脚本 新建了一个用户Q 写入了一些信息 发现在root用户下可以进行文件打开 接下来用普通用户进行登录
发现没有权限进行查看 设置默认的umask值增强安全性 umask 是 Linux 系统中用于控制 新建文件 / 目录默认权限 的掩码。系统创建文件 / 目录时会基于默认权限文件默认 666目录默认 777减去 umask 值生成最终权限。例如 umask 027表示从默认权限中扣除对应权限确保新建文件 / 目录的权限更安全。 使用命令“/vi/etc/profile” 修改配置文件添加行“umask 027”,及新创建的文件属主读写执行权限同组用户读写和执行权限其他用户无权限使用”umask 027” 应用设置 vi /etc/profile # 打开文件 进入编辑模式按 i 键在文件末尾添加 umask 027 保存退出按 Esc 键输入 :wq 回车 source /etc/profile # 立即生效配置 普通用户进入修改文件报错此用户没有读写权限增强了安全性 Bash历史命令 Bash历史命令 可以设置保留历史命令的条数 使用命令 “cat/etc/profile | group HISTSIZE ” 和“cat /etc/profile | grep HISTFILESIZE”查看保留历史命令的条数 使用命令“vi/etc/profile”修改配置文件修改HISTSIZE5和HISTFLESIZE5 既保留最新执行的5条命令 通过查看发现有1000条历史命令严重影响系统安全 进行配置文件编辑 发现已经成功改变了配置文件信息 退出先按esc :wq! 再按enter 退出先按esc :wq! 再按enter 登陆超时设置系统登陆后连接超时时间增强安全性 使用命令 cat /etc/profile | grep TWOUT 查看TMOUT是否被设置 加固方法:使用命令“vi/etc/profile”修改配置文件添加“TMOUT”行开头的注释设置为“TMOUT180”,及超时时间为三分钟 发现没有输出我们进行配置 配置完成要在最后一行添加不然会被覆盖 G跳转到最后一行 i 进入编辑模式 Esc退出编辑模式输入1:wq!保存并退出 配置文件生效 source /etc/profile root路径 检查系统root用户环境变量path是否包含”.” 检查方法以root用户环境变量path中不应该包含当前目录 以root身份执行如下操作 #echo $PATH /usr/local/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:. 加固方法 使用命令“vi/etc/profile” 修改echo $PATH后面的路径 但是我发现我的本来就不包含当前目录所以不用修改 运行配置文件 运行配置文件 Source /etc/profile 验证修改结果 Echo $PATH 看一看结果中是否包括当前目录“.” 账户安全 禁用无用账号减少安全风险 检查方法使用/etc/passwd 查看口令文件与系统管理员确认不必要的账户 FTP等服务的账号如果不需要登陆下系统shell应该/sbin/nologin 加固方法使用命令“passwd -l 用户名” 锁定不必要的账号 发现已经成功锁定了Q用户禁止登录 扩展 在 Linux 系统中用户信息存储在 /etc/passwd 文件中每行记录对应一个用户其中最后一个字段是用户登录时使用的 Shell 程序。 /sbin/nologin 的作用 它是一个特殊的 “伪 Shell”当用户的 Shell 设置为 /sbin/nologin 时该用户无法通过终端交互式登录系统如 SSH 登录、本地控制台登录等。系统会提示 “This account is currently not available”拒绝登录请求。应用场景 对于 FTP 服务账号、仅用于运行服务的账号如某些程序运行的用户这些账号不需要登录系统执行命令只需保留服务功能。将它们的 Shell 设置为 /sbin/nologin既能保证服务正常运行又能禁止用户通过这些账号登录系统降低安全风险。安全意义避免无用账号被攻击者利用进行登录操作减少系统暴露面提升安全性。例如若攻击者破解了一个设置为 /sbin/nologin 的账号密码也无法通过该账号登录系统执行恶意命令。 查看指定用户的默认登录 Shell 通过/etc/passwd文件查看系统用户信息存储在/etc/passwd文件中每行对应一个用户的信息每行最后一个字段就是该用户的默认登录 Shell。比如查看root用户的 Shell在终端执行命令cat /etc/passwd | grep ^root 其中^表示匹配行首命令执行结果中最后一个:号后的内容即为root用户的登录 Shell 类型 常见的如/bin/bash 。如果想查看其他用户将root替换为对应的用户名即可 通过echo $SHELL查看当前用户默认登录 Shell在终端输入echo $SHELL命令会返回当前正在使用终端的用户的默认登录 Shell。例如返回/bin/bash则表示默认登录 Shell 是 Bash。 查看当前正在运行的 Shell 使用echo $0命令在终端中输入echo $0会输出当前正在运行的 Shell 名称。比如显示bash就表示当前运行的是 Bash Shell。使用ps -p $$命令$$代表当前 Shell 的进程号该命令会返回当前 Shell 的详细信息其中包括正在运行的 Shell 类型。执行命令后在输出结果中找到CMD列对应的值就是正在运行的 Shell。 创建ftp账号 扩展知识 以下以 Linux 系统中常见的 vsftpd 软件为例介绍创建 ftp 服务账号且该账号不需要登录系统shell 为 /sbin/nologin 的教程 1. 安装 vsftpd 打开终端使用包管理工具安装 vsftpd。以 CentOS、RHEL 系统为例执行命令 bash sudo yum -y install vsftpd 对于 Debian、Ubuntu 系统则执行 bash sudo apt-get -y install vsftpd 发现没有进行激活 发现安装成功 2. 创建本地映射用户非虚拟用户方式 使用useradd命令创建一个系统用户该用户将作为 FTP 用户的映射用户且设置其 shell 为 /sbin/nologin使其无法登录系统。假设创建用户名为ftpuser命令如下 bash sudo useradd -d /var/ftp/pub -s /sbin/nologin ftpuser 其中-d参数指定用户的家目录为/var/ftp/pub你可以根据实际需求修改。 3. 设置用户密码 执行以下命令为新创建的用户设置密码 sudo passwd ftpuser 按照提示输入并确认密码。 4. 配置 vsftpd 打开 vsftpd 的配置文件vsftpd.conf一般路径为/etc/vsftpd/vsftpd.conf sudo vi /etc/vsftpd/vsftpd.conf 根据需求修改以下一些关键配置项 禁止匿名登录确保anonymous_enableNO 防止匿名用户访问 FTP 服务器。允许本地用户登录确保local_enableYES 。启用写入权限若需要让用户有上传文件的权限设置write_enableYES 。锁定用户主目录为了安全建议设置chroot_local_userYES 将用户限制在其主目录中防止访问其他系统目录。 重装vim 修改完成后保存并退出编辑器。 5. 检查并添加 shell 到合法列表可选但建议 vsftpd 默认会检查用户的 shell 是否在/etc/shells文件中列出 如果不在可能导致用户无法登录 FTP。因此需要检查并添加/sbin/nologin到该文件中。 使用以下命令查看当前/etc/shells文件内容 bash cat /etc/shells 如果其中没有/sbin/nologin这一行则使用编辑器添加 bash sudo vi /etc/shells 在文件末尾添加/sbin/nologin 保存并退出。 6. 重启 vsftpd 服务 使配置生效执行命令 对于 CentOS、RHEL、Fedora 等系统 bash sudo systemctl restart vsftpd 对于 Debian、Ubuntu 系统 bash sudo service vsftpd restart 7. 测试 使用 FTP 客户端软件如 FileZilla、CuteFTP 等输入 FTP 服务器的地址、创建的用户名和密码进行连接测试验证是否能够正常访问 FTP 服务器。 分享 账号策略 操作目的防止口令暴力破解降低风险 检查方法使用命令“cat/etc/pam.d/ system-auth”查看配置文件 加固方法 设置连续输错10次密码账号锁定5分钟 使用命令“vi /etc/pam.d/ system-auth”修改配置文件添加 auth required pam_tally.so onerrfail deny10 unlock_time300 检查特殊账号 操作目的 查看空口令和root权限的账号 检查方法; 使用命令“awk -F:’($2””)’/etc/shadow” 查看空口令账号 使用命令“awk -F:’($30)’/etc/passwd”查看UID为零的账号 加固方法 使用命令“passwd用户名“为空命令账号设置密码 UID为零的账号应该只有root,设置UID方法 usermod -u UID用户名 口令周期策略 操作目的 加强口令的复杂度降低被猜解的可能性 检查方法 使用命令“cat /etc/login.defs| grep PASS“和 ”cat /etc/pam.d/system-auth“查看密码策略设置 加固方法 使用命令“vi /etc/login.defs“修改配置文件 PASS_MAX_DAYS 90 #新建用户的密码最长使用天数 PASS_MAX_DAYS 0 #新建用户的密码最短使用天数 PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数 使用change命令修改用户设置例如 Chage -m 0 -M 30 -E 2000-01-01 -W 7用户名 表示将此用户的密码最长使用天数设为30最短使用天数设为0账号2000年1月1日过期过期前7天警告用户。 口令复杂策略 操作目的加强口令的复杂度等降低被猜解的可能性 检查方法;使用命令“cat/etc/pam.d/system-auth | grep pam_cracklib.so” 查看密码复杂度策略设置 没有发现密码策略配置 加固方法建议在/etc/pam.d/system-auth文件中配置 适用于普通用户 Passwd requisite pam_cracklib.so retry5 difok3 minlen8 ucredit-1 lcredit-1 dcredit-1 这一句适用于普通用户和root用户 password requisite pam_cracklib.so retry5 difok3 minlen8 ucredit-1 lcredit-1 dcredit-1 enforce_for_root 至少八位包含一位大写字母一位小写字母和一位数字 进来是这个界面点击i进行输入 按esc, “:wq!”进行退出编辑模式并保存
进行验证发现进行了提示密码策略小于8位 限制root远程登陆 操作目的限制root远程telent登录 检查方法 使用命令“cat/etc/securetty | grep CONSOLE” 查看是否禁止root远程登陆 加固方法 Vi编辑/etc/securetty 文件配置CONSOLE/dev/tty01 直接点击G进入最后一行 Esc :wq!
扩展知识
使用xshell进行远程连接kali教程 sudo -i 进入(root)管理员模式 Xshell下载链接 Xshell安装教程 发现已经成功连接 发现正常的linux命令都能使用 重新连接发现失败 限制用户 su 操作目的检查是否使用pam 认证模块禁止wheel组之外的用户为root 检查方法 使用命令“cat /etc/pam.d/su | grep pam_wheel.so”查看配置文件确认是否有相关的限制 加固方法
编辑su 配置文件vi 打开/etc/pam.d/su 文件添加或者修改以下配置 Auth required pam_wheel.so use_uid:强制要求执行su 操作的用户属于wheel组use_uid表示通过用户id,验证组成员身份。这一句话前面没有注释符号说明系统已经强制要求执行su 操作用户必须属于wheel组。 若文件存在其他与pam_wheel.so相关的注释行#auth sufficient pam_wheel.so trust use_uid,可取消注释·并调整为上述规范配置 将用户加入wheel组 对允许使用su 切换为root的用户执行命令usermod -G wheel用户名例如usermod -G wheel user1,将其加入wheel组使其获得su至root的权限 通过以上配置非wheel组使其获得su 至root的权限。 发现B用户已经可以进行su 命令的使用了 检查Grub/Lilo密码 操作目的 查看系统引导管理器是否设置密码 检查方法 使用命令“cat /etc/grub.conf | grep password”查看grub是否设置密码 使用命令“cat /etc/lilo.conf | grep password”查看lilo是否设置密码 加固方法 Vi编辑 /etc/grub.conf Splashimage 这个参数下一行添加password密码 如果需要md5加密可以添加一行password --md5 密码 Vi编辑/etc/lilo.conf Password密码 发现上述的方法已经不适用于新版kali 所以又找了一个方法 检查GBUB2是否设置密码 Sudo grep -i ‘password_pbkdf2’ /boot/grub/grub.cfg 在 GRUB2 中password_pbkdf2 用于标识通过 PBKDF2 算法加密的启动密码配置。 这条命令通过搜索 GRUB2 配置文件中是否存在 password_pbkdf2 相关内容判断系统是否为 GRUB2 设置了加密启动密码。若有对应输出说明已设置若无输出则表示未配置密码。 设置GBUB2密码正确加固方法 生成加密密码 执行命令生成PBKDF2加密密码按提示输入密码添加或修改以下内容将加密字符串替换为实际生成的内容 GRUB_ENABLE_CRYPTODISKy GBUB_PASSWORD”grub.pbkdf2.sha512. ………”#填入生成的加密字符串 Snmp团体字 操作目的 如果打开了snmp协议snmp团体字设置不能使用默认的团体字 检查方法 查看配置文件 cat /etc/snmp/snmpd.conf 加固方法
Vi编辑 /etc/snmp/snmpd.cof 文件 应禁止使用public.private 默认团体字使用用户自定义的团体字例如将以下设置中的public替换为用户自定义的团体字com2sec notConfig notConfigUser default public 编辑文件 bash sudo vi /etc/snmp/snmpd.conf 2. 添加配置 在文件中添加 Conf com2sec notConfigUser default YourCustomCommunity # 将 YourCustomCommunity 替换为自定义强团体字如包含大小写字母、数字、符号 access notConfigGroup any noauth exact all none none 3. 保存退出按 Esc输入 :wq 保存并退出。 4. 重启服务bash sudo systemctl restart snmpd 弱口令审计 检查方法 john /etc/shadow –single john /etc/shadow –wordlistpass.dic 加固方法 使用“passwd 用户名” 命令为用户设置复杂密码 若显示!! *表示密码未设置或者密码已经锁定无有效哈希可破解 服务进程 Linux系统的服务进程 系统守护进程服务 服务就是运行在网络服务器上监听用户请求的进程 服务就是通过端口号来区分的 常见的服务及其对应端口号 ftp:21 ssh:22 telnet:23 smtp:25 ssl:443 http(www):80 pop3:110 系统守护进程服务 在unix/linux系统中服务是一般通过inted进程或者启动脚本来启动。 通过inted来启动的服务可以通过在/etc/inted.conf文件进行注释来禁用。 通过启动脚本启动的服务可以通过改变脚本名称的方式禁用。 查看linux进程的命令 检查ssh服务 操作目的对ssh服务进行安全检查 检查方法 使用命令“cat /etc/ssh/sshd_config”查看配置文件 加固方法 使用命令“vi /etc/ssh/sshd_config”编辑配置文件 不允许root直接登录 设置“PermitRootLogin”的值为no 无法通过ssh进行远程登陆 修改SSH使用的协议版本 设置“Protocol” 的版本为2如果没有这一行直接添加这一行。 修改允许密码错误次数默认6次设置“MaxAuthTries” 值为3 Tcp Wrapper 操作目的 使用tcp wrapper 对 libwrap库支持的程序做访问控制 检查方法 使用命令“vi /etc/hosts.allow” 和 “cat /etc/hosts.deny” 查看配置 加固方法 使用命令“vi /etc/hosts.allow” 和”vi /etc/hosts.deny” 修改配置 若允许 Windows 主机访问 Linux 虚拟机的 SSH 查看 Windows 主机 IP按 Win R输入 cmd 打开命令提示符执行 ipconfig找到 IPv4 地址如 192.168.1.100。在 Linux 虚拟机的 hosts.allow 中填写sshd:Windows主机的IPv4地址例如 sshd:192.168.1.100表示仅允许该 Windows 主机 IP 访问 Linux 的 SSH 服务。 若允许其他设备访问 同理获取对应设备的 IP如另一台 Linux 服务器、手机等填写到 hosts.allow 中。 最终目的是填写 “希望被允许连接到 Linux 虚拟机 SSH 服务的设备 IP”而非固定填主机或虚拟机 IP需根据实际访问需求决定。 Vi /etc/hosts.allow 按i 进入编辑模式 加入 sshd:IP地址 Vi /etc/hosts.deny
按I 进入编辑模式
Sshd:ALL (该配置为仅允许特定ip地址访问ssh) NFS共享 操作目的 查看NFS共享 检查方法 使用命令“exportfs” 查看NFS输出的共享文件 加固方法 使用命令“vi /etc/exports”编辑配置文件删除不必要的共享 如果发现配置文件里面没有命令说明你没有配置过共享 如果有的话进行删除并用下面的两条命令进行执行 systemctl restart nfs-server systemctl restart nfs-kernel-server syslogd认证相关记录 操作目的 查看所有日志记录 检查方法 #cat /etc/rsyslog.conf | grep authpriv 查看是否有 authpriv.* /var/log/secure 加固方法 添加相关日志的记录 将authpirv 设备的任何级别的信息记录到 /var/log/secure 发现本来就在这个路径当中所以不用进行修改 Syslogd 日志设置 操作目的 查看所有日志记录 检查方法 使用命令”cat /etc/rsyslog.conf” 查看rsyslogd 系统日志默认 /var/log/messages Cron日志默认 /var/log/cron 安全日志默认 /var/log/secure 加固方法
添加相关日志的记录 local1属于为本地使用预留的日志设施local0 - local7 之一没有固定的日志记录类型限制 可由用户自定义用于记录特定应用程序或服务产生的日志。例如可以将自定义脚本的运行日志、一些特定业务系统的日志通过配置使用 local1 来记录方便区分和管理。auth主要记录与安全和认证相关的消息比如用户登录、注销信息身份验证成功或失败的记录等。像用户通过 SSH 登录系统、使用 sudo 命令提权等操作产生的相关认证信息通常会由 auth 设施来记录 。不过对于一些更私密的安全认证信息会使用 authpriv 设施记录。 限制ctrlaltdel命令 操作目的 防止误使用ctrlaltdel重启命令 检查方法 使用命令“cat /etc/inittab | grep ctrlaltdel” 查看输入行是否被注释 加固方法 先使用命令“vi /etc/inittab” 编辑配置文件在行开头添加注释符号“#”, #ca::ctrlaltdel:/sbin/shutdown -t3 -r now,在使用命令“init q” 应用设置 新旧系统判断 从系统初始化机制来看当前填写方式需结合系统类型判断 若系统使用 systemd多数新 Linux 发行版如 CentOS 7、Ubuntu 16.04 /etc/inittab 已不再生效图中文件开头也提示 inittab is no longer used when using systemd此时即使注释 #ca::ctrlaltdel:/sbin/shutdown -t3 -r now也无法限制 CtrlAltDel。需通过 systemd 机制处理例如 bash systemctl mask ctrl-alt-del.target # 屏蔽 CtrlAltDel 对应的系统目标 若系统仍使用传统初始化极老旧系统 在 /etc/inittab 中注释 ca::ctrlaltdel:/sbin/shutdown -t3 -r now 行是正确的注释后 CtrlAltDel 的重启功能会被禁用后续执行 init q 刷新配置即可生效。 因此需先确认系统初始化类型新系统需用 systemd 方案老旧系统此填写有效 查看发现是属于新版本的 这个是新版本的教程 屏蔽 CtrlAltDel 对应的系统目标 bash systemctl mask ctrl-alt-del.target 执行此命令后CtrlAltDel 的重启功能会被禁用。 验证状态可选 bash systemctl status ctrl-alt-del.target 若显示 masked则表示屏蔽成功。 此方法适配 systemd 初始化机制是 CentOS 7 等新系统限制 CtrlAltDel 的正确操作。 发现虚拟机已经禁止了这个命令执行成功。 服务进程安全 关闭不必要的服务 使用服务“who -r” 查看当前init级别使用命令“chkconfig --list”查看所有服务的状态 使用命令“chkconfig -level init级别 服务名 on | off | reset”设置服务在个init 级别下开机是否启动 禁止 httpd 服务在运行级别 3、5 开机启动 chkconfig --level 35 httpd off 设置 sshd 服务在运行级别 2、3、4、5 开机启动 chkconfig --level 2345 sshd on 恢复 network 服务默认启动设置 chkconfig --level 3 network reset 完结撒花