网络安全运维-安全加固篇

这篇具有很好参考价值的文章主要介绍了网络安全运维-安全加固篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vsftpd禁用匿名用户

 修改vasftpd服务的配置文件/etc/vsftpd.conf(或/etc/vsftpd/vsftpd.conf)
 anonymous_enable=NO

#Options Indexes FollowSymLinks #删掉Indexes  
 Options FollowSymLinks   
 AllowOverride None  
 Order allow,deny    
 Allow from all  
 
 将Options Indexes FollowSymLinks中的Indexes去掉,就可以禁止 Apache 显示该目录结构。
 Indexes的作用就是当该目录下没有 index.html 文件时,自动显示目录结构

使用open_basedir选项能够控制 PHP 脚本只能访问指定的目录,这样能够避免 PHP 脚本访问不应该访问的文件,一定程度下降低了 phpshell 的危害。一般情况下,可以设置为只能访问网站目录:
open_basedir = /var/www/html/files

设置不允许通过root账户进行ssh登录系统

# vi /etc/ssh/sshd_config
 在文件中找到下面一行文字:
 #PermitRootLogin no
 去掉该行前面的#号,使其成为下面这样:
 PermitRootLogin no
 接下来,在shell中输入以下命令来重启ssh服务
 # service sshd restart

MYSQL关闭TCP/IP远程连接

  /etc/my.cnf 配置文件中进行
  –skip-networking

开启SYN Cookie内核参数

sysctl -w net.ipv4.tcp_syncookies=1

数据库安全加固

一般情况下我们要想办法登录自己的数据库靶机进行加固
在终端中输入
mysql -u root -p root
登录数据库
查看数据库版本号:select version();
查看数据库列表:show databases;
查看任意用户:
使用命令use mysql;选择MySQL库
然后使用命令show tables;查看数据库中的表
使用命令select user,host from user where host=’%’;
找到用户test
删除任意用户::
使用命令drop user ‘test’@’%’;
修改默认管理员用户名:
使用命令update user set user=’admin’ where user=’root’;

Linux安全加固:

linux安全限制

vi /etc/profile 新加入:TMOUT=600  //600秒无操作,自动退出

 [root@station90 桌面]# awk -F : '($2=="") {print $1}' /etc/shadow //检查空口令帐号
