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 ...
随机推荐
- esri mdb 数据库导入 到postgreSQL
需求: 项目升级,需要将esri的个人数据库(mdb格式)导入到开源数据库postgreSQL中. 思路: 使用fwtools工具导出到数据库中. 环境: windows+fwtools+postgr ...
- C语言之指针用法总结
C语言指针概述:1.计算机系统中,无论是存入或是取出数据都需要与内存单元打交道,物理器件通过地址编码寻找内存单元.2.地址编码是一种数据,C语言的指针类型正是为了表示这种计算机所特有的地址数据.3.存 ...
- kettle连接oracle数据库报错,ORA-12505
报错信息: Error connecting to database: (using class oracle.jdbc.driver.OracleDriver) Listener refused t ...
- 基于C#的机器学习--垃圾邮件过滤
在这一章,我们将建立一个垃圾邮件过滤分类模型.我们将使用一个包含垃圾邮件和非垃圾邮件的原始电子邮件数据集,并使用它来训练我们的ML模型.我们将开始遵循上一章讨论的开发ML模型的步骤.这将帮助我们理解工 ...
- 根据输入参数,判定时间范围CheckTimeSpan
对于C#的开发的网页程式,一些企业或者工厂可能会运用这些程式去查询一些资料,考虑到查询的资料太多,假如一个月的资料就有上万条数据,在对于查询资料的SQL语句后时间栏位运用Between.....AND ...
- 小程序中的pick
picker:从底部弹起的滚动选择器. 属性:model string类型 说明:选择器类型 : selector 普通选择器 multiSelector 多列选择器 time 时间选择 ...
- SPFA判负环模板
void DFS_SPFA(int u){ if(flag) return; vis[u]=true; for(int i=head[u];i;i=edges[i].nxt){ if(fl ...
- Office系列(2)---提取Office文件(Word、PPT)中的所有图片
回顾一下上文结尾的问题:如何给文档设置一个合适的封面图?其中一个解决方案就是,获取Office文件内部的图片作为封面.这里就详细介绍下获取图片的几种方式,以及他们各自的优缺点. PS:因为之前用VST ...
- stars-one原创工具——蓝奏云批量下载工具
一款可以批量下载蓝奏云分享的文件夹下的所有文件 基于HtmlUnit和okhttp开源库,所以打包后的jar包文件有点大 蓝奏云下载地址 github地址 需求 之前找电子书资源的时候,网友分享的蓝奏 ...
- minikube 设置CPU和内存
安装minikube之后,第一次sudo minikube start 时,设置参数--cpus int --memory int . 如果需要更改设置,需要将缓存文件$HOME/.minikube ...