說明:經常玩Linux系統的朋友多多少少也知道些系統參數優化和怎樣增強系統安全性,系統默認的一些參數都是比較保守的,所以我們可以通過調整系統參數來提高系統內存、CPU、內核資源的佔用,通過禁用不必要的服務、端口,來提高系統的安全性,更好的發揮系統的可用性。通過自己對Linux瞭解,對系統調優做了如下小結:
操作系統:CentOS6.5_x64(最小化安裝)
1、主機名設置
[root@localhost~]# vi /etc/sysconfig/network HOSTNAME=test.com [root@localhost~]# hostname test.com #臨時生效
2、關閉SELinux
[root@localhost~]# vi /etc/selinux/config SELINUX=disabled [root@localhost~]# setenforce #臨時生效 [root@localhost~]# getenforce #查看selinux狀態
3、清空防火牆並設置基本規則
[root@localhost~]# iptables -F #清楚防火牆規則 [root@localhost~]# iptables -L #查看防火牆規則 [root@localhost~]# iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #檢查狀態,防止無效的數據包 [root@localhost~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT [root@localhost~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT [root@localhost~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT [root@localhost~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT [root@localhost~]# iptables -A INPUT -p udp --dport 123 -j ACCEPT [root@localhost~]# iptables -A INPUT -p icmp -j ACCEPT [root@localhost~]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT [root@localhost~]# iptables -P INPUT DROP [root@localhost~]# /etc/init.d/iptables save
#根據需求開啓相應端口
4、添加user用戶並進行sudo授權管理
[root@localhost~]# useradd user [root@localhost~]# echo "123456" | passwd --stdin user #設置密碼 [root@localhost~]# vi /etc/sudoers #或visudo打開,添加user用戶所有權限 root ALL=(ALL) ALL user ALL=(ALL) ALL
5、禁用root遠程登錄
[root@localhost~]# vi /etc/ssh/sshd_config PermitRootLogin no PermitEmptyPasswords no #禁止空密碼登錄 UseDNS no #關閉DNS查詢
6、關閉不必要開機自啓動服務
7、刪除不必要的系統用戶
8、關閉重啓ctl-alt-delete組合鍵
[root@localhost ~]# vi /etc/init/control-alt-delete.conf #exec /sbin/shutdown -r now "Control-Alt-Deletepressed" #註釋掉
9、調整文件描述符大小
[root@localhost ~]# ulimit –n #默認是1024 1024 [root@localhost ~]# echo "ulimit -SHn 102400">> /etc/rc.local #設置開機自動生效
10、修改系統顯示信息
[root@localhost ~]# echo "Welcome to Server" >/etc/issue [root@localhost ~]# echo "Welcome to Server" >/etc/redhat-release
11、修改history記錄
[root@localhost ~]# vi /etc/profile #修改記錄10個 HISTSIZE=10
12、同步系統時間
[root@localhost ~]# yum install -y ntp [root@localhost ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #設置Shanghai時區 [root@localhost ~]# ntpdate cn.pool.ntp.org ;hwclock–w #同步時間並寫入blos硬件時間 [root@localhost ~]# crontab –e #設置任務計劃每天零點同步一次 0 * * * * /usr/sbin/ntpdate cn.pool.ntp.org ; hwclock -w
13、內核參數優化
[root@localhost ~]# vi /etc/sysctl.conf #末尾添加如下參數 net.ipv4.ip_local_port_range = 4096 65000 #向外可使用應用程序端口範圍 net.ipv4.tcp_fin_timeout = 2 #表示如果套接字由本端要求關閉,保持在FIN-WAIT-2狀態的時間,默認值是60秒。 net.ipv4.tcp_syncookies = 1 #當有大量SYN包,等待隊列溢出時,就會啓用Cookies來處理,可防範少量SYN***,默認是1,開啓 net.ipv4.tcp_tw_reuse = 1 #1是開啓複用,允許將TIME_WAIT sockets重新用於新的TCP連接,默認是0,表示關閉 net.ipv4.tcp_tw_recycle = 1 #開啓TCP連接中TIME_WAIT sockets的快速回收,默認是0關閉 net.ipv4.tcp_max_tw_buckets = 5000 #系統同時保持TIME_WAIT套接字的最大數量,如果超出這個數字,TIME_WATI套接字將立刻被清除並打印警告信息,默認180000 net.ipv4.tcp_max_syn_backlog = 4096 #進入SYN隊列的最大長度,默認是1024,加大隊列長度可容納更多的等待連接 net.core.netdev_max_backlog = 10240 #網絡接口接受數據包的隊列,允許送到隊列的數據包最大設備隊列,默認值1000 net.core.somaxconn = 2048 #調節系統同時發起的tcp連接數,默認值128 net.core.wmem_default = 4096000 #發送緩存區大小的缺省值 net.core.rmem_default = 4096000 #接受套接字緩衝區大小的缺省值(以字節爲單位) net.core.rmem_max = 4096000 #最大接收緩衝區大小的最大值 net.core.wmem_max = 4096000 #發送緩衝區大小的最大值 net.ipv4.tcp_syn_retries = 2 #SYN握手重試次數,當超過這個數,此連接就會從syn_backlog中刪除 net.ipv4.tcp_synack_retries = 2 #SYN-ACK握手狀態重試次數 net.ipv4.tcp_max_orphans = 3276800 #系統中最多有多少個TCP套接字不被關聯到任何一個用戶文件句柄上,如果超出這個數字,孤兒連接將立即復位並打印警告信息 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_mem[0]:低於此值,TCP沒有內存壓力; net.ipv4.tcp_mem[1]:在此值下,進入內存壓力階段; net.ipv4.tcp_mem[2]:高於此值,TCP拒絕分配socket。內存單位是頁,可根據物理內存大小進行調整,如果內存足夠大的話,可適當往上調。上述內存單位是頁,而不是字節。 [root@localhost ~]# sysctl -p #生效配置
主要根據網絡狀態優化:開啓TIME_WAIT複用、TIME_WAIT快速回收、開啓SYN Cookies、加大SYN隊列最大長度、網絡接口接受數據包的最大隊列、接受和發送緩衝區的值調整等。
至此CentOS6.5_x64最小化安裝系統基本優化調整完畢,最好重啓下系統。