linux服务器加固的命令,Linux 服务器安全加固
一、summary
随着互联网的发展,隐私以及安全被大家看的越来越重视,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。优秀的系统应当拥有完善的安全措施,应当足够坚固、能够抵抗来自Internet的侵袭,这正是Linux之所以流行并且成为Internet骨干力量的主要原因。但是,如果你不适当地运用Linux的安全工具,它们反而会埋下隐患。配置拙劣的安全系统会产生许多问题。
然而这也是我的薄弱之处,希望以本文告诫自己,时刻加强安全防护意识,不要存任何侥幸心理,中间可能会有遗漏的地方,也希望大家能留言告知,让我们所有运维的兄弟们都可以轻松的了解。
二、 用户帐号安全
2.1 设定密码策略
#!/bin/bash
# Function: 实现对用户密码策略的设定,如密码最长有效期等
read -p "设置密码最多可多少天不修改:" A
read -p "设置密码修改之间最小的天数:" B
read -p "设置密码最短的长度:" C
read -p "设置密码失效前多少天通知用户:" D
sed -i '/^PASS_MAX_DAYS/c\PASS_MAX_DAYS '$A'' /etc/login.defs
sed -i '/^PASS_MIN_DAYS/c\PASS_MIN_DAYS '$B'' /etc/login.defs
sed -i '/^PASS_MIN_LEN/c\PASS_MIN_LEN '$C'' /etc/login.defs
sed -i '/^PASS_WARN_AGE/c\PASS_WARN_AGE '$D'' /etc/login.defs
echo "已设置好密码策略......"
2.2 、对用户密码强度的设定
打开 /etc/pam.d/sysetm-auth文件 ,修改如下。我们设置新密码不能和旧密码相同,同时新密码至少8位,还要同时包含大字母、小写字母和数字。
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
2.3 、对用户的登录次数进行限制
打开/etc/pam.d/sshd文件,在#%PAM-1.0的下面,加入下面的内容,表示当密码输入错误达到3次,就锁定用户150秒,如果root用户输入密码错误达到3次,锁定300秒。锁定的意思是即使密码正确了也登录不了。
auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300
2.4、禁止ROOT用户远程登录
2.5、设置历史命令保存条数和账户超时时间
#! /bin/bash
read -p "设置历史命令保存条数:" E
read -p "设置账户自动注销时间:" F
sed -i '/^HISTSIZE/c\HISTSIZE='$E'' /etc/profile
sed -i '/^HISTSIZE/a\TMOUT='$F'' /etc/profile
2.6、设置只有指定用户组才能使用su命令切换到root用户
在linux中,有一个默认的管理组 wheel。在实际生产环境中,即使我们有系统管理员root的权限,也不推荐用root用户登录。一般情况下用普通用户登录就可以了,在需要root权限执行一些操作时,再su登录成为root用户。但是,任何人只要知道了root的密码,就都可以通过su命令来登录为root用户,这无疑为系统带来了安全隐患。所以,将普通用户加入到wheel组,被加入的这个普通用户就成了管理员组内的用户。然后设置只有wheel组内的成员可以使用su命令切换到root用户。
#! /bin/bash
# Function: 修改配置文件,使得只有wheel组的用户可以使用 su 权限
sed -i '/pam_wheel.so use_uid/c\auth required pam_wheel.so use_uid ' /etc/pam.d/su
n=`cat /etc/login.defs | grep SU_WHEEL_ONLY | wc -l`
if [ $n -eq 0 ];then
echo SU_WHEEL_ONLY yes >> /etc/login.defs
fi
2.7、对Linux账户进行管理
#! /bin/bash
# Function: 对系统中的用户做检查,加固系统
echo "系统中有登录权限的用户有:"
awk -F: '($7=="/bin/bash"){print $1}' /etc/passwd
echo "********************************************"
echo "系统中UID=0的用户有:"
awk -F: '($3=="0"){print $1}' /etc/passwd
echo "********************************************"
N=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`
echo "系统中空密码用户有:$N"
if [ $N -eq 0 ];then
echo "恭喜你,系统中无空密码用户!!"
echo "********************************************"
else
i=1
while [ $N -gt 0 ]
do
None=`awk -F: '($2==""){print $1}' /etc/shadow|awk 'NR=='$i'{print}'`
echo "------------------------"
echo $None
echo "必须为空用户设置密码!!"
passwd $None
let N--
done
M=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`
if [ $M -eq 0 ];then
echo "恭喜,系统中已经没有空密码用户了!"
else
echo "系统中还存在空密码用户:$M"
fi
fi
三、网络服务安全
要经常检查系统的物理环境,禁止那些不必要的网络服务;充分了解系统和服务软件是如何工作的;经常检查系统配置和安全策略,并注意每天查看安全日志。
Linux 系统对外提供强大、多样的服务,由于服务的多样性及其复杂性,在配置和管理这些服务时特别容易犯错误,另外,提供这些服务的软件本身也存在各种漏洞,所以,在决定系统对外开放服务时,必须牢记两个基本原则:
只对外开放所需要的服务,关闭所有不需要的服务。对外提供的服务越少,所面临的外部威胁越小。
将所需的不同服务分布在不同的主机上,这样不仅提高系统的性能,同时便于配置和管理,减小系统的安全风险。
四、系统设置安全
时刻留意安全站点公布的,与 Linux 系统和软件有关的最新安全漏洞和报告;及早发现系统存在的***漏洞,及时安装系统补丁程序。
4.1、限制控制台的使用
4.2、系统关闭Ping
可以把指令添加到文件/etc/rc.d/rc.local中去。
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
4.3、禁止IP源路径路由
五、文件系统安全
对一些重要信息(例如系统配置信息)建立并完善备份机制;对一些特权账号的密码设置要谨慎。
5.1、文件权限
去掉不必要的suid程序,可以通过脚本查看。
find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -lg {} \;
5.2、备份与恢复
定期对文件系统进行备份,可以将损失减小到最小程度。
六、其他
相关文章:

