zoukankan      html  css  js  c++  java
  • Linux系统——系统安全及应用

    系统账号清理

    将非登录用户的shell设为/sbin/nologin

    方法一:usermod -s

    方法二: chsh命令,交互式修改,用来修改用户的登录情况

    方法三: chsh -s

    方法四:vim /etc/passwd

    锁定长期不使用的账号

    方法一:passwd -l 用户名  密文前会出现2个! 解锁passwd -u 查看passwd -S

    方法二:usermod -L 用户名  密文前会出现1个!解锁usermod -U

    删除无用的账号

    userdel -r 用户名

    锁定账号文件

    1i

    查看:lsattr  /etc/passwd  /etc/shadow

    锁定:chattr  +i  /etc/passwd  /etc/shadow

    解锁:  chattr  -i  /etc/passwd  /etc/shadow

    i锁一般只用于超级用户;锁定后即便是超级用户,也不能修改文件,既不能创建、删除、修改用户信息;常使用在passwd,因为一旦使用i锁,就不能创建用户,只能查看,可以保证文件安全。

     (2)a

    查看:lsattr  /etc/passwd  /etc/shadow

    锁定:chattr  +a  /etc/passwd  /etc/shadow

    解锁:  chattr  -a  /etc/passwd  /etc/shadow

    a锁可以正常查看,可以追加内容(echo),不能修改内容(vim);如果,a锁锁定passwd,可以创建用户不能修改、删除用户。

    -R 递归增加权限

     

    密码安全控制

    (1)设置密码有效期

    修改某个已存在用户的密码有效期:

    chage -M 天数 用户名

    passwd -x 天数 用户名

     设置今后添加用户时的默认密码有效期:

    方法一:vim编辑/etc/login.defs文件,修改PASS_MAX_DAY”后面的数值

    方法二:vim编辑/etc/shadow文件,修改第五部分

    2)要求用户下次登录时修改密码

    方法:chage -d 0 用户名

    命令历史限制

    (1)减少历史的命令条数

    history命令(默认保留1000条)

    History  查看使用过的历史命令

    history -c 清空历史记录

    方法一: vim编辑/etc/profile文件(系统全局变量文件,所有和变量相关的命令都放在这个文件中),修改HISTSIZE=”后面的数值

    方法二: export HISTSIZE=数值(仅当前环境用户下生效)

    (2)注销时自动清空历史命令

    方法:vim编辑宿主目录下的“.bash_logout”文件,添加“history -c

    终端自动注销

    方法一:vim编辑/etc/profile文件,添加“TMOUT=数值”

    方法二: export TMOUT=数值(仅当前环境用户下生效)

    更改端口号

    /etc/ssh/目录下

    # vim sshd_config

    port 22处更改端口号(工作中一般将端口号设置为一万以上)

     

      

    *******************************************************************************

    su命令

    作用:切换用户

    su 目标用户 切换账号,之前的进程并没消失;环境变量不改变

    (exit也可用Ctrl+d操作,退出用户)

    su - 目标用户 以普通用户的初始环境切换成普通用户,环境变量会重置成普通用户环境变量

    su -c 临时切换到某一个用户,执行一个命令,执行完,自动返回当前用户;切换到一个shell,执行一个命令,然后退出所切换的用户环境

    su -m 切换用户时,不重置用户环境

    su -s /etc/shell允许,则运行指定的shell

    su命令常用在/etc/rc.local

    # vim  /etc/rc.local

    su  - 用户 -c 命令  实现以普通用户实现进程,安全操作,表示仅限在xx用户下启动的服务命令脚本

    查看su操作记录

    安全日志文件:/var/log/secure

    # tar /var/log/secure|less

    sudo命令

    su命令的缺点:在使用su命令时,不指定用户名默认切换至root用户,需要经常输root用户密码,但实际生产中root密码是不可以被广泛告知的。如果需要执行root用户才有权限的命令,需要通过sudo命令或wheel组的设置来实现。

    sudo的配置文件 /etc/sudoers

    sudo命令

    -l 列出用户在主机上可用的和被禁止的命令:当配置好sudo权限规则后,可用这个参数来查看授权情况

    -v 验证用户的时间戳,当用户运行sudo,输入用户的密码后,在短时间内可以不用输入口令直接进行sudo操作;用-v可以跟踪最新的时间戳

    -u指定以某个用户身份执行特定的命令操作,chensiqi ALL=(ALL) /bin/cp

    -k-K,删除时间戳,下一个sudo命令要求提供密码,前提是该用户授权中不能有NOPASSWD参数。时间戳默认5分钟也会失效。

    配置sudo授权(激活sudo

    方法一:# visudo 或# vim /etc/sudoers 修改,只有root用户才能使用

    root这一行下面,按照root的格式,对benet进行授权

    visudo授权配置中,ALL的表示:

    第一个ALL:IP地址 

    第二个ALL:主机别名

    第三个ALL:限制的命令

    visudo  -c    检查sudo配置文件是否有错误

    sudo 授权命令

    默认设置为首次执行时,需输入当前用户的登陆密码,5分钟内再次执行sudo命令式则无需再输入密码。

    设置IP地址权限

     # visudo

    在“root     ALL=(ALL)      ALL”行下,输入

     benet        192.168.214.134=       ALL 

    单独授权某个命令

    在第三个ALL上操作(绝对路径)

     # visudo

    在“root     ALL=(ALL)      ALL”行下,输入

     benet        192.168.214.134=       /sbin/fdisk

     此时,只有sudo fdisk这个命令可以使用(因为只有fdisk被授权)

     

    授权多个命令

    在第三个ALL上操作(绝对路径),用逗号“,”分隔。

    # visudo 

    在“root     ALL=(ALL)      ALL”行下,输入

     benet        192.168.214.134=       /sbin/fdisk,/bin/ls

    批量授权(存在优先级,先输入允许操作的命令(绝对路径),在输入不允许操作的命令(绝对路径))

    benet用户授权/sbin/下所有目录,除了/sbin/reboot命令 

     # visudo 

    在“root     ALL=(ALL)      ALL”行下,输入

     benet        192.168.214.134=(ALL)       /sbin/*,! /sbin/reboot

    批量授权,排除多个命令权限,用“,! ”分隔

    若为! /sbin/fdisk /dev/sda 表示不允许/sbin/fdisk执行/dev/sda*

    让一个普通用户自己分区,但禁止该用户采取任何破坏系统的操作(将A盘进行分区会破坏系统)

    # visudo 

    在“root     ALL=(ALL)      ALL”行下,输入

     benet        192.168.214.134=(ALL)       /sbin/*,! /sbin/reboot,! /sbin/fdisk /dev/sda*

     不允许/sbin/fdisk 执行/dev/sda*,但由于授予/sbin/所有前线,则可以对其他盘进行分区

     

    对普通用户授权:只看日志 

    # visudo 

    在“root     ALL=(ALL)      ALL”行下,输入

     benet        192.168.214.134=(ALL)       /bin/cat /var/log/messages*

    !!!但是“看”的命令不仅仅是cat,还有morelessheadtailtacsedawk等,需要将它们全部授权(绝对路径)。

    查看sudo操作记录

    先# visudo 添加“Defaults logfile=/var/log/sudo”,再# cat /var/log/sudo

    ************************************* 

    Grub菜单限制 

    密码设置方式

    将明文密码设为密文

    grub-md5-crypt命令获取加密密码串

    将加密密码串复制进/etc/grub.conf文件

    ************************************** 

    终端登录安全控制

    减少开放终端个数

    vim编辑两个配置文件:/etc/init/start-ttys.conf/etc/sysconfig/init

     

      

    限制root只在安全终端登录

    vim编辑/etc/securetty配置文件,将禁止的终端注解掉(在注解的终端前加#号)

    禁止普通用户登录

    # touch /etc/nologin,删除/etc/nologin 这个空文件即可恢复(rm -f /etc/nologin)。

    *************************************** 

    NMAP端口检测

    Nmap -sS  TCP同步扫描(TCP SYN

    -sT  TCP连接扫描

    -sn  不进行端口扫描,只检查主机正在运行

    -sU  扫描UDP端口

    -sV  探测服务版本信息

    -Pn  只进行扫描,不ping主机

    -PS  使用SYN包对目标主机进行扫描,默认是80端口,也可以指定端口,格式为-PS22-PS22-25,80,113,1050,35000,记住PS和端口号之间不要有空格

    -PU  使用UDP ping扫描端口

    -O  激活对TCP/IP指纹特征的扫描,获得远程主机的标志,也就是操作系统类型

    -v  显示扫描过程中的详细信息

    -S  设置扫描的源IP地址

    -g part  设置扫描的源端口

    -oN  把扫描的结果重定向到文件中

  • 相关阅读:
    CSS的三种基本框架
    使用scrapy框架做赶集网爬虫
    JQuery将form表单值转换成json字符串函数
    Bootstrap Modal 使用remote从远程加载内容
    Java获取指定包名下的所有类的全类名的解决方案
    Linux下安装解压版(tar.gz)MySQL5.7
    Log4j2使用笔记
    Log4j使用笔记
    JavaWeb开发中采用FreeMarker生成Excel表格
    Linux下安装jdk+maven +git
  • 原文地址:https://www.cnblogs.com/daisy118/p/9840650.html
Copyright © 2011-2022 走看看