Centos 6. X 기초 최적화
13712 단어 linux
외부 네트워크 기기 가 방화벽 을 열 려 면 서 비 스 를 제공 해 야 하 는 포트 만 열 어야 합 니 다.
#iptables
service iptables stop
/sbin/chkconfig iptables off
#selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2. yum 원본 변경
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -O /etc/yum.repos.d/CentOS-Base.repo
3. 자동 시동 서비스 간소화
LANG=en #
for i in `chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "crond|network|rsyslog|sshd|sysstat"`;do chkconfig --level 3 $i off;done
4. ssh 로그 인 정책 최적화
# /etc/ssh/sshd_config
Port22
PermitRootLogin no root
PermitEmptyPasswords
UseDNS no DNS
GSSAPIAuthentication no linux SSH
###
sed -i 's/#Port 22/Port 52113/' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#PermitEmptyPasswords no/PermitEmptyPasswords no/' /etc/ssh/sshd_config
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
/etc/init.d/sshd restart
5. 사용자 와 로그 인 정책 최적화
username='sysadmin'
password='sysadmin'
useradd $username && echo $password | passwd --stdin $username &>/dev/null
sed -i "99i sysadmin ALL=(ALL) NOPASSWD:ALL" /etc/sudoers
echo "Defaults logfile=/var/log/sudo.log" >>/etc/sudoers
echo "local2.debug /var/log/sudo.log" >>/etc/rsyslog.conf
6. 정시 퀘 스 트 서버 를 추가 하여 시간 동기 화
/usr/sbin/ntpdate pool.ntp.org &>/dev/null
echo '#Update time' >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1' >>/var/spool/cron/root
7. 파일 설명자 크기 조정
ulimit -HSn 65535
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF
8. 커 널 파라미터 최적화
cat >> /etc/sysctl.conf << EOF
vm.swappiness = 0
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 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
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
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
EOF
/sbin/sysctl -p
#net.ipv4.tcp_fin_timeout = 2 , FIN-WAIT-2 , , , 。
#net.ipv4.tcp_tw_reuse = 1 。 TIME-WAIT TCP 。 0 。
#net.ipv4.tcp_tw_recycle = 1 TCP TIME-WAIT , 0
#net.ipv4.tcp_syncookies = 1 SYN Cookies。 SYN , cookie , SYN 。 0, 。
#net.ipv4.tcp_keepalive_time =600 keepalive ,TCP keepalive , 2 , 10
#net.ipv4.ip_local_port_range = 4096 65000 # , ,32768~65535
#net.ipv4.tcp_max_syn_backlog = 16384 SYN , 1024, 16384, 。
#net.ipv4.tcp_max_tw_buckets = 36000 TIME_WAIT , ,TIME_WAIT 。 180000, 36000。 Apache、Nginx , TIME_WAIT , Squid , 。 TIME_WAIT , Squid TIME_WAIT 。
#net.ipv4.route.gc_timeout = 100 , 300
#net.ipv4.tcp_syn_retries = 1 , SYN 。 255, 5, 180 。
#net.ipv4.tcp_synack_retries = 1 SYN, SYN + ACK , SYN 。 ( threeway handshake) 。 SYN+ACK 。 255, 5, 180 。
#net.core.somaxconn = 16384 (LISTEN) , 。web listen backlog net.core.somaxconn 128, nginx NGX_LISTEN_BACKLOG 511, 。 , 。 128.
#net.core.netdev_max_backlog = 16384 , , , 。 1024
#net.ipv4.tcp_max_orphans = 16384 TCP sockets 。 ﹐ reset, 。 ﹐ DoS ﹐ 。 。 8192.
# iptables , , 。
#net.ipv4.ip_conntrack_max = 25000000 ipv4 , 65536, , 128M, 8192,1G 65536
#net.nf_conntrack_max = 25000000
#net.netfilter.nf_conntrack_max = 25000000
#net.netfilter.nf_conntrack_tcp_timeout_established = 180 tcp , 432000, 5 , , , NAT ip_conntrack: table full ,
#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
9. 키 시스템 파일 잠 금
:chattr +i files -i
/etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab /etc/services /etc/rc.local
lsattr file :
10. history 표시 시간
# cat /etc/profile #
HISTTIMEFORMAT="%F %T `whoami` "
# source /etc/profile #
11. 로그 인 정보 삭제
>/etc/issue
>/etc/motd
12. 필요 한 소프트웨어 설치
yum install lrzsz ntpdate sysstat tree wget nmap telnet -y
13. 시스템 기본 문자 집합 수정
# vi /etc/sysconfig/i18n
LANG=”zh_CN.UTF-8″ # , gbk LANG=”zh_CN.GB18030″
# source /etc/sysconfig/i18n #
14. 과거 명령 기록 수량 감소
sed -i “s/HISTSIZE=1000/HISTSIZE=10/” /etc/profile # 1000 10
source /etc/profile #
15. ping 금지 (필수)
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
16. grub 비밀번호 추가 (필수)
1) /sbin/grub-md5-crypt MD5
# /sbin/grub-md5-crypt
Password:
Retype password:
$1$7XIYM/$L4is2wwmH0CZqGH1Oq4RY.
2) grub.conf
# vim /etc/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$jJJYM/$lfH83xAKeks/dkptv7wx9. # :password plashimage title ,
title CentOS (2.6.32-431.el6.x86_64)
17. lvs / haproxy 부하 균형 에이전트 커 널 파라미터 설정
#vm.swappiness = 0
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 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
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
#net.ipv4.tcp_max_orphans = 16384
# iptables -V
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
18. nginx / apache 생산 커 널 파라미터 최적화
net.ipv4.tcp_max_syn_backlog = 65536
net.core.somaxconn = 32768
net.core.netdev_max_backlog = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 2048 65535
19. squid / varnish / nginx proxy 생산 커 널 최적화
CDN cache
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 1800000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_retriesl = 22
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syn_retries = 3
다음 스 크 립 트 는 최 적 화 된 8 가지 항목 을 포함 합 니 다.
# cat system_optimization.sh
#!/bin/bash
. /etc/init.d/functions
#Require root to run this script.
if [ "`whoami`" != "root" ];then
echo "Please run this script as root."
exit 1
fi
close_iptables_selinux(){
#stop iptables and SELinux
/etc/init.d/iptables stop &> /dev/null
/sbin/chkconfig iptables off
sel=`getenforce`
if [ "$sel" == "Enforcing" ];then
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
fi
if [ $? -eq 0 ];then
action "close iptables and selinux" /bin/true
else
action "close iptables and selinux" /bin/false
fi
}
update_yum_repo(){
#make the 163.com as the default yum repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -O /etc/yum.repos.d/CentOS-Base.repo &>/dev/null
#ls -l /etc/yum.repos.d/
if [ $? -eq 0 ];then
action "Update yum repo" /bin/true
else
action "Update yum repo" /bin/false
fi
}
service(){
#Service optimization
for i in `chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "crond|network|rsyslog|sshd|sysstat"`;do chkconfig --level 3 $i off;done
if [ $? -eq 0 ];then
action "Service optimization" /bin/true
else
action "Service optimization" /bin/false
fi
}
ssh(){
#set ssh
sed -i 's/#Port 22/Port 52113/' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#PermitEmptyPasswords no/PermitEmptyPasswords no/' /etc/ssh/sshd_config
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
/etc/init.d/sshd restart &>/dev/null
grep "Port 52113" /etc/ssh/sshd_config &>/dev/null
if [ $? -eq 0 ];then
action "Optimization of SSH" /bin/true
else
action "Optimization of SSH" /bin/false
fi
}
sudo(){
#sudo
username='sysadmin'
password='sysadmin'
useradd $username && echo $password | passwd --stdin $username &>/dev/null
sed -i "99i sysadmin ALL=(ALL) NOPASSWD:ALL" /etc/sudoers
echo "Defaults logfile=/var/log/sudo.log" >>/etc/sudoers
echo "local2.debug /var/log/sudo.log" >>/etc/rsyslog.conf
#Sudo authorization
if [ $? -eq 0 ];then
action "Sudo authorization" /bin/true
else
action "Sudo authorization" /bin/false
fi
}
update_time(){
#Update time
/usr/sbin/ntpdate pool.ntp.org &>/dev/null
if [ $? -eq 0 ];then
action "Update time" /bin/true
else
action "Update time" /bin/false
fi
echo '#Update time' >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1' >>/var/spool/cron/root
}
set_file_limit(){
#set the file limit
ulimit -HSn 65535
cat >> /etc/security/limits.conf << EOF
* - nofile 65535
EOF
if [ $? -eq 0 ];then
action "Set file limit" /bin/true
else
action "Set file limit" /bin/false
fi
#tail -2 /etc/security/limits.conf
}
kernel(){
#tune kernel parametres
cat >> /etc/sysctl.conf << EOF
vm.swappiness = 0
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 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
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
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
EOF
/sbin/sysctl -p &>/dev/null
grep "net.nf_conntrack_max = 25000000" /etc/sysctl.conf &>/dev/null
if [ $? -eq 0 ];then
action "Tune kernel parametres" /bin/true
else
action "Tune kernel parametres" /bin/false
fi
}
close_iptables_selinux
update_yum_repo
service
ssh
sudo
update_time
set_file_limit
kernel
cat << EOF
+-------------------------------------------------+
| optimizer is done |
| it's recommond to restart this server ! |
+-------------------------------------------------+
EOF
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.