devexpress toolbar 填充整行宽度
设置 bar 的 optionsBar.UseWholeRow True 然后可设置Bar 中 Item的右对齐属性。转载于:https://www.cnblogs.com/perpetual/p/3756101.html

【java】staitc
一、static变量 二、static方法 三、static代码块 四、static类:只能是内部类

002.Docker安装部署
一 docker安装-CentOS系统1.1 docker自动安装脚本 1 rootdocker:~# wget -qO- https://get.docker.com/ | sh2 或——3 rootdocker:~# curl -sSL https://get.docker.com/ | sh 注意:若出现以下错误,可使用yum解决依赖——Delta RPMs disabled because /…

贪心:expedition 最优加油方法
已知一条公路上,有一个起点与一个终点,这之间有n个加油站;已知从这n个加 油站到终点的距离d与各个加油站可以加油的量l,起点位置至终点的距离L与起 始时刻油箱中汽油量P;假设使用1个单位的汽油即走1个单位的距离,油箱没有 上限&am…

UML for Java Programmers之dx实战
dx是一套简单的开发规则。它说白了就是迭代开发,在短周期内迭代处理”所有事情“,这里所指的”所有事情“包括需求、分析、设计、实现、测试和文档等等。 它的大概流程是这样:1. 初始探索 跟客户坐下来一起讨论系统到底是做什么的。在这个…

linux进程池动态维护,可直接商用的跨平台c,c++动态线程池,任务池stpool库
stpool是一个轻便高效的动态跨平台的线程池/任务池库.常规线程池的缺点:1. 总是启动时候就开启固定数目的线程,而不管系统的繁忙状态(这是很浪费系统资源的).2. 当任务繁重的时候,即使线程池被设计成可继续添加更多线程来服务,由于实时服务状…

