设为首页 收藏本站
查看: 1709|回复: 0

[经验分享] CentOS 安装后操作

[复制链接]

尚未签到

发表于 2019-2-17 07:19:18 | 显示全部楼层 |阅读模式
  一、关闭selinux功能
  1、SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。
  ** SELinux有三种状态: **
  enforcing - SELinux security policy is enforced.
  permissive - SELinux prints warnings instead of enforcing.
  disabled - No SELinux policy is loaded.
  配置文件位置:/etc/selinux/config和/etc/sysconfig/selinux,只不过/etc/sysconfig/selinux是连接到/etc/selinux/config的
  [root@zhang-1 ~]# ls -l /etc/sysconfig/selinux
  lrwxrwxrwx. 1 root root 17 Nov 17 16:28 /etc/sysconfig/selinux ../selinux/config
  用sed命令修改配置文件,使其永久关闭
  sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
  注:修改完毕之后必须重启才可生效
  查看状态
  [root@zhang ~]# getenforce
  Disabled
  使用命令暂时关闭selinux
  [root@zhang ~]# setenforce
  usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
  [root@zhang ~]# setenforce 0
  [root@zhang ~]# getenforce
  Permissive
二. 精简系统开机启动项
和Windows系统一样,在Linux服务器运行的过程中,也会有很多无用的软件服务默认就在运行,这些服务占用了很多系统资源,而且也带来了安全隐患,因此要关闭掉。
建议企业环境新装Linux系统之后必须自动开启的服务:

  • sshd 远程连接Linux服务器,,需要这个服务程序,必须开启,否则无法远程连接Linux服务器(必须开启)
  • rsyslog 是操作系统的一种机制,守护程序通常使用这些机制将各种信息写到各个系统日志文件(必须开启)
  • network 激活/关闭启动时的各个网口(必须)应考虑开启
  • crond 周期的运行用户调度的任务,配置更简单,有周期执行任务时,要开启
将来根据服务器的业务使用场景可以进行调整,所以调整就是增加,上面的四个服务中只能增加不能减少,关闭系统所有开机自启动服务的方法:
方法1:
[root@zhang ~]# chkconfig --list|grep "3:on"|awk '{print $1}'|sed 's#^#chkconfig #g'|sed 's#$# off#g'|bash方法2:
[root@zhang ~]# chkconfig --list|grep 3:on|awk '{print $1}'|sed -r 's#(.*)#chkconfig \1 off#g'|bash方法3:
[root@zhang ~]# chkconfig --list|grep 3:on|grep -vE "crond|sshd|network|rsyslog" |awk '{print $1}'|sed -r 's#(.*)#chkconfig \1 off#g'|bash方法4:
[root@zhang ~]# for name in `chkconfig --list|grep 3:on|grep -vE "crond|sshd|network|rsyslog" |awk '{print $1}'`; \
do chkconfig $name off; \
done方法5:
[root@zhang ~]# for n in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $n off;done启动需要的服务
[root@zhang ~]# for n in crond network rsyslog sshd ;do chkconfig --level 3 $n on;done检查开机自启动的服务器
[root@zhang ~]# chkconfig --list|grep 3:on
crond 0:off 1:off 2:off 3:on 4:off 5:off 6:off
network 0:off 1:off 2:off 3:on 4:off 5:off 6:off
rsyslog 0:off 1:off 2:off 3:on 4:off 5:off 6:off
sshd 0:off 1:off 2:off 3:on 4:off 5:off 6:off三. 关闭iptables防火墙
[root@zhang ~]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]或者
[root@zhang ~]# service iptables stop关闭开机自启动
[root@zhang ~]# chkconfig iptables off检查
[root@zhang ~]# /etc/init.d/iptables status
iptables: Firewall is not running.[root@zhang ~]# chkconfig --list iptables
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off四. Linux最小化原则
最小化原则:既多一事不如少一事,具体为:
1) 安装Linux系统最小化,既选包最小化,yum安装软件最小化;
2) 开机自启动程序服务最小化,既无用的服务不启动(少开一扇窗)
3) 操作命令最小化原则,rm –f test.txt,不用rm –rf test
4) 登陆Linux最小化,禁止root从远程终端登录,平时没有需求不用root,用普通用户登录。
5) 文件及目录的权限设置最小化。
6) 各种网络服务,系统配置参数合理,不要最大化。
五. 更改ssh服务端远程登录的配置
SSHD的配置文件在/etc/ssh/目录下
ssh_config:客户端
sshd_config:服务端
[root@zhang ]# vim sshd_config修改的内容
Port 2222               #更改SSH远程连接的端口
PermitRootLogin no       #设置是否允许root通过ssh登录,这个选项从安全角度来讲应设成"no"。
PermitEmptyPasswords no  #设置是否允许用口令为空的帐号登录。
UseDNS no                #关闭UseDNS加速SSH登录
GSSAPIAuthentication no  #是否允许使用基于GSSAPI的用户认证.默认值为"no".仅用于SSH-2.
[root@zhang ssh]# /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]当前连接不重启不会中断,占用的连接没断开不会断开
六. 通过sudo管理权限
让一个用户可以拥有原本他没有执行这个命令的权限,这个命令的权限可能是其他用户的,它可以用其他用户执行,用sudo执行的权限都是需要当前执行sudo用户的密码。
sudo 是一种程序,用于提升用户的权限,在linux中输入sodu就是调用这个程序提升权限,是一个命令解析器,sudo cd是错误的,因为cd是内置的,不是系统里面的,sudo可以运行系统带的命令,但无法用系统中一个软件中的命令
创建一个普通用户
[root@zhang ~]# useradd zhang非交互式设置密码
[root@zhang ~]# echo "123456"|passwd --stdin zhang
Changing password for user zhang.
passwd: all authentication tokens updated successfully.#把echo的输出通过—stdin参数传输为zhang这个用户的密码[root@zhang ~]# su - zhang
[zhang@zhang~]$ whoami
zhang注:
1)超级管理员用户切换到普通用户不需要密码,普通用户切换普通用户需要密码,普通用户切换超级管理员用户也需要密码
2)普通用户的权限比较小,只能做基本的信息查看,无法更改
  3)#超级管理员 $普通用户
