欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安装linux系统后的调优和安全设置

程序员文章站 2022-03-03 19:43:19
...

一、关闭SElinux功能

修改配置文件使其永远生效

vi /etc/seliunx/config
修改:SELINUX=disabled

•提示:修改完SElinux配置文件后重启系统才会生效,可以配合使用setenforce 0这个命令,这样在重启前后都可以使SElinux处于关闭状态

二、设定系统运行级别为3(文本模式)

系统运行级别为3代表使用文本命令行模式来管理linux系统

grep 3:initdefault /etc/inittab 
3:initdefault # 系统默认的运行级别,工作中常用,即文本模式
runlevel # 查看当前系统运行级别
init 5 # 只有安装桌面才可以执行startx

七种运行级别:
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

chkconfig操作命令:

chkconfig --list  #显示所有运行系统服务的运行状态
chkconfig --list sshd  #只显示指定的系统服务sshd的运行状态
chkconfig  --add sshd  #增加一个系统服务sshd,默认所有级别都关闭
chkconfig --level xx sshd on/off  #设置sshd的运行级别开启或关闭
chkconfig --del sshd  #删除系统服务sshd

三、精简开机系统自启动

五个企业环境中开机自启动的服务;
sshd:远程连接linux服务器必须开启
rsyslog:日志相关软件
network:网络服务
crond:系统和用户配置的计划任务周期性进行
sysstat:收集系统性能数据,有利于判断系统是否正常

四、关闭防火墙

对于高并发高流量的业务不适合开启iptables防火墙,一般这种业务需要在前端配置硬件防火墙
#关闭iptables防火墙

/etc/init.d/iptables stop

#关闭开机自启动

chkconfig iptables off

#查看iptables启动级别

chkconfig --list |grep iptables

五、更改ssh服务器端远程登入配置

•windows服务器端远程端口:3389,管理员为administrator,普通用户为guest;linux服务器远程端口为:22,管理员为root,普通用户随意

vi /etc/ssh/sshd_config
Port 2222 #修改自己的ssh端口
PermitRootLogin no #禁止用root登入自己的系统
PermitEmptyPasswords no #禁止密码为空的用户登入
UseDNS no #对远程主机进行反向解析,会减慢ssh连接速度
GSSAPIAuthentication no #解决ssh远程连接慢的问题

•更高级的ssh安全策略
更改ssh的监听ip
通过防火墙限制使用内网ip连接服务器
通过拨号VPN服务器接通内网然后访问这些服务器

六、通过sudo控制用户对系统命令的使用权限

•为了安全以及管理方便,需要将使用root权限的用户加入sudo管理,用户可使用自己的账号登入系统,用root的权限来管理系统

visudo == vi /etc/sudoers
#第98行
root    ALL=(ALL)    ALL
alex    ALL=(ALL)    /usr/sbin/useradd,/usr/sbin/userdel #用户alex能够使用useradd和userdel命令

•给普通用户创建root的权限

visudo
#第98行
alex    ALL=(ALL)    NOPASSWD:ALL    #alex拥有root所有权限不用输入密码

查看/root目录时需要sudo ls /root 通过sudo命令获取权限
注意:通过sudo授权后命令格式为:sudo 命令;
sudo -l 可以查看该用户被授权的sudo命令集合

七、linux中文显示设置

•GBK用2个字节表示一个中文,UTF-8用3个字节表示一个中文

vi /etc/sysconfig/i18n
LANG="zh_CN.GBK"  # 中文格式的GBK  
LANG="zh_CN.UTF-8"  # utf-8编码  <------------推荐
LANG="en_US.GBK"  # 英文格式的GBK
LANG="en_US.UTF-8"  # utf-8编码

•使用secureCRT可以设置编码格式,必须和系统设置的一样

Option--Session Option--Appearance
选项--会话选项--外观-- 字符编码

八、设置linux服务器时间同步

linux的时间同步服务为ntp服务,机器少时使用,机器多了可以布置内网的时间服务器

which ntpdate
/usr/sbin/ntpdate #输出
#更新系统时间
/usr/sbin/ntpdate time.nist.gov 或者 ntp.sjtu.edu.cn  可以去网上找合适的时间服务器

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

查看历史命令:history

vi /etc/profile
TIMEOUT=10 #链接超时时间
HISTSIZE=10 #命令行的历史记录数
HISTFILESIZE=10 #历史记录文件的命令数量

十、调整linux系统文件描述符数量

文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件;对于内核而言,所有打开的文件都是通过文件描述符引用的,打开一个文件,内核向进程返回一个文件描述符。。
查看文件描述符的命令
ulimit -n

方法一:
vi /etc/security/limits.conf
*    -    nofile    65535    # 最后一行添加
方法二:
echo '*    -    nofile    65535' >> /etc/security/limits.conf

配置完成后需要重新登入才会生效
加入开机启动项

vi /etc/rc.local
ulimit -HSn 65535

十一、linux服务器内核参数优化

跳过

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

df -i 查看磁盘inode的总量、使用量、剩余量

十三、隐藏linux版本的信息(登入时)

登入显示的版本信息存放在:/etc/issue

cat /etc/issue
#输出
CentOS release 6.6 (Final)
Kernel \r on an \m
#执行命令
> /etc/issue  # 清除文件内容,再次登入时则不显示linux的版本信息
复制代码

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

chstt,文件在/user/bin/下,为了防止被修改可以做软连
上锁系统文件chattr,以后任何用户修改这个文件都不会成功,除非解锁
+:代表在原有属性的基础上
i:immutable不可修改的

chattr +i /etc/passwd

解锁系统文件

chattr -i /etc/passwd

查看文件的属性lsattr

lsattr /etc/passwd

十五、清除多余的系统虚拟账号

不是必须的优化选项,pass

十六、为grub菜单加密码

目的:防止别人修改grub进行内核启动项设置以及用当用户模式修改root密码,安装系统后的设置如下:

1、生成md5秘钥
/sbin/grub-md5-crypt
2、修改/etc/grub.conf
在splashimage和title之间加入
password  --md5  秘钥

设置完成后管理grub就会提示输入密码

十七、禁止linux系统被ping

为了增加系统的安全性。可以禁止我们的linux系统被ping,可以修改iptables来设置(一般不用)

echo 'net.ipv4.icmp_echo_ignore_all=1'  >> /etc/sysctl.conf
sysctl -p 重载信息并更新启动

如果要恢复:

 /etc/sysctl.conf
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

十八、升级openssl,openssh,bash

1、查看

rpm -qa openssl openssh bash

2、安装最新版本

yun -y install openssl openssh bash