设为首页 收藏本站
查看: 1426|回复: 0

[经验分享] Linux安装后基本优化思路

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-5 09:32:25 | 显示全部楼层 |阅读模式
查看系统环境

1
2
[iyunv@xuliangwei ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)



1
2
[iyunv@xuliangwei ~]# uname –a
Linux xuliangwei.com 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux




1.精简开机系统
保留5个必须:sshd|rsyslog|network|crond|sysstat
sshd
远程连接Linux服务器时需要用到这个服务器程序,所以必须要开启,否则将无法连接Linux服务器。
rsyslog
        是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog将各种信息记录系统日志文件中,Centos6以前服务器的名字为syslog
network
        系统启动时,若想激活/关闭各个网络接口,则应(必须)考虑开启。
crond
        该服务用于周期性地执行系统及用户配置的任务计划。有要周期性执行的任务,任要开启,此服务几乎是生产场景必须要用的一个软件。
sysstat
        sysstat是一个软件包,包含检测系统性能及效率的一组工具,这些工具对于系统性能数据很有帮助,比如CPU使用率,硬盘和网络吞吐数据等,这些数据的分析,有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务器的助手。
sysstat软件包集成的主要工具为:
        iostat                工具提供CPU使用率及硬盘吞吐效率的数据;
        mpstat        工具提供与单个或多个处理器相关的数据;
        sar                        工具负责收集、报告并存储系统活跃的信息;
其他不用开机自启动的处理方法:
1). setup-->SystemServices-->取消*表示关闭
2)netsysv-->取消*表示关闭
3)使用chkconfig进行关闭
        chkconfig name off
使用for循环,配合awk清理不需要开机自启动服务
1
2
for i in `chkconfig --list | awk '{print $1}' | grep -Ev "sshd|network|rsyslog|sysstat|crond"`; do chkconfig $i off; done
chkconfig --list |grep 3:on |awk '{print $1}'|grep -Ev "crond|network|rsyslog|sshd|sysstat" |sed -r 's/(.*)/chkconfig \1 off /g' |bash



2.Linux最小化安装
运维思想最小化原则
2.1、安装Linux系统最小化,即选包最小化,yum安装软件包也要最小化,无用的包不装。
2.2、操作命令最小化。例如:用rm -f text.txt 而不用rm -rf
2.3、登录Linux用户最小化。平时没有需求不用root登录,用普通用户登录即可。
2.4、普通用户授权权限最小化,即只给必须的管理系统的命令。
2.5、Linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除。(理论上禁止)
3.SSH优化
配置文件
        /etc/ssh/sshd_config                服务端
        /etc/ssh/ssh_config                客户端
Port        52113                                修改端口52113
UseDNS yes                                 修改为No        会反向查询客户端主机名,进行验证,防止客户端欺骗
PermitRootlogin  no                        禁止root登录
GSSAPIAuthentication  yes         取消,打开NO        解决Linux之间使用ssh连接慢的问题
PermitEmpasswords        no                禁止使用空密码(默认为空)
ListenAddress        192.168.1.x        只运行服务器上的内网地址来进行远程连接,外网地址直接拒绝,可以用Vpn做跳板进入局域网,通过这样来访问,更加的安全
配置文件修改
1
2
3
4
5
6
######xuliangwei######
Port 52113
UseDNS no
PermitRootlogin no
GSSAPIAuthentication no
######20150627######





可以使用sed来进行添加
1
[iyunv@student ~]# sed -ir '12 iPort 52113\nUseDNS no\nPermitRootlogin no\nGSSAPIAuthentication no' /etc/ssh/sshd_config



4.其他优化
4.0中文乱码
客户端连接工具也必须是UTF-8
临时生效
1
export LANG=en_US.UTF-8



永久生效
1
2
vim /etc/sysconfig/i18n
更改 LANG="en_US.UTF-8"



4.1时间同步
时间服务器
1
2
time.nist.gov
time.windows.com



手动修改时间
1
date -s "2015/05/28 12:00"



ntpdate定时和互联网时间同步
1
echo "*/5 * * * * ntpdate time.windows.com >/dev/null 2>&1"



服务器在50-100台之间可以搭建时间同步服务器ntpserver
4.2优化历史记录
history 查看历史记录 默认100条
参数:
        -c:清空历史记录
        -d:指定删除一行
export HISISIZE=5(控制终端)

HISTFILESIZE=5                        (控制用户家目录下的记录)
1
2
3
4
5
6
7
[iyunv@student ~]# HISTFILESIZE=5
[iyunv@student ~]# cat ~/.bash_history
Test
Welcome to xuliangwei Linux
EOF
exit
[iyunv@student ~]#



清空历史记录终端
1
2
3
[iyunv@student ~]# history -c
[iyunv@student ~]# history
  734  history



4.3终端超时
临时生效
1
[iyunv@student ~]# export TMOUT=300ms





永久生效
1
echo "export TMOUT=300ms" >> /etc/profile



4.4加大文件描述符
每个进程启动都会占用文件描述符,如果过文件描述符,会导致进程无法启动
查看默认文件描述符
ulinit -n
参数:
        -S:软
        -H:硬
