RHEL/CentOS通用性能优化、安全配置参考
RHEL/CentOS通用性能優化、安全配置參考
?
本文的配置參數是筆者在實際生產環境中反復實踐總結的結果,完全適用絕大多數通用的高負載、安全性要求的網絡服務器環境。故可以放心使用。
?
若有異議,歡迎聯系zhangxugg@163.com探討。
?
提示:強烈建議使用RHEL?5.6/CentOS?5.6及以上版本的系統,否則可能會有差異。
?
一、配置yum更新源
CentOS不需要配置可以直接使用官方提供的yum源(但速度往往較慢),而RHEL在沒有購買授權服務情況下,是無法使用redhat官方的yum源的。如果你使用了CentOS但對其官方提供的yum源下載速度不滿意,或使用RHEL,需要從安裝光盤(或ISO鏡像)建立自己的yum源,那么請參照本節。
一般來說,建立yum更新源有三種方式
使用本地物理光盤
使用本地ISO文件
使用HTTP/FTP服務器
這幾種方式中,使用本地光盤、本地ISO文件的缺陷很明顯--只能為本機使用,無法實現網絡yum源共享,所以推薦使用HTTP方式建立yum更新源。以RHEL為標準,分別介紹這三種方式的配置
?
1.?使用本地光盤鏡像
A.?將光盤放入光驅(虛擬機如VM,?virtualbox,應該是為虛擬機分配光驅)
B.?建立掛載點
mkdir?/mnt/cdrom
C.?裝載光盤至掛載點?
mount?/dev/hdc?/mnt/cdrom/
D.?編輯文件?/etc/yum.repos.d/local.repo?,輸入以下內容
| [base] name=Red?Hat?Enterprise?Linux?Local?Source baseurl=file:///mnt/cdrom/Server enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ? [Cluster] name=Red?Hat?Enterprise?Linux?Cluster baseurl=file:///mnt/cdrom/Cluster ? [ClusterStorage] name=Red?Hat?Enterprise?Linux?ClusterStorage baseurl=file:///mnt/cdrom/ClusterStorage |
E.?驗證是否配置成功
yum?repolist
2.?使用本地ISO鏡像,?方法與使用光盤大同小異
A.?將系統鏡像ISO文件上傳至服務器某個目錄中(我使用的鏡像文件名為rhel-server-5.4-i386-dvd.iso)
B.?建立掛載目錄??mkdir?/mnt/OS
C.?卸載光驅并裝載ISO文件至掛載目錄???
umount?/mnt/cdrom/
mount?-o?loop?rhel-server-5.4-i386-dvd.iso?/mnt/cdrom/
D.?其它配置請參照第1小節的D、E步驟即可
3.?使用HTTP方式建立yum源,這需要預先在服務器上安裝Http?Server,如apache,?nginx,lighttpd均可。
A.?準備好系統ISO鏡像文件,上傳到yum服務器某個目錄中
B.?參照第2小節,將ISO文件裝載到某個目錄中,假設為?/mnt/os
C.?配置http服務器,發布上一步裝載的目錄,以nginx配置為例子?假設服務器IP為192.168.56.101
| server?{ ??server_name?192.168.56.101; ??location?/rhel-5.4?{ ????alias??/mnt/os; ????autoindex?on; ??} } |
?
D.?刪掉舊的yum配置文件
mv?-f?/etc/yum.repos.d/*?~/
?
E.?編輯文件?/etc/yum.repos.d/onlineyum.repo?輸入以下內容
| [base] name=Red?Hat?Enterprise?Linux?Online?Source baseurl=http://192.168.56.101/rhel-5.4/Server enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ? [Cluster] name=Red?Hat?Enterprise?Linux?Cluster baseurl=http://192.168.56.101/rhel-5.4/Cluster ? [ClusterStorage] name=Red?Hat?Enterprise?Linux?ClusterStorage baseurl=http://192.168.56.101/rhel-5.4/ClusterStorage |
F.?測試配置是否生效
yum?repolist
?
提示:
請將nginx配置中的server_name,?onlineyum.repo文件中的主機名按實際情況修改
如此處理后,其它服務器只要按上述步驟建立/etc/yum.repos.d/onlineyum.repo文件即可使用共享的yum源了
二、環境設置
主要是設置shell的環境,使日常的操作更為便捷
1.??去掉SSH登錄時DNS反向解析,以加快終端登錄速度
| sed??-r?"s/.*UseDNS.+/UseDNS?no/i"?/etc/ssh/sshd_config??>?/tmp/sshd_config mv?-f?/tmp/sshd_config?/etc/ssh/sshd_config service?sshd?restart |
?
2.?設置vi,?vim的默認的tab、行號顯示參數
| echo?"set?tabstop=4"?>>?/etc/virc echo?"set?tabstop=4"?>>?/etc/vimrc echo?"set?number"?>>?/etc/virc echo?"set?number"?>>?/etc/vimrc |
?
3.?設置vim的別名為vi,?這樣當我們使用vi命令時,實質上是使用了vim
| echo?"alias?vi=vim"?>>?~/.bashrc source?~/.bashrc |
?
4.?設置正確的時區
| cp??/usr/share/zoneinfo/Asia/Chongqing??/etc/localtime ? printf?'ZONE="Asia/Chongqing"\nUTC=false\nARC=false'?>?/etc/sysconfig/clock ? #更新系統時間 ntpdate?pool.ntp.org ? #執行crontab?-e,?輸入以下內容,每天凌晨6點更新系統時間 06***/sbin/ntpdate?pool.ntp.org??2>&1?|?/bin/logger |
?
5.?設置終端為英文,避免中文顯示亂碼的不必要麻煩
| echo?'LANG="en_US.UTF-8"'?>?/etc/sysconfig/i18n source??/etc/sysconfig/i18n |
?
6.?停止SELinux功能,避免出現異常現象。設置/etc/sysconfig/selinux文件中
| SELINUX=disabled |
三、服務優化?只開啟必要的服務,提高安全性和性能
| 安裝完Linux之后,以下服務是必須的必須開啟(以RHEL?5.6為參照),沒列出的服務可關閉 acpid???#高級控制電源管理接口 crond???#定時執行任務 haldaemon??#必須開啟,否則可能導致控制臺鍵盤鼠標無法使用 hidd???????#同上 irqbalance???#支持多cpu中斷,必須開啟 kudzu???????#檢測硬件變化時自動進行配置? lvm2-monitor??#用于監測LVM狀態 messagebus???#Linux系統進程間通訊的關鍵服務 mdmonitor????#監測軟RAID健康狀態??即使沒有使用軟RAID,?也強烈建議啟用此服務 mdmpd???????#同上,即使沒有多路徑存儲設備,也強烈建議啟用之 network???????#網絡支持 readahead_early??#預先加載特定的應用程序到內存中以提供性能 readahead_later??#同上 smartd??????????#硬盤故障自動檢測 sshd???????????? syslog klogd???????????#如果服務列表中存在,則必須開啟 ? 提示:配置服務可使用ntsysv工具,比較方便 ? 其它強烈建議開啟的服務 iptables????#使用內核防火墻保護服務器?請根據具體需要配置防火墻規則 |
?
?
四、Linux內核優化
1.?如果使用了iptables防火墻,則按以下參數優化
| #如果發現iptbles影響網絡性能或有丟包現象,執行以下命令以優化之 在高流量狀態下,如果iptables的hash表過小,就會出現丟包現象,系統日志中產生ip_conntrack:?table?full,?dropping?packet.這時網絡傳輸變得超慢。 ?? 設置為65536,?意味著netfilter可以跟蹤65536*8=50多萬個連接,逐步調整此值,直到不出現丟包現象為至。另外,如果這個值設置過大,也會有警告:falling?back?to?vmalloc?因此不能過大 ? grep?-i?"ip_conntrack"?/etc/modprobe.conf?||?\ echo?"options?ip_conntrack?hashsize=65536"?>>?/etc/modprobe.conf ? echo?"net.ipv4.netfilter.ip_conntrack_tcp_timeout_established?=?1200"?>>?/etc/sysctl.conf service?iptables?restart sysctl?-p ? 提示:當重啟iptables服務時,以上參數會失效,所以請務必修改/etc/init.d/iptables腳本 case?"$1"?in ????start) ????stop ????start 修改為 case?"$1"?in ????start) ????stop ????start ????/sbin/sysctl?-p??>?/dev/null?2>&1 ? 即在iptables啟動之后,強制重新加載/etc/sysctl.conf的配置 |
?
?
2.?優化內核網絡相關參數,向/etc/sysctl.conf中追加以下內容
| net.core.netdev_max_backlog=3000 net.ipv4.conf.lo.accept_redirects=0 net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.eth0.accept_redirects=0 net.ipv4.conf.default.accept_redirects=0 ? net.ipv4.tcp_tw_recycle=1 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=30 net.ipv4.tcp_keepalive_time=600 net.ipv4.tcp_max_syn_backlog=8192 net.ipv4.tcp_max_tw_buckets?=?9000 ? net.ipv4.tcp_syn_retries?=?1 ? net.core.rmem_max=16777216 net.core.wmem_max=16777216 ? net.ipv4.tcp_syncookies=1 net.ipv4.tcp_rmem=4096?87380?16777216 net.ipv4.tcp_wmem=4096?65536?16777216 ? net.ipv4.ip_local_port_range?=?102465535 vm.swappiness?=?10 |
?
使用sysctl?-p使配置生效。
?
在機器可重啟動情況下,強烈建議重啟以確認配置生效
?
五、配置iptables防火墻規則
在沒有其它防火墻保護措施時,一定要盡可能使用iptables的強大功能保護好您的服務器。如果不善于使用iptables,?則不是一個合格的系統工程師
?
如果不使用iptables,?此小節不必實踐
提示:在配置防火墻規則時為防止自己被拒之門外,強烈建議在作以下措施
運行crontab?-e?輸入以下內容
| */3???*???*???*???*??/etc/init.d/iptables?stop |
?
即每3分鐘自動停止防火墻。這樣即使由于配置錯誤使自己被攔截,等待3分鐘之后,即可解除。
?
開始配置防火墻規則
這里假設服務器使用兩個IP段地址12.35.56.0/24(公網IP),192.168.0.0/16(內網)
服務器提供http?(80端口)服務
單個IP到80端口的并發連接最多為30個
來自一個C類網段的并發連接最多為600個
ping的頻率最多為10個請求每秒
來自同IP段的任何連接信任
信任已經建立的連接。
服務器出站連接全部允許
允許到1723端口的VPN連接以及gre協議(此服務器同時作為VPN服務器使用)
其它入站連接全部禁止
允許所有的出站連接
?
提示:本內容在RHEL?5.6?/CentOS?5.6版本上測試通過,對舊版本系統,可能會有問題
?
/etc/sysconfig/iptables中的內容為
| *filter :INPUT?ACCEPT?[0:0] :FORWARD?ACCEPT?[0:0] :OUTPUT?ACCEPT?[94:9668] -A?INPUT?-i?lo?-j?ACCEPT? -A?INPUT?-s?192.168.0.0/16?-j?ACCEPT -A?INPUT?-s?12.23.56.0/24??-j?ACCEPT -A?INPUT?-p?icmp?-m?limit?--limit?10/sec?--limit-burst?30?-j?ACCEPT -A?INPUT?-p?icmp?-j?DROP -A?INPUT?-m?state?--state?ESTABLISHED,RELATED?-j?ACCEPT -A?INPUT?-p?tcp?--dport?80?-m?connlimit?--connlimit-above?20??--connlimit-mask?32?-j?DROP -A?INPUT?-p?tcp?--dport?80?-m?connlimit?--connlimit-above?600?--connlimit-mask?24?-j?DROP -A?INPUT?-p?tcp?--dport?80?-j?ACCEPT -A?INPUT?-p?tcp?--dport?1723?-j?ACCEPT -A?INPUT?-p?gre?-j?ACCEPT -A?INPUT?-j?DROP COMMIT |
?
重啟防火墻以使規則生效
| service?iptables?restart |
?
提示:經過測試發現RHEL?5.4系統上,iptables沒有限制并發連接模塊。
?
測試若沒有問題,運行crontab?-e?去掉我們開始添加的自動停止防火墻的任務
啟用服務
| chkconfig?iptables?on |
轉載于:https://www.cnblogs.com/sunbeidan/p/8477614.html
總結
以上是生活随笔為你收集整理的RHEL/CentOS通用性能优化、安全配置参考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求儿歌小星星歌词!
- 下一篇: 《长相思·九月西风兴》第五句是什么