服务安全与监控1

mysql   redis   

安全分类:系统安全   服务安全  数据安全   网络安全  抓包与扫描   监控

系统安全:

linux基本防护

     [root@host52 ~]# chage -l root 
最近一次密码修改时间                    :从不
密码过期时间                    :从不
密码失效时间                    :从不
帐户过期时间                        :从不
两次改变密码之间相距的最小天数        :0
两次改变密码之间相距的最大天数        :99999
在密码过期之前警告的天数    :7

[root@host52 ~]# chage -E 2019-05-31 tom   #设置账户过期时间
chage -l 用户名   #查看账户年龄信息 

锁定用户账户  passwd --help

[root@proxy ~]# passwd -l zhangsan                     //锁定用户账号lock

锁定用户 zhangsan 的密码。

passwd: 操作成功

[root@proxy ~]# passwd -S zhangsan                     //查看状态status

 

添加用户由[root@host52 ~]# ls  /etc/login.defs 配置文件决定

PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0       0表示永远不用修改密码
PASS_MIN_LEN    5          密码长度 5
PASS_WARN_AGE   7        7天提醒修改密码

伪登陆提示:

[root@host52 ~]# vim /etc/issue


\S  操作系统的版本    ([root@host52 ~]#  cat  /etc/redhat-release 
                                                  Red Hat Enterprise Linux Server release 7.4 (Maipo)

Kernel \r on an \m    内核版本和参数       ([root@host52 ~]#  cat  /etc/redhat-release 
                                                                   Red Hat Enterprise Linux Server release 7.4 (Maipo)
[root@host52 ~]# cat  /etc/issue.net 
\S
Kernel \r on an \m

例子:账户在登录Linux系统时,默认会显示登陆信息(包括操作系统内核信息)

/etc/issue这个配置文件里保存的就是这些登陆信息,修改该文件防止内核信息泄露。

[root@proxy ~]# cat /etc/issue                             //确认原始文件

Red Hat Enterprise Linux Server release 6.5 (Santiago)

Kernel \r on an \m

[root@proxy ~]# cp /etc/issue /etc/issue.origin             //备份文件

[root@proxy ~]# vim /etc/issue                             //修改文件内容

Windows Server 2012 Enterprise R2

NT 6.2 Hybrid

文件系统安全 :

RHEL6    chkconfig  

                  chkconfig httpd on          

                  chkconfig httpd off

                  service httpd start

                  service httpd stop

RHEL7   systemctl  

                 systemctl enable httpd

                 systemctl disable httpd

                  systemctl start httpd

                 systemctl stop httpd

锁定/解锁保护文件

# chattr +i 文件名                    //锁定文件(无法修改、删除等)

# chattr -i 文件名                    //解锁文件

# chattr +a 文件名                    //锁定后文件仅可追加

# chattr -a 文件名                    //解锁文件

# lsattr 文件名                        //查看文件特殊属性

 用户切换与提权  

2.1 用户切换 su

 echo $PWD
  echo $PATH
 

2.2 用户提权 :

2.2.1配置系统的普通用户可以执行root用户 的命令

2.2.2 主配置文件 :  /etc/sudoers

2.2.3 修改文件:  vim  /etc/sudoers     最后一定要强制保存退出  :wq!

                             或者  visudo

2.2.4 提权配置格式:

  普通用户  主机名=命令列表(rpm,yum 需要写命令的绝对路径)

%用户组名     主机名=命令列表

2.2.5 普通用户执行提权命令 sudo 提权 命令

2.2.6普通用户查看可以使用的提权命令  sudo  -l

2.2.7 提权例子

[root@host52 ~]# vim  /etc/sudoers

dachui localhost,host52=/usr/bin/systemctl * httpd,/usr/bin/vim /etc/httpd/conf/httpd.conf   #  使dachui有这些权限
tiechui localhost,host52=/usr/bin/systemctl * mysqld,/usr/bin/vim /etc/my.cnf
nb localhost,host52=/usr/bin/systemctl * httpd,/usr/bin/vim /etc/httpd/conf/httpd.conf,/usr/bin/systemctl * mysqld,/usr/bin/vim /etc/my.cnf
## Allows members of the 'sys' group to run networking, software, 

给 dachui,tiechui,nb赋与指定的特权

2.2.8  别名设置 (给多个值,起一个名字)

命令别名  Cmnd_Alias 

主机别名 Host_Alias 

用户别名 User_Alias

[root@host52 ~]# vim  /etc/sudoers

Cmnd_Alias MGMWEB=/usr/bin/systemctl * httpd,/usr/bin/vim /etc/httpd/conf/httpd.conf   #  MGMWEB   一定要大写
Cmnd_Alias MGMDB=/usr/bin/systemctl * mysqld,/usr/bin/vim /etc/my.cnf
Cmnd_Alias MGMSOFT=/usr/bin/rpm,/usr/bin/yum
Host_Alias MYSER=localhost,host52
dachui MYSER=MGMWEB,MGMSOFT
tiechui  MYSER=MGMDB,MGMSOFT
nb MYSER=MGMWEB,MGMSOFT,MGMDB

 用nb 这个用户登陆 host52 ,执行提权命令 : [nb@host52 ~]$ sudo systemctl stop  httpd

                                                                           [nb@host52 ~]$ sudo systemctl restart httpd

 

2.2.9启用日志    

[root@host52 ~]# vim  /etc/sudoers

Defaults logfile="/var/log/sudo.log"   #  只有在普通用户登陆后,执行了提权的操作后才会出现这个文件

三   ssh 访问登陆控制

        3.1 ssh服务常用配置

        3.2 黑白名单  (限制客户端连接时使用的用户及客户端地址)

             白名单: 仅仅允许使用列表里面的用户连接

                               AllowUsers  用户列表     

[root@host52 ~]# vim  /etc/ssh/sshd_config 

       AllowUsers nb root@192.168.4.254    # 允许nb 在任何机器登陆主机52 ,,在192.168.4.254 只允许用户root 登陆主机52

             黑名单 : 仅仅不允许列表中里面的用户

                               DenyUsers   用户列表

[root@host52 ~]# vim  /etc/ssh/sshd_config 

    DenyUsers nb root@192.168.4.254   # 不允许nb 在任何机器登陆主机52 ,,在192.168.4.254 不允许用户root 登陆主机52

 

          3.3 认证登陆方式  (默认2种开启)

                   密钥对认证登陆 (公钥 加密,私钥解密)

                  口令(用户密码)

       3.4配置密钥对认证登陆步骤

             1创建密钥对 ssh-keygen

            2把公钥给目标主机 ssh-copy-id root@192.168.4.52

四 SElinux安全防护

      定义 : 一套强化Linux安全的扩展模块

     运作机制 :  集成到Linux内核(2.6及以上)   [root@host53 ~]# uname  -r

                           操作系统提供可以定制的策略,管理工具

 [root@host53 ~]#  sestatus    # 查看selinux状态
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory
:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing

Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
 

查看安全上下文

       文件  ls  -lZ 文件名

       目录  ls -ldZ 目录名

      进程   ps    aux -Z  | grep  -i   进程名

[root@host53 ~]# ps  aux  -Z   | grep  -i  httpd


用户:角色:访问类型:选项

system_u:system_r:httpd_t:s0

system_u:system_r:mysqld_t:s0

4.2.2 一般规律 :

        移动的文件 : 所有的上下文属性不变

       复制的文件 : 自动继承目标位置的上下文

修改安全上下文

     chcon

    ]# chcon -R -t httpd_sys_content_t /var/www/html  

    ]# chcon -t httpd_sys_content_t /var/www/html/a4.html

