linux的安全加固(笔记版)

写了一个Linux安全加固,写的比较乱见谅

用户账户的安全
账户文件 /etc/passwd 
密码文件 /etc/shadow   finger ---查看用户信息
        删除不经常使用的账户   userdel     -r   连同家目录也删除
        禁用不用的账户    usermod     ---更改用户的属性
-L   -U
        passwd     -l   -u
    
                     更改用户的登陆shell   为/sbin/nologin  或者/bin/false
usermod -s /sbin/nologin 用户名
检查用户的登陆的shell是否正常     
强制用户更改密码(设置有效期)
chage工具      /etc/login.defs---影响新建用户
密码的复杂度可以通过 /etc/pam.d/system-auth实施(了解)、
减少记录命令历史的条数(用户的操作不被记录)
环境变量 histsize
方法  vi /etc/profile (系统环境有关)
histsize=100
source /etc/profile  (重新读取该文件)
echo $HISTSIZE  
100
设置在命令行界面中设置自动注销
环境变量tmout
建立多个账户组  ,将用户账号分配到相应的账户组    /etc/group
  
保护root账户的安全   方法一   除非必要,避免用超级用户登录

~!执行管理命令的时候su切换账户
su - 用户名    未使用- 时,仍然用原来的用户环境



su的加强               仅允许指定用户使用su命令切换账户身份
vi  /etc/pam.d/su     
auth    required    pam_wheel.so use_uid
      #只允许wheel组的用户使用su命令切换用户身份    把一个用户加到wheel组里面                  gpasswd -a 用户名 wheel

   方法二    提升sudo的执行权限

sudo, sudoedit - execute a command as another user
格式   sudo -u 用户名 命令操作
配置文件/etc/sudoers   
推荐使用visudo编辑,语法检查的功能   (进制转换)
让sdxh03用户可以执行用户管理的操作
                用户添加  useradd
                用户删除  userdel
                用户修改  usermod

   sdxh03  ALL=/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod             

sudo 的选项
? 查看允许执行的命令列表(-l选项)
? 通过sudo执行命令(sudo 命令行)
sudo useradd test
? 清除用户密码验证的时间戳(-k)
? 重新校验密码(-v)
[需求2]
?授权wheel组的用户不需验证密码即可执行所有命令

## Same thing without a password
%wheel  ALL=(ALL)       NOPASSWD: ALL
为sudo配置项定义别名
好处:使配置更加的灵活
–关键字:User_Alias、Host_Alias、Cmnd_Alias
–在sudo配置行中,可以调用已经定义的别名
-别名一定要大写
和认证有关的事件默认会记录在/var/log/secure
日志服务的配置文件/etc/rsyslog.conf
tail -f  /var/log/secure  监视日志文件的变化 
有效阻止针对SSH口令暴力破解常用的工具DenyHosts

lsof 列出当前系统打开文件的工具      命令格式:lsof(参数)(文件) -i 列出符合条件的进程(4、6协议 端口 ip)

ssh服务的配置文件
/etc/ssh/sshd_config
port 51000

ListenAddress 172.16.1.196  设置监听地址

iptables - I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 51000 -j ACCEPT

iptables -L -n -t filter

ssh优化

禁止使用dns解析

UseDNS no

不启用GSSAPI认证方式

GSSAPIAuthentication no

查看ssh配置文件的帮助

man sshd_config

ssh的秘钥认证、
ssh支持两种认证方式
1、(口令认证)
2、(秘钥认证)
使用公钥和私钥对的方式对用户进行认证

ssh秘钥认证原理
(1)客户端生成一对秘钥(公钥和私钥)


使用ssh-keygen命令生成秘钥对
ssh-keygen -t rsa
~/ .ssh 目录中文件解释:
(1)known_hosts----保存所连接主机的公钥
(2)id_rsa是私钥文件,内容需要严格保密
(3)id_rsa.pub是公钥文件,课发布到ssh服务器中


(2)客户端吧公钥交付给服务器,存放在相应用户的认证文件中

#AuthorizedKeysFile     .ssh/authorized_keys(~/.ssh/authorized_keys)
1)复制公钥
(3)当客户端使用ssh连接时u,使用公钥验证对端的身份时否正确


查看用户
   w 当前谁在线正在做什么
   who  更为简单
         如何踢掉正在登陆的非法用户
