當前位置:
首頁 > 知識 > Liunx基礎優化配置

Liunx基礎優化配置

1. 為系統添加操作用戶,並授予sudo許可權

[root@localhost ~]# groupadd cai[root@localhost~]# useradd cai -g cai[root@localhost~]#passwdcai更改用戶 cai 的密碼 。新的 密碼:無效的密碼: 過於簡單化/系統化無效的密碼: 過於簡單重新輸入新的 密碼:passwd: 所有的身份驗證令牌已經成功更新。[root@localhost~]#su- cai

sudo的配置文件在/etc/sudoers下面,不過是只讀文件。想要修改使用「visudo」命令。

用戶名  可登錄的終端  具體命令(使用絕對路徑,which查看)

cairui   ALL=(ALL)   /usr/sbin/useradd


2. 配置Yum源為國內源

下載對應版本repo文件, 放入/etc/yum.repos.d/(操作前請做好相應備份)

[root@localhost ~]# cd /etc/yum.repos.d

[root@localhost ~]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo


3. 關閉防火牆(iptables)和Selinux

(1)因為防火牆和selinux的設置很麻煩,而且需要大量的時間去搞,所以索性就關掉。

臨時關閉防火牆:(可以查看狀態,重啟,關閉,打開)

[root@localhost ~]# /etc/init.d/iptables Usage: iptables

永久關閉防火牆:(關閉開機自啟)

[root@localhost ~]# chkconfig iptables off

查看iptables開機狀態:

(2)關閉selinux

[root@localhost ~]# vim /etc/selinux/config # Thisfilecontrols the state of SELinux on the system.# SELINUX=can take one of these three values:# enforcing-SELinux security policy is enforced.# permissive-SELinux prints warnings instead of enforcing.# disabled-No SELinux policy is loaded.#SELINUX=enforcingSELINUX=disabled  修改為disabled# SELINUXTYPE=can take one of these two values:# targeted-Targeted processes are protected,# mls-Multi Level Security protection.SELINUXTYPE=targeted

4. 修改ssh服務的默認配置

修改之前先備份默認的配置:

[root@localhost ~]#cp/etc/ssh/sshd_config /etc/ssh/sshd_config.backup

再修改

[root@localhost ~]# vim /etc/ssh/sshd_config# $OpenBSD: sshd_config,v1.802008/07/0202:24:18djm Exp $# This is the sshd server system-wide configurationfile. See# sshd_config(5)formoreinformation.# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin# The strategy usedforoptionsinthe default sshd_config shipped with# OpenSSH is to specify options with their default value where# possible, but leave them commented. Uncommented options change a# default value.#Port22Port 52000 修改Linux默認連接埠#AddressFamily any#ListenAddress0.0.0.0#ListenAddress ::# Disable legacy (protocol version1) supportinthe serverfornew# installations. In future the default will change to require explicit# activation of protocol1Protocol2# HostKeyforprotocol version1#HostKey/etc/ssh/ssh_host_key# HostKeysforprotocol version2#HostKey/etc/ssh/ssh_host_rsa_key#HostKey/etc/ssh/ssh_host_dsa_key# Lifetime and size of ephemeral version1server key#KeyRegenerationInterval 1h#ServerKeyBits1024# Logging# obsoletes QuietMode and FascistLogging#SyslogFacility AUTHSyslogFacility AUTHPRIV#LogLevel INFO# Authentication:#LoginGraceTime 2m#PermitRootLogin yes

PermitRootLogin no  #不允許root用戶登錄(因為每個人都知道root能夠登錄)#StrictModes yes#MaxAuthTries6

#MaxSessions10

#RSAAuthentication yes#PubkeyAuthentication yes#AuthorizedKeysFile

.ssh/authorized_keys#AuthorizedKeysCommand none#AuthorizedKeysCommandRunAs nobody# For this to work you will also need host keysin/etc/ssh/ssh_known_hosts#RhostsRSAAuthentication no# similarforprotocol version2#HostbasedAuthentication no# Change to yesifyou don"t trust ~/.ssh/known_hosts for

# RhostsRSAAuthentication and HostbasedAuthentication#IgnoreUserKnownHosts no# Don"t read the user"s ~/.rhosts and ~/.shosts files#IgnoreRhosts yes# To disable tunneledcleartext passwords, change to no here!#PasswordAuthentication yes

#PermitEmptyPasswords no