[root@zhang ~]# visudo
#在99行下面添加以下内容
zhang ALL=(ALL) ALL
#如果是命令使用下面的方式:AnSheng ALL=(ALL) /bin/touch(多个权限用“,”分开,ALL所有权限,NOPASSWD: ALL免密码)七.时间同步
CentOS系统时间同步的步骤如下:
新装的CentOS系统服务器可能设置了错误的,需要调整时区并调整时间.
如下是CentOS系统使用NTP来从一个时间服务器同步
注:需要有外网

  yum  install  -y  ntpdate  
  cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
  ntpdate us.pool.ntp.org
下面解析一下,第一句是把当前时区调整为上海就是+8区,想改其他时区也可以去看看/usr/share/zoneinfo目录;
然后第二句是利用ntpdate同步标准时间.
加入定时计划任务,每隔10分钟同步一下时钟
crontab -e
0-59/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP

这样,我们就可以来解决在CentOS系统中时间不准确的问题了。
八. 隐藏Linux版本信息显示
>/etc/issue  或 cat /dev/null >etc/issue1[root@zhang ~]# cat /etc/issueCentOS release 6.5 (Final)
Kernel \r on an \m
[root@zhang ~]# >/etc/issue #清空/etc/issue
[root@zhang ~]# cat /etc/issue
[root@zhang ~]#  也可以编辑/etc/motd文件,来隐藏真正的版本信息。

  /etc/motd即messageoftoday(布告栏信息)。
每次用户登录时,/etc/motd文件的内容会显示在用户的终端。系统管理员可以在文件中编辑系统活动消息。
  [root@zhang ~]# vi /etc/motd
  RHEL release 6.5 (Final)   (随便写,写什么显示什么)
welcome back.

                                                                                                                                                  
"/etc/motd" 2L, 39C written
保存重启即可

