1、关闭SELINUX――――vi、setenforce 0
vi /etc/selinux/config #修改SELINUX=disabled或permissive
cat /etc/selinux/config #查看修改情况
grep SELINUX /etc/selinux/config #直接过滤修改结果
getenforce #查询状态(以上的方式需要重启才永久生效)
setenforce 0 #临时关闭SELINUX(重启后失效)
2、设定运行级别默认是3(多用户文本模式)――runlevel
runlevel #查看当前运行级别
3、精简开机系统启动服务
命令行:ntsysv 一个一个启动服务取消
setup 选择“system service” 一个一个启动服务取消
对刚安装完成的系统建议开机启动以下4个服务:
crond:系统定时服务;
network:网络服务;
sshd:调试软件连接服务;
syslog:系统日志服务。
shell代码如下:
LANG=en #系统修改为英文格式
for service in ‘chkconfig --list|grep 3:on|awk ‘{print $1}’’;do chkconfig --level 3 $service off;done
#关闭系统所有服务
for service in crond network sshd syslog;do chkconfig --level 3 on;done 启动对应的4个服务
chkconfig --list|grep 3:on #查看结果
4、用户权限分配(sudo):
在root用户,用命令visudo编辑,添加用户权限:
user MACHINE=COMMANDS(用户名或%用户组、机器(切换角色)=操作权限)-----格式
root ALL(ALL) ALL
lrj06 ALL(ALL) NOPASSWD:ALL―高级用户权限与root一样(且不需密码,可不用)
l006 ALL(ALL) /usr/sbin/useradd,/usr/sbin/userdel――普通用户具体权限
sudo su - 或su - #可以切换到root用户下。
sudo /usr/sbin/useradd x #普通用户经过授权后可以用这个命令创建用户
sudo 执行命令 #高级用户(权限与root一样)执行命令前加“sudo”
sudo -l #查询当前用户权限
echo $PATH #查询到前环境变量
which 命令名 #root用户下查询到命令存放的路径
vi .bash_profile #添加在root中查询到的命令路径到普通环境变量中,在执行命令时就可以不输入命令的全路径
. .bash_profile #修改后需要重新加载才生效
5、更改SSH登陆(出于安全需求)
/etc/ssh/sshd_config #修改此服务
less sshd_config #查看文件内容
cp sshd_config sshd_config.ori #先备份文件(生产环境下的习惯)
######修改文件如下4项:
Port 52113 #修改端口
PermitRootLogin no #禁止root远程登陆
PermitEmptyPasswords no #禁止空密码远程登陆
UseDNS no #禁止用域名解析(只能用ip地址登陆)
######
/etc/init.d/sshd restart #重启服务(yum安装的服务和rpm安装的软件都在“/etc/init.d/”下可重启)
netstat -lnt #查看服务的端口
lsof -i :52113 #查看对应端口的服务
netstat -an|grep -i est #查看当前系统的连接服务
w #查看当前系统的连接用户
6、修改中文显示
字符集的文件存放在:/etc/sysconfig/i18n中
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori #先备份文件(生产环境下的习惯)
echo ‘LANG=”zh_CN.GB18030”’ >/etc/sysconfig/i18n #用中文字符集覆盖原文件内容
./etc/sysconfig/i18n #source(.)文件使修改生效
注:Linux对中文的支持不很好,建议尽量用英文。
7、服务器时钟同步
/sbin/ntpdate time.windows.com #一次性的时间同步:ntpdate 时钟服务器
crontab -e #输入如下内容并保存
*/5 * * * * /usr/sbin/ntpdate time.windows.com > /dev/null 2>&1 #每隔5分钟同步一次
crontab -l 查看执行定时的任务
注:上述时间同步只适应在中小型服务器群内,如有几十台以上,请搭建NTP Server提供给各服务器作同步。
8、加大服务器的文件描述符(Linux中一个进程占用内核一个文件描述符,默认1024个)
ulimit -n #查看文件描述符数量
echo ‘* - nofile 65535’ >> /etc/security/limits.conf #更改配置文件
9、调整内核参数文件/etc/sysctl.conf
――本优化适合apache、nginx、squid等多种Web应用,特殊业务也可以作略作调整。
以下是常见的生产环境下的内核优化(添加下面参数到/etc/sysctl.conf文件中):
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.tcp_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 #使配置生效
10、锁定关键系统文件―――chattr (参数:+i:锁定;-i:解锁)
chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr +i /etc/gshadow
11、去除登陆时显示系统版本信息
cp /etc/issue /etc/issue.ori #先备份文件(生产环境下的习惯)
cat /dev/null > /etc/issue #清除开机显示系统版本信息