您的位置:首页 > 运维架构 > Linux

Linux运维学习笔记之四:安装后的基本调优及安全设置(系统基础优化)

2017-07-30 13:25 1066 查看

一、更改远程连接用户和端口

ls -l /etc/ssh/sshd_config

cp /etc/ssh/sshd_config /etc/ssh/sshd_configbak

vi /etc/ssh/sshd_config

 :set nu  #vi的功能,显示行号

    Port28888  #13行

    PermitRootLoginno #42行,禁止root用户ssh远程登录

    PermitEmptyPasswordsno  #65行,禁止空密码登录

    GSSAPIAuthenticationno  #为防止GSSAPI导致SSH连接变慢

    UseDNSno  #122行,禁止使用DNS

   

vimdiff /etc/ssh/sshd_config/etc/ssh/sshd_configbak  #对比修改的文件

/etc/init.d/sshd reload(或restart) #重新加载或重启ssh

 

二、简单优化Linux

1、关闭SELINUX
(1)查看配置文件

    cat/etc/selinux/config

    SELINUX=enforcing

       enforcing:激活

       permissive:打印警告,但没激活

       disabled:关闭

(2)修改配置文件   

    vi/etc/selinux/config  

    SELINUX=disabled

   

    或者

   

    sed-i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config

   

(3)检查修改后的配置文件

    grep"disable" /etc/selinux/config

    SELINUX=disabled

   

(4)生效(重启后才能生效)

    查看配置文件当前状态

    getenforce

       Enforcing(原文件生效状态)

       

    setenforce0 : 将 SELINUX改为permissive状态,相当于SeLinux不生效。

    getenforce

    permissive

   

    重启:不重启则SELINUX处于警告状态,SELINUX不起作用,重启则处于失效状态。(生产系统不允许随便重启)

   

2、将系统启动级别调成文本模式
(1)查看系统启动级别
    cat/etc/inittab

    或

    runlevel

   

(2)修改
    vi/etc/inittab

    d:3:initdefault:   

    或者

    sed-i s#d:5:initdefault:#d:3:initdefault:#g /etc/inittab

   

(3)切换启动级别
    init3  : 切换文本命令行模式

    init5  : 切换到x11模式

    init0  : 关机

    init6  : 重启

   

3、精简开机系统启动服务
(1)只启动需要的服务
目前只需启动crond(计划任务)、network、ssh、rsyslog(系统日志)等4个服务

(2)查看随机启动服务
chkconfig --list

chkconfig --list | grep "3:on"

chkconfig --level 35 service_name on:在级别3和5上随机启动指定服务

ntsysv(等同于setup)

setup-system service

(3)脚本一键完成处理: onlythirdrunlevel.sh
    LANG=en

    for servername in `chkconfig --list | grep"3:on" | awk '{print $1}' | grep -vE"crond|network|ssh|rsyslog"`;do chkconfig $servername off;done
   

4、 关闭iptables防火墙
(1)临时关闭:/etc/init.d/iptables stop
      service iptables stop

(2)永久关闭:chkconfig iptables off
      chkconfig ip6tables off(redhat6上 iptables关闭后 ip6tables会起来,所以一并关掉。)

(3)查看防火墙关闭状态
    serviceiptables status

5、修改主机名
(1)首先临时修改主机名
hostname myLinux

(2)修改/etc/sysconfig/network中的hostname
vi /etc/sysconfig/network

cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME= myLinux

(3)修改/etc/hosts文件
vi /etc/hosts

cat /etc/hosts

127.0.0.1   localhostlocalhost.localdomain localhost4 localhost4.localdomain4

::1         localhostlocalhost.localdomain localhost6 localhost6.localdomain6

192.168.1.18 myLinux

6、修改RedHat的yum源
RHEL的YUM源需要注册用户才能更新使用,由于CentOS和RHEL基本没有区别,并且CentOS已经被REHL收购。所以将RHEL的YUM源替换为CentOS即可。

(1)清除原有RHEL的YUM及相关软件包。
rpm -qa | grep yum | xargs rpm -e --nodeps

rpm -qa |grep python-urlgrabber|xargs rpm -e --nodeps

(2)下载centos6的相关软件包。
wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-3.2.29-81.el6.centos.noarch.rpm

wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm

wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm

wget http://mirrors.163.com/centos/6/os/i386/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wgethttp://mirrors.163.com/centos/6/os/i386/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm

(3)安装yum 软件包
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm

rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

rpm -ivh yum-metadata-parser-1.1.2-16.el6.i686.rpm