九. 内核调优
  1、Limit
  永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如:
  1)、解除 Linux 系统的最大进程数和最大文件打开数限制:
  vi /etc/security/limits.conf
  # 添加如下的行
  * soft noproc 11000
  * hard noproc 11000
  * soft nofile 4100
  * hard nofile 4100
  说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
  2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
  a、vi /etc/ssh/sshd_config
  把 UserLogin 的值改为 yes,并把 # 注释去掉
  b、重启 sshd 服务:
  /etc/init.d/sshd restart
  3)、修改所有 linux 用户的环境变量文件:
  vi /etc/profile
  ulimit -u 10000
  ulimit -n 4096
  ulimit -d unlimited
  ulimit -m unlimited
  ulimit -s unlimited
  ulimit -t unlimited
  ulimit -v unlimited
  保存后运行#source /etc/profile 使其生效
  /**************************************
  有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
  修改2个文件。
  1)/etc/security/limits.conf
  vi /etc/security/limits.conf
  加上:
  * soft nofile 8192
  * hard nofile 20480
  2)/etc/pam.d/login
  session required /lib/security/pam_limits.so
  /**********
  另外确保/etc/pam.d/system-auth文件有下面内容
  session required /lib/security/$ISA/pam_limits.so
  这一行确保系统会执行这个限制。
  /***********
  3)一般用户的.bash_profile
  #ulimit -n 1024
  重新登陆ok
  Ps:修改limits.conf 文件后,需要重启系统生效
  2、sysctl.conf

  #该参数设置系统的TIME_WAIT的数量,如果超过默认值则会被立即清除
  net.ipv4.tcp_max_tw_buckets = 20000
  #定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数
  net.core.somaxconn = 65535
  #对于还未获得对方确认的连接请求,可保存在队列中的最大数目
  net.ipv4.tcp_max_syn_backlog = 262144
  #在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
  net.core.netdev_max_backlog = 30000
  #能够更快地回收TIME-WAIT套接字。此选项会导致处于NAT网络的客户端超时,建议为0
  net.ipv4.tcp_tw_recycle = 0
  #系统所有进程一共可以打开的文件数量
  fs.file-max = 6815744
  #防火墙跟踪表的大小。注意:如果防火墙没开则会提示error: "net.netfilter.nf_conntrack_max" is an unknown key,忽略即可
  修改此参数增加socket缓存区的内存大小
  net.ipv4.tcp_mem  =   379008       505344  758016
  net.ipv4.tcp_wmem = 4096        16384   4194304
  net.ipv4.tcp_rmem = 4096          87380   4194304
  net.core.wmem_default = 8388608
  net.core.rmem_default = 8388608
  net.core.rmem_max = 16777216
  net.core.wmem_max = 16777216
  net.ipv4.tcp_tw_reuse
  是否socket reuse,此函数的作用是Server重启时可以快速重新使用监听的端口。如果没有设置此参数,会导致server重启时发生端口未及时释放而启动失败 net.ipv4.tcp_tw_recycle
  使用socket快速回收,短连接Server需要开启此参数。此参数表示开启TCP连接中TIME-WAIT sockets的快速回收,Linux系统中默认为0,表示关闭。打开此参数可能会造成NAT用户连接不稳定,请谨慎测试后再开启。 其他重要配置
  net.ipv4.tcp_syncookies=1
  # 表示开启SYN Cookies 。当出现SYN等待队列溢出时,启用coolies来处理,可防范少量SYN×××,默认为0表示关闭;
  net.ipv4.tcp_max_syn_backlog=81920
  # 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
  net.ipv4.tcp_synack_retries=3
  #  tcp_synack_retries 显示或设定 Linux 核心在回应 SYN 要求时会尝试多少次重新发送初始 SYN,ACK 封包后才决定放弃。这是所谓的三段交握 (threeway handshake) 的第二个步骤。即是说系统会尝试多少次去建立由远端启始的 TCP 连线。tcp_synack_retries 的值必须为正整数,并不能超过 255。因为每一次重新发送封包都会耗费约 30 至 40 秒去等待才决定尝试下一次重新发送或决定放弃。tcp_synack_retries 的缺省值为 5,即每一个连线要在约 180 秒 (3 分钟) 后才确定逾时
  net.ipv4.tcp_syn_retries=3
  #  对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的)
  net.ipv4.tcp_fin_timeout = 30
  #  表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
  net.ipv4.tcp_keepalive_time = 1200
  # 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。
  net.ipv4.tcp_tw_reuse = 1
  #  表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
  net.ipv4.tcp_tw_recycle = 1
  # 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
  net.ipv4.ip_local_port_range = 20000 65000
  #  表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
  net.ipv4.tcp_max_tw_buckets = 200000
  表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000。设为较小数值此项参数可以控制TIME_WAIT套接字的最大数量,避免服务器被大量的TIME_WAIT套接字拖死。
  net.ipv4.route.max_size = 5242880




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673332-1-1.html 上篇帖子: CentOS5、6的启动流程 下篇帖子: CentOS 6.5 安全加固
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表