先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
获取用户的人会知道他的历史命令锁定并且要同意才可以使用服务
10.使用欢迎信息
你必须提供一些信息让***者知道该系统不对公众开放。
在国外有类似案件,***者***一个系统并且系统没有这些信息,
这种情况下法院不能做任何裁决,因为系统说welcome
方法:
删除/etc/redhat-release
编辑/etc/issue /etc/motd并显示警告信息
11.禁用所有特殊账户
你应该从系统中删除所有默认用户和组
例如news,lp,sync,shutdown,uucp,games,halt 等
方法:
删除账户userdel name
删除组 groupdel name
锁定特定账户:
/usr/sbin/usermod -L -s /bin/false user
12.chmod危险文件
这可能是限制不具有root权限的用户执行下面这些命令的好主意
方法:
chmod 700 /bin/ping
chmod 700 /usr/bin/finger
chmod 700 /usr/bin/who
chmod 700 /usr/bin/w
chmod 700 /usr/bin/locate
chmod 700 /usr/bin/whereis
chmod 700 /sbin/ifconfig
chmod 700 /usr/bin/pico
chmod 700 /usr/bin/vi
chmod 700 /usr/bin/which
chmod 700 /usr/bin/gcc
chmod 700 /usr/bin/make
chmod 700 /bin/rpm
13.指定允许root登陆的TTY设备
/etc/securetty文件允许你指定root可以从哪个TTY设备登录
方法:
vi /etc/securetty
只留2个连接
tty1
tty2
14.选择一个安全的密码
在/etc/login.defs文件中定义了shadow密码的具体配置
默认密码长度最短为5字符,你应该至少设置为8
方法:
vi /etc/login.defs
PASS_MIN_LEN 8
15.检测Rootkit
用chkrootkit或rkhunter,以chkrootkit为例
方法:
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.md5
首先检查md5校验值: md5sum chkrootkit.tar.gz
然后解压安装
tar -zxvf chkrootkit.tar.gz
cd chkrootkit
./configure
make sense
然后运行./chkrootkit
我们可以将其添加到contrab使其每天自动扫描:
vi /etc/cron.daily/chkrootkit.sh
#!/bin/bash
输入chkrootkit的安装目录
cd /root/chkrootkit/
输入你想收到检测报告的email
./chkrootkit | mail -s “Daily chkrootkit from Server Name” your@email.com
16.安装补丁
你要经常检查更新以修复某些缺陷或系统稳定性的改进
否则你存在漏洞的系统将会不时的遭受新的***
方法:
列出可用更新:up2date -l
安装未排除的更新:up2date -u
安装包括排除的更新up2date -uf
17.隐藏Apache信息
你应该隐藏Apache的banner信息使***者不知道Apache的版本,从而使他们难以利用漏洞
方法:
修改/etc/httpd/conf/httpd.conf
改变服务器签名:
ServerSignature Off
重启Apache /sbin/service httpd restart
18.隐藏php信息
你应该隐藏php的banner信息,原因同上
方法:
修改php.ini
改变
expose_php=Off
重启Apache
19.关闭不用的服务
你应该把任何未使用的服务关闭,可以在/etc/xinetd.d文件夹里找到
方法:
cd /etc/xinetd.d
grep disable *
这将显示所有服务开启或关闭的状态,然后根据需要来开启或关闭服务
20.检测监听的端口
检测是否有必要开放端口是非常重要的
方法:
netstat -tulp或
lsof -i -n | egrep ‘COMMAND|LISTEN|UDP’或
nmap!
21.关闭端口和服务
重点是关闭在系统启动时打开的不需要的端口
方法:
对于正在运行的服务,可以执行chkconfig -list | grep on
禁用服务可以执行chkconfig servicename off
然后停止正在运行的服务:/etc/init.d/service stop
22.删除不用的rpm包
首先应该清楚你的系统的作用,它是web,mail,file服务器或其他
然后觉得哪些包是必要的,之后删除不需要的软件包
方法:
首先列出安装列表rpm -qa
更详细的信息rpm -qi rpmname
还可以检测删除包可能出现的冲突rpm -e –test rpmname
23.禁用危险的php函数
你应该禁用php的危险函数防止在网站上执行系统命令
方法:
whereis php.ini
vi /usr/local/lib/php.ini
编辑
disable_functions = “symlink,shell_exec,exec,proc_close,proc_open,popen,
system,dl,passthru,escapeshellarg, escapeshellcmd”
24.安装配置防火墙
高级策略防火墙(APF)是一种IP表(网络过滤),它是基于当今互联网部署服务器防火墙系统的基本需要和客户部署LINUX安装的唯一需要而设计的。 它是最好的开源防
火墙之一。
配置APF防火墙方法:
下载APF:wget http://www.r-fx.ca/downloads/apf-current.tar.gz
解压安装:
tar -zxvf apf-current.tar.gz
cd apf-0.9.7-1
./install.sh
然后我们配置它vi /etc/apf/conf.apf
一般配置:
启用防火墙使用DShield.org块列表
USE_DS=”1″
然后我将列出常规的配置和CPanel配置方式,因为CPanel是应该最广泛的虚拟主机管理软件
1.常规配置(DNS,Mail,Web,FTP)
Common ingress (inbound)
Common ingress (inbound) TCP ports -3000_3500 = passive port range for Pure FTPD IG_TCP_CPORTS=”21,22,25,53,80,110,143,443,995″
Common ingress (inbound) UDP ports IG_UDP_CPORTS=”53″
Egress filtering [0 = Disabled / 1 = Enabled]
EGF=”1″
Common egress (outbound) TCP ports
EG_TCP_CPORTS=”21,25,80,443,43″
Common egress (outbound) UDP ports
EG_UDP_CPORTS=”20,21,53″
2.CPanel配置
Common ingress (inbound) ports
Common ingress (inbound) TCP ports -3000_3500 = passive port range for Pure FTPD IG_TCP_CPORTS=”21,22,25,53,80,110,143,443,2082,2083, 2086,2087,
2095, 2096,3000_3500″
Common ingress (inbound) UDP ports
IG_UDP_CPORTS=”53″
Common egress (outbound) ports
Egress filtering [0 = Disabled / 1 = Enabled]
EGF=”1″
Common egress (outbound) TCP ports
EG_TCP_CPORTS=”21,25,80,443,43,2089″
Common egress (outbound) UDP ports
EG_UDP_CPORTS=”20,21,53″
之后启动防火墙 /etc/apf/apf -s
如果运行良好我在回去修改配置文件,使DEVM=”0″
然后我们配置APF的AntiDos: vi /etc/apf/ad/conf.antidos
找到下面的内容并替换成你的资料
Organization name to display on outgoing alert emails
CONAME=”Your Company”
Send out user defined attack alerts [0=off,1=on]
USR_ALERT=”0″
User for alerts to be mailed to
USR=you@yourco.com
你应把USR_ALERT改为1
保存后重启APF:/etc/apf/apf –r
To make the firewall start with the Operating System: chkconfig –level 2345 apf on
APF开机自启动:chkconfig –level 2345 apf on
禁止一个IP用/etc/apf/apf -d ip或vi /etc/apf/deny_hosts.rules
允许一个IP用/etc/apf/apf -a ip或vi /etc/apf/deny_hosts.rules
25.安装配置BFD(暴力破解检测)
BFD是一个用于分析应用日志和检测验证失败的模块化shell脚本
而且安装配置和用法都是非常容易的。使用BFD的原因很简单。
其实在LINUX领域几乎没有结合防火墙或实时设备来监控不验证和
暴力***审计的程序。在用BFD之前你必须安装APF防火墙。
方法:
wget http://www.r-fx.ca/downloads/bfd-current.tar.gz
tar -zxvf bfd-current.tar.gz
cd bfd-0.9
然后我们来配置它 vi /usr/local/bfd/conf.bfd
把以下内容改为你的资料
Enable/disable user alerts [0 = off; 1 = on]
ALERT_USR=”1″
User alert email address
EMAIL_USR=”your@mail.com”
User alert email; subject
SUBJ_USR=”Brute Force Warning for $HOSTNAME”
然后vi /usr/local/bfd/ignore.hosts
把你的IP设置成允许主机,避免意外的锁定自己。
之后重启BFD /usr/local/sbin/bfd -s
26.内核加固(sysctl.conf)
sysctl.conf用来加固内核,目的是避免DOS和欺骗***
方法:
到/proc/sys目录或sysctl -a命令了解下当前配置的大概情况
然后vi /etc/sysctl.conf
添加如下内容:
Kernel sysctl configuration file for Red Hat Linux
For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
sysctl.conf(5) for more details.
Controls IP packet forwarding
net.ipv4.ip_forward = 0
Controls source route verification
net.ipv4.conf.default.rp_filter = 1
Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
Controls whether core dumps will append the PID to the core filename.
Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
#Prevent SYN attack
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
Disables packet forwarding
net.ipv4.ip_forward=0
Disables IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.lo.log_martians = 1
net.ipv4.conf.eth0.log_martians = 1
Disables IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
14
net.ipv4.conf.default.rp_filter = 1
Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
Disables the magic-sysrq key
kernel.sysrq = 0
Modify system limits for Ensim WEBppliance
fs.file-max = 65000
Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 15
Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800
Turn off the tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
Turn off the tcp_sack
net.ipv4.tcp_sack = 0
Turn off the tcp_timestamps
net.ipv4.tcp_timestamps = 0
Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1
Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1
Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1
Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1
Set maximum amount of memory allocated to shm to 256MB
kernel.shmmax = 268435456
Improve file system performance
vm.bdflush = 100 1200 128 512 15 5000 500 1884 2
Improve virtual memory performance
vm.buffermem = 90 10 60
Increases the size of the socket queue (effectively, q0).
net.ipv4.tcp_max_syn_backlog = 1024
Increase the maximum total TCP buffer-space allocatable
net.ipv4.tcp_mem = 57344 57344 65536
Increase the maximum TCP write-buffer-space allocatable
net.ipv4.tcp_wmem = 32768 65536 524288
15
Increase the maximum TCP read-buffer space allocatable
net.ipv4.tcp_rmem = 98304 196608 1572864
Increase the maximum and default receive socket buffer size
net.core.rmem_max = 524280
net.core.rmem_default = 524280
Increase the maximum and default send socket buffer size
net.core.wmem_max = 524280
net.core.wmem_default = 524280
Increase the tcp-time-wait buckets pool size
net.ipv4.tcp_max_tw_buckets = 1440000
Allowed local port range
net.ipv4.ip_local_port_range = 16384 65536
Increase the maximum memory used to reassemble IP fragments
net.ipv4.ipfrag_high_thresh = 512000
net.ipv4.ipfrag_low_thresh = 446464
Increase the maximum amount of option memory buffers
net.core.optmem_max = 57344
Increase the maximum number of skb-heads to be cached
net.core.hot_list_length = 1024
DO NOT REMOVE THE FOLLOWING LINE!
nsobuild:20051206
重启后生效
/sbin/sysctl -p
sysctl -w net.ipv4.route.flush=1
27.更改SSH端口
更改SSH默认端口号在一定程度上可以提高安全性
方法:
vi /etc/ssh/sshd_config
Port 22改为其他端口
当然不要忘记把更改的端口加进防火墙
然后重启生效/etc/init.d/ssh restart
如果安装了APF并把端口添加之后,还要重启APF:/etc/init.d/apf restart
28./tmp,/var/tmp,/dev/shm分区的安全
/tmp,/var/tmp,/dev/shm目录是不安全的,任何用户都可以执行脚本。
最好的解决办法是挂载ncexec和nosuid选项的参数
注意:不建议在CPanel使用
方法:
/tmp目录:
cd /dev
创建 100M (“count”) 的存储文件:
dd if=/dev/zero of=tmpMnt bs=1024 count=100000
设为一个扩展的文件系统:
/sbin/mke2fs /dev/tmpMnt (“…is not a block special device. continue?”回答yes)
备份现有临时文件:
cp -R /tmp/ /tmp_backup
用noexec挂载新文件系统:
mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
28./tmp,/var/tmp,/dev/shm分区的安全
/tmp,/var/tmp,/dev/shm目录是不安全的,任何用户都可以执行脚本。
最好的解决办法是挂载ncexec和nosuid选项的参数
注意:不建议在CPanel使用
方法:
/tmp目录:
cd /dev
创建 100M (“count”) 的存储文件:
dd if=/dev/zero of=tmpMnt bs=1024 count=100000
设为一个扩展的文件系统:
/sbin/mke2fs /dev/tmpMnt (“…is not a block special device. continue?”回答yes)
备份现有临时文件:
cp -R /tmp/ /tmp_backup
用noexec挂载新文件系统:
mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-yWdNEOsP-1713333538345)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!