保护LINUX 服务器的安全
康帝 2018-05-17 来源 : 阅读 927 评论 0

摘要:本文主要讲述保护Linux网站、数据库、邮件和文件的安全,具体如下:


本文主要讲述保护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


给用户组提权
[root@localhost ~]# groupadd webgrp
[root@localhost ~]# useradd jim
[root@localhost ~]# echo 123456 | passwd --stdin jim
[root@localhost ~]# usermod -G webgrp tom
[root@localhost ~]# usermod -G webgrp jim
[root@localhost ~]# grep webgrp /etc/group
webgrp:x:1012:tom,jim
[root@localhost ~]# 
#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)
[root@localhost ~]# 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 USER1@HOST USER2 …
AllowGroups GROUP1 GROUP2 …

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

 

 

vim /etc/ssh/sshd_config
AllowUsers jim root@192.168.4.12 
: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 root@192.168.4.13

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

254客户端连接ssh服务
#ssh jim@192.168.4.13 (连接被拒绝)
#ssh root@192.168.4.13 (允许连接)

12客户端连接ssh服务
#ssh root@192.168.4.13 (连接被拒绝)

 

LINUX安全

 


本文由 @康帝 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程