CentOS 7 系統初始化


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM