首页 > 网络 > 其他 >

安装Linux后需要调整的一些参数【Linux调优】

2016-10-10

安装Linux后需要调整的一些参数【Linux调优】。

1、关闭SELinux功能

修改配置文件(永久生效)

[root@alon~]#sed-i's#SELINUX=enforcing#SELINUX=disabled#'/etc/selinux/config
##用sed命令修改SELinux的状态
[root@alon~]#grepSELINUX=disable/etc/selinux/config##检查是否修改成功
SELINUX=disabled

临时关闭SELinux(临时生效)

[root@alon~]#setenforce0##[Enforcing|Permissive|1|0]
##数字0表示Permissive,只给出警示,相当于disable
##数字1表示Enforcing,表示开启状态
[root@alon~]#getenforce##获取当前SELinux的状态
Permissive

修改SELinux状态过后,如果要使其立即生效,必须重启系统

2、设定运行级别为3(文本模式)

[root@alon~]#grep3:initdefault/etc/inittab##表示已经是文本模式
id:3:initdefault:
[root@alon~]#runlevel##显示当前的运行级别
N3
[root@alon~]#init5##切换为5运行级别,如果装了桌面程序可用startx

3.优化开机启动项

1)重要的开机启动服务项

sshd 远程连接程序

rsyslog 日志相关软件

network 网络服务

sysstat 监测系统性能效率软件包,包含(iostat、mpstat、sar)

crond 计划任务

2)手动设置开机启动服务

A:执行ntsysv命令,然后弹出窗口进行设置;

B:执行setup --> system service,弹出窗口进行设置;

3)通过shell脚本设置开机启动服务

[root@alon~]#LANG=en
[root@alon~]#chkconfig--list|grep3:on
abrt-ccpp0:off1:off2:off3:on4:off5:on6:off
abrtd0:off1:off2:off3:on4:off5:on6:off
acpid0:off1:off2:on3:on4:on5:on6:off
atd0:off1:off2:off3:on4:on5:on6:off
auditd0:off1:off2:on3:on4:on5:on6:off
autofs0:off1:off2:off3:on4:on5:on6:off
blk-availability0:off1:on2:on3:on4:on5:on6:off
certmonger0:off1:off2:off3:on4:on5:on6:off
cpuspeed0:off1:on2:on3:on4:on5:on6:off
crond0:off1:off2:on3:on4:on5:on6:off
cups0:off1:off2:on3:on4:on5:on6:off
haldaemon0:off1:off2:off3:on4:on5:on6:off
ip6tables0:off1:off2:on3:on4:on5:on6:off
iptables0:off1:off2:on3:on4:on5:on6:off
irqbalance0:off1:off2:off3:on4:on5:on6:off
kdump0:off1:off2:off3:on4:on5:on6:off
lvm2-monitor0:off1:on2:on3:on4:on5:on6:off
mcelogd0:off1:off2:off3:on4:off5:on6:off
mdmonitor0:off1:off2:on3:on4:on5:on6:off
messagebus0:off1:off2:on3:on4:on5:on6:off
netfs0:off1:off2:off3:on4:on5:on6:off
network0:off1:off2:on3:on4:on5:on6:off
nfslock0:off1:off2:off3:on4:on5:on6:off
portreserve0:off1:off2:on3:on4:on5:on6:off
postfix0:off1:off2:on3:on4:on5:on6:off
rpcbind0:off1:off2:on3:on4:on5:on6:off
rpcgssd0:off1:off2:off3:on4:on5:on6:off
rsyslog0:off1:off2:on3:on4:on5:on6:off
sshd0:off1:off2:on3:on4:on5:on6:off
sysstat0:off1:on2:on3:on4:on5:on6:off
udev-post0:off1:on2:on3:on4:on5:on6:off

可以先全部关闭,然后再打开所需要的服务,命令如下:

[root@alon~]#forrichyin`chkconfig--list|grep3:on|awk'{print$1}'`;dochkconfig--level3$richyoff;done
[root@alon~]#forrichyincrondnetworkrsyslogsshdsysstat;dochkconfig--level3$richyon;done
[root@alon~]#chkconfig--list|grep3:on
crond0:off1:off2:on3:on4:on5:on6:off
network0:off1:off2:on3:on4:on5:on6:off
rsyslog0:off1:off2:on3:on4:on5:on6:off
sshd0:off1:off2:on3:on4:on5:on6:off
sysstat0:off1:on2:on3:on4:on5:on6:off