#下面两个一起安装先后顺序不要乱(中间50%正常)

rpm -ivhyum-3.2.29-81.el6.centos.noarch.rpmyum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
如果按照遇到问题:发现错误,python-urlgrabber版本必须大于等于3.9.1-10

 # rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpmyum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
warning: yum-3.2.29-73.el6.centos.noarch.rpm: Header V3 RSA/SHA1Signature, key ID c105b9de: NOKEY

error: Failed dependencies:

    python-urlgrabber >=3.9.1-10 is needed by yum-3.2.29-73.el6.centos.noarch

查看系统的python信息

# rpm -qa|grep python

 

发现python-urlgrabber-3.9.1-9.el6.noarch 版本低于3.9.1-10

卸载:python-urlgrabber-3.9.1-9.el6.noarch

 rpm -epython-urlgrabber-3.9.1-9.el6.noarch

安装:rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

(4)更改yum源 #我们使用网易的CentOS镜像源
a、清空yum仓库

cd /etc/yum.repos.d/

rm -rf *

b、设置源

wget http://mirrors.163.com/.help/CentOS6-base-163.repo
vi CentOS6-base-163.repo

编辑文件,把文件里面所有的$releasever全部替换为你得版本号,即6.4 最后保存!或者直接把下面的内存拷贝到CentOS6-base-163.repo文件中即可(已经修改好)

vim替换命令

:%s/$releasever/6/g

退出保存

 

c、清理yum缓存

#yum clean all

b、将服务器软件包信息缓存至本地,提高搜索安装效率

#yum makecache

二、用户角色切换

1、su- root:切换到root用户
2、sudo:让普通用户可以拥有指定的root权限功能,需root用户提前授权
   sudo su - : 切换到root

   sudo -l  : 查看当前用户拥有的所有sudo权限

  

   visudo : 进入sudo配置信息,相当于vi/etc/sudoers,但不建议用此方法,visudo检查语法,vi /etc/sudoers不检查语法

   格式:

   用户     机器      命令

   user     MACHINE=      COMMAND1,COMMAND2.....

   %groupname  MACHINE=      COMMAND1,COMMAND2.....  # 组名前必须加%

  

  

   91gg : vi编辑器功能,快速定位到91行

   yy   : vi编辑器功能,拷贝当前行

   p    : vi编辑器功能,粘贴

   修改:

     root   ALL=(ALL)       ALL

     oldboy  ALL=(ALL)       /usr/sbin/useradd

   

   su - oldboy

   sudo useradd kkk : 提示需oldboy密码,输入后执行完成

   

    修改

   oldboy  ALL=(ALL)       NOPASSWD: ALL     :表示oldboy有所有权限,并不提示输入oldboy密码

   sudo su - :此时可切换到root用户

   

三、环境变量

PATH :环境变量大写

全局生效    :/etc/profile

普通用户生效:~/.bash_profile或~/.bashrc

 

四、中文字符集

1、配置文件 : /etc/sysconfig/i18n
2、cat/etc/sysconfig/i18n
    LANG="en_US.UTF-8"

    SYSFONT="latarcyrheb-sun16"

   

    echoLANG="zh_CN.GB18030" : 临时调整字符集

    echo LANG="zh_CN.UTF-8" : 也可以

 

3、locate:查看本地字符集
 

五、时间同步ntp

1、配置文件 : /var/spool/cron/root
2、whichntpdate
    /usr/sbin/ntpdate

   

    /usr/sbin/ntpdate10.108.68.100

   

3、定时同步
    echo'#time sync by myLinux93.85 at 2017-01-05' >> /var/spool/cron/root

    echo'*/60 * * * * /usr/sbin/ntpdate 10.108.68.100 > /dev/null 2>&1'>> /var/spool/cron/root   #60分钟同步一次时间 

   

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

1、配置文件:/etc/security/limits.conf
2、查看当前文件描述符
    ulimit-n

3、加大文件描述符
    临时加大 :

      ulimit HSn 65535

    永久加大:

     echo '*     -     nofile    65535' >>/etc/security/limits.conf 

     或用vi/etc/security/limits.conf

七、调整内核参数

1、配置文件:/etc/sysctl.conf
2、调优
#连接的超时,默认为60秒,对应系统文件:/proc/sys/net/ipv4/tcp_fin_timout

net.ipv4.tcp_fin_timeout=2  

#连接重用,默认为0,表示关闭,对应系统文件:/proc/sys/net/ipv4/tcp_tw_reuse

net.ipv4.tcp_tw_reuse = 1     

