linux运维

linux日常运维的一些技能。

Linux选择

选择一个适合自身企业的Linux版本系列和主流版本还是相对不容易的,下面我们来介绍一下在选择时各企业所参考的依据:

RedHat和CentOS

选择红帽子系列产品,以centos为主,主要考虑有几个方面:

  1. centos是redhat的编译版本,基本上没有什么大的变动
  2. 现在很多环境都是集群环境,包括web集群,中间件集群,rac群集等等,OS层面本身的高可用系数已经不是100%要求那么高了。
  3. 主流版本生命周期比较长,比较适合一个硬件的生命周期管理,基本上安装一次直到设备报废了。
  4. 批量安装部署方便,硬件和软件兼容性都挺好。
  5. 版本主要使用6版本,新上应用可以全面考虑升级使用7版本

SuSe

使用的Suse Linux Enterprise版,主要考虑因素如下:
1、该发行版本性能和稳定性比较突出
2、对客户的技术支持体系较为完备,服务响应较快(这基本上是最重要的因素)
3、对开源社区如openstack等生态拥抱得也较好。
4、版本主要是SUSE11 较多。

安装部署

方式:U盘,光盘和网络安装

其中网络安装已经成为了目前批量部署的首选方式:主要工具有Cobbler和PXE+kickstart

可以参考如下链接内容:
http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html

初始化配置

禁用服务

1
2
3
4
5
chkconfig --level 35 iptables off
chkconfig --level 35 ip6tables off
service iptables stop
chkconfig --level 35 postfix off

禁用SeLinux

1
2
vi /etc/selinux/config
SELINUX=disabled

yum源配置

可选的国内源包括:163、阿里云等
设置方式参考:http://www.lehoon.com/backend/2016/09/07/centos-note.html

常用软件安装

1
2
3
4
5
6
安装开发环境
yum groupinstall 'Development Tools'
yum install net-tools
yum install ntp
yum install openssl-devel
yum install kernel-devel kernel-headers

安装xwindows

1
2
3
4
5
6
安装视窗
yum groupinstall "X Window System" -y
安装桌面
yum groupinstall Desktop -y
安装apps
yum install xorg-x11-apps -y

时间同步

使用crontab定时器实现定时更新时间

1
00 */1 * * * /usr/sbin/ntpdate sim.ntp.org.cn

SSH设置

修改ssh禁用dns选项

1
echo "UseDNS no" >> /etc/ssh/sshd_config service sshd restart

添加允许指定用户登录

1
2
echo "AllowUsers user1" >> /etc/ssh/sshd_config
service sshd restart

修改历史记录格式

1
echo "export HISTIMEFORMAT='%F %T'" >> /etc/profile

安全加固

参考链接
http://www.centoscn.com/CentosSecurity/CentosSafe/2015/0315/4881.html

禁用用户和组

注意:不建议直接删除文件,先备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@lehoon ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
#mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
lehoon:x:1000:1000:lehoon:/home/lehoon:/bin/bash
ntp:x:38:38::/etc/ntp:/sbin/nologin
hadoop:x:1001:1001::/home/hadoop:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin

关闭服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#取消电源进阶设定
service acpid stop
chkconfig acpid off
#取消自动挂载
service autofs stop
chkconfig autofs off
#取消蓝牙
service bluetooth stop
chkconfig bluetooth off
#取消控制cpu速度
service cpuspeed stop
chkconfig cpuspeed off
#取消系统打印
service cups stop
chkconfig cups off
#取消ipv6
service ip6tables stop
chkconfig ip6tables off

文件加锁,防止恶意授权

1
2
3
4
5
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/services

yum不升级内核

配置yum更新时候,不升级内核

1
2
3
4
5
6
1、修改yum.conf忽略内核包
vi /etc/yum.conf
添加exclude=kernel*
2、yum 更新忽略内核包
yum --exclude=kernel* update

修改history记录

1
2
vi /etc/profile
修改HISTSIZE=1000,选中加大或者减小

隐藏系统信息

在缺省条件下,当登录到linux系统的时候,会提示该linux发行版的名称、版本、内核版本、电脑名称。
为了不让这些默认的信息泄露出来,只显示一个”login:”提示符。
删除/etc/issue和/etc/issue.net两个文件,或者改名。

禁止ping

1
2
3
4
5
vi /etc/rc.d/rc.local
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
0表示允许ping
1表示禁止ping

系统性能指标shell脚本

CPU占用最高的10个进程

1
ps aux | sort -k3nr | head -n 10

内存占用最高的10个进程

1
ps aux | sort -k4nr | head -n 10

虚拟内存占用最高的10个进程

1
ps auxw | head -1; ps auxw | sort -rn -k5 | head -n 10

查看系统负载

1
dstat --top-mem --top-io --top-cpu --nocolor 1 10
文章目录
  1. 1. Linux选择
    1. 1.1. RedHat和CentOS
    2. 1.2. SuSe
  2. 2. 安装部署
  3. 3. 初始化配置
    1. 3.1. 禁用服务
    2. 3.2. 禁用SeLinux
    3. 3.3. yum源配置
    4. 3.4. 常用软件安装
    5. 3.5. 安装xwindows
    6. 3.6. 时间同步
    7. 3.7. SSH设置
    8. 3.8. 修改历史记录格式
  4. 4. 安全加固
    1. 4.1. 禁用用户和组
    2. 4.2. 关闭服务
    3. 4.3. 文件加锁,防止恶意授权
    4. 4.4. yum不升级内核
    5. 4.5. 修改history记录
    6. 4.6. 隐藏系统信息
    7. 4.7. 禁止ping
  5. 5. 系统性能指标shell脚本
    1. 5.1. CPU占用最高的10个进程
    2. 5.2. 内存占用最高的10个进程
    3. 5.3. 虚拟内存占用最高的10个进程
    4. 5.4. 查看系统负载