在系统优化之前先简单的说一下优化的原则,要做到最小化:
1、根据需求安装系统最小化;
2、开启程序最小化;
3、操作最小化;
4、登录最小化;
5、权限最小化,就是使用普通用户登录。
6、配置参数合理化,不要最大化。
#修改配置文件的时候注意备份。
系统安装之前包的选择如下图(centos为例):
yum grouplist:
Installed Groups: Base Compatibility libraries Debugging Tools Development tools Dial-up Networking Support Hardware monitoring utilities Performance Tools 如果忘记选包,安装后可以按如下方式选包: yum groupinstall "Compatibility libraries" "Base" "Development tools" yum groupinstall "Performance Tools" "debugging Tools" "Dial-up Networking Support" yum groupinstall "Base" "Development tools" 可以通过yum groupinfo 包组查看具体安装的组件。简单优化项如下:
⑴:禁止root远程登陆,创建账户monitor,修改端口22为52113
#如果防火墙设置规则 ,勿忘记关闭,且修改防火墙配置。
配置文件修改操作步骤:
useradd monitor
passwd monitor nihao123!
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.back
cat /etc/ssh/sshd_config.back |egrep -v "^#|^$" >/etc/ssh/sshd_config
添加配置:
Port 52113 #→ssh连接默认的端口修改PermitRootLogin no #→root禁止远程登陆。PermitEmptyPasswords no #→禁止空密码登陆UseDNS no #→不使用DNS重启: /etc/init.d/sshd restart
⑵:防火墙设置;
#端口扫描命令: nmap 127.0.0.1 -p 1-65535,防火墙一般为关闭状态
1、清空iptables 设置: iptables -F iptables -X iptables -Z
2、配置允许(自己)52113登录端口进入
iptables -t filter -A INPUT -p tcp --dport 52113 -s 10.XX.XX.XX -j ACCEPT
或开启信任的iP网段
iptables -A INPUT -s xx.xx.xx.xx -p all -j ACCEPT
3、允许业务服务端口对外访问(运行http服务无条件通过)
iptables -A INPUT -p tcp --dport (待定) -j ACCEPT
4、设置默认的防火墙禁止和允许规则。
iptable -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP
⑶:关闭selinux
修改配置位置: cat -n /etc/selinux/config
修改配置项:7 SELINUX=disabled
命令修改: sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
查看:setenforce 1 — SELinux以强制(enforcing)模式运行
setenforce 0 — SELinux以警告(permissive)模式运行
getenforce查看selinux
备注:如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0
⑷:关闭不需要的服务;
#开机精简启动,一般常用的服务sshd远程连接;syelog 记录系统日志;network 网卡服务;crond 定时任务;。
查看运行级别: runlevel N 3
查看启动的服务: chkconfig --list | grep 3:启用 | awk '{print $1}'
需要开启:crond network yum-updatesd sshd syslog
关闭: for kong in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|network|sshd|rsyslog"`;do chkconfig $kong off;done
开启单个服务: chkconfig [--level<等级代号>][系统服务] on/off
范例: chkconfig --level 3 syslog on
结果: chkconfig --list|grep "3:启用"
crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
network 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
sshd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
syslog 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
⑸:时间同步:
echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root
检查:crontab -l
⑹:设置文件打开最大数:
#数值适当调整以增加文件打开数量。可以加快服务性能:
文件路径:/etc/security/limits.conf
查看:ulimit -a
设置:ulimit -n 65535
⑺:修改yum源,根据自己喜好,自由选择:
文件路径: 163:http://mirrors.163.com/.help/CentOS6-Base-163.repo
阿里云:http://mirrors.aliyun.com/repo/Centos-6.repo 路径:/etc/yum.repos.d wget /etc/yum.repos.d/CentOS-Base.repo
⑻:锁定密码相关文件:
chattr +i 系统不允许对这个文件进行任何的修
chattr +i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/inittab 查看:lsattr + 文件名
⑼:修改习惯的中文语言:
sed -i 's#LANG="en_US.UTF-8"#LANG="zh_CN.gb2312"#g' /etc/sysconfig/i18n
执行文件 ,且生效source /etc/sysonfig/i18n
#注意备份
⑽:关闭ctrl+alt+del重启:
sed -i 's/^ca::ctrlaltdel:*/#ca::ctrlaltdel:*/' /etc/inittab
init q
⑾:修改系统运行级别为:3(需要重启生效):
sed -i 's/^id:5:initdefault:/id:3:initdefault:/' /etc/inittab
⑿:设置SSH的TIMEOUT时间限制为10分钟:
echo "TMOUT=600" >> /etc/profile
⒀:修改密码有效期为:91天,老用户不生效,需用chage命令修改:
sed -i 's/^PASS_MAX_DAYS.*$/PASS_MAX_DAYS\t91/' /etc/login.defs
⒁:history记录条目为50条:
echo "HISTSIZE=50" >> /etc/profile
echo "HISTFILESIZE=50" >> /etc/profile#histfilesize历史记录文件大小,例如10M或者50M
⒂:自动检测.netrc & .rhosts文件,存在即删除: FIND1=`find / -name .netrc` FIND2=`find / -name .rhosts` for NETRC in $FIND1 do if [ -f $NETRC ] ; then rm -f $NETRC fi done for RHOSTS in $FIND2 do if [ -f $RHOSTS ] ; then rm -f $RHOSTS fi done
⒃:各主目录权限应为750:
chmod 750 /home/* chmod 700 /home/lost+found ⒄:用户删除或锁定:# passwd -l 锁定用户
# userdel -r 删除用户 # usermod -s /sbinlogin 禁止(ssh/telnet)登陆,但可以ftpchmod 755 /sbinloginusermod -s /sbinlogin daemonusermod -s /sbinlogin binusermod -s /sbinlogin nobodyusermod -s /sbinlogin sshdusermod -s /sbinlogin admusermod -s /sbinlogin binusermod -s /sbinlogin mailusermod -s /sbinlogin operatorusermod -s /sbinlogin gopherusermod -s /sbinlogin ftpusermod -s /sbinlogin nobodyusermod -s /sbinlogin rpmusermod -s /sbinlogin dbususermod -s /sbinlogin avahiusermod -s /sbinlogin nscdusermod -s /sbinlogin mailnullusermod -s /sbinlogin smmspusermod -s /sbinlogin vcsausermod -s /sbinlogin haldaemonusermod -s /sbinlogin rpcusermod -s /sbinlogin rpcuserusermod -s /sbinlogin nfsnobodyusermod -s /sbinlogin pcapusermod -s /sbinlogin ntpusermod -s /sbinlogin distcacheusermod -s /sbinlogin apacheusermod -s /sbinlogin webalizerusermod -s /sbinlogin squidusermod -s /sbinlogin namedusermod -s /sbinlogin xfsusermod -s /sbinlogin gdmusermod -s /sbinlogin sabayonusermod -s /sbinlogin aisusermod -s /sbinlogin pegasususermod -s /sbinlogin luciusermod -s /sbinlogin piranhausermod -s /sbinlogin riccusermod -s /sbinlogin uucpusermod -s /sbinlogin gamesusermod -s /sbinlogin lp⒅:设置所有用户umask 为027:
sed -i 's/^UMASK.*$/UMASK\t027/' /etc/login.defs
⒆:删除NIS:
i=`rpm -qa yp-tools`
n=`rpm -qa ypbind`rpm -e $i $n⒇:密码策略:密码有效期90天,最短长度为8位,密码重试3次后提示密码错误,最多有3位与原密码相同,至少有一个大写字母、一个小写字母、一个数字、一个字符:
cp -ap /etc/login.defs /etc/login.defs.back
sed -i 's/^PASS_MAX_DAYS.*$/PASS_MAX_DAYS\t90/' /etc/login.defs
sed -i 's/^PASS_MIN_LEN.*$/PASS_MIN_LEN\t8/' /etc/login.defscp -ap /etc/pam.d/system-auth /etc/pam.d/system-auth.back
sed -i 's/password.*pam_cracklib.so.*$/password requisite pam_cracklib.so try_first_pass retry=3 difok=3 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 minlen=8/g' /etc/pam.d/system-auth
#防火墙设置:
vi /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
#超时时间调小
解决办法:
报错解决办法:http://www.lvtao.net/server/centos-server-setup.html
注意系统版本号:
cat /etc/redhat-release
CentOS release 5.9 (Final)