centos系统组件优化
CentOS Linux在公司服务器上广泛被使用,本文总结了一些常见的加固方法。
基本原则:
- 最小的权限+最小的服务=最大的安全
- 操作之前先备份;
- 为避免配置错误无法登录主机,请始终保持有一个终端已用root登录并不退出,在另一个终端中做配置修改。这样即使改错,也不至于因系统无法登录导致永远无法登录或恢复配置。
操作项:
一、注释掉系统不需要的用户和用户组
注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。
cp /etc/passwd /etc/passwdbak #修改之前先备份
vi /etc/passwd #编辑用户,在前面加上#注释掉此行
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#halt:x:7:0:halt:/sbin:/sbin/halt
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0perator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #注释掉ftp匿名账号
cp /etc/group /etc/groupbak #修改之前先备份
vi /etc/group #编辑用户组,在前面加上#注释掉此行
#adm:x:4:root,adm,daemon
#lp:x:7:daemon,lp
#uucp:x:14:uucp
#games:x:20:
#dip:x:40:
二、关闭系统不需要的服务
使用命令 chkconfig|grep on 检查开机自启动的服务;
abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrtd 0:off 1:off 2:off 3:off 4:off 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off
certmonger 0:off 1:off 2:off 3:on 4:on 5:on 6:off
cgconfig 0:off 1:off 2:off 3:off 4:off 5:off 6:off
cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off
haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
ip6tables 0:off 1:off 2:on 3:off 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off
kdump 0:off 1:off 2:off 3:off 4:on 5:on 6:off
lvm2-monitor 0:off 1:on 2:on 3:off 4:on 5:on 6:off
mcelogd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off
messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off
portreserve 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
服务说明:
|
auditd |
The audit package contains the user space utilities for storing and searching the audit records generate by the audit subsystem in the Linux 2.6 kernel. |
|
blk-availability |
Controls availability of LVM2 block devices. |
|
cgconfig |
Start cgconfigparser. |
|
cgred |
This is a daemon for automatically classifying processes into cgroups based on UID/GID. |
|
cpuspeed |
This program monitors the system's idle percentage and reduces or raises the CPUs' clock speeds and voltages accordingly to minimize power consumption when idle and maximize perfor-mance when needed. |
|
crond |
The daemon to execute scheduled commands. |
|
ip6tables |
It's IPv6 packet filter administration. |
|
iptables |
It's administration tool for IPv4 packet filtering and NAT. |
|
lvm2-monitor |
Monitor LVM2 with using dmeventd. |
|
netconsole |
It sends printk message from kernel on UDP. |
|
netfs |
NFS clinet. |
|
network |
Network system. |
|
postfix |
SMTP service daemon. |
|
rdisc |
Detect routers in local subnets. |
|
restorecond |
It's the daemon that watches for file creation and then sets the default SELinux file context. |
|
rsyslog |
It reads and/or clears kernel message ring buffer; set console_loglevel. |
|
saslauthd |
saslauthd is a daemon process that handles plaintext authentication requests on behalf of the SASL library. |
|
sshd |
OpenSSH sshd daemon. |
|
udev-post |
Moves the generated persistent udev rules to /etc/udev/rules.d. |
(见http://www.server-world.info/en/note?os=CentOS_6&p=initial_conf&f=4)
关闭不必要的服务
service acpid stop;chkconfig acpid off #电源进阶设定,常用在 Laptop 上
service cpuspeed stop;chkconfig cpuspeed off #停用控制CPU速度主要用来省电
service cups stop;chkconfig cups off #停用 Common UNIX Printing System 使系统支援印表机
service ip6tables stop;chkconfig ip6tables off #禁止IPv6
三、禁止非root用户执行/etc/rc.d/init.d/下的系统命令
chmod -R 700 /etc/rc.d/init.d/* (chmod -R 755 /etc/rc.d/init.d/* #恢复默认设置)
四、修改history命令记录
cp /etc/profile /etc/profilebak
vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=50
五、调整文件描述符大小
echo "ulimit -SHn 65535" >> /etc/rc.local
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft stack unlimited
* hard stack unlimited
六、同步系统时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
crontab -e
0-59/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP
chkconfig --list | grep ntp #看下服务情况
chkconifg ntpd on
service ntpd start
七、内核参数优化
vi /etc/sysctl.conf #末尾添加如下参数 (备注:内核参数优化 根据不同服务器不同业务进行调整)
net.ipv4.tcp_max_tw_buckets = 6144
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 1024 65000
vm.swappiness = 5
vm.zone_reclaim_mode = 0
net.ipv4.tcp_max_syn_backlog = 5000
vm.dirty_ratio = 60
vm.dirty_background_ratio = 5
八、CentOS 系统优化
cp /etc/profile /etc/profilebak2
vi /etc/profile #在文件末尾添加以下内容
ulimit -c unlimited
ulimit -s unlimited
ulimit -SHn 65535
source /etc/profile #使配置立即生效
ulimit -a #显示当前的各种用户进程限制
九、去除系统相关信息
事先备份到安全的地方哈:)
echo "Welcome to Server" >/etc/issue
echo "Welcome to Server" >/etc/issue.net
echo "Welcome to Server" >/etc/redhat-release
十、SSH服务安全配置
vi /etc/ssh/sshd_config
1. 禁用root远程登录
PermitRootLoginno
PermitEmptyPasswords no #禁止空密码登录
2.不要支持闲置会话,并配置 Idle Log Out Timeout 间隔:
ClientAliveInterval 600 # (Set to 600 seconds = 10 minutes)
ClientAliveCountMax 0
3.禁用用户的 .rhosts 文件:
IgnoreRhosts yes
4.PasswordAuthentication no
6.ssh安全技巧之更改 SSH 端口
建议改成 10000 以上,以降低扫描到端口的机率。
Port 36000
7.使用iptables允许特定的主机连接
作为TCP wrappers的一个代替品,你可以使用iptables来限制SSH访问(但可以同时使用这个两个的),这里有一个简单的例子,指出了如何允许一个特定的主机连接到你的SSH服务:
iptables -A INPUT -p tcp -m state --state NEW --source 193.180.177.13 --dport 22 -j ACCEPT
保存后重启ssh服务。
十一、添加普通用户并进行sudo授权管理
useradd -d /home/goal user (指定home目录与用户名不同)
passwd user #设置密码
vi /etc/sudoers #或visudo打开,添加user用户所有权 限
root ALL=(ALL) ALL
user ALL=(ALL) ALL
十二、安装安全补丁(经常更新为好)
yum install yum-security
检查安全更新
yum –security check-update
只安装安全更新
yum update –security
检查特定软件有无安全更新
yum list-security software_name
列出更新的详细信息
yum info-security software_name
十三、将 SSH 程序包和需要的库保持为最新:
yum update openssh-server openssh openssh-clients -y
十四、清空防火墙并设置规则 配置防火墙以接受仅来自已知网段的 SSH 连接:
iptables -t filter -P INPUT ACCEPT
iptables -t filter -F INPUT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 36000 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
十五、锁定关键文件系统
chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr +i /etc/gshadow
centos系统组件优化的更多相关文章
- CentOS系统基础优化16条知识汇总
1.不用root管理,以普通用户的名义通过sudo授权管理: 2.更改默认的远程连接服务端,禁止root用户远程连接,甚至要更改只监听内网ip: 3.定时自动更新服务器时间,使其和互联网时间同步: 4 ...
- CentOS系统Apache服务器优化详解
1.Apache优化 Apache能够在CentOS系统正常运行.但是,对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问 ...
- CentOS系统-常用组件安装
1,安装系统后,补装包组yum groupinstall "Compatibility libraries" "Base" "Development ...
- Centos 7.x 系统基础优化
Centos 7.x 系统基础优化 1.更换国内yum源 删除系统带的centos官方yum源 rm -rf /etc/yum.repos.d/* 使用国内阿里云源 curl -o /etc/yum. ...
- centos 6.x 系统基础优化简版
Centos 6.x 系统基础优化 1.更换国内yum源 删除系统带的centos官方yum源 rm -rf /etc/yum.repos.d/* 使用国内阿里云源 curl -o /etc/yum. ...
- CentOS系统下Tomcat的优化
一.JVM内存优化(线程优化) vim ./bin/catalina.sh 在catalina.sh文件中添加以下配置: JAVA_OPTS="-server -Xms128m -Xmx12 ...
- 6步骤实现CentOS系统环境精简优化
6步骤实现CentOS系统环境精简优化 发布时间:2014-11-03 14:59:27 编辑:AHLinux.com 第一步.删除不必要的自带软件包yum remove Deployment_G ...
- 生产环境下Centos 6.5优化配置 (装载)
本文 centos 6.5 优化 的项有18处: 1.centos6.5最小化安装后启动网卡 2.ifconfig查询IP进行SSH链接 3.更新系统源并且升级系统 4.系统时间更新和设定定时任 5. ...
- Linux Centos 系统上安装BT客户端 Transmission
Linux Centos 系统上安装BT客户端 Transmission Transmission是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面,以MIT许可证和G ...
随机推荐
- 在nginx服务器里面搭建好node.js本地服务器后,利用Node.js的FS模块,实现简单数据的写入和读取
先在server.js里面引入: var fs = require('fs'); 然后写入 // 往writeme.txt文件 写入一些内容 fs.writeFile('./writem ...
- AcWing 240. 食物链 | 并查集
传送门 题目描述 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形. A吃B, B吃C,C吃A. 现有N个动物,以1-N编号. 每个动物都是A,B,C中的一种,但是我们并不知道它到底 ...
- 【记】VirtualBox安装CentOS6
推荐随笔 VirtualBox中安装CentOS-6.6虚拟机 问题1: 在选择虚拟硬盘大小时,最好不要用默认的8G 我的分区 /boot 200M swap 1024M /home 4096M / ...
- 深入理解vue的watch
深入理解vue的watch vue中的wactch可以监听到data的变化,执行定义的回调,在某些场景是很有用的,本文将深入源码揭开watch额面纱 前言 watch的使用 watch的多种使用方式 ...
- pinpoint实现告警推送至钉钉和微信群
前言 在前面的文章中,我们学习了如何通过java实现将消息发送到钉钉.和将消息发送到微信群聊. 基于上述基础,我们今天来接入pinpoint的告警,发送到钉钉群. 实操前准备 开始之前,推荐阅读一下, ...
- CDQ 入门
推荐博客 :https://blog.csdn.net/wu_tongtong/article/details/78785836 https://www.cnblogs.com/mlystdcall/ ...
- spring boot 的 userRepository无法注入的问题
No qualifying bean of type 'xxx.xxx.xxx' available: expected at least 1 bean which qualifies as auto ...
- python super()函数:调用父类的构造方法
python子类会继承父类所有的类属性和类方法.严格来说,类的构造方法其实就是实例方法,因此,父类的构造方法,子类同样会继承. 我们知道,python是一门支持多继承的面向对象编程语言,如果子类继承的 ...
- ninject 的 实现 的 理解
mvc 用ninject 好像 有 的. 加上 ClassDiagram .ClassDiagram1.rar Represents a site on a type where a value c ...
- http轮询,长轮询
轮询,长轮询 轮询 轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接. 优点:后端程序编写比较容易. 缺点:请求中有大半是无用,浪费带宽和服务器资源. 实例:适于小 ...