一个Linux系统安全设置的Shell脚本的分享(适用CentOS)

我们将常用的系统安全配置制作为一个shell脚本,只需要在服务器上运行这个shell脚本即可完成安全设置。

linux的系统安全设 置Shell脚本是第二次更新,已经大量应用在某大型媒体网站体系中,加入了之前没有想到的一些安全设置。使用方法将其复制,保存为一个shell文件, 比如security.sh.将其上传到Linux服务器上,执行sh security.sh,就可以使用该脚本了!


代码如下:

#!/bin/sh
# desc: setup linux system security
#account setup

passwd -l xfs
passwd -l news
passwd -l nscd
passwd -l dbus
passwd -l vcsa
passwd -l games
passwd -l nobody
passwd -l avahi
passwd -l haldaemon
passwd -l gopher
passwd -l ftp
passwd -l mailnull
passwd -l pcap
passwd -l mail
passwd -l shutdown
passwd -l halt
passwd -l uucp
passwd -l operator
passwd -l sync
passwd -l adm
passwd -l lp

# chattr /etc/passwd /etc/shadow
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow

# add continue input failure 3 ,passwd unlock time 5 minite
sed -i 's#auth required pam_env.so#auth required pam_env.sonauth required pam_tally.so onerr=fail deny=3 unlock_time=300nauth required /lib/security/$ISA/pam_tally.so onerr=fail deny=3 unlock_time=300#' /etc/pam.d/system-auth
# system timeout 5 minite auto logout
echo "TMOUT=300" >>/etc/profile

# will system save history command list to 10
sed -i "s/HISTSIZE=1000/HISTSIZE=10/" /etc/profile

# enable /etc/profile go!
source /etc/profile

# add syncookie enable /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

sysctl -p # exec sysctl.conf enable
# optimizer sshd_config

sed -i "s/#MaxAuthTries 6/MaxAuthTries 6/" /etc/ssh/sshd_config
sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config

# limit chmod important commands
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 /bin/vi
chmod 700 /usr/bin/which
chmod 700 /usr/bin/gcc
chmod 700 /usr/bin/make
chmod 700 /bin/rpm

# history security

chattr +a /root/.bash_history
chattr +i /root/.bash_history

# write important command md5
cat > list << "EOF" && /bin/ping /bin/finger /usr/bin/who /usr/bin/w /usr/bin/locate /usr/bin/whereis /sbin/ifconfig /bin/pico /bin/vi /usr/bin/vim /usr/bin/which /usr/bin/gcc /usr/bin/make /bin/rpm EOF for i in `cat list` do if [ ! -x $i ];then echo "$i not found,no md5sum!" else md5sum $i >> /var/log/`hostname`.log
fi
done
rm -f list

(0)