调整文件描述符
临时生效
1
ulimit -SHn 65535



永久生效
1
echo "* - nofile 65535" >>/etc/security/limits.conf



4.5锁定系统关系文件
锁定文件系统
1
[iyunv@student ~]# chattr +i /etc/passwd /etc/shadow /etc/gshadow /etc/inittab



查看锁定文件
1
2
3
4
5
[iyunv@student ~]# lsattr  /etc/passwd /etc/shadow /etc/gshadow /etc/inittab
----i--------e- /etc/passwd
----i--------e- /etc/shadow
----i--------e- /etc/gshadow
----i--------e- /etc/inittab



解除锁定
1
[iyunv@student ~]# chattr -i /etc/passwd /etc/shadow /etc/gshadow /etc/inittab



再次查看
1
2
3
4
5
[iyunv@student ~]# lsattr  /etc/passwd /etc/shadow /etc/gshadow /etc/inittab
-------------e- /etc/passwd
-------------e- /etc/shadow
-------------e- /etc/gshadow
-------------e- /etc/inittab



4.6禁止Linux被ping
禁止Linux被ping会增加系统安全
1
echo "net.ipv4.icmp_echo_ignore_all=1">>/etc/sysctl.conf



使其生效
1
sysctl -p



工作中不会这样禁止,一般使用防火墙来过滤
4.7调整yum源
由于默认的yum源是从centos官网下载会很慢,调整为国内的速度会快很多。
备份yum源
1
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.xuliangwei.20150629



CentOS 5源
1
[iyunv@student ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo



CentOS6源
1
[iyunv@student ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo



1
2
CentOS 7源
[iyunv@student ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo



4.8隐藏Linux版本号
1
2
[iyunv@student ~]# >/etc/issue
[iyunv@student ~]# >/etc/issue     = cat > /dev/null /etc/issue



编辑/etc/motd (设置登录提示信息)
1
2
3
[iyunv@student ~]# cat >> /etc/motd << EOF
> Welcome to xuliangwei Linux
> EOF



4.9为grub添加密码
1
2
3
4
[iyunv@student ~]# /sbin/grub-md5-crypt
Password:
Retype password:
$1$gaVDJ$90LqgR4wtA/.9KFEaFw7F/



编辑 /etc/grub.conf
将密码添加至,title和splashimage之间。

5.定时清理邮件服务临时目录垃圾文件
CentOS5 系列的系统会默认安装sendmail服务,因此邮件临时存放地点的径
1
/var/spool/clientmqueue/



CentOS6 默认情况下没有安装sendmail服务,而是改装了postfix服务,因此邮件存放地点的路径为
1
/var/spool/postfix/maildrop/




以上两个目录很容易被垃圾文件填满导致系统的inode数量不够用,从而导致无法存放文件。
手动清理方法如下:
1
[iyunv@student ~]#find /var/spool/clientmqueue/ -type f | xargs rm -f



适合CentOS5的sendmail服务

1
[iyunv@student ~]#find /var/spool/postfix/maildrop/ -type f | xarfs rm -f



适合CentOS6的Postfix服务

定时清理方法为:将上述命令写成脚本,然后做定时任务,每天晚上0点执行一下。

6.关闭防火墙
6.1关闭iptables防火墙
        学习一般关闭掉防火墙,如果生产环境在做调试
查看防火墙
1
2
3
4
5
6
7
[iyunv@student ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination



关闭防火墙
1
2
3
4
[iyunv@student ~]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter           [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                           [  OK  ]




6.2关闭SElinux防火墙
修改/etc/selinux/config
1
SELINUX=enforcing修改为SELINUX=disabled



使用sed替换关闭selinux
1
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config




临时关闭
getenforce         查看
setenforce        1.开启 0.permissive
7.Linux内核优化
这儿所列参数是老男孩老师生产中常用的参数:
把参数添加到/etc/sysctl.conf中,然后执行sysctl -p使参数生效,永久生效       
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 32768
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_max=65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384




企业面试:Linux系统如何优化
Linux系统如何优化?
1.不用root管理,以普通用户的名义通过sudo授权管理。
2.更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至更改为只监听内网IP
3.
4.配置yum更新源,从国内更新源下载安装软件包。
5.关闭selinux及iptables(在工作场景中,如果有外部IP一般打开)
6.调整文件描述符的数量,进程及文件的打开都会消耗文件描述符。
7.定时自动清理邮件目录垃圾文件,防止inodes节点被沾满(注意centos5和centos6目录不同)
8.精简并保留必要的开机自启动服务(如crond、sshd、network、rsyslog、sysstat)
9.Linux内核参数优化/etc/sysctl.conf,执行sysctl -p 生效。
10.更改字符集,是其支持中文,但建议还是用英文字符集,防止出现乱码。
11.锁定关键系统文件如/etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
处理以上内容后把chattr、lsattr改名为xuliangwei,这样就安全多了。
12.清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的信息。
13.清楚多余的系统虚拟账号。
14.位grub菜单加密码。
15.禁止被PING
16.升级漏洞软件


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-94286-1-1.html 上篇帖子: centos6.6_x64升级firefox 下篇帖子: pure-ftp samba Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表