0、安裝系統基礎依賴工具包
yum install net-tools gcc-c++ wget lrzsz vim ntpdate cronolog make psmisc
1、修改主機名
centos7有一個新的修改主機名的命令hostnamectl # hostnamectl set-hostname mysql_master # vim /etc/hosts --最后加上你的IP與主機名的綁定 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.10.201 mysql_master master
2、關閉iptables防火牆
# systemctl status firewalld.service --查看firewalld服務的狀態,active是啟動狀態,inactive是關閉狀態 # systemctl stop firewalld.service --關閉此服務 # systemctl list-unit-files |grep firewalld --查看firewalld是否開機自動啟動 firewalld.service enabled # systemctl disable firewalld.service --類似以前的chkconfig xxx off # systemctl list-unit-files |grep firewalld firewalld.service disabled
3、關閉selinux
# sed -i 7s/enforcing/disabled/ /etc/selinux/config # 改完后,在后面重啟系統生效 # setenforce 0 # 臨時禁用SELINUX,無需重啟
4、ulimit 打開最大文件限制
ulimit_config() { echo "ulimit -SHn 102400" >> /etc/rc.local cat >> /etc/security/limits.conf << EOF * soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 EOF }
5、修改用戶進程限制
# sed -i 's/4096/65535/g' /etc/security/limits.d/20-nproc.conf # 默認值4096 # egrep -v "^$|^#" /etc/security/limits.d/20-nproc.conf * soft nproc 65535 root soft nproc unlimited
6、用戶登錄失敗N次后鎖定用戶禁止登陸
針對linux上的用戶,如果用戶連續3次登錄失敗,就鎖定該用戶,幾分鍾后該用戶再自動解鎖。Linux有一個 pam_tally2.so的PAM模塊,來限定用戶的登錄失敗次數,如果次數達到設置的閾值,則鎖定用戶。 # 限制用戶遠程登錄 在#%PAM-1.0的下面,即第二行,添加內容,一定要寫在前面,如果寫在后面,雖然用戶被鎖定,但是只要用戶輸入 正確的密碼,還是可以登錄的! # vim /etc/pam.d/sshd #%PAM-1.0 auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10 各參數解釋: even_deny_root 也限制root用戶; deny 設置普通用戶和root用戶連續錯誤登陸的最大次數,超過最大次數,則鎖定該用戶 unlock_time 設定普通用戶鎖定后,多少時間后解鎖,單位是秒; root_unlock_time 設定root用戶鎖定后,多少時間后解鎖,單位是秒; 此處使用的是 pam_tally2 模塊,如果不支持 pam_tally2 可以使用 pam_tally 模塊。另外,不同的pam版本,設置可能有所不同, 具體使用方法,可以參照相關模塊的使用規則。 # 限制用戶從tty登錄 在#%PAM-1.0的下面,即第二行,添加內容,一定要寫在前面,如果寫在后面,雖然用戶被鎖定,但是只要用戶輸入正確的密碼,還是 可以登錄的! # vim /etc/pam.d/login #%PAM-1.0 auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10 # 查看用戶登錄失敗次數 # cd /etc/pam.d/ # pam_tally2 --user root Login Failures Latest failure From root 7 07/16/12 15:18:22 tty1 # 解鎖指定用戶 # pam_tally2 -r -u root Login Failures Latest failure From
7、時間同步
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # crontab -e */1 * * * * /usr/sbin/ntpdate time1.aliyun.com > /dev/null 2>&1
8、ssh 配置
修改:#UseDNS yes為 UseDNS no # 關閉UseDNS加速SSH登錄 修改:PermitRootLogin yes 為 PermitRootLogin no # 禁止root用戶遠程登錄 修改:GSSAPIAuthentication yes 為 GSSAPIAuthentication no # 關閉GSSAPIAuthentication加速SSH登錄
9、創建普通用戶維護WEB應用
groupadd -g 2001 www useradd -u 2001 -g www www
10、命令補全
有些命令的參數可以自動補全,如果不能補全,則安裝下面的命令(可能需要注銷一下才能生效) # yum install bash-completion
11、內核優化
#關閉ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 #決定檢查過期多久鄰居條目 net.ipv4.neigh.default.gc_stale_time=120 #使用arp_announce / arp_ignore解決ARP映射問題 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.all.arp_announce=2 net.ipv4.conf.lo.arp_announce=2 # 避免放大攻擊 net.ipv4.icmp_echo_ignore_broadcasts = 1 # 開啟惡意icmp錯誤消息保護 net.ipv4.icmp_ignore_bogus_error_responses = 1 #關閉路由轉發 net.ipv4.ip_forward = 0 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 #修改消息隊列長度 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 net.ipv4.tcp_wmem = 4096 16384 4194304 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 #每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目 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 = 1800 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl = 15 #允許系統打開的端口范圍 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