重置安全上下文

  restorecon

[root@host53 ~]# restorecon  /var/www/html/a5.html 
 

[root@host53 ~]# restorecon  -R /var/www/html/
 

 

 

(禁用selinux)在主机192.168.4.53上运行vsftpd服务  允许匿名用户 访问服务的/var/ftp/share目录时有上传和下载文件的权限

主机53 :yum  -y install vsftp

     vim   /etc/vsftpd/vsftpd.conf

  1. anonymous_enable=YES                                 //开启匿名访问
  2. anon_upload_enable=YES                             //允许上传文件
  3. anon_mkdir_write_enable=YES                         //允许上传目录
  4. [root@proxy ~]# systemctl start vsftpd                //启动服务

[root@host53 ~]# mkdir /var/ftp/share

   [root@host53 ~]chmod o=rwx /var/ftp/share/    

在主机50 上面操作,

   [root@host50 ~]# yum  -y install ftp

[root@host50 ~]# ftp 192.168.4.53
Connected to 192.168.4.53 (192.168.4.53).
220 (vsFTPd 3.0.2)
Name (192.168.4.53:root): ftp
331 Please specify the password.
Password:               # 直接按空格 不用输入密码 
 

下载文件 :

[root@host50 ~]# ftp 192.168.4.53
ftp> cd share
250 Directory successfully changed.
ftp> ls
ftp> get passwd
上传文件

ftp> cd share
ftp> lcd /etc/
ftp> put  hosts
 

ftp  192.168.4.53  连接53主机的ftp服务    
        get  下载
        put  上传
        cd   进入ftp服务的目录
                lcd  进入客户端本机目录 

 

4.2.5 SElinux 布尔值 

    1查看布尔值  getsebool -a

                  getsebool -a  | grep samba

  2.修改布尔值           

       ]# setsebool  -P ftpd_anon_write on
            ]# setsebool  -P ftpd_full_access=1


        查看SElinux的日志信息 排错

关闭SELinux,运行53主机的httpd服务 服务使用的端口号是8077 在网页目录编写测试文件test.html在客户端访问
        
        ]# setenforce 0

        ]# rpm -q httpd ||  yum -y  install
        ]# vim +42 /etc/httpd/conf/httpd.conf
             Listen 8077
        :wq
        ]# systemctl  start httpd
        ]# netstat  -utnlp  | grep  :8077
        ]# echo  "192.168.4.53-web" > /var/www/html/test.html

        ]# curl http://localhost:8077/test.html
            192.168.4.53-web

         ]# setenforce 1
         ]# vim +42 /etc/httpd/conf/httpd.conf
                     Listen 8099
                :wq
        ]# systemctl  restart httpd 启动服务失败
        ]# rpm -qa | grep setroubleshoot  查看日志程序软件包
        ]# ls /var/log/messages   记录日志的文件
        ]# grep setroubleshoot /var/log/messages | tail -1 过滤日志

Jun  2 16:43:50 host53 setroubleshoot: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 8099. For complete SELinux messages run: sealert -l e2513e9a-d942-44e5-963c-43f4e783e979

        ]# sealert -l e2513e9a-d942-44e5-963c-43f4e783e979 执行命令

        ]# setsebool -P httpd_run_preupgrade 1
        ]# ausearch -c 'httpd' --raw | audit2allow -M my-httpd
        ]# semodule -i my-httpd.pp

        ]# systemctl  start httpd  服务启动成功
        ]# netstat  -utnlp  | grep  :8099  查看端口

    

 

 

展开阅读全文

没有更多推荐了,返回首页