歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> centos系統初始化

centos系統初始化

日期:2017/3/1 16:20:27   编辑:關於Linux
centos系統初始化 初始化常用環境變量 1 # vi .bashrc 2 alias worksrc='cd /usr/local/src;ls' 3 配置生效 4 # source .bashrc yum預裝常用的服務器軟件 01 #vim linux編輯器 02 #wget 網絡自動下載文件的工具,支持通過HTTP、HTTPS、FTP三個最常見的TCP/IP協議下載 03 #crontab cron是一個常駐服務,它提供計時器的功能,讓用戶在特定的時間得以執行預設的指令或程序。只要用戶會編輯計時器的配置文件,就可以使 用計時器的功能 04 #mlocate 基於數據庫快速查找文件,經常用updatedb命令更新數據庫 05 #ntp 時間同步服務組件 06 #SecureCRT的sz/rz工具包 07 yum -y install vim wget gcc make crontabs mlocate ntp lrzsz gcc-c++ autoconf; 08 # 09 #sysstat:是一個軟件包,包含監測系統性能及效率的一組工具,這些工具對於我們收集系統性能數據,比如CPU使用率、硬盤和網絡吞吐數據,這些數據的收集和分析,有利於我們判斷系統是否正常運行,是提高系統運行效率、安全運行服務器的得力助手 10 #dstat:用來替換 vmstat,iostat,netstat,nfsstat和ifstat這些命令的工具是一個全能彩色系統信息統計工具 11 #screen:類似nohup,能同時連接多個本地或遠程的命令行會話,並在其間自由切換,適合遠程管理終端長時間遠程跑的程序 12 yum -y install sysstat dstat screen ; 13 # 14 #top是linux下常用的監控程序,htop相當於其加強版,顏色顯示不同參數,且支持鼠標操作 15 #安裝支持組件 16 wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz 17 tar xvfz ncurses-5.9.tar.gz 18 cd ncurses-5.9 19 ./configure 20 make 21 make install 22 #安裝htop: 主頁http://sourceforge.net/projects/htop/files/htop/ 23 wget http://sourceforge.net/projects/htop/files/htop/1.0.2/htop-1.0.2.tar.gz/download 24 tar zxvf htop-1.0.2.tar.gz 25 cd htop-1.0.2 26 ./configure 27 make 28 make install 時間和時區設置 查看當前時區時間 1 date -R 每隔10分鐘同步一下時鐘 1 echo " */10 * * * * /usr/sbin/ntpdate 61.129.42.44 >> /home/ntp.log" >> /var/spool/cron/root 2 service crond restart 3 /usr/sbin/ntpdate 61.129.42.44 替換默認時區為上海 1 rm -rf /etc/localtime #刪除當前默認時區 2 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #復制替換默認時區為上海 防火牆配置腳本 iptables.rule:設定最基本的規則,包括清除防火牆規則、載入模組、設定服務可接受等; iptables.deny:設定抵擋某些惡意主機的進入; iptables.allow:設定允許某些自訂的後門來源主機! 001 [root@www ~]# mkdir -p /usr/local/iptables 002 [root@www ~]# cd /usr/local/iptables 003 [root@www iptables]# vim iptables.rule 004 #!/bin/bash 005 # 請先輸入您的相關參數,不要輸入錯誤了! 006 EXTIF="eth0" # 這個是可以連上 Public IP 的網絡界面 007 INIF="eth1" # 內部 LAN 的連接介面;若無則寫成 INIF="" 008 INNET="192.168.100.0/24" # 若無內部網絡介面,請填寫成 INNET="" 009 export EXTIF INIF INNET 010 # 第一部份,針對本機的防火牆設定!########################################## 011 # 1. 先設定好核心的網路功能: 012 echo "1" > /proc/sys/net/ipv4/tcp_syncookies #開啟 TCP Flooding的DoS攻擊抵擋機制,但這個設定不適合loading已經很高的主機 013 echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts #取消 ping 廣播的回應 014 #開啟逆向路徑過濾,以符合 IP 封包與網路介面的設定,開啟記錄有問題的封包 015 for i in /proc/sys/net/ipv4/conf/*/{rp_filter,log_martians}; do 016 echo "1" > $i 017 done 018 #取消來源路由,這個設定值是可以取消的;取消重新宣告路徑的功能;取消傳送重新宣告路徑的功能 019 for i in /proc/sys/net/ipv4/conf/*/{accept_source_route,accept_redirects,\ 020 send_redirects}; do 021 echo "0" > $i 022 done 023 # 2. 清除規則、設定預設政策及開放 lo 與相關的設定值 024 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH 025 #清除已有規則 026 iptables -F 027 iptables -X 028 iptables -Z 029 #設置默認策略 030 iptables -P INPUT DROP 031 iptables -P OUTPUT ACCEPT 032 iptables -P FORWARD ACCEPT 033 #開放lo 034 iptables -A INPUT -i lo -j ACCEPT 035 #只要是聯機成功的數據包或與已發出去請求相關的數據包就予以通過 036 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 037 # 3. 啟動額外的防火牆 script 模組 038 if [ -f /usr/local/iptables/iptables.deny ]; then 039 sh /usr/local/iptables/iptables.deny 040 fi 041 if [ -f /usr/local/iptables/iptables.allow ]; then 042 sh /usr/local/iptables/iptables.allow 043 fi 044 if [ -f /usr/local/httpd-err/iptables.http ]; then 045 sh /usr/local/httpd-err/iptables.http 046 fi 047 # 4. 允許某些類型的 ICMP 封包進入,通常我們會把ICMP type 8拿掉,讓遠程主機不知道主機是否存在,也不會對ping回應 048 AICMP="0 3 3/4 4 11 12 14 16 18" 049 for tyicmp in $AICMP 050 do 051 iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT 052 done 053 # 5. 允許某些服務的進入,請依照你自己的環境開啟 054 iptables -A INPUT -p TCP -i $EXTIF --dport 22 --sport 1024:65534 -j ACCEPT # SSH 055 iptables -A INPUT -p TCP -i $EXTIF --dport 80 --sport 1024:65534 -j ACCEPT # WWW 056 # iptables -A INPUT -p TCP -i $EXTIF --dport 21 --sport 1024:65534 -j ACCEPT # FTP 057 # iptables -A INPUT -p TCP -i $EXTIF --dport 25 --sport 1024:65534 -j ACCEPT # SMTP 058 # iptables -A INPUT -p UDP -i $EXTIF --dport 53 --sport 1024:65534 -j ACCEPT # DNS 059 # iptables -A INPUT -p TCP -i $EXTIF --dport 53 --sport 1024:65534 -j ACCEPT # DNS 060 # iptables -A INPUT -p TCP -i $EXTIF --dport 110 --sport 1024:65534 -j ACCEPT # POP3 061 # iptables -A INPUT -p TCP -i $EXTIF --dport 443 --sport 1024:65534 -j ACCEPT # HTTPS 062 # 第二部份,針對後端主機的防火牆設定!############################### 063 # 1. 先載入一些有用的模組 064 modules="ip_tables iptable_nat ip_nat_ftp ip_nat_irc ip_conntrack 065 ip_conntrack_ftp ip_conntrack_irc" 066 for mod in $modules 067 do 068 testmod=`lsmod | grep "^${mod} " | awk '{print $1}'` 069 if [ "$testmod" == "" ]; then 070 modprobe $mod 071 fi 072 done 073 # 2. 清除 NAT table 的規則吧! 074 iptables -F -t nat 075 iptables -X -t nat 076 iptables -Z -t nat 077 iptables -t nat -P PREROUTING ACCEPT 078 iptables -t nat -P POSTROUTING ACCEPT 079 iptables -t nat -P OUTPUT ACCEPT 080 # 3. 若有內部介面的存在 (雙網卡) 開放成為路由器,且為 IP 分享器! 081 if [ "$INIF" != "" ]; then 082 iptables -A INPUT -i $INIF -j ACCEPT 083 echo "1" > /proc/sys/net/ipv4/ip_forward 084 if [ "$INNET" != "" ]; then 085 for innet in $INNET 086 do 087 iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE 088 done 089 fi 090 fi 091 # 如果你的 MSN 一直無法連線,或者是某些網站 OK 某些網站不 OK, 092 # 可能是 MTU 的問題,那你可以將底下這一行給他取消註解來啟動 MTU 限制范圍 093 # iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss \ 094 # --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu 095 # 4. NAT 伺服器後端的 LAN 內對外之伺服器設定 096 # iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80 \ 097 # -j DNAT --to-destination 192.168.1.210:80 # WWW 098 # 5. 特殊的功能,包括 Windows 遠端桌面所產生的規則,假設桌面主機為 1.2.3.4 099 # iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --dport 6000 \ 100 # -j DNAT --to-destination 192.168.100.10 101 # iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --sport 3389 \ 102 # -j DNAT --to-destination 192.168.100.20 103 # 6. 最終將這些功能儲存下來吧! 104 /etc/init.d/iptables save iptables.allow腳本設置 1 [root@www iptables]# vim iptables.allow 2 #!/bin/bash 3 # 允許進入本機的其他網絡或主機啊! 4 iptables -A INPUT -i $EXTIF -s 140.116.44.0/24 -j ACCEPT iptables.deny腳本設置 1 [root@www iptables]# vim iptables.deny 2 #!/bin/bash 3 # 阻擋的主機ip或者主機所在的整個網段 4 iptables -A INPUT -i $EXTIF -s 140.116.44.254 -j DROP 腳本權限設置 1 [root@www iptables]# chmod 700 iptables.* 開機啟動 1 [root@www ~]# vim /etc/rc.d/rc.local 2 # 1. Firewall 3 /usr/local/iptables/iptables.rule 優化內核參數 優化內核具體要看此服務器安裝的軟件,實現的功能,參數不是一成不變的,要隨著改變 01 mv /etc/sysctl.conf /etc/sysctl.conf.`date +"%Y-%m-%d_%H-%M-%S"` 02 echo "net.ipv4.ip_forward = 0 03 net.ipv4.conf.default.rp_filter = 1 04 net.ipv4.conf.default.accept_source_route = 0 05 net.ipv6.conf.all.disable_ipv6 = 1 06 net.ipv6.conf.default.disable_ipv6 = 1 07 kernel.sysrq = 0 08 kernel.core_uses_pid = 1 09 net.ipv4.tcp_syncookies = 1 10 kernel.msgmnb = 65536 11 kernel.msgmax = 65536 12 kernel.shmmax = 68719476736 13 kernel.shmall = 4294967296 14 net.ipv4.tcp_max_tw_buckets = 6000 15 net.ipv4.tcp_sack = 1 16 net.ipv4.tcp_window_scaling = 0 17 net.ipv4.tcp_rmem = 4096 87380 16777216 18 net.ipv4.tcp_wmem = 4096 16384 16777216 19 net.core.wmem_default = 8388608 20 net.core.rmem_default = 8388608 21 net.core.rmem_max = 16777216 22 net.core.wmem_max = 16777216 23 net.core.netdev_max_backlog = 262144 24 net.core.somaxconn = 262144 25 net.ipv4.tcp_max_orphans = 3276800 26 net.ipv4.tcp_max_syn_backlog = 262144 27 net.ipv4.tcp_timestamps = 0 28 net.ipv4.tcp_synack_retries = 1 29 net.ipv4.tcp_syn_retries = 1 30 net.ipv4.tcp_tw_recycle = 1 31 net.ipv4.tcp_tw_reuse = 1 32 net.ipv4.tcp_mem = 94500000 915000000 927000000 33 net.ipv4.tcp_fin_timeout = 15 34 net.ipv4.tcp_keepalive_time = 30 35 vm.swappiness = 10" >> /etc/sysctl.conf 36 sysctl -p 總結:經過上面一系列的配置,服務器初始化大部分完成,尤其注意防火牆設置,一旦處理不好,就有可能把自己關在門外!
Copyright © Linux教程網 All Rights Reserved