linux系统安全

集群:

1系统安全及应用:

系统账号清理:

1 将非登录用户的Shell设为/sbin/nologin
useradd -s /sbin/nologin benet

2 锁定长期不使用的账号
passwd -l zhangsan 锁定
passwd -u zhangsan 解锁
passwd -S zhangsan 查看

3 删除无用的账号

4 锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow 锁定文件
chattr -i /etc/passwd /etc/shadow 解锁文件

lsattr /etc/passwd /etc/shadow 查看文件状态

5 设置密码有效期

[root@localhost ~]# vi /etc/login.defs --适用于新建用户
PASS_MAX_DAYS 30

[root@localhost ~]# chage -M 30 lisi --适用于已有用户

6 要求用户下次登录时修改密码
chage -d 0 zhangsan

密码的复杂要求 7位
CroUtAB1,

7 命令历史:
vim /etc/profile ===对新用户生效
HISTSIZE=20

export HISTSIZE=20 ===对当前用户生效

8 自动注销:

vim /etc/profile ===对新用户生效
export TMOUT=600

export TMOUT=600 ===对当前用户生效

9
su - root
su root

10
查看su操作记录
安全日志文件:/var/log/secure

11
sudo
配置sudo授权
visudo 或者 vi /etc/sudoers
记录格式:用户 主机名列表=命令程序列表

root@localhost ~]# visudo
……
%wheel ALL=NOPASSWD: ALL
jerry localhost=/sbin/ifconfig
syrianer localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route

12 查看su操作记录
安全日志文件:/var/log/secure

13 调整BIOS引导设置
将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘、U盘、网络)引导系统
将安全级别设为setup,并设置管理员密码

14 禁用重启热键Ctrl+Alt+Del
systemctl mask ctrl-alt-del.target
systemctl daemon-reload

15 GRUB菜单限制
GRUB限制的实现

1 获得加密字串
[root@benet ~]# grub2-mkpasswd-pbkdf2
输入口令:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD974D895D79DE7343B70E4C478F58A03DEB55397D97EA35479B497E7E3377DC48A2C00E48EEB4404FD10108F12F9DF2F55BF995A69FCD73E7B9BC8898A4F995.4857398CB2E9E47134186A050795EA49811B50EADAA584FF78BE74D2BE0D3B5D82E6F82F3B04CBA545D4672937391CE0260731325712FC5A44B569E2580234D5

