LINUX安全

Posted 腐种发芽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX安全相关的知识,希望对你有一定的参考价值。

LINUX安全

1保护谁的安全? 服务器(网站 数据库 邮件 文件)
2 什么安全? 不受到破坏

3 如何保护TA安全
通过非技术手端保护?机房 指定规章制度 稳定的电源
通过技术手段保护?
本地安全 : 用户登录操作系统后可以执行的操作

网络安全 : 防火墙服务(软件防火墙 硬件防火墙)
firewalld
iptables
sshd服务(远程连接主机)

数据安全 :(数据在网络中传输时会受到那些?)
截获数据 篡改 本地丢失
加密 验证数据完整性 备份
++++++++++++++++++++++++++++++++++++++

本地安全:
用户管理:
与用户相关的命令及命令参数
useradd -u -g -G -s 用户名
useradd -s /sbin/nologin yaya (进程的所有者 访问服务)
userdel -r 用户名
usermod -u -g -G -s 用户名
id 用户名
passwd --stdin -S -l -u 用户名
chage -l -E -d 用户名

与用户相关的配置文件
/etc/passwd
/etc/shadow
/etc/login.defs
/etc/skel/

编写批量添加系统用户脚本?要求如下:
执行脚本时,可以设置添加系统用户的数量。
用户存在时,给出提示,不添加用户,反之就添加。
用户初始密码和用户名相同,强制用户首次登录系统修改登录密码
新用户的有效期到本月月底。
每个新添加用户的家目录下都机房规章制度文件。
++++++++++++++++++++++++
伪装登录提示(字符运行级别)
/etc/issue 本地登录
/etc/issue.net 网络连接


历史命令控制
294 grep -n 1000 /etc/profile
295 sed -i ‘45s/1000/500/‘ /etc/profile
296 echo $HISTSIZE
297 source /etc/profile
298 echo $HISTSIZE
~/.bash_history

#HISTTIMEFORMAT=‘%F %T ‘
vim /etc/profile
export HISTTIMEFORMAT="%F %T "
:wq


关闭不常用的服务 systemctl
chkconfig --level 35 服务名 on/off
ntsysv

去掉普通用户服务启动脚本的执行权限。
chmod o-x 服务启动脚本

文件系统规划及挂载
交换分区的作用?

合理规划系统分区
/boot、/home、/var等采用独立的卷

mount挂载选项
suid
-o nosuid:禁用SUID、SGID特殊权限
-o noexec:禁止运行二进制文件
exec

#mount -t 文件系统 -o nosuid,noexec 分区名 挂载点
#vim /etc/fstab

defaults默认挂载包括那些挂载选项?
#man mount
rw, suid, dev, exec, auto, nouser, and async.

278 dd if=/dev/zero of=/tmp/a.txt bs=1M count=300
280 mkfs.ext4 /tmp/a.txt
281 mkdir /disk1
282 mount /tmp/a.txt /disk1/
286 which useradd
287 cp /usr/sbin/useradd /disk1/
292 chmod u+s /disk1/useradd
294 useradd adminyaya
295 su - adminyaya
296 /disk1/useradd stu101
296 tail -1 /etc/passwd
#exit
#umount /disk1
#mount -o nosuid /tmp/a.txt /disk1
# /disk1/useradd stu102

给加特殊属性
i 不可变
a 仅可追加

chattr +/-属性 文件名
lsttr 文件名

服务配置文件
系统配置文件

su 切换用户
普通用户 <----- > 普通用户 需要密码
管理员用户 ----- > 普通用户 不需要密码
普通用户 ----- > 管理员用户 需要密码

切换到管理员用户
#su
#su -

切换到指定用户
#su 用户名
#su - 用户名

$ su - -c "systemctl status httpd" root

++++++++++++++++++++++++++++++++++++++++
用户提权 (让普通用户登录系统后可以使用,管理员使用的命令)
#useradd tom
#useradd jerry
#echo 123456 | passwd --stdin tom
#echo 123456 | passwd --stdin jerry
主配置文件 /etc/sudoers

# grep -v -E ‘#|^$‘ /etc/sudoers

用户名 客户端地址列表=命令列表
%用户组名 客户端地址列表=命令列表

