文章目录
- 1)更换yum/epel源
- 2)关闭SELinux
- 3)关闭防火墙iptables
- 4)精简开机自启动服务
- 5)修改Linux服务器字符集
- 6)内核优化
- 7)时间同步
- 8)加大文件描述
- 9)下载安装系统基础软件
- 10)处理/etc/bashrc以及/root/.bashrc
- 11)添加一个用户
- 12)将geek添加到sudo管理,以后geek就相当于管理员
- 13)优化SSH远程连接
- 14)命令行安全(不能使用,会导致查看操作历史的时候只有5条命令记录)
- 总结
-
- 1)Linux基础优化与安全重点小结:
- 2)性能优化的命令:
1)更换yum/epel源
1)更改yum源:从哪下载到哪找软件;(默认系统走外网去国外下载,非常的慢,需要翻墙,换成**国内的源会很方便
**)
#创建备份目录
mkdir -p /etc/yum.repos.d/{
default,back}#备份并更改为阿里云yum源
\mv /etc/yum.repos.d/*repo /etc/yum.repos.d/default
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo#备份并更改为阿里云epel源
\cp /etc/yum.repos.d/CentOS-Base.repo /yum.repos.d/back
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
#epel源:扩展的yum源(有些yum源里面没有的就要从这里下载)
2)关闭SELinux
说明:永久生效,需要重启计算机,可以设置临时更改
(1)检查配置文件
cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
(2)修改配置文件
sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
(3)不重启系统的临时生效办法
setenforce 0 #设置Permissive模式
getenforce #查生效情况
Permissive
(4)参数说明
# enforcing - SELinux security policy is enforced. 正常开启
# permissive - SELinux prints warnings instead of enforcing. 打印警告,但是也是禁止了。
# disabled - No SELinux policy is loaded. 禁止状态。`
3)关闭防火墙iptables
(1)关闭
/etc/init.d/iptables stop
(2)检查
/etc/init.d/iptables status
iptables: Firewall is not running.
(3)设置开机不自动启动
chkconfig iptables off
chkconfig --list iptables
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
4)精简开机自启动服务
chkconfig --list|egrep -v "sysstat|crond|sshd|network|rsyslog"|awk '{print "chkconfig "$1,"off"}'|bash
chkconfig --list|grep 3:on
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 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
5)修改Linux服务器字符集
cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
修改
cp /etc/sysconfig/i18n{
,.back}
echo 'LANG="en_CN.UTF-8"' > /etc/sysconfig/i18n
echo 'SYSFONT="latarcyrheb-sun16"' > /etc/sysconfig/i18n
生效
source /etc/sysconfig/i18n
检查
echo $LANG
6)内核优化
cat >>/etc/sysctl.conf<<EOF 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 = 4000 65000 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.netfilter.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_tcp_timeout_established = 180 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 EOF#生效配置文件
sysctl -p (让内核配置文件中的参数生效)
7)时间同步
echo '#time sync by oldboy at 2018-04-26' > /var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >> /var/spool/cron/root
crontab -l
8)加大文件描述
说明:
(每个服务都会有相应的文件打开和设置的;一个进程可以打开编写多少个文件;打开的文件数,如果查看编写的数量大于设置的数量就会出现打不开文件和服务的状况出现)
echo '* - nofile 65535 ' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
9)下载安装系统基础软件
yum install -y lrzsz nmap tree dos2unix nc
10)处理/etc/bashrc以及/root/.bashrc
(1)处理/etc/bashrc
vim /etc/bashrc
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\[\e[34;1m\]\u@\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\] \[\e[32;1m\]\t\[\e[0m\]]\\$ "
source /etc/bashrc(2)处理/etc/bashrc
vim /root/.bashrc
#添加如下2条,可以使grep在处理数据的时候进行高亮显示
alias grep='grep --color'
alias egrep='egrep --color'#保存后执行如下命令
. /root/.bashrc
#生效文件
11)添加一个用户
说明:
这个用户是用来替代root用户使用的,简化权限
#创建用户
useradd geek
#查看用户是否创建成功
id geek
uid=500(geek) gid=500(geek) groups=500(geek)
#通过echo输入密码通过管道传送给passwd设置密码,这个可以简化掉交互式输入密码
echo 123456|passwd --stdin geek
#设定密码成功
Changing password for user geek.
passwd: all authentication tokens updated successfully.
12)将geek添加到sudo管理,以后geek就相当于管理员
#备份sudoers文件
\cp /etc/sudoers /etc/sudoers.back
#增加sudo权限
echo "oldboy ALL=(ALL) NOPASSWD: ALL " >> /etc/sudoers
#查看最后一行是否增加成功
tail -1 /etc/sudoers
#使用命令验证设置是否有误
visudo -c
13)优化SSH远程连接
(1)备份配置文件
cp /etc/ssh/sshd_config{
,.back}
vim修改ssh服务的配置文件,在里面添加如下内容:
vim /etc/ssh/sshd_config
####Start by geekshuai#2018-04-26###
Port 52113 #使用大于10000的端口
PermitRootLogin no #禁止root远程登录
PermitEmptyPasswords no #禁止空密码登录
UseDNS no #不使用dns解析
GSSAPIAuthentication no #连接慢的解决配置
####End by geekshuai#2018-04-26###
保存后重启ssh服务
/etc/init.d/sshd restart
检查:
grep -A 5 -i 'Start by geekshuai' /etc/ssh/sshd_config
14)命令行安全(不能使用,会导致查看操作历史的时候只有5条命令记录)
echo 'export TMOUT=300' >>/etc/profile
echo 'export HISTSIZE=5' >>/etc/profile
echo 'export HISTFILESIZE=5' >>/etc/profile
查看~/.bash_history文件
cat ~/.bash_history
#查看最后三行添加信息是否正确
tail -3 /etc/profile
#生效文件
source /etc/profile #使得配置文件生效
总结
1)Linux基础优化与安全重点小结:
1)不用root登录管理系统,而以普通用户登录通过sudo授权管理。
2)更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至要更改SSH服务只监听内网IP。
3)定时自动更新服务器的时间,使其和互联网时间同步。
4)配置yum更新源,从国内更新源下载安装软件包。
5)关闭SELinux及iptables(在工作场景中,如果有外部IP一般要打开iptables,高并发高流量的服务器可能无法开启)。
6)调整文件描述符的数量,进程及文件的打开都会消耗文件描述符数量。
7)定时自动清理邮件临时目录垃圾文件,防止磁盘的inodes数被小文件占满(注意Centos6和Centos5要清除的目录不同)。
8)精简并保留必要的开机自启动服务(如crond、sshd、network、rsyslog、sysstat)。
9)Linux内核参数优化/etc/sysctl.conf,执行sysctl -p生效。
10)更改系统字符集为“zh_CN.UTF-8”,使其支持中文,防止出现乱码问题。
11)锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab, 处理以上内容后把chattr、lsattr改名为oldboy,转移走,这样就安全多了。
12)清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。
13)清除多余的系统虚拟用户账号。
14)为grub引导菜单加密码。
15)禁止主机被ping。
16)打补丁并升级有已知漏洞的软件。
2)性能优化的命令:
如果有兴趣还可以研究以下关于性能优化的命令
lsof:查看进程打开的文件
uptime:显示系统的运行时间及负载
free:查看系统内存信息
iftop:动态显示网络接口流量信息
vmstat:虚拟内存统计
mpstat:CPU信息统计
iostat:I/O信息统计
iotop:动态显示磁盘I/O统计信息
sar:收集系统信息
ethtool:查询网卡参数
mii-tool:管理网络接口的状态