2 备份配置文件
[root@benet ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@benet ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

3 修改配置文件
vim /etc/grub.d/00_header

cat <<EOF
set superusers=“root”
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD974D895D79DE7343B70E4C478F58A03DEB55397D97EA35479B497E7E3377DC48A2C00E48EEB4404FD10108F12F9DF2F55BF995A69FCD73E7B9BC8898A4F995.4857398CB2E9E47134186A050795EA49811B50EADAA584FF78BE74D2BE0D3B5D82E6F82F3B04CBA545D4672937391CE0260731325712FC5A44B569E2580234D5
EOF

4 生成新的groub配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

16限制root只在安全终端登录
安全终端配置:/etc/securetty
[root@localhost ~]# vi /etc/securetty
……
tty1
tty2
tty3
tty4
#tty5
#tty6

17 禁止普通用户登录
建立/etc/nologin文件
删除nologin文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin

[root@localhost ~]# rm -rf /etc/nologin

18 JR
一款密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度

1 安装
tar xf john-1.8.0.tar.gz
cd john-1.8.0/
cd src/
make clean linux-x86-64

2 暴击破解
cd john-1.8.0/run/
./john /root/shadow.txt

3 字典破解
./john --wordlist=./password.lst /root/shadow.txt

4 查看结果
./john --show /root/shadow.txt


		第一章系统安全及应用

		

		账号安全基本措施

一、系统账号清理
1.将非登录用户的Shell设为/sbin/nologin
*/sbin/nologin----禁止终端登录,确保不被人为改动
(经常检查,防止恶意篡改)
2.锁定长期不使用的账号
*例如一些用户长期不使用,但不确认是否删除
3.删除无用的账号
(例:mysql程序卸载后,删除程序用户mysql)
4.锁定账号文件passwd、shadow
*例如:服务器账户已固定,不再进行更改。可锁定
grep “/sbin/nologin$” /etc/passwd |wc -l

grep “/sbin/nologin$” /etc/passwd |awk -F: ‘{print $1}’ > nologin.txt

useradd tom

echo “123.com” | passwd --stdin tom

usermod -L tom

passwd -S tom

锁定后,使用其他终端tom登录验证

usermod -U tom

passwd -S tom

chattr +i /etc/passwd /etc/shadow

锁定文件并查看状态

lsattr /etc/passwd /etc/shadow

----i-------e- /etc/passwd
----i-------e- /etc/shadow

useradd lisi

解锁文件并查看状态

chattr -i /etc/passwd /etc/shadow

lsattr /etc/passwd /etc/shadow

------------e- /etc/passwd
------------e- /etc/shadow

useradd lisi

二 密码安全控制
1.设置密码有效期
2.要求用户下次登录时修改密码

适用于新建用户—密码有效期30天
[root@localhost ~]# vi /etc/login.defs

……
PASS_MAX_DAYS 30

适用于已有用户
[root@localhost ~]# chage -M 30 lisi

强制在下次登录时更改密码
[root@localhost ~]# chage -d 0 tom

三、命令历史限制
1.减少记录的命令条数
2.注销时自动清空命令历史
[root@localhost ~]# vi /etc/profile

……
HISTSIZE=200

source /etc/profile

[root@localhost ~]# vi ~/.bash_logout

……
history -c
clear
3.终端自动注销----闲置600秒后自动注销
(注意:执行耗时较长操作时,取消此变量 unset TMOUT )

[root@localhost ~]# vi ~/.bash_profile

……
export TMOUT=600

===============================================
二 用户切换及提权

一、使用su命令切换用户
1.用途及用法
用途:Substitute User,切换用户
格式:su - 目标用户

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

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

【带 - 选项表示将使用目标用户的登录Shell环境】
[jerry@localhost ~]$ su - root
口令:

[root@localhost ~]# whoami
root

3.限制使用su命令的用户(默认都可以使用su命令,防止密码穷举危险,只允许少量用户使用)
*启用pam_wheel认证模块
*将允许使用su命令的用户加入wheel组

[root@localhost ~]# vi /etc/pam.d/su

#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
……

grep wheel /etc/group

验证:

su - tom

$ su -

【不能切换到root用户,需要将用户“tom”加入到“wheel”组中】

[root@localhost ~]# gpasswd -a tom wheel

验证:
$ su -

4.查看su操作记录
*安全日志文件:/var/log/secure

[root@localhost ~]# tail /var/log/secure

5.su命令的缺点
*知道root密码的用户越少越安全

sudo—普通用户拥有一部分管理权限,又不需要知道root密码

二使用sudo机制提升权限

1.sudo命令的用途及用法

*用途:以其他用户身份(如root)执行授权的命令
*用法:sudo 授权命令

2.配置sudo授权 /etc/sudoers

2.1 /etc/sudoers
文件默认权限440,vi编辑时‘:w!’保存

*visudo 或者 vi /etc/sudoers

2.2 记录格式:用户 主机名列表=命令程序列表
用户:用户名或“%组名”(组内所有用户)

主机名:一般为localhost或实际主机名

命令列表:命令的绝对路径,多命令用‘,’号分割

ll /etc/sudoers

验证:使用lisi登录

$ /sbin/ifconfig ens33:1 192.168.10.2

$ sudo /sbin/ifconfig ens33:1 192.168.10.2

[root@localhost ~]# visudo

……

【wheel组成员不需验证密码即可执行任何命令】
%wheel ALL=NOPASSWD: ALL

【lisi可使用ifconfig命令】
lisi localhost=/sbin/ifconfig

【可以使用通配符*、取反符号!】
zhangsan localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route

【关键字、别名机制–必须大写】
#User_Alias OPERATORS=tom,jack,rose
#Host_Alias MAILSERVERS=smtp,pop
#Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum

#OPERATORS MAILSERVERS=PKGTOOLS

3.查看sudo操作记录
*需启用 Defaults logfile 配置
*默认日志文件:/var/log/sudo

[root@localhost ~]# visudo

……
【启用日志配置以后,sudo操作过程才会被记录,在Defaults列前添加】
Defaults logfile = “/var/log/sudo”

[root@localhost ~]# tail /var/log/sudo

4.查询授权的sudo操作 sudo -l

【初次使用sudo时需验证当前用户的密码】
[lisi@localhost ~]$ sudo -l

【默认超时为5分钟,在此期间不再重复验证】
$ sudo /sbin/fdisk -l

==============================================
系统引导和登录控制

服务器一般用远程登录的方式进行管理,而本地引导和终端登录过程被忽视,会留下安全隐患。因此需要加强对其他用户的非授权介入的安全管理

1.开关机安全控制
1.1调整BIOS引导设置
1)将第一引导设备设为当前系统所在硬盘
2)禁止从其他设备(光盘、U盘、网络)引导系统
3)将安全级别设为setup,并设置管理员密码

1.2禁用重启热键Ctrl+Alt+Del
*避免因用户误操作导致重启

