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

CentOS安装之后的系统安全配置

    博客分类:
  • OS
阅读更多
原文出处: CentOS安装之后的系统安全配置
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!

本文以CentOS 5.4为例进行说明,对于5.x版本应该都是适用的,其他版本的话主要是命令的路径不同,思路是一致的。

 

第一步、账户安全管理
1. 修改密码长度

  1. #vi /etc/login.defs
  2. PASS_MIN_LEN 18

2. 创建一个普通用户账号并设置密码,这样所有的操作都使用该普通账号进行

  1. #useradd ru
  2. #passwd ru

3. Linux默认提供了很多账号,账号越多,系统就越容易受到攻击,所以应该禁止所有默认的被操作系统本身启动的并且不必要的账号。
可以使用 vi /etc/passwd 查看系统账号,使用 vi /etc/group 查看系统的用户组。

  1. #userdel adm
  2. #userdel lp
  3. #userdel sync
  4. #userdel shutdown
  5. #userdel halt
  6. #userdel news
  7. #userdel uucp
  8. #userdel operator
  9. #userdel games
  10. #userdel gopher
  11. #userdel ftp
  12.  
  13. #groupdel adm
  14. #groupdel lp
  15. #groupdel news
  16. #groupdel uucp
  17. #groupdel games
  18. #groupdel dip
  19. #groupdel pppusers

4. 使用chattr命令将下面的文件加上不可更改属性,从而防止非授权用户获得权限。

  1. #chattr +i /etc/passwd
  2. #chattr +i /etc/shadow
  3. #chattr +i /etc/group
  4. #chattr +i /etc/gshadow

这样操作之后也无法创建账号和修改密码,后面可以使用chattr -i命令恢复之后再进行操作。

5. 禁止Ctrl+Alt+Delete重启命令
修改 /etc/inittab 文件,将下面一行注释掉

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

然后重新设置 /etc/rc.d/init.d/ 目录下所有文件的许可权限,仅root账号可以读、写和执行其中的所有脚本文件:

  1. #chmod -R 700 /etc/rc.d/init.d/*

6. 限制su命令
限制只有特定用户组的用户才能使用su命令作为root权限,可以编辑 /etc/pam.d/su 文件,修改或增加下面的内容

# 这一行默认是有的
auth sufficient pam_rootok.so
# 确认wheel用户组是存在的
auth required pam_wheel.so group=wheel

这样设置之后只有wheel用户组的用户可以使用su切换为root。如果系统用户ru能够su切换为root,可以运行如下命令:

  1. #usermod -G10 ru

这里注意,使用 su - 命令可以切换为root用户并将root的环境变量信息进行切换,而 su 命令仅仅是切换角色但还是原来用户的环境变量。

 

第二步、SSH安全配置
SSH作为系统登录的入口,其安全性好比城楼的城门,重要性不言而喻。
首先查看系统中是否安装了SSH:

  1. #chkconfig --list |grep sshd

如果出现内容则说明安装了sshd服务,否则使用 yum install ssh 命令进行安装。

接下来先备份原来的配置文件

  1. #cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

然后修改 /etc/ssh/sshd_config 文件:

# 修改SSH的端口,默认为22
Port 5028
# 将#protocol 2,1改为
protocol 2
# 不允许root用户直接登录
PermitRootLogin no
# 不允许空密码登录
PermitEmptyPasswords no
# 不适用DNS
UseDns no

最后使用 service sshd restart 重启SSH服务

 

第三步、关闭系统中不需要的服务和端口
1. 系统中少开一个服务就少一个危险,以下仅列出需要启动的服务,未列出的服务一律关闭,如果没有下面的服务则直接忽略:

  1. #setup
  2. acpid
  3. anacron
  4. cpuspeed
  5. crond
  6. iptables
  7. irqbalance \\仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。
  8. microcode_ctl
  9. network
  10. random
  11. sendmail
  12. sshd
  13. syslog
  14. yum-updatesd

2. 使用iptables防火墙只打开指定的端口
首先创建如下的sh文件:

下载: closeports.sh
  1. #!/bin/bash
  2. iptables -F INPUT
  3. iptables -P INPUT DROP
  4. # 打开80端口
  5. /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  6. # 打开SSH端口,这一点很重要,否则无法使用SSH了,注意将5028修改为你的SSH端口
  7. /sbin/iptables -A INPUT -p tcp --dport 5028 -j ACCEPT

然后保存为closeports.sh文件,使用下面的命令执行该文件:

  1. #chmod +x closeports.sh
  2. #./closeports.sh

详细的iptables配置信息存放在 /etc/sysconfig/iptables 文件中。

 

第四步、防止攻击
1. 阻止ping
将 /proc/sys/net/ipv4/icmp_echo_ignore_all 文件的内容修改为1,不过这样的话如果服务器重启之后就会恢复为0了。
可以将下面的内容加入到 /etc/rc.d/rc.local 文件中:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2. 防止IP欺骗攻击
编辑 /etc/host.conf 文件,在下面增加如下几行:

  1. #vi /etc/host.conf
  2. order bind,hosts
  3. multi off
  4. nospoof on

