其他问题

Linux系统安全配置及命令大全

  一、账号安全控制

  账号安全基本措施

  将非登录用户的Shell设为/sbin/nologin【禁止用户登录】

  usermod -s /sbin/nologin 用户名

  锁定长期不使用的账号

  usermod -L 用户名

  passwd -l 用户名

  passwd -S 用户名

  删除无用的账号【定期清理、手动删除】

  userdel [-r] 用户名

  /etc/shadow ###例如:手动删除修改【慎用】

  锁定账号文件passwd、shadow

  chattr +i /etc/passwd /etc/shadow ###锁定文件并查看状态

  lsattr /etc/passwd /etc/shadow ###查看文件锁定状态

  chattr -i /etc/passwd /etc/shadow ###解锁文件

  二、系统引导和登录控制

  密码安全控制

  设置密码有效期

  要求用户下次登录时修改密码

  vi /etc/login.defs ###修改密码配置文件,适用于新建用户

  ......

  chage -M 30 lisi

  cat /etc/shadow | grep lisi

  命令 历史限制

  减少记录的命令条数

  登录时自动清空命令历史

  vi /etc/profile ###设置系统上所有用户的shell环境变量

  export HISTSIZE=200 ###设置历史记录中保存的命令行数量是200

  source /etc/profile

  ###使得`/etc/profile`文件中定义的环境变量对当前shell生效。

  ###实际上是在当前shell会话中重新加载配置文件。

  vi ~/.bashrc ###打开用户家目录下的`.bashrc`文件修改shell配置

  echo "" >~/.bash_history ###清空用户的家目录下的`.bash_history`文件

  终端自动注销

  闲置600秒自动注销

  vi /etc/profile ###设置系统上所有用户的shell环境变量

  ......

  export TMOUT=600 ###设置bash shell的超时时间为600秒,即10分钟

  source /etc/profile ###重新加载配置文件

  ps:若设置了6秒自动注销怎么办?

  1.复制/etc/profile覆盖

  2.脚本

  使用SU命令切换用户

  用途 及用法

  用途: Substitute User 切换用户

  格式: su -目标用户

  密码验证

  root->任意用户,不验证密码

  普通用户->其他用户,验证目标用户的密码

  限制使用su命令的用户

  将允许使用su命令的用户加入wheel组

  启用pam_wheel认证模块 【PAM:系统相关的认证权限管理,Linux系统中较为全面的安全管理的程序】

  pgasswd -a tsengyia wheel ###将用户`tsengyia`添加到名为`wheel`的用户组中。

  tsengyia

  正在将用户"tsengyia" 加入到"wheel"组中

  vi /etc/pam.d/su

  #%PAM-1.0

  ......

  Linux中的PAM安全认证

  su命令的安全隐患

  默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险

  为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

  PAM(Pluggable Authentication Moudules)可插拔认证模块

  是一种高效而且灵活便利的用户级别的认证方式

  也是当前Linux服务器普遍使用的认证方式

  PAM认证原理

  一般遵循的顺序

  Service(服务)->PAM(配置文件)->pam*.so_

  首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证

  用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

  不同的应用程序所对应的PAM模块是不同的

  PAM认证的构成

  查看某个程序是否支持PAM模块认证

  ls /etc/pam.d | grep su

  查看su的PAM配置文件: cat /etc/pam.d/su

  每一行都是一个独立的认证过程

  每一行可以区分为三个字段

  认证类型

  控制类型

  PAM模块及其参数

  PAM安全认证流程

  控制类型也称做Control Flags,用于PAM验证类型的返回结果

  服务启动 :服务启动时,会调用PAM进行用户认证。

  加载PAM模块 :PAM加载负责认证的模块。

  用户认证 :认证模块要求用户提供凭证(如密码)。

  验证凭证 :认证模块检查提供的凭证是否有效。

  继续或失败 :如果凭证有效,PAM继续调用下一个模块;如果无效,认证失败。

  会话管理:所有认证模块执行完毕后,PAM管理会话,服务根据认证结果继续或拒绝操作。

  使用sudo机制提升权限

  su命令的缺点(安全,历史命令等等)

  sudo命令的用途及用法

  用途:授权普通用户、记录审计、控制权限等等。

  配置sudo授权

  visudo或者 vi /etc/sudoers

  记录格式

  visudo

  .......

  查看sudo操作记录

  需启用Defaults logfile 配置

  默认日志文件: /var/log/sudo

  visudo

  Defaults logfile = "/var/log/sudo"

  tail /var/log/sudo

  .....

  查看授权的sudo操作

  sudo -l

  终端登录安全控制

  安全终端配置: /etc/securetty

  禁止普通用户登录

  建立/etc/noglogin文件

  删除nologin文件或重启后即恢复正常

  touch /etc/nologin

  rm -rf /etc/nologin

  三、弱口令检测

  Joth the Ripper,简称为 JR

  一款密码分析工具,支持字典式的暴力破解

  通过对shadow文件的口令分析,可以检测密码强度

  官方网站:http://www.openwall.com/john/

  四、端口扫描

  网络端口扫描

  NMAP

  一款强大的网络扫描、安全检测工具,支持 ping 扫描、多端口检测等多种技术。

  官方网站:http://nmap.org/

  CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm

  安装

  rpm -qa | grep nmap

  yum install -y nmap

  NMAP的扫描

  shell复制代码

  nmap [扫描类型] 【选项】 《》

  示例

  -sS、-sT、-sF、-sU、-sP、-P0

  分别查看本机开放的TCP端口、UDP端口

  nmap -sT 127.0.0.1

  nmap -sU 127.0.0.1

  - **检测192.168.4.0/24网段有哪些主机提供FTP服务**

  nmap -p 21 192.168.4.0/24

  - **检测192.168.4.0/24网段有哪些存活主机**

  nmap -n -sP 192.168.4.0/24

  nmap命令常用的选项和扫描类型

