`
varsoft
  • 浏览: 2508289 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[转] Linux 服务器安全配置

阅读更多
下面是我最近新整理出的一份日志,希望大家喜欢!
虽然这些都是老声常谈,但都是我亲手整理过的,我愿意奉献给大家!
希望大家多提意见!
----zcatlinux

第一部分:RedHat Linux

1.概述

Linux服务器版本:RedHat Linux AS 2.1

对于开放式的操作系统---Linux,系统的安全设定包括系统服务最小化、限制远程存取、隐藏重要资料、修补安全漏洞、采用安全工具以及经常性的安全检查等。本文主要从用户设置、如何开放服务、系统优化等方面进行系统的安全配置,以到达使Linux服务器更安全、稳定。

2.用户管理

Linux系统中,用户帐号是用户的身份标志,它由用户名和用户口令组成。系统将输入的用户名存放在/etc/passwd文件中,而将输入的口令以加密的形式存放在/etc/shadow文件中。在正常情况下,这些口令和其他信息由操作系统保护,能够对其进行访问的只能是超级用户(root)和操作系统的一些应用程序。但是如果配置不当或在一些系统运行出错的情况下,这些信息可以被普通用户得到。进而,不怀好意的用户就可以使用一类被称为“口令破解”的工具去得到加密前的口令。

21 删除系统特殊的的用户帐号和组帐号:

#userdel username

userdel adm

userdel lp

userdel sync

userdel shutdown

userdel halt

userdel news

userdel uucp

userdel operator

userdel games

userdel gopher

以上所删除用户为系统默认创建,但是在常用服务器中基本不使用的一些帐号,但是这些帐号常被黑客利用和攻击服务器。

#groupdel username

groupdel adm

groupdel lp

groupdel news

groupdel uucp

groupdel games

groupdel dip

同样,以上删除的是系统安装是默认创建的一些组帐号。这样就减少受攻击的机会。

22 用户密码设置:

安装linux时默认的密码最小长度是5个字节,但这并不够,要把它设为8个字节。修改最短密码长度需要编辑login.defs文件(vi /etc/login.defs

PASS_MAX_DAYS 99999 ##密码设置最长有效期(默认值)

PASS_MIN_DAYS 0 ##密码设置最短有效期

PASS_MIN_LEN 5 ##设置密码最小长度

PASS_WARN_AGE 7 ##提前多少天警告用户密码即将过期。

23 修改自动注销帐号时间:

自动注销帐号的登录,在Linux系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销root账户,那将会带来很大的安全隐患,应该让系统会自动注销。通过修改账户中“TMOUT”参数,可以实现此功能。TMOUT按秒计算。编辑你的profile文件(vi /etc/profile,"HISTSIZE="后面加入下面这行:
  TMOUT=300
  300,表示300秒,也就是表示5分钟。这样,如果系统中登陆的用户在5分钟内都没有动作,那么系统会自动注销这个账户。

24 给系统的用户名密码存放文件加锁:

chattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/gshadow

chattr +i /etc/group

注:chattr改变文件属性的命令,参数i代表不得任意更动文件或目录,此处的i不可修改位(immutable)。查看方法:lsattr /etc/passwd

3.服务管理

Linux系统的服务管理方面,如果想做到服务的最好安全,其中主要的就是升级服务本身的软件版本,另外一个就是关闭系统不使用的服务,做到服务最小化。

31 关闭系统不使用的服务:

cd /etc/init.d ##进入到系统init进程启动目录

在这里有两个方法,可以关闭init目录下的服务,一、将init目录下的文件名mv*.old类的文件名,即修改文件名,作用就是在系统启动的时候找不到这个服务的启动文件。二、使用chkconfig系统命令来关闭系统启动等级的服务。

注:在使用以下任何一种方法时,请先检查需要关闭的服务是否是本服务器特别需要启动支持的服务,以防关闭正常使用的服务。

第一种:修改文件名的方法

Cd /etc/init.d/

mv apmd apmd.old ##笔记本需要

mv netfs netfs.old ## nfs客户端

mv yppasswdd yppasswdd.old ## NIS服务器,此服务漏洞很多

mv ypserv ypserv.old ## NIS服务器,此服务漏洞很多
mv dhcpd dhcpd.old ## dhcp
服务

mv portmap portmap.old ##运行rpc(111端口)服务必需

mv lpd lpd.old ##打印服务

mv nfs nfs.old ## NFS服务器,漏洞极多

mv sendmail sendmail.old ##邮件服务, 漏洞极多

mv snmpd snmpd.old ## SNMP,远程用户能从中获得许多系统信息

mv rstatd rstatd.old ##避免运行r服务,远程用户可以从中获取很多信息

mv atd atd.old ##cron很相似的定时运行程序的服务

第二种:使用chkcofig命令来关闭不使用的系统服务

chkconfig –level 35 apmd off

chkconfig –level 35 netfs off

chkconfig –level 35 yppasswdd off

chkconfig –level 35 ypserv off

chkconfig –level 35 dhcpd off

chkconfig –level 35 portmap off

chkconfig –level 35 lpd off

chkconfig –level 35 nfs off

chkconfig –level 35 sendmail off

chkconfig –level 35 snmpd off

chkconfig –level 35 rstatd off

chkconfig –level 35 atd off

注:以上chkcofig 命令中的35是系统启动的类型,3代表系统的多用启动方式,5代表系统的X启动方式。

32 给系统服务端口列表文件加锁

主要作用:防止未经许可的删除或添加服务

chattr +i /etc/services

33 修改ssh服务的root登录权限

修改ssh服务配置文件,使的ssh服务不允许直接使用root用户来登录,这样建设系统被恶意登录攻击的机会。

vi /etct/ssh/sshd_config

PermitRootLogin yes

将这行前的#去掉后,修改为:PermitRootLogin no

4.系统文件权限

Linux文件系统的安全主要是通过设置文件的权限来实现的。每一个Linux的文件或目录,都有3组属性,分别定义文件或目录的所有者,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)。特别注意,权限为SUIDSGID的可执行文件,在程序运行过程中,会给进程赋予所有者的权限,如果被黑客发现并利用就会给系统造成危害。

41 修改init目录文件执行权限:

chmod -R 700 /etc/init.d/*

42 修改部分系统文件的SUIDSGID的权限:

chmod a-s /usr/bin/chage

chmod a-s /usr/bin/gpasswd

chmod a-s /usr/bin/wall

chmod a-s /usr/bin/chfn

chmod a-s /usr/bin/chsh

chmod a-s /usr/bin/newgrp

chmod a-s /usr/bin/write

chmod a-s /usr/sbin/usernetctl

chmod a-s /usr/sbin/traceroute

chmod a-s /bin/mount

chmod a-s /bin/umount

chmod a-s /bin/ping

chmod a-s /sbin/netreport

43 修改系统引导文件

chmod 600 /etc/grub.conf

chattr +i /etc/grub.conf

5.系统优化

51 虚拟内存优化:

一般来说,linux的物理内存几乎是完全used。这个和windows非常大的区别,它的内存管理机制将系统内存充分利用,并非windows无论多大的内存都要去使用一些虚拟内存一样。

/proc/sys/vm/freepages三个数字是当前系统的:最小内存空白页、最低内存空白页和最高内存空白。

注意,这里系统使用虚拟内存的原则是:如果空白页数目低于最高空白页设置,则使用磁盘交换空间。当达到最低空白页设置时,使用内存交换。内存一般以每页4k字节分配。最小内存空白页设置是系统中内存数量的2;最低内存空白页设置是内存数量的4;最高内存空白页设置是系统内存的6倍。

以下以<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="g"></chmetcnv>1G内存为例修改系统默认虚拟内存参数大小:

echo "2048 4096 6444" >/proc/sys/vm/freepages

6.日志管理

61 系统引导日志:

dmesg
使用 dmesg 命令可以快速查看最后一次系统引导的引导日志。通常它的

内容会很多,所以您往往会希望将其通过管道传输到一个阅读器。

62 系统运行日志:

ALinux 日志存储在 /var/log 目录中。这里有几个由系统维护的日志文件,但其他服务和程序也可能会把它们的日志放在这里。大多数日志只有 root 才可以读,不过只需要修改文件的访问权限就可以让其他人可读。

以下是常用的系统日志文件名称及其描述:

lastlog 记录用户最后一次成功登录时间

loginlog 不良的登陆尝试记录

messages 记录输出到系统主控台以及由syslog系统服务程序产生的消息

utmp 记录当前登录的每个用户

utmpx 扩展的utmp

wtmp 记录每一次用户登录和注销的历史信息 wtmpx 扩展的wtmp

vold.log 记录使用外部介质出现的错误

xferkig 记录Ftp的存取情况 sulog 记录su命令的使用情况

acct 记录每个用户使用过的命令

aculog 拨出自动呼叫记录

B/var/log/messages
messages
日志是核心系统日志文件。它包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。其他信息,比如某个人的身份切换为 root,也在这里列出。如果服务正在运行,比如 DHCP 服务器,您可以在 messages 文件中观察它的活动。通常,/var/log/messages 是您在做故障诊断时首先要查看的文件。

C/var/log/XFree86.0.log
这个日志记录的是 Xfree86 Xwindows 服务器最后一次执行的结果。如果您在启动到图形模式时遇到了问题,一般情况从这个文件中会找到失败的原因。

D/var/log 目录下有一些文件以一个数字结尾,这些是已轮循的归档文件。日志文件会变得特别大,特别笨重。Linux 提供了一个命令来轮循这些日志,以使您的当前日志信息不会淹没在旧的无关信息之中。 logrotate 通常是定时自动运行的,但是也可以手工运行。当执行后,logrotate 将取得当前版本的日志文件,然后在这个文件名最后附加一个“<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue=".1" unitname="”"></chmetcnv>.1”。其他更早轮循的文件为“<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue=".2" unitname="”"></chmetcnv>.2”“<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue=".3" unitname="”"></chmetcnv>.3”,依次类推。文件名后的数字越大,日志就越老。

可以通过编辑 /etc/logrotate.conf 文件来配置 logrotate 的自动行为。通过 man logrotate 来学习 logrotate 的全部细节。

其中:

# rotate log files weekly

weekly

这里代表每个日志文件是每个星期循环一次,一个日志文件保存一个星期的内容。

# keep 4 weeks worth of backlogs

rotate 4

这里代表日志循环的次数是4次,即可以保存4个日志文件。

E、定制日志

可以通过编辑 /et/syslog.conf /etc/sysconfig/syslog 来配置它们的行为,可以定制系统日志的存放路径和日志产生级别。

63 系统各用户操作日志:

last

单独执行last指令,它会读取位于/var/log目录下,名称为wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。

history

history命令能够保存最近所执行的命令。如果是root命令所保存的命令内容在/root/.bash_history文件中,如果是普通用户,操作所命令保存在这个用户的所属目录下,即一般的/home/username/.bash_history。这个history的保存值可以设置,编辑/etc/profile文件,其中的HISTSIZE=1000的值就是history保存的值。

7.防火墙

71 iptables类型防火墙:

711 iptables概念:

IptalbesIP包过滤器管理)是用来设置、维护和检查Linux内核的IP包过滤规则的。

可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。

通过使用用户空间,可以构建自己的定制规则,这些规则存储在内核空间的信息包过滤表中。这些规则具有目标,它们告诉内核对来自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。如果某个信息包与规则匹配,那么使用目标 ACCEPT 允许该信息包通过。还可以使用目标 DROP REJECT 来阻塞并杀死信息包。对于可对信息包执行的其它操作,还有许多其它目标。

根据规则所处理的信息包的类型,可以将规则分组在链中。处理入站信息包的规则被添加到 INPUT 链中。处理出站信息包的规则被添加到 OUTPUT 链中。处理正在转发的信息包的规则被添加到 FORWARD 链中。这三个链是基本信息包过滤表中内置的缺省主链。另外,还有其它许多可用的链的类型(如 PREROUTING POSTROUTING),以及提供用户定义的链。每个链都可以有一个策略,它定义缺省目标,也就是要执行的缺省操作,当信息包与链中的任何规则都不匹配时,执行此操作。

建立规则并将链放在适当的位置之后,就可以开始进行真正的信息包过滤工作了。这时内核空间从用户空间接管工作。当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地。我们将这个过程称为路由

如果信息包源自外界并前往系统,而且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表的 INPUT 链。如果信息包源自系统内部或系统所连接的内部网上的其它源,并且此信息包要前往另一个外部系统,那么信息包被传递到 OUTPUT 链。类似的,源自外部系统并前往外部系统的信息包被传递到 FORWARD 链。

712 iptables实例1

#!/bin/sh

# 禁止系统的转发包功能

echo 0 > /proc/sys/net/ipv4/ip_forward

# 清楚iptables原有规则,并设置iptables默认规则

iptables -t nat -F POSTROUTING

iptables -t nat -F PREROUTING

iptables -t nat -F OUTPUT

iptables -F

iptables -P INPUT DROP

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

# input规则中需要打开的tcpupd端口

iptables -A INPUT -j ACCEPT -p tcp --dport 80

</p

分享到:
评论

相关推荐

    Linux服务器基本安全配置的实现

    中知网的Linux服务器基本安全配置的实现

    linux服务器安全配置

    假如你想要搭建一个Linux服务器,并且希望可以长期维护的话,就需要考虑安全性能与速度等众多因素。一份正确的linux基本安全配置手册就显得...在我本文中就向大家介绍在edhat/centos 4,5下的Linux服务器基本安全配置

    LINUX服务器安全配置

    安装linux时默认的密码最小长度是5个字节,如果你不想任何人能够su作为root,你能编辑/etc/pam.d/su加下面的行:

    LINUX服务器配置文档

    在Linux服务器环境中,配置是确保系统能够有效运行各种服务的关键环节。本文主要涵盖了几个重要的服务器配置,包括DNS、Apache、DHCP、FTP、Proxy、...正确配置这些服务是构建高效、安全的Linux服务器环境的关键步骤。

    Linux Web服务器配置

    5. **防火墙配置**:确保服务器安全,需要正确配置防火墙如`iptables`或`ufw`,允许必要的Web服务端口(如HTTP的80端口和HTTPS的443端口)开放,同时阻止不必要的入站连接。 6. **SSL/TLS证书配置**:为了提供安全...

    等保2.0 测评 linux服务器加固 基本安全配置手册 -.pdf

    等保2.0 测评 linux服务器加固 基本安全配置手册 -.pdf

    linux服务器安全配置.docx编程资料

    linux服务器安全配置.docx

    linux服务器安全配置.docx

    linux服务器安全配置.docx

    等保2.0测评 linux服务器加固 基本安全配置手册.docx

    等保2.0测评 Linux 服务器加固基本安全配置手册 Linux 服务器加固是等保2.0测评的重要组成部分,本手册提供了基本的安全配置手册,旨在帮助管理员快速实现 Linux 服务器的加固。下面是该手册中涵盖的知识点: 一、...

    Linux各种服务器配置祥解

    LINUX 服务器配置大全.doc Linux代理服务全攻略.doc Linux的常用网络命令.doc ...Linux下配置完整安全的DHCP服务器详解.doc linux下四种设置基本网络参数的方法.doc 用Linux构建最好的FTP服务器.doc

    LINUX系统安全配置宝典(三).pdf

    Linux系统安全配置是非常重要的,因为Linux系统是目前最流行的操作系统之一,许多服务器和系统都使用Linux系统。如果Linux系统没有被正确地配置,那么将会带来非常严重的安全问题。因此,Linux系统安全配置是系统...

    Linux服务器安全配置攻略.pdf

    《Linux服务器安全配置攻略》是一份详尽的指南,针对如何增强Linux服务器系统的安全性提供了实用的方法和策略。本文主要探讨了几个关键领域的安全措施,包括系统账号安全、防止非法访问和增强系统整体防御能力。 ...

    Linux服务器安全策略详解

    Linux服务器安全策略是确保系统稳定运行、保护数据安全和防止未授权访问的关键环节。本篇将深入探讨Linux服务器安全的多个方面,旨在提供全面而实用的指导。 首先,基础安全设置至关重要。安装Linux系统后,应立即...

    实验2-Linux服务器安装配置.docx

    ### 实验2-Linux服务器安装配置 #### 实验目的 本次实验旨在通过实践操作的方式,帮助学生理解并掌握CentOS Linux系统的安装与基本配置过程。具体目标包括但不限于: 1. **了解基本的Linux版本**:熟悉当前主流的...

    Linux服务器安全策略全接触之二——Web服务器安全策略.pdf

    "Linux服务器安全策略全接触之二——Web服务器安全策略" 本文将详细介绍 Linux 服务器安全策略中的 Web 服务器安全策略,涵盖 Web 服务器安全隐患、Apache 服务器安全配置技巧和 Linux 中的安全策略。 Web 服务器...

    Linux下Apache服务器的配置及安全问题

    五、Apache 服务器常规安全配置 为了确保 Apache 服务器的安全,需要进行常规安全配置,例如: ### 1. 服务器访问控制 服务器访问控制是 Apache 服务器的一个主要安全问题,例如,未经授权的访问、密码猜测等。 ...

    网络实验-Linux下服务器配置实验报告

    【网络实验-Linux下服务器配置实验报告】 实验报告主要涵盖了在Linux环境中配置各种服务器,包括DHCP、MAIL、DNS和FTP服务器。以下是针对DHCP服务器配置的详细步骤和相关知识点: 1. **DHCP服务器组建** - **实验...

    Linux服务器配置文档.docx

    7. **安全与优化**: 在实际部署中,除了软件安装,还需要考虑安全配置、权限设置、性能优化等问题。例如,通过chown命令更改目录所有权,以确保只有特定用户或用户组能访问敏感数据。 8. **运维手册**: 提到有相应...

    linux web服务器的配置

    【Linux Web服务器配置】 在IT领域,Web服务器是用于托管网站和Web应用程序的软件,它接收HTTP(超文本传输协议)请求并返回HTML文件或其他Web内容。Linux操作系统因其稳定性、安全性和开源特性,常被选作Web服务器...

Global site tag (gtag.js) - Google Analytics