pkill -KILL -u <user>    
用户登录历史记录查看
last: last, lastb - show listing of last logged in user
newgrp   更改当前登陆用户的私有组

与用户和组相关的文件
/etc/passwd
/etc/shadow
/etc/group












常用命令总结
lsblk ----列出系统中的块设备
fdisk ----分区
du -sh /usr ---- 统计目录的使用空间
ps -ef  查看系统的进程
partprobe /dev/sdb   内核重新读取分区信息
mkfs 格式化
    -t  指定文件系统类型
mount  文件系统   挂载点
        mount /dev/sdb1 /media/test
umount 卸载文件系统
umount  /dev/sdb1

blkid /dev/sda3 查看文件系统的唯一标识符

fsck  对磁盘文件系统做检查,相当于Windows中的chkdsk指令
rpm -qf /bin/命令  查询文件属于哪个软件包
which    在path变量中查找指定程序

suid ---冒险位
当执行suid位的程序时,是以该程序的属主身份执行,而不是以当前用户的身份执行
一般用于可执行的程序,对属主部分操作
chmod---更改文件的权限
chmod u+s
sgid  
stick


find / -type f -perm +6000 -exec ls -lh {} \;


find ---文件查找
--perm  权限
perm 644        -perm mode (精确模式)
perm +644 -perm +mode只要包含指定的模式即匹配
perm -644       -perm  -mode  
              All of the permission bits mode are set for the file.
即只要模式中设置的权限位必须要匹配,要注意不同于精确匹配
perm /644
位置变量:位置参数变量是一种特殊的shell变量,用于从命令行向shell脚本传递参数

监控系统中使用了哪些使用set


#!/bin/bash
OLD_FILE=/etc/setfile
for i in  `find / -type f -perm +6000 2>/dev/null`
do
grep -f "$i" $OLD_FILE > /dev/null
[$? -ne 0]&& ls -lh $i
done




文件系统(分区)的挂载选项
-mount命令的 -o nosuid、 -o noexec选项
-o ro 只读
-o remount 在不卸载文件情况下,重新激活挂载选项
-o noexec 不允许可执行文件运行


分区 、
/boot--存放系统的引导文件、内核文件
 /home---用户的家目录
 /var ----可变化的文件,如日志
 /opt ---大型的第三方程序,如oracle

fdisk   命令


d  删除一个分区
n  新建一个分区
p  参看分区表
t  更改分区类型
w  保存退出   
Linux中的特殊权限位
suid 冒险位 ----  权限值4
通常对命令程序做设置,对属主 u位 操作

当对一个命令程序设置了SUID位,用户在执行该命令程序时,是以该命令程序的属主身份执行。
chmod  u+s file
chmod 4755 file

stick---粘连位---权限值1
     通常对目录做设置,对其他人(o位)操作
    通常用在一个公共的可写的目录,设置了stick位之后,每个人只能去管理自己的文件,不能删除、修改其他人的文件。

?文件系统(分区)的挂载选项
        –mount命令的 -o nosuid、-o noexec选项
                        -o ro   只读
                         -o remount  在不卸载文件情况下,重新激活挂载选项
                                                        -o noexec  不允许可执行文件运行
默认挂载选项

    默认挂载选项在访问外部 存储设备时可能不安全

/dev  ---设备文件目录     
scsi、usb、sata ---sd
ide   --- hd
光驱 /dev/sr0
   /dev/cdrom ---软连接
大容量的存储设备  --- 块(block)设备
文件类型--b
分区文件系统如何实现开机自动挂载
编辑/etc/fastab
实现自动挂载

1---文件系统(可以是远程的)
2---挂载点
3---文件系统类型
4---挂载选项
5---是否使用dump指令对文件系统进行备份
6---开机是否使用fsck对文件系统检查
0-不检查
1、2 ---检查的顺序



锁定系统重要文件的i节点

chattr   i  设定文件不能被修改、删除、重命名、设定连接等、同时不能写入或新增内容
   这个参数对于文件系统的安全设置有很大帮助

版权声明:若无特殊注明,本文皆为《hornets's blog 飘落的黄蜂》原创,转载请保留文章出处。
本文链接:linux的安全加固(笔记版)http://hornets.pw/?post=3
正文到此结束

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

评论信息框

吃奶的力气提交吐槽中...

赶紧抢沙发咯