相关推荐

  • CentOS6.5设置Django开发环境

    今天在我的Centos6.5机器上安装 Django 开发环境,在安装完使用 "django-admin.py startproject myapp" 创建应用的时候报了下面的错误 $ django-admin.py startproject myapp Traceback (most recent call last): File "/home/jhadmin/myenv/bin/django-admin.py", line 2, in <module>

  • Centos 6.5 服务器优化配置备忘(一些基础优化和安全设置)

    本文 centos 6.5 优化 的项有18处: 1.centos6.5最小化安装后启动网卡 2.ifconfig查询IP进行SSH链接 3.更新系统源并且升级系统 4.系统时间更新和设定定时任 5.修改ip地址.网关.主机名.DNS 6.关闭selinux,清空iptables 7.创建普通用户并进行sudo授权管理 8.修改SSH端口号和屏蔽root账号远程登陆 9.锁定关键文件系统(禁止非授权用户获得权限) 10.精简开机自启动服务 11.调整系统文件描述符大小 12.设置系统字符集 13

  • 一键配置CentOS iptables防火墙的Shell脚本分享

    手里几台VPS配置iptables太繁琐,看到了朱哥的LNMP脚本里有一个自动配置iptables防火墙的脚本,借来改了一下,给需要的人用: 只提供常用端口的设置,如果你有特殊需求只需自行添加或减少相应的端口即可: 使用方法: 复制代码 代码如下: chmod +x iptables.sh ./iptables.sh 设置iptables开机自动启动: 复制代码 代码如下: chkconfig --level 345 iptables on 完整Shell: 复制代码 代码如下: #!/bin/

  • CentOS防火墙用法浅析

    本文实例讲述了CentOS防火墙用法.分享给大家供大家参考,具体如下: 关闭: /etc/init.d/iptables stop 开启: /etc/init.d/iptables start 重启: /etc/init.d/iptables restart 查看: /etc/init.d/iptables status 保存: /etc/init.d/iptables save 打开8080端口: /sbin/iptables -I INPUT -p tcp --dport 8080 -j A

  • CentOS Linux服务器安全设置

    我们必须明白:最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小话,这样才能保证服务器最大的安全.下面是CentOS服务器安全设置,供大家参考. 一.注释掉系统不需要的用户和用户组 注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦. cp /etc/passwd /etc/passwdbak #修改之前先备份 vi /etc/passwd #编辑用户,在前面加上#注释掉此行 #adm:x:3:4:adm:/var/adm

  • CentOS的图形安装及初始环境设置教程

    对于安装,我们的原则就是在初期按装时采用最小安装,这样使得初期状态显得干净而简洁.在以后的配置中,需要哪些组件的时候,再通过CentOS的"yum"命令(前提需要首先接入互联网)来在线安装. CentOS 4.4 的下载及安装光盘的制作 [第一步] 从镜像站点上下载ISO的镜像文件     CD 1 : http://mirror.tini4u.net/centos/ ... .4-i386-bin1of4.iso CD 2 : http://mirror.tini4u.net/cen

  • Centos下IP与DNS设置方法详解

    本文较为详细的讲述了Centos下IP与DNS设置方法.分享给大家供大家参考,具体如下: 1.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameserver 8.8.4.4 #google域名服务器 2.CentOS 修改网关 修改对应网卡的网关的配置文件 [root@centos]# vi /etc/sysconfig/network 修改以下内容 NETW

  • centos最小化安装系统后的基本调优及安全设置

    清理开机自动启动的服务 显示出所有服务的所有运行级别的启动状态#chkconfig –list停止所有在运行级别3上开机启动的服务#for oldboy in `chkconfig –list |grep 3:on |awk '{print $1}'`;do chkconfig –level 3 $oldboy off;done在开启常用的服务,crond,network,rsyslog,sshd#for oldboy in crond network rsyslog sshd;do chkco

  • centos 5.1下的安全设置(适合所有的linux版本)

    在 一般情况下,一般用户通过执行"su -"命令.输入正确的root密码,可以登录为root用户来对系统进行管理员级别的配置.但是,为了更进一步加强系统的安全性,有必要建立一个管理员的 组,只允许这个组的用户来执行"su -"命令登录为root用户,而让其他组的用户即使执行"su -".输入了正确的root密码,也无法登录为root用户.在UNIX下,这个组的名称通常为"wheel". 首先我们创建两个普通的用户tom joh

  • 一个Linux系统安全设置的Shell脚本的分享(适用CentOS)

    我们将常用的系统安全配置制作为一个shell脚本,只需要在服务器上运行这个shell脚本即可完成安全设置. linux的系统安全设 置Shell脚本是第二次更新,已经大量应用在某大型媒体网站体系中,加入了之前没有想到的一些安全设置.使用方法将其复制,保存为一个shell文件, 比如security.sh.将其上传到Linux服务器上,执行sh security.sh,就可以使用该脚本了! 复制代码 代码如下: #!/bin/sh# desc: setup linux system securit

  • Linux系统crontab定时运行shell脚本失败的问题及解决

    目录 1.最近开始学习Linux系统使用 2.脚本倒是很简单 第一种 第二种 最后我找到两解决办法 总结 1.最近开始学习Linux系统使用 经过一段时间学习终于学到了shell脚本,因为学的东西比较零散,突发奇想我学过了crontab定时任务,今天也学了shell脚本的编写,为何不组合一下,既能提升学习深度,又能锻炼自学能力,何乐而不为呢?但是没想到,我已步入了Linux的坑. 2.脚本倒是很简单 因为刚学习,写的命令都很简单,请各位大神不要笑我,我写这篇博客目的一是为了记录踩过的坑,加深映像

  • 阿里云云服务器Linux系统更新yum源Shell脚本

    所有执行的脚本都需要root身份来执行,执行方法:以root身份执行命令:bash xxx.sh 功能:自动检测系统并更新源 适用系统版本:兼容线上所有linux版本 执行方法:以root身份执行命令:bash update_source.sh 解决了什么问题:一键式检测系统并更新源 给客户带来了好处:用户只需执行该脚本一次即可自动检测系统并更新源. 备注:由于系统版本都有支持的周期所以部分源可能会出现不可用的情况,包括官方的源,这是正常情况 #!/bin/bash ##############

  • Python设置在shell脚本中自动补全功能的方法

    本篇博客将会简短的介绍,如何在ubuntu中设置python自动补全功能. 需求:由于python中的内建函数较多,我们在百纳乘时,可能记不清函数的名字,同时自动补全功能,加快了我们开发的效率. 方法以及要求:设置过程中需要看客具备一点ubuntu的基本知识,当然不懂也没有关系,跟着一步一步走,不懂得可以学习一下ubuntu的文件系统. 具体步骤 1.首先创建一个文件:~/.pythonrc 在ubuntu中创建文件的命令为: sudo gedit ~/.pythonrc #sudo表示使用管理

  • 一个简单的转换输出的shell脚本代码

    一个简单的转换输出的shell脚本,从健盘输入 a,b,c 这种格式  输出如下格式:a c 复制代码 代码如下: #!/bin/bashread -p '请输入:'echo $REPLY >.tmp5count=`grep -o ',' .tmp5 |wc -l`echo $countcount_=$((count+1))i=1:>.tmp1while [ $i -le $count_ ]do   echo $i   awk -F, -v j="$i"  '{print$

  • Linux启动jar包的shell脚本

    背景: 项目设备端需要运行jar包程序与服务端进行socket连接并发送数据,每次启动进程时,都需要在Linux终端输入启动jar包的命令,比较繁琐,随之尝试将启动jar包的命令写入shell脚本文件中,实现操作shell脚本启动jar包程序的功能. 编写的socdev.sh脚本文件中命令如下: #启动命令所在目录 HOME='/home/pi/Desktop/java' #获取mac地址(唯一的) mac=`ifconfig | grep eth0 | awk '{print $5}'` st

  • Linux下一些常用的Shell脚本整理

    如何计算当前目录下的文件数和目录数 # ls -l * |grep "^-"|wc -l ---- to count files # ls -l * |grep "^d"|wc -l ----- to count dir 如何只列子目录? ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux) ls -l | grep "^d" 或者 ls -lL | grep &quo

  • linux c程序中获取shell脚本输出的实现方法

    1. 前言Unix界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部命令ping后,如果执行失败,我们希望得到p

  • linux系统下定时执行php脚本的方法

    前言 在windows服务端定时执行某个程序代码还是比较简单的,只要在系统中做定时任务就可以了,目前刚刚接触到linux下的定时任务,这在好多公司的面试中都会提到的,而对于linux小白的我来说,是个不小的挑战,听单位的同事说,linux定时执行PHP脚本也是很简单的,linux系统实现计划任务一般采用crontab工具,好了,目前分享一个可以执行成功的php脚本,供大家参考了. 1. 在需要定时执行的PHP文件的第一行加 view plain copy #! /bin/local/php -q

  • 详解Linux系统中设置SFTP服务用户目录权限的方法

    前言 在工作或者学习的时候,我们常常会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加.修改.删除操作,并且只能使用sftp登录服务器,不能用ssh操作.这些可以通过配置sftp服务实现. 方法如下 提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下: 1.创建新用户ui,禁止ssh登录,不创建家目录 useradd -s /sbin/nologin -M www 2.设置用户密码 passwd www

随机推荐