hdu 1286( 欧拉函数 )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid1286 数学题真的是有点吃不消了。。。 View Code 1 #include<iostream>2 #include<cmath>3 using namespace std;4 //可以快速求出欧拉函数的值 ( P为N的质因子 )5 //若(N%P0 && (N/P)%P0…

CF 1093 E. Intersection of Permutations
E. Intersection of Permutations 链接 题意: 给定两个序列,询问第一个排列的[l1,r1]和第二个排列[l2,r2]中有多少个共同的数,支持在第二个排列中交换两个数。 分析: 首先求出一个数组,c[i],第二个排列的这…

s-seq 生成序列化数字
前言 seq命令用于产生从某个数到另外一个数之间的所有整数。 命令格式 seq [OPTION]... LAST seq [OPTION]... FIRST LAST seq [OPTION]... FIRST INCREMENT LAST 支持将指定范围的数字打印出来,按照指定的递增规律 -f, --format格式 使用printf 样式的浮点格式…

linux c++ 目录操作,C++文件及文件夹操作整理(代码示例)
一 文件1.1 使用C标准库中的IO库(fstream)读写文件#include #include using namespace std;int main(){char szData[200] "123456 test";fstream fFile;fFile.open("test.txt", ios::app | ios::out | ios::in);/****************将数据写入文件-begin***…

cocos2d-x 音效中断问题
做跑酷重吃金币播音效时,播放其它音效会使得音效所有中断,最后发现时音效上限的问题,2.2.3默认的似乎是5个音效,改动成50后问题解决。 在java中的org.cocos2dx.lib包下有一个Cocos2dxSound.java文件,改动里面 private …

AStyle - SourceInsight
SourceInsight : Options : Custom Commands Add 在弹出对话框写入 C/C Formatter "C:\AStyle\AStyle.exe" --styleansi -s2 --convert-tabs %f SourceInsight : Options : Key Assignments

