@HW系统安全补丁总结
关于HW行动中,很多公司都会采用某盟或者某恒的一些漏少和基线检测工具来分析和扫描系统相关漏洞,采取相应的措施打补丁或者使用安全设备来进行防护。
看到安全检测报告不要盲目去看漏洞,一味的根据提醒去打补丁,有时候补丁的问题还是要慎重,扫描报告中有一项原理性检测,说明是确实通过漏洞去进行了渗透测试,那么这些补丁建议还是要及时修补。
笔者这里大致整理Linux操作系统和Weblogic中间件漏洞问题。来源全蛋、杜总。
首先是一个系统的基线加固,这里网络上能找到很多,根据自己需求去加固。
检查口令规则(可选)
切记所有文件vi修改前都cp一个.bak文件出来。
vi /etc/login.defs
# change
PASS_MAX_DAYS 999 密码最长有效期
PASS_MIN_DAYS 0 密码修改之间最小的天数
PASS_MIN_LEN 8 密码长度
PASS_WARN_AGE 15 口令失效前多少天开始通知
密码强度设定(可选,设置后当前用户导致密码无法修改)
vi /etc/pam.d/system-auth
# change
password requisite pam_cracklib.so try_first_pass retry = 3 difok = 3 minlen = 8 dcredit = -1 ucredit = -1 lcredit = -1 ocredit = -1
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember = 5
retry=N => 改变输入密码的次数, 默认值是 1, 一般设置为 3。 就是说, 如果用户输入的密码强度不够可以重复输入的次数。
minlen=N => 密码最小长度(除了 credit 信用度的字符长度以外)
dcredit=N => 密码中至少 (N<0) 或至多 (N>=0) 有几个数字
ucredit=N => 密码中至少 (N<0) 或至多 (N>=0) 有几个大写字母
lcredit=N => 密码中至少 (N<0) 或至多 (N>=0) 有几个小写字母
ocredit=N => 密码中至少 (N<0) 或至多 (N>=0) 有几个特殊字符
difok=M => 新密码与前一个旧密码之间至少有 M 个字符不相同
用户登录次数限制(可选)
vi /etc/pam.d/sshd
# insert
auth required pam_tally2.so deny=5 onerr=fail no_magic_root unlock_time=180
pam_tally2 查看锁定的用户
pam_tally2 --reset -u username 将被锁定的用户解锁
用户输入密码错误达到3次,锁定300秒。锁定的意思是即使密码正确了也登录不了
pam_tally2 查看锁定的用户
pam_tally2 --reset -u username 将被锁定的用户解锁
删除用户
lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody
passwd -l username
设置目录缺省访问权限(必做)
vi /etc/profile
在文件末尾加上如下内容:
umask 027
#source /etc/profile
设置特殊文件权限(必做)
chmod 644 /etc/passwd
chmod 644 /etc/group
chmod 600 /etc/shadow
chmod 600 /etc/security
修改文件权限(必做)
vi /etc/csh.cshrc
umask 077
vi /etc/csh.login
umask 077
vi /etc/bashrc
umask 077
vi /etc/profile
umask 077
服务设置(必做)
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
vi /etc/passwd
# ftp
vi /etc/services
#ftp和telnet
检查超时登录(必做)
vi /etc/profile
export TMOUT=600
禁止用户su权限(必做)
vi /etc/pam.d/su
auth required pam_wheel.so group=wheel
usermod –G wheel username 添加可su用户。
禁止root远程登录(必做)
vi /etc/ssh/sshd_config
# find PermitRootLogin
PermitRootLogin no
/etc/init.d/sshd restart
隐藏系统版本(必做)
mv /etc/issue /etc/issue.bak
mv /etc/issue.net /etc/issue.net.bak
修改历史命令(必做)
vi /etc/profile
HISTFILESIZE=5
HISTSIZE=5
执行以下命令让配置生效
#source /etc/profile
首先Linux操作系统,现在很多应用都是基于Linux操作系统来运行,用的最多的也就是Redhat、Centos、Suse这些版本。安装完成操作系统一般都会有自带的openssl和openssh,版本在0.9或者6.6左右。这时候去扫描的话会报告OpenSSH远程代码执行漏洞(高危漏洞),一般建议Openssl升级到1.0.2n、Openssh7.9之后。
安装必要的gcc等相关,libopenssl-devel、pam-devel、zlib-devel等RPM包
rpm -ivh xxx.rpm --nodeps
安装zlib
cd /usr/local/src
tar -zxvf zilb
./configure
make
make install
升级openssl
安装openssl-fips
cd /usr/local/src
tar -zxvf openssl-fips
cd openssl-fips
./config --prefix=/usr/local/openssl --openssldir=/etc/ssl shared
make
make install
安装openssl
cd /usr/local/src
tar -zxvf openssl-1
cd openssl-1
./config --prefix=/usr/local/openssl --openssldir=/etc/ssl shared
配置链接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
vi /etc/ld.so.conf
/usr/local/openssl/lib
wq!
ldconfig
卸载原先的openssh
rpm -qa|grep openssh
rpm -e --nodeps
cd /usr/local/src
tar -zxvf openssh
cd openssh
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/src/openssl-1.0.2n --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/src/zlib-1.2.11 --without-openssl-header-check
make
make install
ssh配置
cd contrib/
cp suse/rc.sshd /etc/init.d/sshd
chmod 755 /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
service sshd start
扫描后一般都会有weblogic远程安全漏洞,这个补丁可能打了后还是会显示,关键看补丁升级后的补丁最后一位的版本号~
mkdir -p /weblogic/Oracle/Middleware/utils/bsu/cache_dir/tmp
查看版本 ./bsu.sh -view -verbose -status=applied -prod_dir=/weblogic/Oracle/Middleware/wlserver_10.3
删除之前的补丁: ./bsu.sh -remove -patchlist=XXXX -prod_dir=/weblogic/Oracle/Middleware/wlserver_10.3
解压修改参数升级
unzip p2xxxxx_Generic.zip
vi bsu.sh
#insert
MEM_ARGS="-Xms4096m -Xmx4096m"
"$JAVA_HOME/bin/java" ${MEM_ARGS} -Djava.io.tmpdir=/weblogic/Oracle/Middleware/utils/bsu/cache_dir/tmp -jar patch-client.jar $*
这时候就默默等吧,10个点点后大致可完成~~~
./bsu.sh -install -patch_download_dir=/weblogic/Oracle/Middleware/utils/bsu/cache_dir -patchlist=xxx -prod_dir=/weblogic/Oracle/Middleware/wlserver_10.3 -log=bsu.log
oracle 数据库不管是10g 11g还是12C
检测出来都会有一堆,那么默默的打最新的PSU补丁。