PasswordAuthentication yes# Change to no to disable s/key passwords#ChallengeResponseAuthentication yesChallengeResponseAuthentication no# Kerberos options#KerberosAuthentication no#KerberosOrLocalPasswd yes#KerberosTicketCleanup yes#KerberosGetAFSToken no#KerberosUseKuserok yes# GSSAPI options#GSSAPIAuthentication noGSSAPIAuthentication yes#GSSAPICleanupCredentials yesGSSAPICleanupCredentials yes#GSSAPIStrictAcceptorCheck yes#GSSAPIKeyExchange no# Set this to"yes"to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and# PasswordAuthentication. Depending on your PAM configuration,# PAM authentication via ChallengeResponseAuthentication may bypass# the setting of"PermitRootLogin without-password".# If you just want the PAM account and session checks to run without# PAM authentication,thenenable this but set PasswordAuthentication# and ChallengeResponseAuthentication to"no".#UsePAM noUsePAM yes# Accept locale-related environment variablesAcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGESAcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENTAcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGEAcceptEnv XMODIFIERS#AllowAgentForwarding yes#AllowTcpForwarding yes#GatewayPorts no#X11Forwarding noX11Forwarding yes#X11DisplayOffset10#X11UseLocalhost yes#PrintMotd yes#PrintLastLog yes#TCPKeepAlive yes#UseLogin no#UsePrivilegeSeparation yes#PermitUserEnvironment no#Compression delayed#ClientAliveInterval#ClientAliveCountMax3#ShowPatchLevel no#UseDNS yes

UseDNS no  #不使用DNS

#PidFile/var/run/sshd.pid#MaxStartups10:30:100#PermitTunnel no#ChrootDirectory none# no default banner path#Banner none# override default of no subsystemsSubsystem sftp/usr/libexec/openssh/sftp-server# Example of overriding settings on a per-user basis#Match User anoncvs# X11Forwarding no# AllowTcpForwarding no# ForceCommand cvs server

修改完之後重啟:

[root@localhost ~]# /etc/init.d/sshd 用法:/etc/init.d/sshd


5. 系統內核優化

[root@localhost ~]#cat/etc/sysctl.conf # Kernel sysctl configurationfileforRed Hat Linux## For binary values,is disabled,1is enabled. See sysctl(8) and# sysctl.conf(5)formoredetails.## Use"/sbin/sysctl -a"to list all possible parameters.# Controls IP packet forwardingnet.ipv4.ip_forward=

# Controls source route verificationnet.ipv4.conf.default.rp_filter=1

# Do not accept source routingnet.ipv4.conf.default.accept_source_route=

# Controls the System Request debugging functionality of the kernelkernel.sysrq=

# Controls whether core dumps will append the PID to the core filename.# Usefulfordebugging multi-threaded applications.kernel.core_uses_pid=1

# Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies=1

# Controls the default maxmimum size of a mesage queuekernel.msgmnb=65536

# Controls the maximum size of a message,inbyteskernel.msgmax=65536

# Controls the maximum shared segment size,inbyteskernel.shmmax=68719476736

# Controls the maximum number of shared memory segments,inpageskernel.shmall=4294967296

# 下面是內核調優參數

net.ipv4.tcp_syn_retries=1

net.ipv4.tcp_synack_retries=1

net.ipv4.tcp_keepalive_time=600

net.ipv4.tcp_keepalive_probes=3

net.ipv4.tcp_keepalive_intvl=15

net.ipv4.tcp_retries2=5

net.ipv4.tcp_fin_timeout=2

net.ipv4.tcp_max_tw_buckets=36000

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_max_orphans=3276

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_max_syn_backlog=16384

net.ipv4.tcp_wmem=819213107216777216

net.ipv4.tcp_rmem=3276813107216777216

net.ipv4.tcp_mem=78643210485761572864

net.ipv4.ip_local_port_range=102465000

net.ipv4.ip_conntrack_max=65536

net.ipv4.netfilter.ip_conntrack_max=65536

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180

net.core.somaxconn=16384net.core.netdev_max_backlog=16384

[root@localhost ~]# sysctl -p #配置生效net.ipv4.ip_forward=

net.ipv4.conf.default.rp_filter=1

net.ipv4.conf.default.accept_source_route=

kernel.sysrq=

kernel.core_uses_pid=1

net.ipv4.tcp_syncookies=1

kernel.msgmnb=65536

kernel.msgmax=65536

kernel.shmmax=68719476736

