2019-04-16笔记

Day33

课堂笔记

2019年4月16日

集群架构描述及Linux系统基础优化


基础优化:

1、添加一个普通用户oldboy。

# useradd oldboy

# id oldboy

uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)

# echo 123456|passwd --stdin oldboy

Changing password for user oldboy.

passwd: all authentication tokens updated successfully.


2、加到sudo管理,oldboy就相当于管理员

# visudo

# grep -w oldboy /etc/sudoers

oldboy        ALL=(ALL)      NOPASSWD: ALL

远程连接oldboy直接用。

弃用root登录,改用oldboy用户登录。

重新配置Xshell连接

Connecting to 10.0.0.7:22...

Connection established.

To escape to local shell, press 'Ctrl+Alt+]'.

$ whoami

oldboy

$ sudo su - #切到root身份,否则,sudo vim。

# whoami

root


4、关闭防火墙(后面学习后在开启)

# /etc/init.d/iptables stop

iptables: Setting chains to policy ACCEPT: filter          [  OK  ]

iptables: Flushing firewall rules:                        [  OK  ]

iptables: Unloading modules:                              [  OK  ]

# chkconfig iptables off

检查:

# /etc/init.d/iptables status

iptables: Firewall is not running.

# chkconfig --list iptables

iptables      0:off 1:off 2:off 3:off 4:off 5:off 6:off


3、优化SSH远程连接

# cp /etc/ssh/sshd_config{,.ori}

# vim /etc/ssh/sshd_config

####by oldboy#2011-11-24##

Port 52113                #10000以上的端口

PermitRootLogin no        #禁止root远程登录

PermitEmptyPasswords no    #禁止空密码登录

UseDNS no                  #不使用解析。

GSSAPIAuthentication no    #连接慢的解决配置。

####by oldboy#2011-11-24##

检查:

# grep oldboy -A 5 /etc/ssh/sshd_config

####by oldboy#2011-11-24##

Port 52113

PermitRootLogin no

PermitEmptyPasswords no

UseDNS no

GSSAPIAuthentication no

####by oldboy#2011-11-24##

# vimdiff /etc/ssh/sshd_config{,.ori}

2 files to edit

# diff /etc/ssh/sshd_config{,.ori}

13,20d12

< ####by oldboy#2011-11-24##

< Port 52113

< PermitRootLogin no

< PermitEmptyPasswords no

< UseDNS no

< GSSAPIAuthentication no

< ####by oldboy#2011-11-24##

# /etc/init.d/sshd restart

Stopping sshd:                                            [  OK  ]

Starting sshd:                                            [  OK  ]

检查:

# netstat -lntup|grep ssh

tcp        0      0 0.0.0.0:52113              0.0.0.0:*                  LISTEN      3216/sshd         

tcp        0      0 :::52113                    :::*                        LISTEN      3216/sshd 

重新连接无法连接了。

Connecting to 10.0.0.7:22...

Could not connect to '10.0.0.7' (port 22): Connection failed.

Connecting to 10.0.0.7:52113...

Connecting to 10.0.0.7:52113...

Connection established.

To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Thu Apr 26 09:33:17 2018 from 10.0.0.1

[oldboy@oldboy ~]$

xshell连不上虚拟机的同学,从vmware进入虚拟机去关iptables


5、关闭selinux(安全)

永久生效,需要重启计算机

[root@oldboy ~]# vim /etc/selinux/config

[root@oldboy ~]# grep disable /etc/selinux/config

#    disabled - No SELinux policy is loaded.

SELINUX=disabled

临时生效:

[root@oldboy ~]# setenforce 0 #设置Permissive模式

[root@oldboy ~]# getenforce  #查生效情况

Permissive

#    enforcing - SELinux security policy is enforced. 正常开启

#    permissive - SELinux prints warnings instead of enforcing. 打印警告,但是也是禁止了。

#    disabled - No SELinux policy is loaded. 禁止状态。


6、精简开机自启动服务

3种方法。

# setup

# ntsysv

================================

# chkconfig --list|egrep -v "sysstat|crond|sshd|network|rsyslog"|awk '{print "chkconfig "$1,"off"}'|bash

# chkconfig --list|grep 3:on

crond          0:off 1:off 2:on 3:on 4:on 5:on 6:off

network        0:off 1:off 2:on 3:on 4:on 5:on 6:off

rsyslog        0:off 1:off 2:on 3:on 4:on 5:on 6:off

sshd          0:off 1:off 2:on 3:on 4:on 5:on 6:off

sysstat        0:off 1:on 2:on 3:on 4:on 5:on 6:off


7、修改Linux服务器字符集

[root@oldboy ~]# vim /etc/sysconfig/i18n

[root@oldboy ~]# cat /etc/sysconfig/i18n

#LANG="en_US.UTF-8"

LANG="zh_CN.UTF-8"

SYSFONT="latarcyrheb-sun16"

生效:

[root@oldboy ~]# source /etc/sysconfig/i18n

