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
---------------------------------------------------------------------------------------------