c# blockingcollections
1 class Program2 {3 static BlockingCollection<int> cols new BlockingCollection<int>(2); //设置阻塞队列最大的容量;4 public static void Main(string[] args)5 {6 7 8 var t1…

递归/回溯:subsets求子集
前言 回溯法又称为试探法,但当探索到某一步时,发现原先选择达不到 目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。 已知一组数(其中无重复元素),求这组数可以组成的所有子集。 结果中不可有无重复的子…

C++ stl vector介绍
转自: STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使…

Linux服务器部署ssl证书教程,linux服务器在wdcp面板安装ssl证书教程
不少站长如今越来越在意站内数据传输的安全性,想着把自己建设的网站加密传输,许多站长都需要安装ssl证书,且很多站长都在找寻centos系统服务器linux服务器或者是wdcp面板怎么安装ssl证书,网上找了下没有完整步骤教程,所…

设备节点注册和操作方法连接
今天把驱动程序乱七八糟的看了一通,简单总结一下。 一个完整的驱动,需要提供如下的东西, 第一,用户空间/dev下面的设备节点。当然,如果该设备仅仅是内核的使用,例如I2C,则不需要在/dev下面建立…

maven(一 基本操作 命令 标签)
原来一直没有使用maven 小公司,只是听说过这个东西,我没事就喜欢 去学习一些新东西。maven学了几次,但是 没有用上 所以 最后还是忘记了,或者说不知道怎么使用maven,一年半以前公司 改革 ,招了一个技术大牛…

递归/回溯:Subsets II求子集(有重复元素)
上一篇描述了针对数组中没有重复元素进行子集的求取过程递归/回溯:subsets求子集 但是当出现如下数组时: 例如: nums[] [2, 1, 2, 2] 结果为: [[], [1], [1,2], [1,2,2], [1,2,2,2], [2], [2,2], [2,2,2]] 注意: [2,1,2]与[1,2,2]是重复的集合,则不满足…

[WP]使用ApacheCordova开发HTML5-WindowsPhone应用程序
下载代码示例 这篇文章介绍 Apache 科尔多瓦,创建使用 HTML5 和 JavaScript,跨平台移动应用程序的框架,并显示了如何使用它为 Windows Phone 开发应用程序。 Windows Phone 和其本机开发平台允许您轻松地创建美丽地铁样式的应用程序。 最近诺…

linux 不能运行程序代码,linux-无法在Ubuntu上运行我自己的OpenGL 3程序
我正在尝试OpenGL 2.x和3.x教程.程序进行编译和链接,然后在看似无害的行上进行段错误处理,例如glGenBuffers (1, &m_buffer);我的main()以glewInit和glutInit开头. OpenGL 1程序可以编译并正常运行,这似乎是由glew包装的新功能.一个教程说,在尝试任何其他操作之前,我应该先…

Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
错误大致显示如下信息:04-14 07:39:18.325: E/AudioEffect(20584): set(): AudioFlinger could not create effect, status: -104-14 07:39:18.325: E/libOpenSLES(20584): Effect initCheck() returned -104-14 07:39:18.325: E/libOpenSLES(20584): Environmental…

H2:开源内存数据库引擎
本资源由 伯乐在线 - 刘立华 整理H2是一个开源的内存数据库。Java编写、快速、小巧(1.5MB jar包)还提供了Web控制台管理数据库内容。 主要功能 非常快速的数据库引擎。开源。Java编写。支持标准SQL、JDBC API。支持嵌入式模式、服务器模式和集群。强大的…

递归/回溯:Combination Sum II数组之和
问题如下: 已知一组数(其中有重复元素),求这组数可以组成的所有子集中,子 集中的各个元素和为整数target的子集,结果中无重复的子集。 例如: nums[] [10, 1, 2, 7, 6, 1, 5], target 8 结果为: [[1, 7], [1, 2, 5], …
如何在SharePoint2010中添加Deep Zoom Image
如何在SharePoint2010中添加Deep Zoom Image 应用范围 SharePoint 2010 Foundation;SharePoint 2010 Standard;SharePoint 2010 Enterprise所需材料 1. SeaDragon Ajax Viewer Web部件(点击此处下载)2. Deep Zoom Image Composer&…

linux 读取磁盘扇区,linux 下检查硬盘坏道/扇区
文章摘自:Linux检测硬盘坏道Linux检测硬盘坏道badblocks功能说明:检查磁盘装置中损坏的区块。语法:badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]补充说明:执行指令时须指定所要检查的磁盘装置,及此装置…

Pjax是什么以及为什么推荐大家用
什么是pjax? 现在很多网站( facebook, twitter) 都支持这样的一种浏览方式, 当你点击一个站内的链接的时候, 不是做页面跳转, 而是只是站内页面刷新。 这样的用户体验, 比起整个页面都闪一下来说, 好很多。 其中有一…

Scrapy框架CrawlSpider类爬虫实例
CrawlSpider类爬虫中: rules用于定义提取URl地址规则,元祖数据有顺序 #LinkExtractor 连接提取器,提取url地址 #callback 提取出来的url地址的response会交给callback处理 #follow 当前url地址的响应是否重新经过rules进行提取url地址 cf.py具…

递归/回溯:Generate Parentheses生成合法括号
已知n组括号,开发一个程序,生成这n组括号所有的合法的组合可能。 例如:n 3 结果为: ["((()))", “(()())”, “(())()”, “()(())”, “()()()”] 首先思考如何生成所有的括号组合的可能性,即例如2组括号,总共4个符号…

利用“哨兵”“实现双链表
利用“哨兵”“实现双链表 下面的代码用一个”哨兵“实现双链表,感觉很简洁,中间也有点绕,暂时实现,供学习之用 static Node list_handle {&list_handle,&list_handle, };bool addNode(Node* node) {if (node NULL){re…