3. 防止DoS攻击
对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。对 /etc/security/limits.conf 文件添加如下内容:

  1. # 禁止调试文件
  2. * hard core 0
  3. # 限制内存使用为5MB
  4. * hard rss 5000
  5. # 限制进程数为20
  6. * hard nproc 20

接下来必须编辑 /etc/pam.d/login 文件确认下面一行是否存在,如果不存在的话添加上:

  1. session required /lib/security/pam_limits.so

对于DDos攻击可以使用DDoS deflate脚本,详细介绍见下面的参考资料。

 

第五步、系统配置及性能调优
1. 修改系统默认字符集
如果使用英文安装系统之后,如果系统中有中文会显示乱码,这个时候需要修改系统默认的字符集:

  1. #vi /etc/sysconfig/i18n
  2. LANG="zh_CN.UTF-8"
  3.  
  4. #source /etc/sysconfig/i18n

将系统的编码修改为zh_CN.UTF-8,后面一句命令是让修改立即生效。

2. 使用ntp服务更新服务器时间
首先检查系统中是否安装了ntp服务:

  1. #chkconfig --list |grep ntp

如果没有安装的话使用yum进行安装并更新时间

  1. #yum install ntp
  2. #ntpdate time.windows.com

也可以将更新命令加入到cron中进行自动更新时间:

  1. #crontab -e
  2. * */12 * * * ntpdate time.windows.com
  3.  
  4. #service crond restart

以上操作是每隔12小时自动更新一次时间,可以通过 crontab -l 命令进行查看。

3. 加大服务器文件描述符
当系统服务开启后,访问量变大,会使用到更多的文件描述符。使用 ulimit –n 命令显示当前的文件描述符数(需要使用 su – 命令切换到root账号)。可以使用如下方法加大文件描述符数:

  1. #vi /etc/security/limits.conf
  2. *   -   nofile  65536   #在文本的最后一行添加

重新登录之后,可以使用 ulimit –n 命令再次查看文件描述符会看的已经发生了变化。

4. 调整内核参数

  1. #cp /etc/sysctl.conf /etc/sysctl.conf.bak
  2. #vi /etc/sysctl.conf
  3.  
  4. net.ipv4.tcp_fin_timeout = 2
  5. net.ipv4.tcp_tw_reuse = 1
  6. net.ipv4.tcp_tw_recycle = 1
  7. net.ipv4.tcp_syncookies = 1
  8. net.ipv4.tcp_keepalive_time = 600
  9. net.ipv4.ip_local_port_range = 4000    65000
  10. net.ipv4.tcp_max_syn_backlog = 16384
  11. net.ipv4.tcp_max_tw_buckets = 36000
  12. net.ipv4.route.gc_timeout = 100
  13. net.ipv4.tcp_syn_retries = 1
  14. net.ipv4.tcp_synack_retries = 1
  15. net.ipv4.ip_conntrack_max = 25000000
  16. net.ipv4.netfilter.ip_conntrack_max=25000000
  17. net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
  18. net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
  19. net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
  20. net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120

最后,使用 sysctl –p 命令让上述设置立即生效。

 

参考资料:
centos 安全配置
centos最小化安装系统后的基本调优及安全设置
简单的防火墙设置,只要求开放80端口!
利用iptables来配置linux禁止所有端口登陆和开放指定端口
linux 禁ping和开启ping方法
DDoS deflate – Linux下防御/减轻DDOS攻击
Linux的cron和crontab
linux 内核参数调整说明

0
0
分享到:
评论

