centos7 初始優化+及目錄講解
CentOS 7系統安裝後的基礎優化
一、系統版本內核信息
[root@center ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [root@center ~]# uname -a Linux center 3.10.0-514.2.2.el7.x86_64 #1 SMP Tue Dec 6 23:06:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@center ~]# uname -m 系統信息 x86_64 [root@center ~]# uname -r 內核版本信息3.10.0-514.2.2.el7.x86_64
二、修改主機名
[root@localhost ~]# hostnamectl --static set-hostname zhongshabi 需要退出當前用戶登錄窗口再重新登錄後
三、配置yum源
https://mirrors.tuna.tsinghua.edu.cn/help/centos/ 清華源 http://mirrors.163.com/.help/centos.html 163 源 http://mirrors.aliyun.com/repo/Centos-7.repo 阿裏雲源 yum clean cache 清空yum緩存 yum makecache
四、關閉SELinux及iptables
SELinux,它是一個 Linux 內核模塊,也是 Linux 的一個安全子系統。
SELinux 主要由美國國家安全局開發。2.6 及以上版本的 Linux 內核都已經集成了 SELinux 模塊。
SELinux 的結構及配置非常復雜,而且有大量概念性的東西,要學精難度較大。很多 Linux 系統管理員嫌麻煩都把 SELinux 關閉了。
註意:如果不關閉會導致很多服務及應用無法正常工作,都被攔截了
例子:上次重做高仿服務器時,就因為忽略了這個selinux導致本地host解析後網站就是打不開
關閉方法
1、當前關閉,服務器重啟後失效
[root@zhongshabi ~]# getenforce 獲取當前selinux Enforcing [root@zhongshabi ~]# setenforce 0 修改當前selinux 值設置成0或者1 [root@zhongshabi ~]# getenforce Permissive # 寬松的
2、配置文件修改selinux,修改配置文件,重啟服務器生效
SELINUX=disabled # 修改為disabled即可,默認為Enforcing # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
五、同步服務器時間
安裝工具
yum install ntpdate -y
ntpdate 時間服務器有很多,可以網上搜索一下
ntpdate 192.168.1.80 同步服務器時間。192.168.1.80 是我們自己做的一個時間服務器
可以寫入到crontab中定期同步
六、文件描述符
擴展:文件描述符
文件描述符在形式上是一個非負整數。實際上,它是一個索引值,指向內核為每一個進程所維護的該進程打開文件的記錄表。當程序打開一個現有文件或者創建一個新文件時,內核向進程返回一個文件描述符。在程序設計中,一些涉及底層的程序編寫往往會圍繞著文件描述符展開。
但是文件描述符這一概念往往只適用於Unix、Linux這樣的操作系統。
習慣上,標準輸入(standard input)的文件描述符是 0,
標準輸出(standard output)是 1,
標準錯誤(standard error)是 2。
盡管這種習慣並非Unix內核的特性,但是因為一些 shell 和很多應用程序都使用這種習慣,因此,如果內核不遵循這種習慣的話,很多應用程序將不能使用。
[root@localhost ~]# ulimit –n
1024 #查看文件描述符大小1024
[root@localhost ~]# ulimit -n 65536
[root@localhost ~]# ulimit -n
65536 臨時生效
[root@localhost ~]# echo ‘* - nofile 65536‘ >> /etc/security/limits.conf
配置完成後,重新登錄即可查看。
提示:也可以把ulimit -SHn 65535命令加入到/etc/rc.local,然後每次重啟生效
[root@c64 ~]# cat >>/etc/rc.local<<EOF #open files ulimit -HSn 65535 #stack size ulimit -s 65535 EOF * - nofile 65536 * - nproc 65536 或者 * soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 soft nproc: 可打開的文件描述符的最大數(軟限制) hard nproc: 可打開的文件描述符的最大數(硬限制) soft nofile:單個用戶可用的最大進程數量(軟限制) hard nofile:單個用戶可用的最大進程數量(硬限制)
七、配置linux內核參數
[root@zhongshabi ~]# vim /etc/sysctl.conf 內核參數配置文件 #關閉ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 #避免放大攻擊 net.ipv4.icmp_echo_ignore_broadcasts = 1 #開啟惡意icmp錯誤消息保護 net.ipv4.icmp_ignore_bogus_error_responses = 1 #關閉路由轉發 net.ipv4.ip_forward = 0 開起路由轉發將0改為1即可 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 #開啟反向路徑過濾 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 #處理無源路由的包 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 #關閉sysrq功能 kernel.sysrq = 0 #core文件名中添加pid作為擴展名 kernel.core_uses_pid = 1 #開啟SYN洪水攻擊保護 net.ipv4.tcp_syncookies = 1 表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,默認為1,表示開啟的; 表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數 net.ipv4.tcp_max_syn_backlog = 262144 #修改消息隊列長度 kernel.msgmnb = 65536 kernel.msgmax = 65536 #設置最大內存共享段大小bytes kernel.shmmax = 68719476736 kernel.shmall = 4294967296 #timewait的數量,默認180000 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.tcp_sack = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_rmem = 4096 87380 4194304 TCP讀buffer,可參考的優化值: 32768 436600 873200 net.ipv4.tcp_wmem = 4096 16384 4194304 tcp寫buffer,可參考的優化值: 8192 436600 873200 net.core.wmem_default = 8388608 TCP寫buffer的默認值 net.core.rmem_default = 8388608 TCP讀buffer的默認值 net.core.rmem_max = 16777216 TCP寫buffer的最大值 net.core.wmem_max = 16777216 TCP寫buffer的最大值 #每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目 net.core.netdev_max_backlog = 262144 #限制僅僅是為了防止簡單的DoS 攻擊 net.ipv4.tcp_max_orphans = 3276800 #未收到客戶端確認信息的連接請求的最大值 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_timestamps = 0 #內核放棄建立連接之前發送SYNACK 包的數量 net.ipv4.tcp_synack_retries = 1 #內核放棄建立連接之前發送SYN 包的數量 net.ipv4.tcp_syn_retries = 1 #啟用timewait 快速回收 net.ipv4.tcp_tw_recycle = 1 #開啟重用。允許將TIME-WAIT sockets 重新用於新的TCP 連接 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_fin_timeout = 1 #當keepalive 起用的時候,TCP 發送keepalive 消息的頻度。缺省是2 小時 net.ipv4.tcp_keepalive_time = 30 #允許系統打開的端口範圍 net.ipv4.ip_local_port_range = 1024 65000 #修改防火墻表大小,默認65536 #net.netfilter.nf_conntrack_max=655350 #net.netfilter.nf_conntrack_tcp_timeout_established=1200 #確保無人能修改路由表 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 [root@zhongshabi ~]# sysctl -p 保存生效
八、服務器根目錄文件名都代表什麽意思
1.bin是系統有很多放置執行文件的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。/bin底下的指令可以被root與一般賬號所使用,主要有:cat,chmod,chown,date,mv,mkdir.cp,bash等常用的指令
2.boot這個目錄主要在放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機所需配置文件等等。Linux kernel常用的檔名為:vmlinuz,如果使用的是gurb這個開機管理程序,則還會存在/boot/gurb這個目錄
3.dev任何裝置與接口設備都是以檔案的型態存在於這個目錄中的。
4.etc系統主要的配置文件幾乎都放置在這個目錄內,
5.home這是系統默認的用戶家目錄(home directory)。
6.lib放置的則是在開機時會用到的函式庫
8.media底下放置的就是可移除的裝置,包括軟盤、光盤、DVD等等裝置都暫時掛載於此。常見的檔名有: /media/floppy, /media/cdrom等等。
9.mnt暫時掛載某些額外的裝置
10.opt這個是給第三方軟件放置的目錄。
11.proc這個目錄本身是一個『虛擬文件系統(virtual filesystem)』,他放置的數據都是在內存當中,例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等等。因為這個目錄下的數據都是在內存當中,所以本身不占任何硬盤空間,比較重要的檔案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。
12.root系統管理員(root)的家目錄。
13.sbinLinux有非常多指令是用來設定系統環境的,
14.tmp這是讓一般用戶或者是正在執行的程序暫時放置檔案的地方。這個目錄是任何人都能夠存取的,所以你需要定期的清理一下。
15.srv可以規為『service』的縮寫,是一些網絡服務吪啟動後,這些服務所需要取用的數據目錄。
16.sys這個目錄其實跟/proc非常類似也是一個虛擬的文件系統,主要也是記錄與核心的相關的信息。
17.usr是『Unix 操作系統軟件資源』所放置的目錄
18.var 是在系統運作後才會漸漸占用硬盤容量的目錄。用於存儲
centos7 初始優化+及目錄講解