最小化原则

1、安装系统最小化   

2、开启程序服务最小化

3、操作最小化原则

4、登录最小化原则

5、权限最小化原则

6、配置参数合理,不要最大化


一、更改SSH服务远程登陆配置

ls -l /etc/ssh/sshd_config
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim  /etc/ssh/sshd_config

#Port 1222   端口
#PermitRootLogin no  ;是否允许root远程登陆
#UseDNS no  是否使用DNS 
#PermitEmptyPasswords no 是否允许空密码登录
#GSSAPIAuthentication no

/etc/ssh/sshd_config reload
或者:/etc/ssh/sshd_config restart

二、临时关闭防火墙

/etc/init.d/iptables stop

三、角色切换配置

visudo
第9*行复制,粘贴
用户     机器=(授权哪个角色权利)           允许使用的命令
test            ALL=(ALL)                 NOPASSWD: ALL

扩展知识:

环境变量:PATH

/etc/profile

查看端口运行信息:

netstat -lntup

lsof -i :22


四、修改中文显示

cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8
LANG="zh_CN.GBK18030


五、时间同步

ntpdate 时间服务器地址

每隔5同步一次时间
定时任务
echo '#time sync by bcdn at 2018-3-10'>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'>>/var/spool/cron/root
crontab -l

六、加大服务器文件描述符

ulimit -n  #查看当前描述符
ulimit -HSn 65535  #重启失效
echo '*    -    nofile    65535'>>/etc/security/limits.conf

扩展:文件描述符

    文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于Unix、Linux这样的操作系统。


七、调整内核参数文件 /etc/sysctl.conf

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 = 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.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120

sysctl –p    #使配置文件生效

提示:由于CentOS6.X系统中的模块名不是ip_conntrack,而是nf_conntrack,所以在/etc/sysctl.conf优化时,需要把net.ipv4.netfilter.ip_conntrack_max 这种老的参数,改成net.netfilter.nf_conntrack_max这样才可以。
#另外,在此优化过程中可能会有报错:

1、5.8版本上

error: "net.ipv4.ip_conntrack_max"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_max"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait"is an unknown key

#这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack

modprobe ip_conntrack
echo "modprobe ip_conntrack">> /etc/rc.local

2、6.4版本上

error: "net.nf_conntrack_max"isan unknown key
error: "net.netfilter.nf_conntrack_max"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_established"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_time_wait"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_close_wait"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_fin_wait"isan unknown key

#这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack

modprobe nf_conntrack
echo "modprobe nf_conntrack">> /etc/rc.local

3、6.4版本上

error: "net.bridge.bridge-nf-call-ip6tables"isan unknown key
error: "net.bridge.bridge-nf-call-iptables"isan unknown key
error: "net.bridge.bridge-nf-call-arptables"isan unknown key

这个错误是由于自动处理可载入的模块bridge没有自动载入,解决办法是自动处理开载入的模块ip_conntrack

modprobe bridge
echo "modprobe bridge">> /etc/rc.local



八、修改登录提示

vim /etc/issue


九、锁定系统关键文件

上锁:chattr +i  /etc/passwd  /etc/shadow  /etc/group  /etc/gshadow  /etc/inittab

解锁:chattr +i  /etc/passwd  /etc/shadow  /etc/group  /etc/gshadow  /etc/inittab

mv /user/bin/chattr /user/bin/zdy1


十、磁盘挂载优化

man 8 mount


知识 扩展

linux生产环境若干优化实战

http://oldboy.blog.51cto.com/2561410/1336488


详解linux netstat输出的网络连接状态信息

http://oldboy.blog.51cto.com/2561410/1184139


庖丁解牛获取连接状态数的awk数组命令

http://oldboy.blog.51cto.com/2561410/1184165


awk数组命令经典生产实战应用拓展

http://oldboy.blog.51cto.com/2561410/1184177


老男孩培训第八节课前awk考试题案例(门户面试题解答)

http://oldboy.blog.51cto.com/2561410/1184206


linux生产服务器有关网络状态的优化措施

http://oldboy.blog.51cto.com/2561410/1184228