系统配置:系统安全各项配置(你值得拥有)

目录

一:账号安全基本措施

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少很多,所以运行较快。

相关推荐

相关文章