第二种快速处理方法:一条命令即可实现,(shell循环):

[root@alon~]#forrichyin`chkconfig--list|grep"3:on"|awk'{print$1}'|grep-vE"crond|network|sshd|rsyslog|sysstat"`;dochkconfig$richyoff;done
[root@alon~]#chkconfig--list|grep"3:on"
crond0:off1:off2:on3:on4:on5:on6:off
network0:off1:off2:on3:on4:on5:on6:off
rsyslog0:off1:off2:on3:on4:on5:on6:off
sshd0:off1:off2:on3:on4:on5:on6:off
sysstat0:off1:on2:on3:on4:on5:on6:off

第三种快速处理方法:不要shell循环语句也是一条命令:

[root@alon~]#chkconfig--list|grep3:on|grep-vE"crond|sshd|rsyslog|network|sysstat"|awk'{print"chkconfig"$1"off"}'|bash
[root@alon~]#chkconfig--list|grep"3:on"
crond0:off1:off2:on3:on4:on5:on6:off
network0:off1:off2:on3:on4:on5:on6:off
rsyslog0:off1:off2:on3:on4:on5:on6:off
sshd0:off1:off2:on3:on4:on5:on6:off
sysstat0:off1:on2:on3:on4:on5:on6:off

当然第三种方法也等同于下面的方法原理:

[root@alon~]#chkconfig--list|grep3:on|grep-vE"crond|sshd|rsyslog|network|sysstat"|awk'{print$1}'|sed-r's#(.*)#chkconfig\1off#g'|bash
[root@alon~]#chkconfig--list|grep"3:on"
crond0:off1:off2:on3:on4:on5:on6:off
network0:off1:off2:on3:on4:on5:on6:off
rsyslog0:off1:off2:on3:on4:on5:on6:off
sshd0:off1:off2:on3:on4:on5:on6:off
sysstat0:off1:on2:on3:on4:on5:on6:off

4、关闭iptables防火墙

在日常工作中,一般只有配置外网IP的LInux才需要开启防火墙,但即使有外网IP,高并发,高流量的业务服务器仍然不能开启防火墙,因为开启后会有较大的性能损失,导致网站访问速度慢,所以最好使用硬件防火墙了。关闭防火墙的命令如下:

[root@alon~]#/etc/init.d/iptablesstop
iptables:SettingchainstopolicyACCEPT:filter[OK]
iptables:Flushingfirewallrules:[OK]
iptables:Unloadingmodules:[OK]
[root@alon~]#/etc/init.d/iptablesstop##重复一遍,确保关闭
[root@alon~]#chkconfigiptablesoff##关闭开机自启动命令
[root@alon~]#chkconfig--list|grepiptables
iptables0:off1:off2:off3:off4:off5:off6:off

5、Linux最小化安装原则的好处

安装Linux系统最小化,即选包最小化,yum安装软件包也要最小化,无用的包不装。

开机自启动服务最小化,即无用的服务不开启

操作命令最小化。例如 能用"rm -f test.txt" 就不用"rm -fr test.txt"

登陆Linux用户最小化,平时没有特殊需求不登录root,用普通用户登陆

普通用户授权最小化,只给用户必需的管理系统的命令

Linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除文件

程序服务运行最小化,即程序服务运行应尽量不用root身份运行

6、更改SSH服务器端远程登录的配置

Windows远程端口为3389,管理员是administrator,普通用户是guest;Linux管理用户是root,普通用户可以有多个,远程端口默认为22,。为了安全,我们需更改自己的SSH远程端口:

[root@alon~]#cp/etc/ssh/sshd_config/etc/ssh/sshd_config.bak
[root@alon~]#vim/etc/ssh/sshd_config
####以下为新增加的内容,以替换默认配置####
Port60022##端口范围0-65535,建议大于1024
PermitRootLoginno##是否允许密码为空的用户登陆
PermitEmptyPasswordsno##是否允许root用户登陆,[yes|no|without-password|forced-commands-only]
UseDNSno##指定sshd是否应该对远程主机名进行反向解析,已检查此主机名是否与其IP地址真实对应,默认为yes
GSSAPIAuthenticationno##解决Linux之间使用SSH远程连接慢的问题
####--------END-------####