相关推荐

    Centos7.9安装配置vsftpd

    CentOS 7.9 安装配置 vsftpd 在本文中,我们将详细介绍如何在 CentOS 7.9 上安装和配置 vsftpd,以实现匿名用户的上传和下载操作。 一、关闭防火墙 在配置 vsftpd 之前,需要关闭防火墙,以免防火墙的限制导致-...

    在VMware上安装CentOS7操作系统

    在VMware上安装CentOS7操作系统 安装前的准备 在安装CentOS7操作系统之前,需要准备好虚拟机环境。这里我们使用VMware作为虚拟机软件。首先,需要下载并安装VMware,然后创建一个新的虚拟机。 创建虚拟机 在...

    Linux Centos系统安装手册

    - Linux Centos系统安装完成后,还需要进行系统的更新和维护,包括安装必要的驱动、更新系统、安装常用软件等,以确保系统的正常运行和安全。 总的来说,Linux Centos系统安装手册主要介绍了Linux Centos系统的...

    CentOS7.5安装配置.docx

    ### CentOS 7.5 安装与配置指南 #### 一、CentOS 7.5 ISO文件...通过这些步骤,用户可以顺利地在自己的计算机上安装并配置好CentOS 7.5操作系统。这对于无论是新手还是经验丰富的IT专业人士来说都是一份宝贵的资源。

    CentOS安装FTP及配置用户.doc

    下面我们将介绍如何在 CentOS 系统上安装 vsftpd 作为 FTP 服务器,并配置用户。 一、vsftpd 介绍 vsftpd 是一款在 Linux 发行版中最受推崇的 FTP 服务器程序。特点是小巧轻快,安全易用。vsftpd 的名字代表”very...

    远程安装CentOS6.3

    远程安装 CentOS 6.3 并进行硬 RAID 配置 本文将指导用户如何远程安装 CentOS 6.3 操作系统,并在不同服务商的服务器上进行...在安装 CentOS 6.3 和进行硬 RAID 配置之后,用户可以享受到高性能和安全性的服务器环境。

    CentOS VNC Server 配置

    上述知识点涵盖了从CentOS VNC Server的安装、配置、启动到安全性的相关操作,为用户提供了详细的操作指南和配置建议。通过这些步骤和解释,用户能够成功地在CentOS系统上搭建和使用VNC远程桌面服务。

    CentOS6.4 SSH Telnet服务器配置

    在CentOS 6.4系统中安装SSH服务器的基本步骤如下: 1. **安装SSH服务器** - 使用`yum install openssh-server`命令安装OpenSSH服务器。 2. **启动与管理SSH服务** - 启动SSH服务:`service sshd start` - 设置...

    CentOS7安装配置Mysql

    在本教程中,我们将深入探讨如何在CentOS7操作系统中安装和配置MySQL数据库。这个过程可能会遇到一些挑战,但通过遵循以下步骤,你可以避免常见问题并成功安装MySQL 5.7。 首先,确保你的系统是最新的。打开终端并...

    centos7.4安装Intel I219-V网卡驱动.pdf

    在本文中,将详细讨论如何在CentOS 7.4操作系统上安装Intel I219-V网卡驱动。主要知识点将包括安装过程中的问题描述、驱动下载步骤、编译安装过程、以及可能遇到的问题和解决方法。 首先,问题描述部分提到,在戴尔...

    Centos7.4安装Oracle11.2.0.4.pdf

    2. 系统安全与优化 - 防火墙配置:需要关闭CentOS自带的防火墙服务firewalld,确保系统在安装Oracle时不会因为防火墙规则而产生问题。通过systemctl命令来查看、停止和禁用firewalld服务。 - SELinux配置:SELinux...

    CentOS7.4安装mysql5.7

    ### CentOS 7.4 安装 MySQL 5.7 的详细步骤及注意事项 #### 一、安装流程 1. **进入指定目录** ...通过这些步骤,您可以在 CentOS 7.4 环境下成功安装并配置 MySQL 5.7,同时确保数据库的安全性和稳定性。

    Centos7-samba-配置共享服务

    ### Centos7-Samba-配置共享服务 ...通过上述步骤,我们可以成功地在CentOS 7系统上配置并使用Samba服务,实现与Windows系统的资源共享。这对于需要跨平台文件共享的企业或个人来说是非常实用的功能。

    安装centos-mysql.docx

    在安装 CentOS 之后,需要配置网络连接,以便连接外网。可以通过编辑网络配置文件来实现网络连接。 MySQL 安装 MySQL 是一个流行的关系型数据库管理系统,广泛应用于 Web 应用程序。安装 MySQL 之前,需要先安装...

    Centos7.2 系统下redis安装配置手册

    在CentOS 7.2系统下安装和配置Redis服务是...以上所述内容涵盖了CentOS 7.2系统下Redis服务的基本安装和配置流程,为了保证系统的稳定性和安全性,在实际部署中还应考虑包括备份、监控、故障转移等高级配置和管理措施。

    新手参考CentOS 6.x新系统安装后 初始环境设定

    在安装CentOS之后,以下是新用户应进行的初始环境设定步骤: 1. 网络设定: - CentOS 6.x支持多种网络配置方式,包括交互式安装和直接修改配置文件。设定静态IP地址时,需要在/etc/sysconfig/network-scripts/...

    CentOS_6.3安装配置LAMP服务器(Apache+PHP5+MySQL

    1. CentOS 6.3安装配置LAMP服务器的过程 2. 防火墙配置及端口开放 3. SELinux安全模块的关闭 4. Apache的安装、配置与启动 5. MySQL的安装、配置与启动 6. PHP5的安装 7. LAMP架构的概念与应用 详细说明: 1. ...

    centos7安装手册

    接着,创建一个普通用户,例如用户名为"centos",并为其设置密码,这样在日常使用时可以避免直接使用root权限,增加系统安全性。 安装完成后,系统会提示重启。重启后,你将看到许可证设置,阅读并接受后点击"done...

    CENTOS7.X系统安装及优化1

    在本文中,我们将深入探讨如何在CentOS 7.x系统上进行安装以及相关的优化方法,特别是涉及systemd技术,启动技术对比,以及安装过程中的关键步骤。这些知识点对于理解和维护基于systemd的Linux系统至关重要。 首先...

Global site tag (gtag.js) - Google Analytics