检查:

[root@oldboy ~]# echo $LANG

zh_CN.UTF-8


8、设置Linux服务器时间同步(定时任务)

echo '#time sync by oldboy at 2010-2-1' >>/var/spool/cron/root

echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root

[root@oldboy ~]# crontab -l

#time sync by oldboy at 2010-2-1

*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

*/5 * * * * /usr/sbin/ntpdate ntp2.aliyun.com >/dev/null 2>&1


9、命令行的安全

echo 'export TMOUT=300' >>/etc/profile

echo 'export HISTSIZE=5' >>/etc/profile

echo 'export HISTFILESIZE=5' >>/etc/profile # cat ~/.bash_history

tail -3 /etc/profile

source /etc/profile    #使得配置文件生效


10、锁定关键系统文件

chattr +i /etc/passwd /etc/shadow /etc/group /etc/inittab /etc/fstab /etc/sudoers

lsattr /etc/passwd /etc/shadow /etc/group /etc/inittab /etc/fstab /etc/sudoers

mv /usr/bin/chattr /opt/oldboy


11、清除多余的系统账号


12、为grub菜单加密码

# /sbin/grub-md5-crypt

Password:

Retype password:

$1$.Fv.q/$eCasAokSkgxvwOow37hJr1

/etc/grub.conf

password --md5 $1$.Fv.q/$eCasAokSkgxvwOow37hJr1


13、隐藏版本信息

# cat /etc/issue

CentOS release 6.9 (Final)

Kernel \r on an \m

# > /etc/issue

# cat /etc/issue


14、禁止Linux系统被ping

# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf

# sysctl -p

缺点:自己也没办法调试了,Iptables 指定内网可以Ping,外网不能ping。


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

文件永久生效:

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

tail  -1 /etc/security/limits.conf

临时生效:

ulimit -SHn 65535



16、Linux服务器内核参数优化

vim /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  #time-wait过多解决。

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

执行sysctl -p生效


17、升级漏洞软件及打补丁

yum install openssl openssh bash -y

yum update

yum install tree lrzsz dos2unix nc nmap -y


18、调整yum软件下载源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

模板机调整:

1、增加第二块调整网卡

\cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1

[root@oldboy ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=172.16.1.7

NETMASK=255.255.255.0

DNS2=202.106.0.20

USERCTL=no

PEERDNS=yes

IPV6INIT=no

[root@oldboy ~]# ifup eth1

Determining if ip address 172.16.1.7 is already in use for device eth1...

[root@oldboy ~]# ifconfig eth1

eth1      Link encap:Ethernet  HWaddr 00:0C:29:C3:F2:92 

          inet addr:172.16.1.7  Bcast:172.16.1.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fec3:f292/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 b)  TX bytes:650 (650.0 b)

          Interrupt:16 Base address:0x2000

[root@oldboy ~]# >/etc/udev/rules.d/70-persistent-net.rules

[root@oldboy ~]# vim /etc/rc.local

配置改主机名地址:

[root@oldboy scripts]# cat m.sh

#!/bin/sh

if [ $# -ne 2 ];then

  echo "/bin/sh $0 hostname PartIP"

  exit 1

fi

sed  -i "s#oldboy#$1#g" /etc/sysconfig/network

hostname $1

sed -i "s#100#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth0

sed -i "s#100#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth1



Linux基础优化与安全重点小结

1)不用root登录管理系统,而以普通用户登录通过sudo授权管理。

2)更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至要更改SSH服务只监听内网IP。

3)定时自动更新服务器的时间,使其和互联网时间同步。

4)配置yum更新源,从国内更新源下载安装软件包。

5)关闭SELinux及iptables(在工作场景中,如果有外部IP一般要打开iptables,高并发高流量的服务器可能无法开启)。

6)调整文件描述符的数量,进程及文件的打开都会消耗文件描述符数量。

7)定时自动清理邮件临时目录垃圾文件,防止磁盘的inodes数被小文件占满(注意Centos6和Centos5要清除的目录不同)。

8)精简并保留必要的开机自启动服务(如crond、sshd、network、rsyslog、sysstat)。

9)Linux内核参数优化/etc/sysctl.conf,执行sysctl -p生效。

10)更改系统字符集为“zh_CN.UTF-8”,使其支持中文,防止出现乱码问题。

11)锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab, 处理以上内容后把chattr、lsattr改名为oldboy,转移走,这样就安全多了。

12)清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。

13)清除多余的系统虚拟用户账号。

14)为grub引导菜单加密码。

15)禁止主机被ping。

16)打补丁并升级有已知漏洞的软件。

hosts解析

cat >/etc/hosts<

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.5      lb01

172.16.1.6      lb02

172.16.1.7      web02

172.16.1.8      web01

172.16.1.51    db01 db01.etiantian.org

172.16.1.31    nfs01

172.16.1.41    backup

172.16.1.61    m01

EOF

你可能感兴趣的:(2019-04-16笔记)