选项描述
-p指定要扫描的端口。例如:nmap -p 22,80,443 target
-n禁用反向DNS解析,以加快扫描速度。
-sSTCP的SYN扫描(半开扫描),只向目标发送SYN数据包。
-sTTCP连接扫描,建立完整的TCP连接。
-sFTCP的FIN扫描,开放的端口会忽略这种数据包。
-sUUDP扫描,用于探测目标主机提供的UDP服务。
-sPICMP扫描,快速判断目标主机是否存活,不进行其他扫描。
-P0跳过ping检测,认为所有目标主机都是存活的。

  ps: 这些选项可以单独使用,也可以组合使用,以适应不同的扫描需求。 例如,nmap -p 80,443 -sS target将执行针对目标主机的80和443端口的SYN扫描。

  五、补充

  netstat命令

  概述

  用来显示各种网络相关信息,如网络连接、路由表、接口统计等。

  常用选项

选项描述
--all 或 -a显示所有活动和非活动的连接。
--numeric 或 -n直接使用数字地址和端口号,不进行域名解析。
--listening 或 -l只显示监听中的服务(监听的套接字)。
--route 或 -r显示路由表。
--interfaces 或 -i显示网络接口信息。
--programs 或 -p显示与网络连接相关的程序名称。
--timers 或 -o显示超时信息。
--extend 或 -e显示额外的网络统计信息。
--statistice 或 -s显示协议统计信息。

  输出列

列标题描述
Proto网络协议类型,如TCP、UDP、ICMP等。
Recv-Q接收队列的大小,表示尚未被应用程序读取的数据包数量。
Send-Q发送队列的大小,表示尚未被网络层发送的数据包数量。
Local Address本地的IP地址和端口号。
Foreign Address远程的IP地址和端口号。
State连接的状态,如ESTABLISHED(已建立)、SYN_SENT(SYN已发送)、TIME_WAIT(等待时间)等。
User拥有该连接的用户。
PID/Program Name对应连接的进程ID和进程名称。

  示例

  netstat -a 显示所有连接

  netstat -l 显示监听中的服务

  netstat -r 显示路由表

  netstat -s | grep TCP 显示TCP连接状态统计

  netstat -i 显示所有网络接口信息




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
上一篇:linux常用的网络命令大全
下一篇:你想用 .wang 域名打造独一无二的在线品牌形象吗?

在线
客服

在线客服服务时间:9:00-22:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部