tom localhost=/usr/bin/systemctl start httpd,

/usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

/bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat


给用户组提权
[[email protected] ~]# groupadd webgrp
[[email protected] ~]# useradd jim
[[email protected] ~]# echo 123456 | passwd --stdin jim
[[email protected] ~]# usermod -G webgrp tom
[[email protected] ~]# usermod -G webgrp jim
[[email protected] ~]# grep webgrp /etc/group
webgrp:x:1012:tom,jim
[[email protected] ~]#
#tom localhost=/usr/bin/systemctl start httpd,

/usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

/bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat

%webgrp localhost=/usr/bin/systemctl start httpd,

/usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

/bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat, NOPASSWD:

ALL

使用通配符表示多个提权命令 *
! 取反

mike localhost,svr1=/sbin/* , !/sbin/ifconfig eth0

++++++++++++++++++++++++++++++++++++
使用别名给用户提权

用户别名 User_Alias 别名名称 = 用户名列表
User_Alias ADMINS = jsmith, mikem

主机别名Host_Alias 别名名称 = 主机名列表
Host_Alias MAILSERVERS = smtp, smtp2

命令别名Cmnd_Alias 命令别名=命令列表

#%webgrp localhost=/usr/bin/systemctl start httpd,

/usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

/bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat, NOPASSWD:

ALL

User_Alias WEBADMIN= tom, jim

Cmnd_Alias MYCOMM=/usr/bin/systemctl start httpd,

/usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

/bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat

Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date,

/usr/bin/yum

WEBADMIN localhost=MYCOMM,SOFTWARE
+++++++++++++++++++++++++++++++++++++++
启用日志记录提权用户执行过的提权命令

vim /etc/sudoers
Defaults logfile="/var/log/sudo"
:wq
+++++++++++++++++++++++++++++++++++++++
普通用户登录系统后,查看可以使用的提权命令
sudo -l

普通用户登录系统后,执行提权命令
sudo 提权命令
+++++++++++++++++++++++++++++++++++++++++
三、配置sshd服务
修改服务运行参数(vim /etc/ssh/sshd_config)
[[email protected] ~]# netstat -untlap | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

1413/sshd


17 Port 5789
19 ListenAddress 192.168.4.13
48 LoginGraceTime 2m
51 MaxAuthTries 6
UseDNS no
49 #PermitRootLogin yes

黑白名单(限制客户端连接)vim /etc/ssh/sshd_config
白名单:只允许在白名单列表里的用户可以访问
AllowUsers [email protected] USER2 …
AllowGroups GROUP1 GROUP2 …

黑白名单:只要用户不在黑名单列表里就可以访问
DenyUsers USER1 USER2 …
DenyGroups GROUP1 GROUP2 …

 

 

vim /etc/ssh/sshd_config
AllowUsers jim [email protected]
:wq
#systemctl restart sshd

修改服务验证登录方式?
1 口令认证登录(默认):使用正确的用户名和密码

 

2 密钥对认证登录: 公钥 私钥
加密 解密

2.1 配置客户端254
a 登录用户创建密钥对
# rm -rf ~/.ssh/
#ssh-keygen
#ls ~/.ssh
id_rsa id_rsa.pub
私钥 公钥

在ssh服务器上执行 # rm -rf /root/.ssh/

#ssh-copy-id [email protected]

2.2 配置ssh服务器13
a查看客户端上传的公钥文件
# cat /root/.ssh/authorized_keys
b 修改配置文件禁用口令认证登录
[[email protected] ~]# sed -n ‘79p‘ /etc/ssh/sshd_config
PasswordAuthentication no
#systemct restart sshd

254客户端连接ssh服务
#ssh [email protected] (连接被拒绝)
#ssh [email protected] (允许连接)

12客户端连接ssh服务
#ssh [email protected] (连接被拒绝)

 
























































































































































以上是关于LINUX安全的主要内容,如果未能解决你的问题,请参考以下文章

linux安全加固应关闭啥服务

系统加固之Linux安全加固

linux为啥比windows安全

网络安全Linux网络安全课程

关于Linux的安全问题

Linux系统安全及应用