zhang3
[root@station90 桌面]# tail -n 1 /etc/shadow | head -n 1 //-F :是以冒号作为分隔符,($2==""表示第1个和第2个冒号之间是空的,即空口令帐号,{print $1}打印出用户名
zhang3::15071:0:99999:7:::
检查帐号
[root@station90 桌面]# pwck
用户 adm:目录 /var/adm 不存在
用户 news:目录 /etc/news 不存在
用户 uucp:目录 /var/spool/uucp 不存在
用户 gopher:目录 /var/gopher 不存在
用户 pcap:目录 /var/arpwatch 不存在
用户 avahi-autoipd:目录 /var/lib/avahi-autoipd 不存在
用户 oprofile:目录 /home/oprofile 不存在
pwck:无改变
口令复杂度及登录失败策略
应启用登录失败处理功能,可采取结束会话,限制非法登录次数和自动退出措施,口令应有复杂度要求并定期更换
要求强制记住3个密码历史
口令至少包含1个数字,字母和其他特殊字符(如:#,@,!,$等);
5次远程登录失败自动结束会话

[root@station90 桌面]# cat /etc/login.defs | grep PASS | grep -v ^#
PASS_MAX_DAYS 90 //口令最大使用日期90天

PASS_MIN_DAYS 0 //若设置为2,则设置密码2天后才可以再次更改密码,即密码至少要保留的天数
PASS_MIN_LEN 8 //口令最小长度8位
PASS_WARN_AGE 7 //口令过期前7天警告
[root@station90 pam.d]# cat /etc/pam.d/system-auth | tail -n 2 && grep ^#password /etc/pam.d/system-auth
password required pam_cracklib.so difok=3 minlen=8 dcredit=-1,lcredit=-1 ocredit=-1 maxrepeat=3
password required pam_unix.so use_authtok nullok md5
#password requisite pam_cracklib.so try_first_pass retry=3 //注释这一行后,无法修改密码
[root@station90 pam.d]# passwd
Changing password for user root.
passwd: Authentication information cannot be recovered
修改登录失败策略

[root@station90 ssh]# cat /etc/ssh/sshd_config | grep MaxAuth
MaxAuthTries 1 //远程用户通过ssh连接登录2次失败后自动结束会话
[root@station90 ssh]# ssh 192.168.0.90
root@192.168.0.90's password:
Permission denied, please try again.
root@192.168.0.90's password:
Received disconnect from 192.168.0.90: 2: Too many authentication failures for root

关闭telnet服务,redhat默认是关闭telnet服务的
[root@station90 ssh]# netstat -tnlp | grep :23
[root@station90 ssh]# cd /etc/xinetd.d/
[root@station90 xinetd.d]# ls telnet*
ls: telnet*: 没有那个文件或目录
如果有telnet服务,则把该目录下的telnet文件改为disable=yes
[root@station90 xinetd.d]# tail -n 2 /etc/xinetd.d/krb5-telnet | head -n 1
disable = yes
[root@station90 xinetd.d]# service xinetd restart
停止 xinetd: [确定]
启动 xinetd: [确定]
[root@station90 xinetd.d]# chkconfig xinetd on
openssh应该禁止使用协议1,禁止root直接登录

/etc/ssh/sshd_config
Protocol 2
MaxAuthTries 1

PermitRootLogin no //不允许root用户使用ssh登录
StrictModes yes
PermitEmptyPasswords no //
不允许使用空密码登录
PrintLastLog yes
[root@station60 init.d]# pwd
/etc/rc.d/init.d
[root@station60 init.d]# chmod -R 750 ./ 也可以直接chmod -R /etc/init.d/*
[root@station60 init.d]# ll | head -n 2
total 644
-rwxr-x--- 1 root root 1566 Jun 8 2009 acpid
umask至少为027,最好是077
[root@station60 ~]# grep umask /etc/bashrc
umask 077
umask 077
[root@station60 ~]# . /etc/bashrc
[root@station60 ~]# umask
0077
[root@station60 ~]# touch 3.txt
[root@station60 ~]# ll 3.txt
-rw------- 1 root root 0 Apr 8 00:11 3.txt
检查系统是否最小化安装,启动的运行级别为3
查看/etc/pam.d/su是否包含以下两行
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth required pam_wheel.so use_uid //上面的注释已经说的很清楚了,没有注释下面这一行,那么要su到别的用户就必须在wheel组中
[root@station60 pam.d]# gpasswd -a oracle wheel
Adding user oracle to group wheel
[root@station60 pam.d]# id oracle
uid=500(oracle) gid=500(oracle) groups=500(oracle),0(root),10(wheel) context=system_u:system_r:unconfined_t
[root@station60 pam.d]# id zhang3
uid=501(zhang3) gid=501(zhang3) groups=501(zhang3) context=system_u:system_r:unconfined_t
[root@station60 pam.d]# su - zhang3
[zhang3@station60 ~]$ su - root //以下密码输入都是正确的
Password:
su: incorrect password
[zhang3@station60 ~]$ su - oracle
Password:
su: incorrect password
[zhang3@station60 ~]$ su - oracle
Password:
su: incorrect password
[zhang3@station60 ~]$ su - oracle
Password:
su: incorrect password
[zhang3@station60 ~]$
[oracle@station60 ~]$ su - oracle
Password:
[oracle@station60 ~]$ su - root
Password:
[root@station60 ~]#
操作指南 1.本地登录用户参考配置操作
#cd /etc/profile.d
执行
#vi autologout.sh
加入如下内容:
TMOUT=600
readonly TMOUT
export TMOUT
保存退出,系统将在用户闲置10分钟后自动注销。
2.远程登录用户参考配置操作
#vi /etc/ssh/sshd_config
将以下内容设置为:
ClientAliveInterval 600
ClientAliveCountMax 0
以上表示10分钟闲置后,自动注销并结束会话。
检测方法 1、判定条件
查看帐号超时是否自动注销;
2、检测操作
cat /etc/ssh/sshd_config
检查其中两个参数设置:
ClientAliveInterval 600
ClientAliveCountMax 0
(2)执行:awk -F: '($3 == 0) { print $1 }' /etc/passwd
返回值包括“root”以外的条目,说明有其他超级用户,低于安全要求。
2、检测操作
执行:awk -F: '($3 == 0) { print $1 }' /etc/passwd
返回值包括“root”以外的条目,说明有其他超级用户;
/etc/securetty 文件设置root登陆的tty和vc(虚拟控制台)设备。/etc/securetty 文件被login程序读 (通常 /bin/login)。它的格式是允许的tty和vc列表,注释掉或不出现的设备,不允许root登陆。
vc/1
#vc/2
#vc/3
#vc/4
#vc/5
#vc/6
#vc/7
#vc/8
#vc/9
#vc/10
#vc/11
tty1
#tty2
#tty3
#tty4
#tty5
#tty6
#tty7
#tty8
#tty9
#tty10
#tty11
root只能从tty1和vc登陆。建议仅允许root从一个tty或vc登陆,如果需要更多设备登陆,使用su命令转换为root。
#!/bin/sh
#
export file=/root/Desktop/Look_Here
echo "These username have null code" >> $file
awk -F : '($2 =="") {print $1}' /etc/shadow >> $file
#change system code policy
#1 login /etc/login.defs
perl -i -pe 's,99999,90,g' /etc/login.defs
sed -i.bak '18s/5/8/' /etc/login.defs
echo "PASS_MIN_LEN 8">> /etc/login.defs
#2 pam /etc/pam.d/system-auth
echo "password required pam_cracklib.so difok=3 minlen=8 dcredit=-1 lcredit=-1 ocredit=-1 maxrepeat=3" >>/etc/pam.d/system-auth
echo "password required pam_unix.so use_authtok nullok md5 " >> /etc/pam.d/system-auth
sed -i.bak '13s/password/#password/' /etc/pam.d/system-auth
#perl -i -pe 's/password requisite pam_cracklib.so try_first_pass retry=3/#password requisite pam_cracklib.so try_first_pass retry=3'/g /etc/pam.d/system-auth
#3 ssh /etc/ssh/sshd_config
perl -i -pe 's/#MaxAuthTries 6/MaxAuthTries 5/g' /etc/ssh/sshd_config
#4 telnet /etc/xinetd.d/telnet
(chkconfig telnet off 2>&1) > /dev/null
#5 ssh /etc/ssh/sshd_config
perl -i -pe 's/#StrictModes/StrictModes/' /etc/ssh/sshd_config
perl -i -pe 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
perl -i -pe 's/#PermitEmptyPasswords/PermitEmptyPasswords/' /etc/ssh/sshd_config
#6 umask /etc/bashrc
perl -i -pe 's/umask 002/umask 077/' /etc/bashrc
perl -i -pe 's/umask 022/umask 077/' /etc/bashrc
source /etc/bashrc
#7 runlevel 3 /etc/inittab
perl -i -pe 's/id:5/id:3/' /etc/inittab
#8 /etc/pam.d/su
sed -i.bak '6s/#auth/auth/' /etc/pam.d/su
#9 securetty /etc/securetty
perl -i -pe 's/^/#/g' /etc/securetty
echo "vc/1" >> /etc/securetty
echo "tty1" >> /etc/securetty
#10 uid=0
echo "These username's uid is 0" >> $file
awk -F : '($3==0) {print $1}' /etc/passwd > $file
#11 auto logout /etc/profile.d/
echo "TMOUT=600" >/etc/profile.d/autologout.sh
echo "readonly TMOUT">>/etc/profile.d/autologout.sh
echo "export TMOUT" >>/etc/profile.d/autologout.sh
chmod +x /etc/profile.d/autologout.sh
#12 ssh ClientAliveInterval
perl -i -pe 's/#ClientAlive/ClientAlive/g' /etc/ssh/sshd_config
sed -i.bak '106s/0/600/g' /etc/ssh/sshd_config
sed -i.bak '107s/3/0/g' /etc/ssh/sshd_config
#13 chmod chattr
chmod 400 /etc/shadow /etc/gshadow
chmod 600 /boot/grub/grub.conf /etc/securetty
chattr +a /var/log/messages
chattr +i /var/log/messages
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/group
chattr +i /etc/services
chattr +i /etc/securetty
(service sshd restart;chkconfig sshd on) > /dev/null
文章来源地址https://www.toymoban.com/news/detail-498639.html

到了这里,关于网络安全运维-安全加固篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 拒绝网络攻击--nginx和linux的安全加固

    隐藏nginx版本号 安装启服务 访问不存在的路径 如果访问页面不存在就会暴露nginx版本号,进一步提高了被攻击的可能性 命令行访问: 隐藏版本信息 再次访问不存在的路径,版本号消失 防止DOS、DDOS攻击 DDOS:分布式拒绝服务 配置nginx连接共享内存为10M,每秒钟只接收一个请

    2023年04月26日
    浏览(51)
  • ChatGPT遭受匿名苏丹组织DDoS攻击:网络安全在AI时代的新挑战

    ChatGPT遭受匿名苏丹组织DDoS攻击:网络安全在AI时代的新挑战 最近,全球备受瞩目的AI对话机器人ChatGPT及其开发公司OpenAI遇到了一连串的服务中断和异常错误,这一系列问题背后似乎暗藏了分布式拒绝服务(DDoS)攻击的阴影。自称为“匿名苏丹”的网络行动主义者团体已经站

    2024年02月22日
    浏览(44)
  • 网络安全 Day28-运维安全项目-加密隧道

    两点如何传输数据最安全 方案1: 专线(成本高) 方案2: 硬件设备3层路由器 , 硬件vpn设备 vpn virtual private network 虚拟专有网络 深信服VPN 方案3: 开源软件 pptp (不推荐) 使用最简单,不是很稳定,依赖于 网络设备 的支持. OpenVPN 实现用户/运维/开发,访问网站内网. 运营:通过OpenVPN实现网

    2024年02月13日
    浏览(40)
  • 网络安全运维-应急响应篇

    1.1 /tmp 目录 此目录下,任可用户均可读写,因此应关注此目录内容 1.2.1 /etc/init.d 系统服务目录 /etc/init.d/apache2 status #查看服务状态 apache2.service - The Apache HTTP Server      Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: disabled)      Active: inactive (dead)        Doc

    2024年02月09日
    浏览(45)
  • 卷运维不如卷网络安全

    最近发现很多从事运维的选择了辞职,重新规划自己的职业发展方向。运维工程师这个岗位在IT行业里面确实是处于最底层的,不管什么环节出现问题,基本都是运维背锅。背锅也就罢了,薪资水平也比不上别的岗位。 一般运维的薪资水平大多数都是6-9K,还要高频出差。规模

    2024年02月07日
    浏览(34)
  • 网络安全运维-数字取证篇

    Volatility使用 使用工具: Autopsy 、 Volatility 、 Wireshark 这部分可分为数据分析与取证、内存取证两块内容 wireshark基本操作 过滤器使用 ip.src == x.x.x.x 选择源ip为x.x.x.x的数据包 tcp.port == xx 选择源或目标端口为xx的TCP 数据包 http contains XXX 选择内容含有XXX的http数据包 使用现有数据

    2024年02月09日
    浏览(44)
  • 什么是网络安全、信息安全、计算机安全,有何区别?_网络与信息安全包含 建设安全 运维安全

    这三个概念都存在,一般人可能会混为一谈。 究竟它们之间是什么关系? 并列?交叉? 可能从广义上来说它们都可以用来表示安全security这样一个笼统的概念。 但如果从狭义上理解,它们应该是有区别的,区别在哪呢? 我的理解计算机安全主要指单机(非网络环境下)的安

    2024年04月23日
    浏览(43)
  • 网络安全 Day27-运维安全项目-堡垒机部署

    堡垒机:用于在用户登录网站之前设备或服务,使用堡垒机内部用户所有操作将被记录下来,用于日后做审计,安全审计。 堡垒机 说明 开源堡垒机 teleport(简单那使用),jumpserver(用户较多)…… 云产品 堡垒机(不需要搭建,只需要花钱) 硬件产品 绿盟、奇安信、360 重

    2024年02月13日
    浏览(42)
  • 网络安全 Day31-运维安全项目-容器架构下

    通过上个案例(手动创建镜像)发现很麻烦所以用dockerfile自动化创建镜像 这里我们就可以使用Dockerfile文件方法把定义镜像的流程,根据Dockerfile指令指定,最终生成我们想要的自定义 镜像 。 目标: 1️⃣会使用Dockerfile 2️⃣掌握如何书写Dockerfile 任务要求:通过Dockerfile一键

    2024年02月13日
    浏览(40)
  • 网络安全 Day29-运维安全项目-iptables防火墙

    目标: 封或开启端口 封或开启ip 硬件: 整个企业入口 三层路由: H3C 华为 Cisco(思科) 硬件防火墙: 深信服,绿盟,奇安信… 棱镜门 0day. 勒索病毒。 国内互联网企业去IOE运动。 Juniper 软件: 开源软件 网站内部 封ip 封ip iptables 写入到Linux 内核 中 以后服务docker 工作在 4层(大部分)

    2024年02月12日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包