##重启sshd服务以生效以下两种重启方法
[root@alon~]#/etc/init.d/sshdreload
Reloadingsshd:[OK]
[root@alon~]#/etc/init.d/sshdrestart
Stoppingsshd:[OK]
Startingsshd:[OK]

第二种方法使用命令直接修改sshd_config 的内容,本人不建议使用。

[root@alon~]#echo"########修改ssh默认登录端口,禁止root用户登陆#######"\
>cp/etc/ssh/sshd_config/etc/ssh/sshd_config.`date+"%F%H%M%S"`\
>sed-i's%#Port22%Port60022%'/etc/ssh/sshd_config\
>sed-i's%#PermitRootLoginyes%PermitRootLoginno%'/etc/ssh/sshd_config\
>sed-i's%#PermitEmptyPasswordsno%PermitEmptyPasswordsno%'/etc/ssh/sshd_config\
>sed-i's%#UseDNSyes%UseDNSno%'/etc/ssh/sshd_config\
>sed-i's%#GSSAPIAuthenticationyes%GSSAPIAuthenticationno%'/etc/ssh/sshd_config\
>grep"USEDNS|60022|RootLogin|Emptypass|GSSAPIAuthentication"/etc/ssh/sshd_config\
/etc/init.d/sshdreload

优化上面的内容:

[root@alon~]#sed-ir'13iPort60022\nPermitRootLoginno\nPermitEmptyPasswordsno\nUseDNSno\nGSSAPIAuthenticationno'/etc/ssh/sshd_config
[root@alon~]#sed-n'13,17p'/etc/ssh/sshd_config
Port60022
PermitRootLoginno
PermitEmptyPasswordsno
UseDNSno
GSSAPIAuthenticationno
####在第13行插入上述内容###
/etc/init.d/sshdreload

验证登陆地址及端口

[root@alon~]#netstat-an|grep192.168.0.25
tcp00192.168.0.62:60022192.168.0.25:5789ESTABLISHED
tcp00192.168.0.62:22192.168.0.25:5761ESTABLISHED
tcp00192.168.0.62:22192.168.0.25:14680ESTABLISHED

现在只能通过richy 登陆并且用su - root命令切换到root.

----------除了以上SSH介绍以外,还有更高级的SSH安全策略如下:---------

[root@alon~]#sed-n'13,20p'/etc/ssh/sshd_config
Port60022
PermitRootLoginno
PermitEmptyPasswordsno
UseDNSno
GSSAPIAuthenticationno
#Port22
#AddressFamilyany
#ListenAddress192.168.0.25##表示指定监听本机内网的IP地址,防止其他主机登陆

-------通过防火墙限制仅能使用内网IP连接此服务器,限制命令如下:

[root@alon~]#iptables-IINPUT-ptcp--dport60022-s192.168.0.0/24-jACCEPT

7、利用sudo控制用户对系统命令的使用权限

为了安全管理,将需要root权限的普通用户加入sudo管理,这样就可以在普通用户模式下,使用一部分root权限的命令管理服务器了。

[root@alon~]#visudo##相当于直接编辑/etc/sudoers,使用命令visudo更安全和方便
98rootALL=(ALL)ALL
99richyALL=(ALL)/usr/sbin/useradd,/usr/sbin/userdel
用户机器=(授权使用哪个角色的权限)授权的命令

如果给richy的命令为ALL 则拥有和root一样的权限:

99richyALL=(ALL)NOPASSWD:ALL
##结尾的ALL即相当于完全的系统管理权限
##结尾的NOPASSWORD表示提权执行命令的时候不需要提示输入密码
[root@alon~]#greprichy/etc/sudoers##检查是否配置成功
richyALL=(ALL)NOPASSWD:ALL

也可以使用三剑客来增加sudo授权(仅限于批量管理的情况):

[root@alon~]#cp/etc/sudoers/etc/sudoers.`date"+%F%H%M%S"`
[root@alon~]#echo"richyALL=(ALL)NOPASSWD:ALL">>/etc/sudoers
[root@alon~]#tail-1/etc/sudoers
richyALL=(ALL)NOPASSWD:ALL

说明richy用户就可以通过sudo ls -l /root 来执行root用户的权限管理命令了;

--通过sudo授权管理后,所有用户执行授权的特殊权限格式为 "sudo 命令"

