linux新装系统初始化
系统新装的时候建议进行的初始化,以及以后每个主机安装系统的模版设置,比如最小化安装及启动必要的服务,统一的sudo配置,比如利用/etc/rc.local当作系统开机启动的档案管理等等。
linux新装系统初始化
1. 登录安全
清空/etc/issue,/etc/issue.net,/etc/motd。因为issue文件是系统的版本号信息,当登录到系统的时候会进行提示,motd文件在登录时会显示里面的字符串,可能包含敏感字符。
[root@server tmp]# > /etc/motd
[root@server tmp]# >/etc/issue
[root@server tmp]# >/etc/issue.net
2. 更改主机名:
临时更改:hostname maiyat
永久更改: vi /etc/sysconfig/network
主机名和ip做好映射:vi /etc/hosts
DNS地址在/etc/resolv.conf,但是因为它是全局的,因此优先级比网卡的配置文件低一点。
[root@server tmp]# cat /etc/hosts
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 server
192.168.50.1 server
192.168.50.2 lamp02
192.168.50.3 lamp01
[root@server tmp]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=server
[root@server tmp]# hostname server
[root@server tmp]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.211
3. 安装时最小化安装,及启动必要的服务
因为系统安装最小化安装,所以以下包请注意安装:
yum install tree telnet dos2unix sysstat lrzsz vim man
以下5项服务建议开机启动:systat,rsyslog,sshd,crond,network,其余服务一并关闭,待需要的时候在打开。
[root@server tmp]# for n in `chkconfig --list |grep 3:on|awk -F " " '{print $1}'`; do chkconfig $n off;done && for n in sysstat rsyslog sshd crond network;do chkconfig $n on;done
[root@server tmp]#
[root@server tmp]#
[root@server tmp]# 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
或者
[root@server tmp]# for n in `chkconfig --list |grep 3:on|egrep -v "sysstat|rsyslog|sshd|crond|network"|awk -F " " '{print $1}'`;do chkconfig $n off;done
4. 最好把/etc/rc.local当作系统开机启动的档案管理
因为相对于chkconfig --list管理的启动项有很多是系统的,但是rc.local里的启动都是用户自己添加进去的,当一个公司的运维把设备上的服务启动都追加到rc.local里,并注释清楚,这样当该运维离职后,后面来的人只要看一下rc.local里就可以清楚的知道该服务器启动了一什么服务了。
[root@server tmp]# /etc/init.d/smb start >> /etc/rc.local
[root@server tmp]# /etc/init.d/dhcpd start >> /etc/rc.local
[root@server tmp]# /etc/init.d/rpcbind start >> /etc/rc.local [root@server tmp]# /etc/init.d/nfs start >> /etc/rc.local
5. 关闭selinux
[root@server tmp]# cp /etc/selinux/config /etc/selinux/config.org
[root@server tmp]# sed -i 's#SELINUX=enforcing#SELINUX=disable#g' /etc/selinux/config
[root@server tmp]# grep SELINUX=disable /etc/selinux/config
SELINUX=disable
因为关闭selinux需要重启系统,因此可以临时更改如
[root@server tmp]# setenforce 0
[root@server tmp]# getenforce
Permissive
6. 重要文件加锁(防止***黑进系统后提权)
[root@server ~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
[root@server ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow
[root@server ~]# mv /usr/bin/chattr ~/cha
7. 文件描述符(ulimit -n)
当一个进程启用就会占用一个文件描述符,一般最大有65535个,而系统默认只有1024个
临时设置:
[root@server ~]# ulimit -SHn 65535
永久设置:
[root@server ~]# echo ' * - nofile 65535 ' >> /etc/security/limits.conf
[root@server ~]# ulimit -n
65535
8. 字符集,配置文件在/etc/sysconfig/i18n
LANG="en_US.UTF-8" 或 "LANG=zh_CN.UTF-8"
9. 同步时钟:
yum install ntp -y
ntpdate 1.cn.pool.ntp.org
crontab -e
*/20 * * * * ntpdate 1.cn.pool.ntp.org
crontab -l
其中crontab的配置文件在/var/spool/cron/root
因此可以:
echo '*/20 * * * * ntpdate 1.cn.pool.ntp.org' >>/var/spool/cron/root
10. 及时清理sendmail临邮件存放目录
find /var/spool/clientmqueue -type f |xargs rm -f
11. 设置300秒不使用进入超时
export TMOUT=300
echo "export TMOUT=300" >>/etc/profile
12. 平时登录系统时使用普通用户
当权限不够时使用su - 进行切换,平时设置可以配置sudo,其中配置文件为 /etc/sudoers ,编辑时最好使用visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
ouyan ALL=(ALL) ALL
ouyan ALL=(ALL) NOPASSWD: ALL
test ALL=(ALL) NOPASSWD: /usr/sbin/useradd, /usr/bin/passwd
root ALL=(ALL) ALL
root ALL=(ALL) ALL
[root@server ~]# visudo -c
其中visudo检查visudo的语法,其中 NOPASSWD: buxu
不需要密码,/usr/sbin/useradd可以使用的命令,如果是ALL,则可以shiy使用所有命令
13. 升级最新补丁
yum update
yum install openssl bash -y
注意yum update是全部升级,一定要新装系统才可以执行这个
14. 注意/proc里查看系统信息
[root@server proc]# ls -l meminfo cpuinfo mounts loadavg ioports filesystems devices
-r--r--r--. 1 root root 0 May 18 01:12 cpuinfo
-r--r--r--. 1 root root 0 May 18 01:12 devices
-r--r--r--. 1 root root 0 May 18 01:12 filesystems
-r--r--r--. 1 root root 0 May 18 01:12 ioports 正在使用的端口
-r--r--r--. 1 root root 0 May 18 01:12 loadavg 负载信息
-r--r--r--. 1 root root 0 May 18 01:12 meminfo
lrwxrwxrwx. 1 root root 11 May 18 01:12 mounts -> self/mounts
15. 禁ping
不过要小心处理,虽然可以防止ping***,但是自己调试也不方便,一般用防火墙
echo " net.ipv4.icmp_eth0_ignore_all=1" >>/etc/sysctl.conf
sysctl -p 配置生效