kernel.shmall=4294967296

net.ipv4.tcp_syn_retries=1

net.ipv4.tcp_synack_retries=1

net.ipv4.tcp_keepalive_time=600

net.ipv4.tcp_keepalive_probes=3

net.ipv4.tcp_keepalive_intvl=15

net.ipv4.tcp_retries2=5

net.ipv4.tcp_fin_timeout=2

net.ipv4.tcp_max_tw_buckets=36000

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_max_orphans=32768

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_max_syn_backlog=16384

net.ipv4.tcp_wmem=819213107216777216

net.ipv4.tcp_rmem=3276813107216777216

net.ipv4.tcp_mem=78643210485761572864

net.ipv4.ip_local_port_range=102465000

error:"net.ipv4.ip_conntrack_max"is an unknown keyerror:"net.ipv4.netfilter.ip_conntrack_max"is an unknown keyerror:"net.ipv4.netfilter.ip_conntrack_tcp_timeout_established"is an unknown keynet.core.somaxconn=16384

net.core.netdev_max_backlog=16384


6. 超時設置(timeout)

為了系統的安全,設置無操作超時自動退出登錄設置

臨時生效:

[root@centos6 ~]# export TMOUT=5

[root@centos6~]# timed out waitingforinput: auto-logout

永久配置生效:

[root@centos6 ~]#echo"export TMOUT=300">>/etc/profile 實際生產環境5分鐘[root@centos6~]# source / etc/profile


7. 加大文件描述符

文件描述符是由無符號整數表示的句柄(一般使用範圍0~65535),進程使用它來標識打開的文件。文件描述符與包括相關信息(如文件的打開模式、文件的位置類型、文件的初始類型等)的對象想關聯,這些信息稱為文件的上下文。

對於內核而言,所有打開的文件都是通過文件描述符引用的。當打開一個現有文件或者創建一個新文件時,內核向進程返回一個文件描述符。

按照慣例,UNIX系統shell使用0-》標準輸入,1-》標準輸出,2-》標準錯誤

查看系統默認的文件描述符大小:[root@centos6~]# ulimit -n1024

[root@centos6~]#echo"* - nofile 65535">>/etc/security/limits.conf退出重新登錄,才會生效[root@centos6~]# ulimit -n65535


8. 隱藏系統版本消息

[cairui@localhost ~]$cat/etc/issueCentOS release6.8(Final)Kernel
on an m[cairui@localhost~]$cat/etc/issue.net CentOS release6.8(Final)Kernel
on an m

只需要清空上述的文件內容,就可以隱藏信息。


9. 給grub引導菜單加密碼保護(因為grub能進入看到root密碼)

[root@localhost ~]# /sbin/grub-md5-crypt Password: Retype password: $1$kpiKh/$..jTvOdnHGnMsqqs5OWlM/[root@localhost~]#vi/etc/grub.conf [root@localhost~]#cat/etc/grub.conf # grub.conf generated by anaconda## Note that youdonot have to rerun grub after making changes to thisfile# NOTICE: You have a/boot partition. This means that# all kernel and initrd paths are relative to/boot/, eg.# root (hd0,)# kernel/vmlinuz-version ro root=/dev/sda3# initrd/initrd-[generic-]version.img#boot=/dev/sdadefault=timeout=5splashimage=(hd0,)/grub/splash.xpm.gzhiddenmenupassword--md5 $1$hv58gkgk9G995885/JG0orl4m  #後來添加的title CentOS6(2.6.32-642.el6.x86_64) root (hd0,) kernel/vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=57e48303-c321-4c12-8ac4-7596c31f55ef rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8rd_NO_LVM rd_NO_DM rhgb quiet initrd/initramfs-2.6.32-642.el6.x86_64.img


10. 調整字符集

[root@centos6ssh]#echo$LANGen_US.UTF-8[root@centos6ssh]#cat/etc/sysconfig/i18nLANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"[root@centos6ssh]#cp/etc/sysconfig/i18n /etc/sysconfig/i18n.2016.12.21[root@centos6ssh]#sed-i"s#LANG="en_US.UTF-8"#LANG="zh_CN.UTF-8"#g"/etc/sysconfig/i18n[root@centos6ssh]# source /etc/sysconfig/i18n[root@centos6ssh]#echo$LANGzh_CN.UTF-8


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux資訊速推 的精彩文章:

Spotify 現已支持Linux snap 通用套件

TAG:Linux資訊速推 |