#连接回收,默认为0,表示关闭,对应系统文件:/proc/sys/net/ipv4/tcp_tw_recycle

net.ipv4.tcp_tw_recycle=1  

#开启SYN cookies功能,当SYN等待队列溢出时启用cookies来处理,默认为1,表示开启,可以不添加。

#对应系统文件:/proc/sys/net/ipv4/tcp_syncookies

net.ipv4.tcp_syncookies = 1 

#TCP连接保持的时间,默认为7200秒(2小时),现改为600秒(10分钟)。
#对应系统文件:/proc/sys/net/ipv4/tcp_keepalive_time         
net.ipv4.tcp_keepalive_time = 600

#设定系统打开的端口范围。即用于向外连接的端口范围,默认为32768 61000。

#对应系统文件:/proc/sys/net/ipv4/ip_local_port_range  

net.ipv4.ip_local_port_range = 4000   65000         

#SYN队列的长度,表示可经容纳等待连接的网络连接数,默认为1024。

#对应系统文件:/proc/sys/net/ipv4/tcp_max_syn_backlog

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.nf_conntrack_max= 25000000

 net.netfilter.nf_conntrack_max= 25000000

 net.netfilter.nf_conntrack_tcp_timeout_established= 180

 net.netfilter.nf_conntrack_tcp_timeout_time_wait= 120

 net.netfilter.nf_conntrack_tcp_timeout_close_wait= 60

 net.netfilter.nf_conntrack_tcp_timeout_fin_wait= 120

3、重新生效
    sysctl-p

4、其它可配置项
#Controls IP packet forwarding  控制IP包转发

net.ipv4.ip_forward = 0   #0禁止,1允许

#控制ping命令。0表示可以ping能,1表示不能ping通

net.ipv4.icmp_echo_ignore_all = 0 

   

八、定时清理clientmqueue目录下的垃圾文件,防止占满磁盘空间

1、邮件服务的邮件临时存放地点:/var/spool/clientmqueue/sendmail
  CentOS5.8默认有sendmail,而CentOS6.4默认没有。有时候该目录下有许多小文件,将磁盘空间或文件inode的占满(每个文件对应一个inode,如果inode没有了,就算有空间也不能写文件了,df -i查看)

 

2、清理方法
(1)手动清理:
find /var/spool/clientmqueue/sendmail/ -type f | xargs rm -f

检查:ll /var/spool/clientmqueue | wc -l   

(2)定时清理:
echo"/var/spool/clientmqueue/sendmail/ -type f|xargs rm -f">
/server/scripts/del_sys_file.sh
echo "00 00 * * * /bin/sh /server/scripts/del_sys_file.sh>/del/null2>&1" >>

/var/spool/cron/root
检查:cat  /server/scripts/del_sys_file.sh
      crontab -l
          

九、隐藏或修改登陆的提示信息(系统、版本号)

1、说明:系统漏洞一般与系统版本号有关系统。
2、查看系统登录时的提示信息
    cat/etc/issue

3、清空提示文件内容
    echo> /etc/issue  或 > /etc/issue 或 cat /dev/null > /etc/issue

   

十、锁定系统关键文件

1、关键文件
    /etc/passwd:用户文件

    /etc/shadow:用户密码文件

    /etc/group:用户组文件

    /etc/gshadow:用户组密码文件

    /etc/inittab:开机启动文件

   

2、锁定
    chattr+i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

   

3、解锁
    chattr-i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

   

4、将chattr命令删除或改名
    whichchattr

    /usr/bin/chattr

    mv/usr/bin/chattr /usr/bin/oldboy

   

5、查看文件是否加锁
    lsattr  /etc/passwd /etc/shadow /etc/group/etc/gshadow /etc/inittab

    ----i--------e-/etc/passwd      # i表示加锁

    ----i--------e-/etc/shadow

    ----i--------e-/etc/group

    ----i--------e-/etc/gshadow

    ----i--------e-/etc/inittab

   

十一、小结

1、不用root,添加普通用户,用sudo授权管理
2、更改默认的远程连接ssh服务端口及禁止root用户远程连接
3、定时自动更新服务器时间
4、配置yum更新源,从国内更新源下载rpm包
5、关闭selinux及iptables(如联互联网则要打开,高并发除外)
6、加大服务器文件描述符
7、定时清理clientmqueue目录下的垃圾文件
8、精简开机自启动服务(crond,sshd,network,rsyslog(CentOS5.8是syslog))
9、调整内核参数
10、更改字符集,以支持中文。但建议还是使用英文字符集,防止乱码
11、锁定系统关键文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: