Linux的安全配置

Linux安全配置

Linux Apache安全配置

--------
进入网络配置文件:
    :cd /etc/sysconfig/network-scripts
查看当前目录并执行:
    :pwd
修改ifcfg-eth0将网络配置参数修改为动态ip获取:
    :vi ifcfg-eht0 
    :bootproto=dhcp
执行命令重启网卡(获取动态ip地址):
    :service network restart
使用ifconfig命令查询动态地址:
    :ifconfig
删除防火墙规则:
     iptables -F
检查apache版本信息:
    :/usr/local/apache/bin/httpd -v
隐藏banner(标题)信息:
    :vi /usr/local/apache/conf/httpd.conf  编辑配置文件
    :ServerSignature(服务器的签名) 
        ---On/Off 打开或隐藏服务器的签名(标题)
    :service httpd restart
配置httpd.conf目录浏览:
    :vi /usr/local/apache/conf/httpd.conf
    :将Options indexes FollowSymLinks修改为 Options FollowSymLinks
    :service httpd restart
配置apache运行用户:
    :vi /usr/local/apache/conf/httpd.conf
    :User nobody
    :Group nobody
--------

apache两个主要作用:
1.解析网页语言,如html,php,jsp等.
2.接收web用户的请求,并给予一定的响应.

linux awk命令详解

awk语法:
与其他unix命令一样,awk拥有自己的语法:
awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...]
(1) -F re:允许awk 更改其字段分隔符。
(2) parameter:该参数帮助为不同的变量赋值。
(3) ‘prog’:awk 的程序语句段。这个语句段必须用单拓号:’和’括起,以防被shell 解释。这个程序语句段的标准形式为:’pattern {action}’
(4) -f progfile:允许awk 调用并执行progfile 指定有程序文件。progfile 是一个文本文件,它必须符合awk 的语法。
(5) in_file:awk的输入文件,awk 允许对多个输入文件进行处理。值得注意的是awk 不修改输入文件。如果未指定输入文件,awk 将接受标准输入,并将结果显示在标准输出上。

--------
执行last -n 5       (列出目前与过去登入系统的用户相关信息,-n 显示行数)
-
以last -n 5命令的输出作内容,只显示登录的账号:
    last -n 5 | awk  '{print $1}'
*(awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$2表示登录终端,以此类推。)
-
只显示/etc/passwd文件内容中的账户: 
    cat /etc/passwd |awk -F ':''{print $1}'
*(注:这种是awk+action的示例,每行都会执行action{print $1}。-F指定域分隔符为':'。)
-
只显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割:
    cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'
-
只显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,并且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh":
    cat /etc/passwd |awk  -F ':'  'BEGIN{print "name,shell"}  {print $1","$7} END{print "blue,/bin/nosh"}'
-
搜索/etc/passwd有root关键字的所有行:
    awk -F ':' '/root/' /etc/passwd
*(这种是pattern的使用示例,匹配了pattern(这里是root)的行才会执行action(没有指定action,默认输出每行的内容)
-
搜索/etc/passwd有root关键字的所有行,并显示出对应的shell:
    awk -F ':' '/root/{print $7}' /etc/passwd
--------

linux下主机与服务发现

--------
启动目标主机并关闭目标主机防火墙
-
查看目标主机IP地址
    ipconfig /all  /ipconfig/all |more
-
进入linux,对目标主机进行发现扫描
-
检查 nmap 是否已安装  ---3 种方法
    1.rpm -qa |grep nmap
    2.whereis nmap
    3.find / -name nmap
-
nmap 使用
    /usr/bin/nmap -h       --- 获得帮助信息:(命令后面可以加上“| less”)
-
本地网段发现与本地活动主机发现
    执行:ifconfig    找到本地网段
    nmap -sP (当前网段 如:192.168.10.1/24) 查询本地活动主机
-
TCP 端口扫描
    nmap -sS (目标主机ip)
-
发现 UDP 服务
    nmap -sU (目标主机IP)    使用nmap 参数U 检查UDP 端口
--------

linux 文件权限管理

ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 删除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

--------
文件权限初步了解:
    执行: ls -l        *(最前面的第2~10个字符是用来表示权限)查看文件权限
    --- 查看文件权限
-
创建文件与目录权限:
    cd /tmp             ---(进入 tmp 目录)
    touch f             ---创建 f文件
    ls -l f             ---列出f 文件并查看文件权限
--------

浏览器上看菜鸟教程更全面:https://www.runoob.com/linux/linux-tutorial.html

linux用户权限管理

+  pwd (Print Working Directory) 查看当前目录
+  cd (Change Directory) 切换目录,如 cd /etc
+  ls (List) 查看当前目录下内容,如 ls -al,“.”(表示当前目录)和“..”(表示当前目录的父目录)。
+  mkdir (Make Directory) 创建目录,如 mkdir blog
+  touch 创建文件,如 touch index.html
+  echo >>追加文件 >重新添加一行
+  wc (Word Count) 字数信息统计,如 wc index.html
+  cat 查看文件全部内容,如 cat index.html
+  more less 查看文件,如more /etc/passwd、less /etc/passwd  不用学习
+  rm (remove) 删除文件,如 rm index.html、rm -rf  blog
+  rmdir (Remove Directory) 删除文件夹,只能删除空文件夹,不常用
+  mv (move) 移动文件或重命名,如 mv index.html ./demo/index.html
+  cp (copy) 复制文件,cp index.html ./demo/index.html
+  head 查看文件前几行,如 head -5 index.html
+  tail 查看文件后几行 –n –f,如 tail index.html、tail -5 index.html 
+  history 查看操作历史
+  whoami 查看当前用户


--------
查看/etc/passwd文件:
    #cat /etc/passwd
(注:/etc/passwd文件每行使用“:”分隔几个域,真正的密码保存在shadow文件中)
-
查看/etc/shadow文件:
    #cat /etc/shadow
(注:所有用户对passwd文件均可读取,只有root用户对shadow文件可读,因此密码存放在shadow文件中更安全)
-
组信息存放于/etc/group文件: 
    #cat /etc/group
( 注:任何用户都可以查看,信息用“:”将几个域分开。)    
-
查看/etc/gshadow文件:
    #cat /etc/gshadow
(使用命令"cat /etc/gshadow"。gshadow文件用于存放组群的加密口令、组管理员等信息,只有root用户可读,用“:”分割成4个域。)
-
使用useradd或者adduser命令创建新用户:
    #useradd testme4            ---命令格式为"useradd [选项] < username >"。
(注:如果用户存在,出现(useradd: user 'testme4' already exists)提示信息)
-
新建用户testme5,UID为620,指定其所属的私有组为group5,用户的主目录为/home/testme5,用户的密码为t123456,账户永不过期:
    #groupadd group5
    #useradd -u 620 -g group5 -d /home/testme5 -p t123456 testme5
-
重新以root帐户登录,设置testme5 密码:
    #passwd testme5
(注:超级用户可以为自己和其他用户设置口令,而普通用户只能为自己设置口令。)
-
创建组群命令:groupadd或addgroup:
    #groupadd  group6           ---命令格式为“ groupadd [群组名] ”。
-
使用命令more /etc/group,查看群组信息:
    #more /etc/group
-
修改组群、修改gid、修改组群名称:
    #groupmod -g 620 group6         ---[-g <群组识别码>设置欲使用的群组识别码]
    #more /etc/group
--------

linux 用户缺省权限管理

--------
添加新的用户账号使用useradd命令,其语法如下:
useradd [参数] [用户名]
参数:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
passwd [参数] [用户名]
参数:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
增加一个新的用户组使用groupadd命令。其格式如下:
groupadd [参数] [用户组]
参数:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
修改用户组的属性使用groupmod命令。其语法如下:
groupmod [参数] [用户组]
参数:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
--------

实例:

--------
创建新帐户(testme) 并 设置密码(为testme 帐户设置密码为t123456):
    #useradd testme         ---创建用户             [格式:useradd (用户名)]
    #passwd testme          ---为用户设置密码       [格式:passwd (设置密码的用户名)]
-
缺省目录访问:
    $cd /           ---返回 根目录
    $ls -l          ---列出 根目录所有文件权限
查看无法进入的目录
    $cd [目录]/         ---验证
    回显: -bash: cd: [目录]/: Permission denied
--------

linux sed命令详解

sed使用参数:
选项与参数:
    -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
    -e :直接在命令列模式上进行 sed 的动作编辑;
    -f :直接将 sed 的动作写在一个文件内, -f   filename  则可以运行 filename 内的 sed 动作;
    -r :sed 的动作支持延伸型正规表达式的语法。(默认是基础正规表示法语法)
    -i:直接修改读取的文件内容,而不是输出到终端。
    动作说明: [n1[,n2]]function
    n1, n2 :可选选项,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则可以使用『 10,20 』作为参数。
function(函数):
    a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
    c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
    d :删除,因为是删除,所以 d 后面通常不接任何内容;
    i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
    s :取代,可以直接进行取代的工作!通常s符号的动作可以搭配正规表达式!例如 1,20s/old/new/g

实例:

--------
将 /etc/passwd 的内容列出并且列印行号,同时,请将第 2~5 行删除!:
    nl /etc/passwd                          ---查看文件的内容
    nl /etc/passwd | sed '2,5d'             ---删除2~5行内容
(注:nl 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。)
(注:sed 的动作为 '2,5d' ,那个 d 就是删除!因为 2-5 行删除了,所以显示的数据就没有 2-5 行,另外,注意一下, sed 后面接的动作,请务必以 '' 两个单引号括住。)
-
只要删除第 2 行,执行:
    nl /etc/passwd | sed '2d'
-
要删除第 3 到最后一行:
    nl /etc/passwd | sed '3,$d'
-
在第二行后,第三行前,加上『drink tea』字符串:
    nl /etc/passwd | sed '2a drink tea'
-
在第二行前添加『drink tea』字符串,执行:
    nl /etc/passwd | sed '2i drink tea'
-
将第2-5行的内容取代成为『Number 2-5』字符串,执行:
    nl /etc/passwd | sed '2,5c Number 2-5'
(注:透过这个方法我们就能够将数据整行取代了!)
-
仅列出 /etc/passwd 文件内的第 5-7 行:
    nl /etc/passwd | sed -n '5,7p'
(注:可以使用这个 sed 命令,以行为单位进行显示, 就能够将某一个文件内的某些行选择出来显示。)
-
搜索 /etc/passwd有root关键字的行:
    nl /etc/passwd | sed -n '/root/p'
(注:其中"/root/"是正则表达式。命令是输出所有行中有root字符串的行。sed命令并不影响nl的输出。)
-
只打印匹配正则表达式的行:
    nl /etc/passwd | sed -n '/root/p'
-
删除/etc/passwd所有包含root的行,其他行输出:
    nl /etc/passwd | sed  '/root/d'
-
使用一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshel:
    nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
(注:-e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。)
-
利用 sed 将test.txt 内每一行结尾若为 '.'则换成 '!':
    touch test.txt                   ---首先创建test.txt
    echo  '123'  >  test.txt
    echo  '123'  >>   test.txt
    echo  '1234'  >>  test.txt
    echo  '12345'   >>  test.txt
    cat test.txt
回显:  123
        123
        1234
        12345
    sed -i 's/4/!/g' test.txt
(注:将文本中出现的数字4用!替换)
-
利用 sed 直接在test.txt 最后一行加入『# This is a test』字符串:
    sed -i '$a # This is a test' test.txt
--------

linux uname命令参数及用法详解

uname命令说明:
功能说明:uname用来获取电脑和操作系统的相关信息。
语  法:uname [-amnrsvpio][–help][–version]
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
参  数:
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
-m或–machine 显示主机的硬件(CPU)名
-n或-nodename 显示主机在网络节点上的名称或主机名称
-r或–release 显示linux操作系统内核版本号
-s或–sysname 显示linux内核名称
-v 显示显示操作系统是第几个 version 版本
-p 显示处理器类型或unknown
-i 显示硬件平台类型或unknown
-o 显示操作系统名
–help 获得帮助信息
–version   显示uname版本信息

最常用参数 uname -a 

--------
1.uname    (注:单独使用uname命令时相当于uname -s。uname -s     显示内核名称)
-
2.使用uname –a命令可显示电脑主机名和系统内核操作系统详细信息
-
3.使用uname –m命令可显示主机的硬件类型
-
4.使用uname –n命令可显示主机名称
-
5.使用uname -r 命令可显示操作系统的内核版本号
-
6.使用uname -v命令可显示操作系统是第几个version版本
-
7.使用uname -p命令可显示处理器类型
-
8.使用uname -i命令可显示硬件平台类型
-
9.使用uname -o 命令可显示操作系统名
-
10.使用uname --version 命令可显示uname版本信息
-
11.使用uname –-help命令可获取帮助信息
-
12.使用uname -nr命令可查看主机名及系统内核版本号
--------

linux 利用gpg进行加密解密

实例:

--------
生成秘钥对:
在生成之前执行rngd -r /dev/urandom 
    gpg --gen-key
在输入保护密码后,生成密钥
-
查看秘钥信息:
    #gpg -k
-
导出私钥和公钥:
    #gpg -o testme.pri --export-secret-keys testme
    #gpg -o testme.pub --export testme
-
文件加密实验:
    #echo “hello testme” >test.file                     ---生成测试文件
    #cat test.file                                      ---查看文件内容
回显: hello testme
    #gpg -r testme -e test.file                         ---对文件进行加密
    #ll test*                                           ---列当前目录,查看增加文件
    #cat test.file.gpg    (test.file.gpg为加密文件)     ---查看当前的加密文件
-
文件解密:
    #gpg -r  testme -d test.file.gpg
(注: 中间需要输入保护pin 码,发现能够完整地解密)
--------

linux FTP服务攻防与加固

步骤:

------------------------------------------------------------------------------------------------+
启动xserver,进入xserver,按以下步骤进行实验                                                   
    1. 配置linux 的防火墙,使得ftp能够对外提供服务,要求配置规则中只包含端口,用规则列表命令截屏 
    2. 通过学生机获得ftp 的系统版本指纹并截屏                                                   
    3. 根据已给出的ftp用户名,密码(test1/test1),寻找配置漏洞获得所有的用户名,然后截屏         
    4. 破解获得test1之外的用户口令并登录系统                                                    
    5. 对上述漏洞进行加固,对加固结果截屏                                                       
    6. 重新启动ftp 服务并截屏                                                                   
    7. 根据ftp服务可能的配置漏洞进行拒绝服务攻击尝试并截屏                                      
    8. 对上述漏洞进行加固,对加固项截屏并重启服务                                                
    9. 找到3发现的test1之外的用户登录操作的日志,截屏                                           
    10. 找到最后3次系统登录的用户信息并截屏                                                     
    11. 根据系统自身所带防火墙,设定规则只允许同时只有3个连接能够访问ftp服务                     
------------------------------------------------------------------------------------------------+

解答:

------------------------------------------------------------------------------------------------+
1. 配置linux 的防火墙,使得ftp能够对外提供服务,要求配置规则中只包含端口,用规则列表命令截屏
第一步、用帐户root,密码123456,进入xerver主机。
第二步、查看当前防火墙filter表策略规则。
    iptables  -L
第三步、添加ftp防火墙过滤策略规则。
    iptables -I INPUT 2 -p tcp --dport  21 -j ACCEPT
-
2. 通过学生机获得ftp 的系统版本指纹并截屏:
第一步、查看xserver主机的IP地址。
    ifconfig
第二步、打开学生用机的cmd命令窗口,用ftp命令登录。
    ftp (主机ip)
-
3. 根据已给出的ftp用户名,密码(test1/test1),寻找配置漏洞获得所有的用户名,然后截屏
第一步、打开学生用机的cmd命令窗口,用ftp命令登录xserver主机的ftp服务.
第二步、利用策略漏洞,进入/home目录,列出/home所有文件及文件夹.
    cd  /home; ls  -l
(注:因为linux系统中,/home目录下为用户文件夹所在目录,且用户目录名称与用户名称一致。所以,所有用户为:test1、test2、test3、test4、test5、testme。)
-
4. 破解获得test1之外的用户口令并登录系统。
第一步、根据用户test1的密码与用户名相同的特点,对其他用户的密码用其用户名进行登录ftp验证。
-
5. 对上述进行加固,对加固结果截屏
-
6. 重新启动ftp 服务并截屏
-
第一步、在xserver主机上,进入vsftpd目录,查看chroot_list文件内容。
    cd  /etc/vsftpd;cat  chroot_list
发现test1在chroot_list文件中。(注:chroot_list文件里面的用户可以做目录浏览)
第二步、将test1用户从chroot_list文件中去掉,然后重启vsftpd服务。
-
7. 根据ftp服务可能的配置漏洞进行拒绝服务攻击尝试并截屏。
第一步、用帐户test1 ftp登录,然后尝试进行拒绝服务攻击
    ls  -R  
(注:vsftpd配置项“ls_recurse_enable=”如果设置成yes,那么此设置将允许用户使用 "ls -R". 这有点安全威胁, 因为在大型站点的根目录下进行 ls -R 将会消耗很多资源。)
-
8. 对上述漏洞进行加固,对加固项截屏并重启服务
第一步、在xserver主机,进入/etc/vsftpd目录。
    cd  /etc/vsfptd
第二步、用vi打开vsftpd.conf文件,注释掉“ls_recurse_enable=”功能项。
第三步、重启vsftpd服务。
-
9. 找到3发现的test1之外的用户登录操作的日志,截屏。
第一步、在xserver主机,进入/var/log 目录,查看vsftpd.log文件,查找test2的登录信息。
    cd  /var/log 或 cat  vsftpd.log
-
10. 找到最后3次系统登录的用户信息并截屏。
第一步、在xserver主机,查看最后3次系统登录用户信息。
    last -n 3
-
11. 根据系统自身所带防火墙,设定规则只允许同时只有3个连接能够访问ftp服务。
第一步、在filter表INPUT链中插入策略。
    iptables -I INPUT 2 -p tcp --syn --dport 21 -m connlimit --connlimit-above 3 -j DROP
第二步、查看已经添加的策略。
    iptables  -L  INPUT  -n
---------------------------------------------------------------------------------------------+

linux 下RAR加密解密

rar 命令:
压缩文件
rar a -r test.rar file
解压文件
unrar x test.rar
参数:
a : 添加到压缩文件
-r : 递归处理
x : 以绝对路径解压文件
用法:
( rar <命令>-<开关 1> -<开关 N> <压缩文件> <文件…> <@列表文件…> <解压路径/> )

相关网页: http://linux.51yip.com/search/rar

--------
创建实验文件test.txt,文件内容“hello world”:
    #echo “hello world” > test.txt
    #cat test.txt                                   ---查看 test.txt 文件
-
将test.txt加密成RAR文件,加密密码:123456:
    #rar a test.rar test.txt -P
    设置密码;123456
    #cat test.rar                                   ---查看 test.rar 文件
-
尝试打开test.rar,检验文件加密效果:
    #mkdir temp                                     ---创建 temp 文件夹
    #unrar x test.rar temp                          ---将 test.rar 解密文件到 temp 文件夹
-
查看解密后的文件:
    #cat  temp/test.txt
--------    

linux MYSQL攻防与加固

Linux MYSQL加固:

--------
mysql -u(数据库用户名) -p(数据库密码)   
例如:CentOS 6.8,登陆数据库(用户名:root;密码:root)
---mysql -uroot -proot 登入数据库
查看数据库版本号: selevt version();
查看数据库列表:   show databases;
1.进入mysql数据库,查看所有用户及权限,找到可以从任意 IP 地址访问的用户.flag值提交。
使用命令  *(use mysql;)* 查看数据库中的表
使用命令 *(select user,host from user where host=’%’;)*
            ---查找可以从任意 IP 地址访问的用户
2.使用drop命令将可以从任意 IP 地址访问的用户删除,将操作命令作为flag提交。
使用命令  *(drop user ‘test’@’%’;)*    
            ---删除用户 
3.改变默认 mysql 管理员的名称,将系统的默认管理员root 改为 admin,防止被列举。
使用命令 *(update user set user=’admin’ where user=’root’;)*
            ---将管理员用户“root”改为“admin”
--------

linux MYSQL攻防:

--------
进入xserver-mysql, 加固mysql 服务器,使得所有的访问能审计,要求通过对mysqld 的启动项进行加固:
    1.在xserver-mysql主机上,进入/etc目录,编辑my.cnf文件:
        #cd /etc/
        #vi my.cnf
        ---
        在 old_passwords=1 下一条添加
        log=/var/log/mysql/access.log       ( 增加的日志选项,重启后起作用 )
        ---
    2.重启mysqld:
        #service mysqld restart                         重启MYSQLd
-
配置linux-mysql 防火墙,允许Mysql服务能够被访问,要求规则中只包含端口项,防火墙规则列表截屏:
    1.输入iptables命令:
    #iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
    #iptables -nL --line                                ---以标号的形式显示出来
    #service iptables save                              ---保持防火墙规则
-
进入xserver-mysql,查看所有用户及权限,找到可以从任何IP地址访问的用户:
    1.用mysql命令登录mysql数据库,然后用use mysql,选定mysql数据库,然后再用命令select host,user from user; 查看哪个用户可以从任何地方连接到数据库:
        Mysql>use mysql
        Mysql>select host,user from user
    回显 host 为 空 的用户是可以从任何地方连接到数据库的
-
对上述漏洞进行加固,设定该用户只能从学生机访问,用grants 命令进行管理:
    1.查看学生机的IP地址,打开学生机的cmd命令窗口,用ipconfig查看IP:
        Windows+R   输入   cmd                          ---打开运行面板
        ipconfig                                        ---查看ip地址
    2.在xserver-mysql主机,添加策略规则,只允许test用户从学生机上访问mysql数据库:
        mysql
        进入MYSQL
        mysql >use mysql;
        mysql >grant all on *.* to test@(ip地址) identified by "";
        mysql >flush privileges;
-
检查xserver-mysql中的是否存在匿名用户,如果存在匿名用户,则加固删除:
    1.检查是否存在匿名用户:
        mysql > select host,user from user where user="";
    2.删除匿名用户:
        mysql > delete user from user where user ="";
        mysql > select host,user from user where user="";
-
改变默认mysql管理员的名称 ,将系统的默认管理员从root 改为admin.防止被列举:
    1.进入mysql数据库,执行命令将root改成admin:
        mysql
        进入数据库
        mysql > user mysql;
        mysql > update user set user="admin" where user="root";
        mysql > flush privileges;
-
数据库安全加固操作:禁止MySQL对本地文件存取,对mysqld 的启动项进行加固:
    1.进入xserver-mysql主机的/etc目录,编辑my.cnf:
        #cd /etc/
        #vi my.cnf
        ---
        在 old_passwords=1 下添加
        set-variable=local-infile=0
        ---
    2.重启mysqld服务:
        service mysqld restart                  ---重启mysqld服务
-
数据库安全加固操作:限制一般用户浏览其他用户数据库,对mysqld 的启动项进行加固:
    1.进入xserver-mysql主机的/etc目录,编辑my.cnf:
        #cd /etc/
        #vi my.cnf
        ---
        在 old_passwords=1 下添加
        skip-show-database
        ---
    2.重启mysqld服务:
        service mysqld restart                  ---重启mysqld服务
--------

linux 安全密码配置

在线系统密码破解:
    暴力破解root 密码 ,寻找在线密码破解工具medusa ,执行命令:
        #cd /
        #find ./ -name medusa
    --medusa 在目录/usr/local/medusa/bin中
        cd /usr/local/medusa/bin/              ---进入(可执行文件目录)
    开始破解,执行命令:
        # /usr/local/medusa/bin/medusa  -h (ip地址)  -u root -P passwd.txt -M ssh  
    进入/tmp,执行:
        #cd /tmp
    通过ssh 破解获得的root用户密码,获得metas1的系统的口令文件 ,执行:
        #scp (ip):/etc/shadow
    
mysql 密码破解:
    在xclient暴力破解metas1 的 mysql服务的密码,执行命令:
        #cd /usr/local/medusa/bin
        #/usr/local/medusa/bin/medusa -h (ip) - u root -P passwd.txt -M mysql

字典破解的口令:
    进入系统metas1,用户名root ,密码为破解得到的123456:
    #cd /root/test
    #ls
回显:
+---------------------------------------------------------+
|    total   8                                            |
|    -rw-r--r-- 1 root root 7 2015-03-05 21:20 clear.txt  |
|    -rw-r--r-- 1 root root 8 2015-03-05 22:19 cry.txt    |
+---------------------------------------------------------+
     其中cry.txt 为密文文件,clear.txt 为明文文件 ,加密口令为0到1000中的一个数字,请编写一段简单程序,破解加密口令:

用vi 编辑如下的程序即可:
    #!/bin/bash

--------------------------------------------------------------------------------------------
myvar=0
while [ $myvar -ne 1000 ];  do
        openssl enc -d -des3 -nosalt -in  cry.txt  -out t.txt -pass pass:$myvar 2>/dev/null
        if [ $? -eq 0 ]; then
                clear=`cat t.txt`
                if [ "$clear" = "123456" ]; then
                        echo "i find "
                        echo "it is  " $myvar
                fi
        fi
        myvar=$(( $myvar + 1 ))
done
---------------------------------------------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/FIveTwo0/article/details/113104565