系统配置:系统安全各项配置(你值得拥有) 2024-04-03 02:21:41 0 0 目录 一:账号安全基本措施 1.系统账号的管理及清理 2.锁定账号文件--chattr命令 3.验证文件的完整性,防止文件被篡改--md5sum命令 4.密码安全控制,设置密码有效期 (1)针对新建用户 (2)针对于已有用户 (3)强制用户在下一次登录时更改密码 5.命令历史的限制 (1)减少记录的命令条数 (2)登录时自动清空命令历史 6. 终端自动注销 二:切换用户及sudo权限 1.su命令用途 2.密码验证 3.限制使用su命令的用户 4. 使用sudo机制提升权限 (1)以其他用户身份(如root)执行授权的命令 (2)配置sudo授权 (3)给用户配置创建网卡的权限 (4)配置用户没有删除的权限 (5)查看用户权限 (6)启动sudo操作日志 三:安全控制(开关机、终端登录) 1.调整BIOS引导设置 2.GRUB限制 3.限制root只在安全终端登录 4.禁止普通用户登录 四:系统弱口令检测 1.JR工具 2.安装及检测命令 3.密码文件的暴力破解 四:网络端口扫描--NMAP 1.NMAP命令介绍 2.nmap命令常用的扫描和扫描类型 3.netstat命令的常用选项 4.试例 (1)安装nmap软件包 (2) 查看本机开放的TCP、UDP端口 (3)查看正在运行的使用TCP协议的网络状态信息 (4)查看网段内存活的主机 (5)查看网段中哪些主机使用http服务 五:拓展--ss命令 1.ss命令介绍 2.常用命令格式 3.试例 总结: 一:账号安全基本措施 1.系统账号的管理及清理#将非登陆用户的Shell设为/sbin/nologinusermod -s /sbin/nologin 用户名#锁定长期不使用的账号usermod -L 用户名passwd -l 用户名passwd -S 用户名#删除无用的账号userdel [-r] 用户名#锁定账号文件passwd shadowchattr +i /etc/passwd /etc/shadow #锁定文件lsattr /etc/passwd /etc/shadow #查看文件状态chattr -i /etc/passwd /etc/shadow #解锁文件 2.锁定账号文件--chattr命令 3.验证文件的完整性,防止文件被篡改--md5sum命令 4.密码安全控制,设置密码有效期 (1)针对新建用户[root@localhost ~]# vim /etc/login.defs #编辑密码配置文件....PASS_MAX_DAYS 30 #将密码有效期设置为30天 (2)针对于已有用户[root@localhost ~]# chage -M 30 用户名 #将已有用户的密码有效期改为30天 (3)强制用户在下一次登录时更改密码[root@localhost ~]#chage -d 0 用户名 #强制用户在下一次登录时更改密码[root@localhost ~]# cat /etc/shadow |grep 用户名 #找到用户密码配置文件并查看 5.命令历史的限制 (1)减少记录的命令条数[root@localhost ~]#history #查看历史命令的列表[root@localhost ~]#vim /etc/profile #编辑命令记录的配置文件[root@localhost ~]#source /etc/profile #修改的配置文件立即生效[root@localhost ~]#history -c #立即清空命令历史 (2)登录时自动清空命令历史[root@localhost ~]#vim ~/.bashrc #修改家目录下的.bashrc文件echo "" > ~/.bash_history #用空白数据覆盖文件 6. 终端自动注销[root@localhost ~]#vim /etc/profile #编辑配置文件....export TMOUT=600[root@localhost ~]#source /etc/profile #修改配置立即执行 二:切换用户及sudo权限 1.su命令用途su - 目标用户 #切换到目标用户的根目录下 2.密码验证 root用户切换到其他用户,不需要验证密码 普通用户切换到其他用户,验证目标用户的密码 3.限制使用su命令的用户 将允许使用su命令的用户加入wheel组,启用pam_wheel模块。[root@localhost ~]#gpasswd -a 用户名 wheel #将用户加入wheel组中[root@localhost ~]# vim /etc/group #查看组信息[root@localhost ~]# vim /etc/pam.d/su #编辑配置文件 4. 使用sudo机制提升权限 (1)以其他用户身份(如root)执行授权的命令sudo [-b] [-u 新使用者账号]-b:将后续的指令放到背景中让系统自行执行,而不与目前的shell产生影响-u:后面可以接欲切换的使用者,若无此项则代表切换身份为root (2)配置sudo授权#sudo授权visudovim /etc/sudoers#别名创建User_Alias 大写别名 = 用户1,用户2,...Host_Alias 大写别名 = 主机名1,主机名2,...Cmnd_Alias 大写别名 = 程序1,程序2,...#用户/组授权用户名/用户别名 主机名/别名=程序列表/别名%组名 主机名=程序列表用户名 主机名=[(用户)NOPASSWD:]程序列表实例:User _Alias WLFC = zhangsan, lisi #给两个用户起别名Cmnd_Alias ADMIN=/sbin/*,!/usr/sbin/reboot,!/usr/sbin/poweroff,!/usr/sbin/init,!/usr/sbin/shutdown #给后面的命令起别名 WLFC ALL=NOPASSWD:ADMIN #配置两个用户能执行/sbin/目录下除了reboot,poweroff,init,shutdown以外其他的程序注意命令要使用绝对路径,多个用“,”隔开,! 表示取反,%组名 主机名=命令程序列表,ALL所有主机 (3)给用户配置创建网卡的权限 (4)配置用户没有删除的权限 (5)查看用户权限sudo -l #查看当前用户获得哪些shdo授权 (6)启动sudo操作日志 三:安全控制(开关机、终端登录) 1.调整BIOS引导设置 将第一引导设备设为当前系统所在硬盘 禁止从其他的设备(光盘、U盘、网络)引导系统 将安全级别设为setup,并设置管理员密码 2.GRUB限制 通常情况下在系统开机进入GRUB菜单时,按 e 键可以查看并修改GRUB引导参数,这对服务器时一个极大的威胁。可以为GRUB菜单设置一个密码。只有提供正确的密码才被允许修改引导参数。grub2-mkpasswd-pbkdf2 #根据提示设置GRUB 菜单的密码PBKDF2 hash of your password is grub.pbkdf2... #省略部分内容为经过加密生成的密码字符串cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bakcp /etc/grub.d/00_header /etc/grub.d/00_header.bakvim /etc/grub.d/00_headercat << EOFset superusers="root" #设置用户名为rootpassword_pbkdf2 root grub.pbkdf2..... #设置密码,省略部分内容为经过加密生成的密码字符串EOFgrub2-mkconfig -o /boot/grub2/grub.cfg # 生成新的grub.cfg文件重启系统进入 GRUB 菜单时,按 e 键将需要输入账号密码才能修改引导参数。 3.限制root只在安全终端登录 在Linux系统中,login程序会读取/etc/securetty文件,以决定允许root用户从哪些终端(安全终端)登录系统。vim /etc/securetty #安全终端配置 4.禁止普通用户登录[root@localhost ~]#touch /etc/nologin #禁止普通用户登录[root@localhost ~]#rm -rf /etc/nologin #取消登录限制 四:系统弱口令检测 1.JR工具 Joth the Ripper,简称为 JR。是一款密码分析工具,支持字典式的暴力破解,通过对shadow文件的口令分析,可以检测密码强度,官方网站: http://www.openwall.com/john/。 2.安装及检测命令安装方式make clean 系统类型 #主程序文件为john检测账号获得Linux/Unix服务器的shadow文件执行john程序,将shadow文件作为参数 #解压工具包cd /opttar zxf john-1.8.0.tar.gz#安装软件编译工具yum install -y gcc gcc-c++ make#切换到 src 子目录cd /opt/john-1.8.0/src#进行编译安装make clean linux-x86-64#准备待破解的密码文件cp etc/shadow /opt/shadow.txt#执行暴力破解cd /opt/john-1.8.0/run./joh /opt/shadow.txt#查看已破解出的账户列表./john --show /opt/shadow.txt#使用密码字典文件> john.pot #清空已破解出的账户列表,以便重新分析./john --wordlist=./password.lst /opt/shadow.txt #使用指定的字典文件进行破解 3.密码文件的暴力破解 四:网络端口扫描--NMAP 1.NMAP命令介绍 NMAP是一个强大的端口扫描类安全评测工具,支持ping扫描、多端口检查等多种技术。nmap [扫描类型] [选项] <扫描目标..>#安装NMAP软件包rpm -qa | grep nmapyum install -y nmap事例#分别查看本机开放的TCP端口、 UDP端口nmap -sT 127.0.0.1nmap -sU 127.0.0.1#检测 192.168.80.0/24网段有哪些主机提供HTTP服务nmap -p 80 192.168.80.0/24#检测192.168.80.0/24网段有哪些存活主机nmap -n -sP 192.168.80.0/24 2.nmap命令常用的扫描和扫描类型 -p 指 定 扫 描 的 端 口 。-n 禁用反向 DNS 解析(以加快扫描速度) -sS TCP 的SYN扫 描 ( 半 开 扫 描 ) , 只 向 目 标 发 出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。 -sT TCP 连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立 一 个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。 -sF TCP 的 FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包。这种类型的扫描可间接检测防火墙的健壮性。 -sU UDP 扫描,探测目标主机提供哪些 UDP 服务, UDP 扫描的速度会比较慢。 -sP ICMP 扫描,类似于ping 检测,快速判断目标主机是否存活,不做其他扫描。 -P0 跳 过ping 检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。 netstat -natp 查看正在运行的使用TCP协议的网络状态信息 netstat -naup 查看正在运行的使用UDP 协议的网络状态信息 3.netstat命令的常用选项-a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。-n 以数字的形式显示相关的主机地址、端口等信息。-t 查看TCP相关的信息-u 显示UDP协议相关的信息-p 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)-r 显示路由表信息。-1 显示处于监听状态的网络连接及端口信息。 4.试例 (1)安装nmap软件包 (2) 查看本机开放的TCP、UDP端口 (3)查看正在运行的使用TCP协议的网络状态信息 (4)查看网段内存活的主机 (5)查看网段中哪些主机使用http服务 五:拓展--ss命令 1.ss命令介绍 ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息: 所有的TCP sockets 所有的UDP sockets 所有ssh/ftp/ttp/https持久连接 所有连接到Xserver的本地进程 使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤 所有的state FIN-WAIT-1 tcpsocket连接以及更多 2.常用命令格式ss -l 显示本地打开的所有端口ss -pl 显示每个进程具体打开的socketss -t -a 显示所有tcp socketss -u -a 显示所有的UDP Socektss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程ss -s 列出当前socket详细信息 3.试例 总结: ss命令和netstat命令效果基本一致,但ss命令比netstat命令快,因为netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。ss执行的时候消耗资源以及消耗的时间都比netstat少很多,所以运行较快。 收藏(0)