查看此文件获取热键信息
[root@localhost ~]# cat /etc/inittab

inittab is no longer used when using systemd.

ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target

systemd uses ‘targets’ instead of runlevels. By default, there are two main targets:

multi-user.target: analogous to runlevel 3

graphical.target: analogous to runlevel 5

To view current default target, run:

systemctl get-default

To set a default target, run:

systemctl set-default TARGET.target

查看此文件—软连接文件
[root@localhost ~]# ll /usr/lib/systemd/system/ctrl-alt-del.target lrwxrwxrwx. 1 root root 13 9月 1 18:50 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target

在不影响此文件的前提下禁用此热键(注销此服务)
[root@localhost ~]# systemctl mask ctrl-alt-del.target

Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.

重新加载systemd配置
[root@localhost ~]# systemctl daemon-reload

2.GRUB限制
2.1使用grub2-mkpasswd-pbkdf2生成密钥
pbkdf算法加密更安全。在/etc/grub.d/00_header配置文件中,添加用户密码(注意–实验中每个人生成的密码不一样)

[root@localhost ~]# grub2-mkpasswd-pbkdf2
输入口令:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.0C702158DDDE9B72C06A36B5540E059E363ACD64EFA2741D44A2629A52EED4D4C5E4BAF35F7EB3E25E9DB6AD2E9DD52501E1E22D30A61F110448AC726D0EB9DE.D097E4CF0C56F01D0A2DACE9C0A233E5FABFE0F014C0D90E1BEC7FC5B0DCF5F01043B69D149EEC938CA9B1EDD5CACF5EFD2F905ADE06F6033B1BE4A0018CA13F

grub.pbkdf2.sha512.10000.97FA017EC513EDA687BD0890A16B06A750F10F6F7B52CBA3217AF3D2F8A9DC70EA01B280D60C94760D9E3D58C461463BA592AEE77784D0591E96060E192ED2D1.7F07993A2DF2FD9296BD18E4641A4DBBBBD5A7878C2070FCB893139AB83F50620058F36D2EEDF62C63F46BC61E0C952F7682EC75BC34736FAB1A8A5E6DEEFB0E

2.2修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件