--如果需要切换到root执行相关操作,可以通过“sudo su -”命令,此处的密码为当前用户的密码

--执行“sudo -l”命令可以查看当前用户被授予的sudo权限集合如下:

[richy@alon~]$sudo-l
MatchingDefaultsentriesforrichyonthishost:
requiretty,!visiblepw,always_set_home,env_reset,env_keep="COLORSDISPLAYHOSTNAMEHISTSIZE
INPUTRCKDEDIRLS_COLORS",env_keep+="MAILPS1PS2QTDIRUSERNAMELANGLC_ADDRESSLC_CTYPE",
env_keep+="LC_COLLATELC_IDENTIFICATIONLC_MEASUREMENTLC_MESSAGES",env_keep+="LC_MONETARY
LC_NAMELC_NUMERICLC_PAPERLC_TELEPHONE",env_keep+="LC_TIMELC_ALLLANGUAGELINGUAS_XKB_CHARSET
XAUTHORITY",secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

Userrichymayrunthefollowingcommandsonthishost:
(ALL)NOPASSWD:ALL

说明:对于Linux系统的bash内置命令,一般无法进行sudo授权,比如cd命令。

在工作环境中,可以使用ldap统一认证登陆及授权管理的方式(只要一个账号和密码,全公司多个机房系统内都可通行SVN/VPN/SSH)。

8、Linux中文的支持及显示

在日常工作中,我们会需要用到中文的支持以及显示,所以与之相关的字符集包括GBK 、UTF-8

[root@alon~]#cp/etc/sysconfig/i18n/etc/sysconfig/i18n.bak
[root@alon~]#echo'LANG="ZH_cn.UTF-8"'>/etc/sysconfig/i18n
[root@alon~]#source/etc/sysconfig/i18n
[root@alon~]#echo$LANG
ZH_cn.UTF-8

9、设置Linux服务器时间同步

手动同步方法:

[root@alon~]#/usr/sbin/ntpdatetime.nist.gov
1Oct02:52:58ntpdate[6876]:steptimeserver128.138.141.172offset5471923.694453sec
[root@alon~]#whichntpdate
/usr/sbin/ntpdate

利用定时任务每5分钟执行一次时间同步:

[root@alon~]#echo'######NTPServerbyrichyat2016-10-1######'>>/var/spool/cron/root
[root@alon~]#echo'*/5****/usr/sbin/ntpdatetime.nist.gov>/dev/null2>&1'>>/var/spool/cron/root
[root@alon~]#crontab-l
######NTPServerbyrichyat2016-10-1######
*/5****/usr/sbin/ntpdatetime.nist.gov>/dev/null2>&1

以上命令等同于 执行crontab -e 直接编辑。在服务器数量多的时候可以部署时间服务器。

10、历史记录数以及登陆超时环境变量设置

设置限制账号超时时间的命令如下(临时生效):

[root@alon~]#exportTMOUT=10
[root@alon~]#timedoutwaitingforinput:auto-logout##10秒展示超时并退出

设置Linux的命令行历史记录数,history命令记录文件为~/.bash_histroy

[richy@alon~]$exportHISTSIZE=1000##history的缓存命令数量

把上述命令放入配置文件中,可以使其永久生效:

[root@alon~]#echo'exportTMOUT=300'>>/etc/profile
[root@alon~]#echo'exportHISTSIZE=1000'>>/etc/profile
[root@alon~]#echo'exportHISTFILESIZE=10'>>/etc/profile
[root@alon~]#tail-3/etc/profile
exportTMOUT=300##连接超时时间控制变量
exportHISTSIZE=1000##命令行的历史记录数量变量
exportHISTFILESIZE=10##历史记录文件的命令数量变量(~/.bash_history)
[root@alon~]#source/etc/profile

更多的变量可以通过man bash查看。

11、调整Linux系统文件描述符数量

