标签:arc 流程 tde 打开 amp nta list 过程 limits
优化之前,首先查看版本信息
# cat /etc/redhat-release CentOS release 6.7 (Final) # 系统版本信息 # uname –r 2.6.32-573.el6.x86_64 # 内核版本信息 # uname -m x86_64 #表示为64位系统 # uname –a # 显示全部信息 Linux hostname2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Linux基础优化与安全重点小结
1 不用root登录管理系统,而以普通用户登录通过sudo授权管理
2 更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至要更改SSH服务只监听内网IP
3 定时自动更新服务器时间,使其和互联网同步
4 配置yum更新源,从国内更新源下载安装软件包
5 关闭SELinux及iptables
6 定时自动清理邮件临时目录垃圾文件,防止磁盘inodes数被小文件占满
7 调整文件描述符的数量,进程及文件的打开都会消耗文件描述符的数量
8 精简并保留必要的开机启动服务
9 Linux内核参数优化/etc/sysctl.config,执行sysetl –p生效
10 更改系统字符集, 为“zh_CN.UTF-8”,使其支持中文,防止出现乱码问题。
11 锁定关键文件,如: passwd、/etc/shadow/、/etc/group/、/etc/gshadow、/etc/inittab,处理以上内容后把chattr、lsattr、改名为root,转移走,这样就安全多了。
12 清空/etc/issue /etcissue.net,去除系统及内核版本登录前的屏幕显示
13 清除多余的系统虚拟用户账号
14 为grub引导菜单加密码
15 禁止主机被ping
16 打补丁并升级有已知漏洞的软件
拓展
掌握Linux系统的7种运行级别。
1 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
2 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
3 运行级别2:多用户状态(没有NFS)
4 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
5 运行级别4:系统未使用,保留
6 运行级别5:X11控制台,登陆后进入图形GUI模式
7 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
掌握Linux系统从开机到登录之前的启动流程。是由etc/inittab控制的
默认国外的yum源比较慢,所以换成国内的。
1 # cd /etc/yum.repos.d/ 2 # ls 3 CentOS-Base.repo CentOS-Media.repo 4 CentOS-Debuginfo.repo CentOS-Vault.repo 5 CentOS-fasttrack.repo 6 # cp CentOS-Base.repo CentOS-Base.repo.ori 更改配置文件之前进行备份 7 # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo centos6系统 8 # echo "192.168.14.200 mirrors.aliyun.com" >>/etc/hosts 公网地址换成内网地址 9 # yum -y install tree nmap sysstat lrzsz dos2unix telnet 安装必要的软件包(tree)
l 第一种方法
1 # vim /etc/selinux/config 2 然后找到SELINUX=enforcing改成SELINUX=disabled 3 ESC:wq结束
l 第二种方法
1 sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config 2 sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#‘ /etc/selinux/config
1 [root@rootedu ~]# getenforce <--查看现在状态 2 3 Enforcing 4 5 [root@rootedu ~]# setenforce 6 7 usage: setenforce [ Enforcing | Permissive | 1 | 0 ] 8 9 [root@rootedu ~]# setenforce 0 <-- 临时将selinux调成下面的状态 10 11 [root@rootedu ~]# getenforce 12 13 Permissive
命令说明:setenforce:用于命令行管理SELinux的级别,
getenforce:查看SELinux当前级别
提示:修改配置SELinux后,要想其生效,必须要重启系统。再生产场景中不能随意重启系统。
l 临时关闭,关机之后会重新启动
1 /etc/init.d/iptables status <-- 查看看是否开启 2 /etc/init.d/iptables stop <-- 关闭防火墙
l 关闭开机自启动的防火墙
第一种方法
1 [root@rootedu ~]# chkconfig --list|grep ipt <-- 查看状态 2 iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off 3 [root@rootedu ~]# chkconfig iptables off <--下一次系统开启不运行防火墙 4 [root@rootedu ~]# chkconfig --list|grep ipt 5 iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
第二种方法
1 /etc/init.d/iptables stop <--当前关闭防火墙 2 chkconfig iptables off <--关闭开机自启动命令
1 设定运行级别(runlevel)为3(一般安装系统后默认为3)即表示使用文本命令模式管理linux 2 3 grep 3:initdefault /etc/inittab <-- 检查命令 4 runlevel <--另一种简单方法 5 init 3 <--切换运行级别
1)系统开机必须要开启的服务
l sshd
远程连接linux服务器时需要用到这个服务程序,所以必须开启
l rsyslog
日志相关软件,
l network
网络服务
l crond
会周期的执行系统和用户配置的任务计划。
l sysstat
sysstat是一个软件包,包含检测系统性能及效率的一组工具.\
2)设置开启自启动服务的方法
手动关闭用setup
chkconfig --list|grep 3:on <--查看开机自启动的项目
第一种快速处理方法:先全关闭,再开启需要保留的。
操作思路:先将3级别文本模式下默认开启的服务都关闭,然后开启需要开启的服务。
操作命令如下:
1 LANG=en 2 for root in `chkconfig --list|grep 3:on|awk ‘{print $1}‘`;do chkconfig --level 3 $root off;done 3 for root in crond network rsyslog sshd sysstat ;do chkconfig --level 3 $root on;done 4 chkconfig --list|grep 3:on
第二种快速处理方法
1 for root in `chkconfig --list|grep "3:on"|awk ‘{print $1}‘|grep -vE "crond|network|sshd|rsyslog|sysstat"`;do chkconfig $root off;done
第三种快速处理方法(逼格最高)
chkconfig --list|grep 3:on|grep -vE "crond|sshd|network|rsyslog|sysstat " |awk ‘{print "chkconfig " $1 " off"}‘|bash
linux/unix是一个多用户,多任务的操作系统
超级管理员(root):拥有最高权限
普通用户
l 一条命令设置密码
echo ‘123456‘|passwd --stdin root <--root用户名,密码为123456
| 使用命令添加一个普通用户,命令如下:
1 useradd root <--添加用户 2 passwd root <--设置用户密码
l 尝试切换用户角色,命令如下:
1 [root@hostname ~]# su – root <--由root管理员,切换到普通用户root 2 [root@hostname ~]$ whoami <--查看当前用户 3 root 4 [root@hostname ~]$ su - <--切到root用户 5 Password:
l linux命令提示符由PS1环境变量
查看环境变量: echo $PS1
为了方便管理,可以给用户授权,过程:输入vi sudoers找到98行,在下面放入如下内容:
oldboy ALL=(ALL) NOPASSWD: ALL <--all表示完全的系统权限,NOPASSWD表示提示权限命令时不需要密码
配置完成后要进行检查,命令如下:
[oldboy@hostname ~]# grep root /etc/sudoers oldboy ALL=(ALL) NOPASSWD: ALL
此时再以oldboy用户登录系统时,就可以通过执行sudo ls –l /root (sudo后面跟正常命令)的命令以root用户的权限管理系统了,如下:
[oldboy@hostname ~]$ ls /root/ ls: cannot open directory /root/: Permission denied [oldboy@hostname ~]$ sudo ls /root/ HostKeyDB.txt test.txt 12345 install.log woaini
a) 安装Linux系统最小化,即选包最小化。
b) 开机自启动服务最小化,即不用的服务不开启。
c) 操作命令最小化。
d) 登录Linux用户最小化。平时没有特殊需要就用普通用户登录即可。
e) 普通用户授权权限最小化。只给用户必要的管理系统的命令。
f) Linux系统文件及目录的权限设置最小化。禁止随意创建,更改,删除文件。
g) 程序服务运行最小化,即程序服务运行尽量不用root身份进行。
windows服务器的默认远程管理端口是3389,管理员用户是administrator,普通用户guest。Linux管理用户是root,远程连接默认端口port22。
1 [root@hostname ~]#cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori <--备份配置文件,简单写法cp /etc/ssh/sshd_config{,.ori}
2 [root@hostname ~]# vim /etc/ssh/sshd_config
3 进入17行加入:
4 ####by root#2011-11-24##
5 rt 52113
6 PermitRootLogin no
7 PermitEmptyPasswords no
8 UseDNS no
9 GSSAPIAuthentication no
10 ####by root#2011-11-24##
11 /etc/init.d/sshd reload <--reload为平滑重启,不会影响正在SSH连接的其他用户,restart直接断开生效
然后就连不上了,因为端口改了。
然后更改会话选项里的SSH2里的端口还有用户名。就OK了
此选项为优化可选项,即调整Linux系统的字符集设置。
简单的说,字符集就是一套文字符号及其编码。目前linux下常用的字符集有:
GBK:定长双字节
UTF-8:非定常,1~4字节,广泛支持
临时生效,命令:LANG=”zh_CN.UTF-8’
永久生效,可以通过快捷的命令方式在/etc/sysconfig/i18n中添加如下内容,使其支持中文显示:
1 [root@hostname ~]# echo $LANG 2 en_US.UTF-8 3 [root@hostname ~]# cat /etc/sysconfig/i18n 4 LANG="en_US.UTF-8" 5 SYSFONT="latarcyrheb-sun16" 6 [root@hostname ~]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori 7 [root@hostname ~]#echo ‘LANG=”zh_CN.UTF-8”’>/etc/sysconfig/i18n 8 [root@hostname ~]#source /etc/sysconfig/i18n <--使其生效 9 [root@hostname ~]#echo $LANG 10 zh_CN.UTF-8
1 ntpdate time.nist.gov<--时间同步 2 ntpdate ntp1.aliyun.com<--国内阿里云时间同步服务器 3 利用定时任务crond把上述命令每5分钟自动执行一次,命令如下: 4 5 echo ‘#time sync by root at 2010-2-1‘ >>/var/spool/cron/root 6 echo ‘*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1‘ >>/var/spool/cron/root 7 crontab –l 8 [root@rootedu ~]# crontab -l 9 #time sync by root at 2010-2-1 10 */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
1.设置闲置账号超时时间,命令如下,此处为临时生效
export TMOUT=10 <--设置连接会话的超时时间
2.设置Linux的命令行历史记录数, 命令如下,此处为临时生效
1 export HISTSIZE=5 2 export TMOUT=10 连接的超时时间控制变量。 3 4 export HISTSIZE=5 命令行的历史记录数量变量。 5 export HISTFILESIZE=10 历史记录文件的命令数量变量(~/.bash_history)。
先用ulimit –n查看有几个描述符
对于高并发的业务Linux服务器来说,默认的设置值是不够的,需要调整
调整方法:
执行vim /etc/security/limits.conf再文件结尾加上如下一行 * - nofile 65535
或者直接执行下面的命令
1 echo ‘* - nofile 65535 ‘ >>/etc/security/limits.conf 2 tail -4 /etc/security/limits.conf <--查看文件最后4行 3 [root@rootedu tmp]# ulimit –n <--查看是否生效 4 65535
总结:
1 临时生效 ulimit -SHn 65535 2 永久生效 echo ‘* - nofile 65535 ‘ >>/etc/security/limits.conf
优化的方法
1 cat>>/etc/sysctl.conf<<EOF 2 net.ipv4.tcp_fin_timeout = 2 3 net.ipv4.tcp_tw_reuse = 1 4 net.ipv4.tcp_tw_recycle = 1 5 net.ipv4.tcp_syncookies = 1 6 net.ipv4.tcp_keepalive_time = 600 7 net.ipv4.ip_local_port_range = 4000 65000 8 net.ipv4.tcp_max_syn_backlog = 16384 9 net.ipv4.tcp_max_tw_buckets = 36000 10 net.ipv4.route.gc_timeout = 100 11 net.ipv4.tcp_syn_retries = 1 12 net.ipv4.tcp_synack_retries = 1 13 net.core.somaxconn = 16384 14 net.core.netdev_max_backlog = 16384 15 net.ipv4.tcp_max_orphans = 16384 16 net.nf_conntrack_max = 25000000 17 net.netfilter.nf_conntrack_max = 25000000 18 net.netfilter.nf_conntrack_tcp_timeout_established = 180 19 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 20 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 21 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 22 EOF
然后用sysctl –p使其生效
然后vimdiff /etc/sysctl.conf /etc/sysctl.conf.ori 更改的文件与拷贝的文件对比
登录后执行如下命令,显示其实际存放内容
1 [root@rootedu ~]# cat /etc/issue <--查看当前主机信息 2 CentOS release 6.7 (Final) 3 Kernel \r on an \m 4 [root@rootedu ~]# uname -r 5 2.6.32-573.el6.x86_64 6 [root@rootedu ~]# uname -m 7 x86_64
执行以下命令清除系统版本及内核信息(清空就好,不用删除)
>/etc/issue <--清空 >/etc/issue.net <--清空
cat /etc/redhat-release(需要的情况,能过内部其它文件还是可以查到)
要锁定关键系统文件,必须对账号密码及启动文件加锁,防止被篡改。上锁命令如下
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
提示:上锁后,所有用户都不能对文件进行修改
解锁:chattr -i
操作前要先根据公司系统提供的服务确定那些账号不需要使用,如果不确定就不要操作了,一般情况下,一个规范的系统提供的服务都比较少,因此,系统中默认的绝大多数虚拟用户都是可以删除掉的(不直接删除,注释即可)。
为grup菜单加密码的目的是防止他人修改grup做内核等启动设置,以及用单用户模式启动破解root密码等做操作。也可以在安装系统过程中设定。
流程:
1)先用/sbin/grup-crypt产生一个MD5密码串
2)修改grup.conf文件
3)重启生效
可以在安装过程中设定.
此优化项从安全角度,禁止ping会增加系统安全,但是我们自己也会通过ping来检查服务器是否异常,所以这不是一个好方法,不建议使用。
比较好一点的是通过iptabies设置让特定的IP可以ping.
禁止ping的命令如下:
1 echo “net.ipv4.icmp_echo_ignore_all=1” >> /etc/sysctl.conf <--禁止ping 2 tail -1 / etc/sysctl.conf <--查看 3 sysctl -p <--生效 4 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all <--临时ping不通 5 echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all <--临时还原的方法
步骤
1)查看相关软件的版本号
[root@rootedy ~]# rpm -qa openssl openssl-1.0.1e-42.el6_7.4.x86_64
2)执行升级已知漏洞的软件版本到最新
[root@rootedy ~]# yum install openssl -y Loaded plugins: fastestmirror, security Setting up Install Process Determining fastest mirrors * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.7 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 updates/primary_db | 5.2 MB 00:22 Package openssl-1.0.1e-42.el6_7.4.x86_64 already installed and latest version Nothing to do
标签:arc 流程 tde 打开 amp nta list 过程 limits
原文地址:http://www.cnblogs.com/dazhidacheng/p/7771550.html