[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
[root@localhost ~]# vim /etc/grub.d/00_header
末尾添加:注意要添加自己生成的密码

cat << EOF
set superusers=“root”
password_pbkdf2 root grub.pbkdf2.sha512.10000.0C702158DDDE9B72C06A36B5540E059E363ACD64EFA2741D44A2629A52EED4D4C5E4BAF35F7EB3E25E9DB6AD2E9DD52501E1E22D30A61F110448AC726D0EB9DE.D097E4CF0C56F01D0A2DACE9C0A233E5FABFE0F014C0D90E1BEC7FC5B0DCF5F01043B69D149EEC938CA9B1EDD5CACF5EFD2F905ADE06F6033B1BE4A0018CA13F
EOF

生成新的grub.cfg配置文件
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-c381cd10df4c4fffbaffe73a487f3834
Found initrd image: /boot/initramfs-0-rescue-c381cd10df4c4fffbaffe73a487f3834.img
done

验证:重启进入grub菜单,按E键将无法修改引导参数

3.终端登录安全控制
3.1限制root只在安全终端登录
安全终端配置:/etc/securetty

[root@localhost ~]# vi /etc/securetty

……
tty1
tty2
tty3
tty4
#tty5 【禁止root用户从终端tty5、tty6登录】
#tty6

sed -i ‘14,23s/^/#/g’ /etc/securetty

3.2 禁止普通用户登录
*建立/etc/nologin文件,login程序会检查此文件是否存在。如果存在则拒绝普通用户登录系统(root不受限制)
*删除nologin文件或重启后即恢复正常
*建议在服务器维护期间临时使用

[root@localhost ~]# touch /etc/nologin

==============================================
弱口令检测和端口扫描

一、系统弱口令检测
1.Joth the Ripper,简称为 JR
一款密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度
官方网站:http://www.openwall.com/john/

root 123.com
password 123123
123456

[root@localhost ~]# tar xf john-1.8.0.tar.gz

[root@localhost ~]# cd john-1.8.0

[root@localhost john-1.8.0]# ls -ld *
drwxr-xr-x 2 root root 208 10月 1 09:02 doc
lrwxrwxrwx 1 root root 10 5月 30 2013 README -> doc/README
drwxr-xr-x 2 root root 143 10月 1 09:02 run
drwxr-xr-x 2 root root 4096 10月 1 09:02 src


doc 手册文档
run 运行程序
src 源码文件

[root@localhost john-1.8.0]# ls doc/
CHANGES CONTACT CREDITS EXTERNAL INSTALL MODES README
CONFIG COPYING EXAMPLES FAQ LICENSE OPTIONS RULES

[root@localhost john-1.8.0]# cd src/

编译安装
[root@localhost src]# make clean linux-x86-64

make命令可列表显示支持的系统类型及编译操作
[root@localhost src]# make
To build John the Ripper, type:
make clean SYSTEM
where SYSTEM can be one of the following:
linux-x86-64-avx Linux, x86-64 with AVX (2011+ Intel CPUs)
linux-x86-64-xop Linux, x86-64 with AVX and XOP (2011+ AMD CPUs)
linux-x86-64 Linux, x86-64 with SSE2 (most common)
linux-x86-avx Linux, x86 32-bit with AVX (2011+ Intel CPUs)
linux-x86-xop Linux, x86 32-bit with AVX and XOP (2011+ AMD CPUs)
…………………………

确认已生成可执行程序john
[root@localhost src]# ls …/run/john
…/run/john

添加测试账号
[root@localhost src]# useradd test1
[root@localhost src]# useradd test2
[root@localhost src]# echo “123456”|passwd --stdin test1

[root@localhost src]# echo “abc123”|passwd --stdin test2

准备待破解的密码文件
[root@localhost src]# cp /etc/shadow /root/shadow.txt

[root@localhost src]# cd …/run

执行暴力破解
[root@localhost run]# ./john /root/shadow.txt

*如果已破解会即时输出。密码 用户名
*检测时间长,可ctrl+c终止
*信息自动保存到john.pot文件

查看密码信息
[root@localhost run]# ./john --show /root/shadow.txt

清空已破解出的账户列表,进行重新分析
[root@localhost run]# :> john.pot

准备好密码字典文件,默认为password.lst
[root@localhost run]# vim password.lst

添加root用户密码123.com进字典
…………………………
13 #!comment: For more wordlists, see http://www.openwall.com/wor dlists/
14 123456
15 123.com
16 12345
……………………………………………………

执行john程序,结合–wordlist=字典文件
[root@localhost run]# ./john --wordlist=./password.lst /root/shadow.txt

二、网络端口扫描
1.NMAP
一款强大的网络扫描、安全检测工具
2.Nmap包含四项基本功能:
主机发现(Host Discovery)
端口扫描(Port Scanning)
版本侦测(Version Detection)
操作系统侦测(Operating System Detection)

3.NMAP的扫描语法
nmap [扫描类型] [参数] 目标IP

4.常用的扫描类型
-sS、-sT、-sF、-sU、-sP、-P0
4.1. 扫描类型

-sT  TCP 连接扫描,会在目标主机中记录大量的链接请求和错误信息

-sS  SYN扫描,只完成三次握手前两次,很少有系统记入日志,默认使用,需要root(admin)权限

-sP  Ping扫描,默认使用,只有能Ping得通才会继续扫描

-P0  扫描之前不需要Ping,用于绕过防火墙禁Ping功能

-sA  高级的扫描方式,用来穿过防火墙的规则集

-sV  探测端口号版本

-sU  UDP扫描,扫描主机开启的UDP的服务,速度慢,结果不可靠

-sX -sN   秘密的FIN数据包扫描,圣诞树(Xmas Tree)和空模式,针对Unix和Linux主机,系统要求遵循TCP RFC文档

4.2. 扫描参数

-v  显示扫描过程,推荐使用

-h  帮助文档

-p  指定端口号,如[1-65535],[22,135,1433,3306,]等格式

-O  启动远程操作系统监测,存在误报

-A  全面系统监测,使用脚本检测,扫描等

-T4  针对TCP端口禁止动态扫描延迟超过10ms

-iL  批量扫描,读取主机列表,如[-iL C:\ip.txt]

5.示例
[root@localhost ~]# yum -y install nmap

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

[root@localhost ~]# nmap 127.0.0.1

[root@localhost ~]# nmap -sU 127.0.0.1

检测192.168.4.0/24网段有哪些主机提供ssh服务
[root@localhost ~]# nmap -p 22 192.168.10.0/24

检测192.168.4.0/24网段有哪些存活主机(能够ping通)
[root@localhost ~]# nmap -n -sP 192.168.19.0/24

检测此地址段是否开启文件共享服务
[root@localhost ~]# nmap -p 139,445 192.168.10.1-100

检测红蜘蛛软件对应开放端口tcp1688

[root@localhost ~]# nmap -p 1688 192.168.19.0/24

[root@localhost ~]# nmap -O --osscan-guess 192.168.202.101

检测目标的操作系统情况
OS DETECTION:
-O: Enable OS detection
–osscan-limit: Limit OS detection to promising targets
–osscan-guess: Guess OS more aggressively

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值