文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件。文件描述符与包括相关信息(如文件的打开模式、文件的位置类型、文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文。对于内核而言,所有打开的文件都是通过文件描述符引用的。当打开一个文件,或创建一个文件,内核向进程返回一个文件描述符。当读或者写一个文件时,使用open或creat返回文件的描述符标识该文件,并将其作为参数传递给read或write,Linux服务器文件描述符设置情况可以用ulimit -n 命令,

[root@alon~]#ulimit-n
1024

但是对于高并发的服务器来说,这个默认设置是不够的,需要调整;

可以直接编辑/etc/security/limits.conf 在结尾加上这一句:

*-nofile65535

或者直接向文件追加一句

[root@alon~]#echo'*-nofile65535'>>/etc/security/limits.conf

说明:配置完成后需要重新登录才能生效

[richy@alon~]$ulimit-n
65535

也可以使用脚本直接把“ulimit -SHn 65535”加入到开机启动,每次开机时生效:

[root@alon~]#cat>>/etc/rc.local<#-susethe&#39;soft&#39;resourcelimit
>#-Husethe&#39;hard&#39;resourcelimit
>#-nthemaximumnumberofopenfiledescriptors
>ulimit-HSn65535
>#-sthemaximumstacksize
>ulimit-s65535
>EOF

12、Linux服务器内核参数的优化

主要是针对业务服务应用二进行的内核参数调整,优化没有统一的标准,下面的方法仅供参考。

优化方法是执行 vi /etc/sysctl.conf 命令到文件结尾,然后添加如下内容:

###这个优化适合Apache、Nginx、Squid等多种WEB应用,特殊的业务可能需要略作调整。
net.ipv4.tcp_fin_timeout=2
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_keepalive_time=600
net.ipv4.ip_local_port_range=400065000
net.ipv4.tcp_max_syn_backlog=16384
net.ipv4.tcp_max_tw_buckets=36000
net.ipv4.route.gc_timeout=100
net.ipv4.tcp_syn_retries=1
net.ipv4.tcp_synack_retries=1
net.core.somaxconn=16384
net.core.netdev_max_backlog=16384
net.ipv4.tcp_max_orphans=16384
#一下参数是对iptables防火墙的优化,防火墙不开启会提示,可以忽略不计
net.nf_conntrack_max=25000000
net.netfi1ter.nf_conntrack~max=25000000
net.netfilter.nf_conntrack~tcp-t1&#39;meout_estab1ished=180
net.netfilter.nf_conntrack_tcp_t1&#39;meout_t1&#39;me_wait=120
net.netfilter.nf_conntrack*tcp~t1&#39;meout,close_wait=60
net.netfilter.nf_conntrack*tcp~t1&#39;meout*fin__wait=120

将上面的内核参数值加入/etc/sysctl.conf 文件中,然后执行如下命令使之生效:

[root@alon~]#sysctl-p
net.ipv4.ip_forward=0
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.default.accept_source_route=0
kernel.sysrq=0
kernel.core_uses_pid=1
net.ipv4.tcp_syncookies=1
error:"net.bridge.bridge-nf-call-ip6tables"isanunknownkey
error:"net.bridge.bridge-nf-call-iptables"isanunknownkey
error:"net.bridge.bridge-nf-call-arptables"isanunknownkey
kernel.msgmnb=65536
kernel.msgmax=65536
kernel.shmmax=68719476736
kernel.shmall=4294967296
net.ipv4.tcp_fin_timeout=2
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_keepalive_time=600
net.ipv4.ip_local_port_range=400065000
net.ipv4.tcp_max_syn_backlog=16384
net.ipv4.tcp_max_tw_buckets=36000
net.ipv4.route.gc_timeout=100
net.ipv4.tcp_syn_retries=1
net.ipv4.tcp_synack_retries=1
net.core.somaxconn=16384
net.core.netdev_max_backlog=16384
net.ipv4.tcp_max_orphans=16384
net.nf_conntrack_max=25000000
error:"net.netfi1ter.nf_conntrack~max"isanunknownkey
error:"net.netfilter.nf_conntrack~tcp-t1&#39;meout_estab1ished"isanunknownkey
error:"net.netfilter.nf_conntrack_tcp_t1&#39;meout_t1&#39;me_wait"isanunknownkey
error:"net.netfilter.nf_conntrack*tcp~t1&#39;meout,close_wait"isanunknownkey
error:"net.netfilter.nf_conntrack*tcp~t1&#39;meout*fin__wait"isanunknownkey

如果实在CENTOS 6 环境中,必须要开启iptables服务才不会出现上述的报错,但是也可以不予理睬,将来开启防火墙后就没有这个提示了。

扩展:sysctl.conf内核文件中的参数含义可以参考一下博客内关于内核参数详细解释。

13、定时清理邮件服务临时目录垃圾文件

Centos 5 系统默认装Sendmail服务,因此邮件临时存放地点为 /var/spool/clientmqueue。

Centos 6 系统默认装Postfix服务,因此邮件临时存放点位 /var/spool/postfix/maildrop。

以上两个目录容易被垃圾文件占满,导致系统inode数量耗尽,从而无法存放新文件。

手动清理方法:

[root@alon~]#find/var/spool/clientmqueue/-typef|xargsrm-f##用于CENTOS5
[root@alon~]#find/var/spool/postfix/maildrop/-typef|xargsrm-f##用于CENTOS6

写成脚本,加入定时任务每日凌晨0点自动执行清理:

[root@alon~]#mkdir-p/server/scripts
[root@alon~]#echo"find/var/spool/postfix/maildrop/-typef|xargsrm-f">/server/scripts/del_mail_files.sh
[root@alon~]#cat/server/scripts/del_mail_files.sh
find/var/spool/postfix/maildrop/-typef|xargsrm-f
[root@alon~]#echo"0000***/bin/sh/server/scripts/del_mail_files.sh>/dev/null2>&1">>/var/spool/cron/root
[root@alon~]#crontab-l##查看定时任务列表
######NTPServerbyrichyat2016-10-1######
*/5****/usr/sbin/ntpdatetime.nist.gov>/dev/null2>&1
0000***/bin/sh/server/scripts/del_mail_files.sh>/dev/null2>&1
[root@alon~]#df-i##查看系统inode总量、剩余量、使用量
FilesystemInodesIUsedIFreeIUse%Mountedon
/dev/mapper/vg_alon-lv_root29900806647829236023%/
tmpfs48603914860381%/dev/shm
/dev/sda1128016391279771%/boot

14、隐藏Linux版本信息提示

在登录到Linux主机钱,会显示系统的版本和内核,为了不让坏人利用我们可以修改显示内容:

[root@alon~]#cat/etc/issue
CentOSrelease6.5(Final)
Kernel\ronan\m
[root@alon~]#cat/etc/issue.net
CentOSrelease6.5(Final)
Kernel\ronan\m
[root@alon~]#>/etc/issue
[root@alon~]#>/etc/issue.net
[root@alon~]#cat/etc/issue/etc/issue.net

15、锁定关键系统文件,防止被提权篡改

要锁定关键系统文件,必须对账号密码文件及启动文件加锁,防止被篡改,如下命令:

[root@alon~]#chattr+i/etc/passwd/etc/shadow/etc/group/etc/gshadow/etc/inittab
##解锁命令如下
[root@alon~]#chattr-i/etc/passwd/etc/shadow/etc/group/etc/gshadow/etc/inittab

如果想更加暗转,可以吧chattr 改名转移,防止被坏人利用。命令如下:

[root@alon~]#mv/usr/bin/chattr/usr/bin/richylocal##改名
[root@alon~]#chattr+i/etc/passwd/etc/shadow/etc/group/etc/gshadow/etc/inittab
-bash:/usr/bin/chattr:Nosuchfileordirectory
[root@alon~]#richylocal+i/etc/passwd/etc/shadow/etc/group/etc/gshadow/etc/inittab
[root@alon~]#richylocal-i/etc/passwd/etc/shadow/etc/group/etc/gshadow/etc/inittab
[root@alon~]#mv/usr/bin/richylocal/etc/chattr##还原成chattr

16、清楚多余的系统虚拟账号

此步骤谨慎操作,不能确定就不要删除,一般情况下,一个规范的系统提供的服务都比较少,因此系统中默认的绝大多数虚拟用户都可以删除,例如:

binadmlphaltmailuucpoperatorgamesgopherftpdbusvcsaabrtntpsaslauthpostfixtcpdump等。

17、为GRUB菜单加密

防止他人修改grub进行内核等启动设置。

(1)先用/sbin/grub-md5-crypt产生一个MD5密码串,命令如下:

[root@alon~]#/sbin/grub-md5-crypt
Password:
Retypepassword:
$1$cc1Q./$PS9.NLcRTAkvS6NBePS771

(2)修改gurb.conf文件,命令如下:

[root@alon~]#vim/etc/grub.conf
#grub.confgeneratedbyanaconda
#
#Notethatyoudonothavetorerungrubaftermakingchangestothisfile
#NOTICE:Youhavea/bootpartition.Thismeansthat
#allkernelandinitrdpathsarerelativeto/boot/,eg.
#root(hd0,0)
#kernel/vmlinuz-versionroroot=/dev/mapper/vg_alon-lv_root
#initrd/initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password--md5$1$cc1Q./$PS9.NLcRTAkvS6NBePS771
##增加的password加在splashimage和title之间,否则可能无法生效
titleCentOS(2.6.32-431.el6.x86_64)
root(hd0,0)
kernel/vmlinuz-2.6.32-431.el6.x86_64roroot=/dev/mapper/vg_alon-lv_rootrd_NO_LUKSLANG=en_US.UTF-8rd_LVM_LV=vg_alon/lv_swaprd_NO_MDSYSFONT=latarcyrheb-sun16crashkernel=autord_LVM_LV=vg_alon/lv_rootKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet
initrd/initramfs-2.6.32-431.el6.x86_64.img

设置完成后,下次开机需要管理grub时就会提示输入密码;

18、精致LINUX系统被ping

此项优化不是必须的,相反,有时我们自己也会通过ping来检查服务器的连通性,如果有特殊的禁止PING的要求,也可以设置禁止PING。从安全的角度来说,禁止PING还是会增加系统的安全性。

[root@alon~]#echo"net.ipv4.icmp_echo_ignore_all=1">>/etc/sysctl.conf
[root@alon~]#tail-1/etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1
[root@alon~]#sysctl-p

其实这个禁止PING的方法不是最佳的,因为禁止后,我们自己也无法通过PING来检查了,我们现在还原禁止PING的操作:

删除/etc/sysctl.conf中的net.ipv4.icmp_echo_ignore_all=1,保存后并执行如下命令
[root@alon~]#echo0>/proc/sys/net/ipv4/icmp_echo_ignore_all

19、升级具有典型漏洞的软件版本

此处仅列出常用的一些软件并对其进行修复,比如openssl、openssh、bash。

(1)首先查看相关软件的版本号:

[root@alon~]#rpm-qaopensslopensshbash
bash-4.1.2-15.el6_4.x86_64
openssl-1.0.1e-15.el6.x86_64
openssh-5.3p1-94.el6.x86_64

(2)升级一直漏洞的软件版本到最新:

[root@alon~]#yuminstall-yopensslopensshbash


Linux基本优化的总结

1.不用 root 登陆管理系统,而已普通用户身份登录,通过sudo授权管理。

2.更改默认的SSH端口,禁止root用户远程连接,更可以更改SSH只监听内网端口。

3.定时自动更新时间服务器时间,使其与互联网时间同步。

4.配置yum更新源,从国内更新下载安装软件包。

5.关闭SELinux及iptables(在工作中,如果有外部IP一般要打开iptables,高并发高流量的服务器可能无法开启)。

6.调整文件描述符数量,进程及文件的打开都会消耗文件描述符数量。

7.定时自动清理邮件临时目录垃圾文件,防止磁盘inode被小文件占满。

8.精简并保留必要的开机自动启动服务(如crond sshd network rsyslog sysstat)。

9.Linux内核参数优化/etc/sysctl.conf,执行sysctl -p生效。

10.更改系统字符集为"zh_CN.UTF-8",使其支持中文,防止乱码。

11.锁定关键系统文件,如 passwd shadow group gshadow inittab等,并把chattr改名并转移。

12.清空/etc/issue、/etc/issue.net,去除系统及内核版本的登录前提示。

13.清除多余的系统虚拟账号。

14.为GRUB引导菜单加密。


VMware虚拟机克隆虚拟机后网络不通的问题。

1.编辑网卡对应的eth0配置文件,删除 MAC地址及UUID。

[root@alon~]#vim/etc/sysconfig/network-scripts/ifcfg-eth0
##删除下面的两条记录,
HWADDR=00:0C:29:E9:20:FF
UUID=10447b7c-2ace-4ea6-8f3b-83119a8bd77d
##也可以根据实际情况对MAC和UUID进行修改。

2.清空下列文件:

[root@alon~]#>/etc/udev/rules.d/70-persistent-net.rules
##提示:机器名可以不更改

3.重启系统,执行reboot或在VM外重启系统。

说明:

这可能是VM克隆为了防止源机器和克隆机器启动网络配置地址冲突而做的保护策略,也有可能是VM官方没有考虑到这个问题。

相关文章
最新文章
热点推荐