在CentOS上进行安全性测试前,需先完成JMeter的安装与环境配置,确保工具能正常运行。
java -version验证安装,若未安装,可使用yum install java-11-openjdk-devel安装OpenJDK 11。wget命令下载后解压至指定目录(如/opt):sudo tar -xzf apache-jmeter-5.4.3.tgz -C /opt。/etc/profile.d/jmeter.sh文件,添加JMeter路径:export JMETER_HOME=/opt/apache-jmeter-5.4.3、export PATH=$JMETER_HOME/bin:$PATH,执行source /etc/profile.d/jmeter.sh使配置生效。jmeter -v,若显示JMeter版本信息则说明安装成功。启动JMeter GUI,新建测试计划,添加线程组(设置模拟用户数、Ramp-Up时间、循环次数);添加HTTP请求(配置目标URL、请求方法、路径、参数);添加监听器(如“查看结果树”“聚合报告”)用于查看响应结果。
若测试目标使用HTTPS协议,需导入服务器证书至JMeter信任库,避免“证书不受信任”错误:
.crt文件);keytool命令将证书导入JMeter默认信任库($JAVA_HOME/lib/security/cacerts):keytool -import -alias server_alias -file server.crt -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit(默认密码为changeit)。通过JMeter组件模拟常见攻击,验证系统防护能力:
' OR '1'='1),添加“响应断言”检查返回内容是否包含数据库错误信息;<script>alert('xss')</script>),验证系统是否过滤恶意脚本;使用CSV数据文件设置元件或用户定义变量元件,将测试数据(如用户名、密码、攻击 payload)存储在外部文件中,实现数据驱动测试,提高测试覆盖率。
通过响应断言验证系统对攻击的响应是否符合预期:
若需模拟大量并发用户,配置分布式测试:
jmeter.properties中配置Slave节点IP:remote_hosts=slave1_ip:1099,slave2_ip:1099;jmeter-server),在Master上通过jmeter -n -t testplan.jmx -r命令启动分布式测试。jmeter.properties中设置https.socket.protocols=TLSv1.2,仅启用安全的TLS协议,避免使用过时的SSLv3。.pfx格式)转换为JKS格式(keytool -importkeystore -srckeystore client.pfx -srcstoretype PKCS12 -destkeystore client.jks),并在jmeter.properties中配置密钥库路径与密码:https.keyStore=./client.jks、https.keyStorePassword=your_password。jmeter -n -t /opt/test_plan.jmx -l /opt/results.jtl(-n表示非GUI模式,-l指定结果文件)。firewall-cmd限制访问端口(如JMeter默认的1099端口):sudo firewall-cmd --permanent --zone=public --add-port=1099/tcp、sudo firewall-cmd --reload。