- 如果買了云服務器,不管是哪家的,默認沒有防護服務,除非花錢購買,所以這里總結下,提供給各位
- 歡迎提供自己的經驗,加入到其中,幫助更多人
按照以下完成服務器配置,至少可以抵御80%來自互聯網的掃描和攻擊
禁用22埠,改為其他埠
一、修改SSH組態檔(注意是sshd_config而不是ssh_config,多了個d)
vim /etc/ssh/sshd_config
找到“#Port 22”,把兩行的“#”號即注釋去掉,修改成:
Port 22
Port 50500
SSH默認監聽埠是22,如果你不強制說明別的埠,”Port 22”注不注釋都是開放22訪問埠,上面我保留了22埠,防止之后因為各種權限和配置問題,導致連22埠都不能訪問了,那就尷尬了,等一切都ok了,再關閉22埠,
Ok,繼續,我增加了50500埠,大家修改埠時候最好挑10000~65535之間的埠號,10000以下容易被系統或一些特殊軟體占用,或是以后新應用準備占用該埠的時候,卻被你先占用了,導致軟體無法運行,
二、如果你關閉了SELinux,可以忽略第二步
先查看SELinux開放給ssh使用的埠
semanage port -l|grep ssh
我的系統列印如下:
ssh_port_t tcp 22
可知,SELinux沒有給SSH開50500埠,那么我們來添加該埠:
semanage port -a -t ssh_port_t -p tcp 50500
完成后,再次查看
semanage port -l|grep ssh
ssh_port_t tcp 22,50500
三、如果你關閉了防火墻,可以忽略第三步,話說防火墻不開啟太危險了,建議開啟(關了防火墻等于一個美女脫光了滿大街跑),
先查看防火墻是否開啟了50500埠:
firewall-cmd --permanent --query-port=50500/tcp
列印結果如下:
success
重新加載防火墻策略:
firewall-cmd --reload
執行成功后,查看50500埠是否被開啟:
firewall-cmd --permanent --query-port=50500/tcp
列印結果如下:
yes
四、重啟SSH服務和防火墻
systemctl restart sshd
systemctl restart firewalld.service
五、驗證50500是否能遠程連接,使用自己的shell工具,遠程通過50500埠連接服務器,能連通則配置成功
六、50500連接成功后,關閉22埠的遠程訪問能力
vim /etc/ssh/sshd_config
找到“Port 22”,將其注釋,
重啟sshd服務:
systemctl restart sshd
七、驗證22是否能遠程連接,使用自己的shell工具,遠程通過22埠連接服務器,不能連通則配置成功
防暴力破解安裝
安裝fail2ban
yum install fail2ban
配置fail2ban安全策略
vim /etc/fail2ban/jail.d/jail.local
輸入:
#defalut這里是設定全域設定,如果下面的監控沒有設定就以全域設定的值設定,
[DEFAULT]
# 用于指定哪些地址ip可以忽略 fail2ban 防御,以空格間隔,
ignoreip = 127.0.0.1/8
# 客戶端主機被禁止的時長(默認單位為秒)
bantime = 3600
# 過濾的時長(秒)
findtime = 600
# 匹配到的閾值(次數)
maxretry = 3
[ssh-iptables]
# 是否開啟
enabled = true
# 過濾規則
filter = sshd
# 動作
action = iptables[name=SSH, port=ssh, protocol=tcp]
# 日志檔案的路徑
logpath = /var/log/secure
# 匹配到的閾值(次數)
maxretry = 3
啟動防暴器
systemctl start fail2ban
fail2ban-client reload
查看防爆結果
fail2ban-client status ssh-iptables
禁ping服務器
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
創建新用戶,使用ssh登陸,禁止root登陸,密碼登陸
注意:以下所有操作都不要關閉shell視窗,需要等所有操作都執行完了,才允許關閉shell視窗,防止人為配置出錯,導致自己無法登錄服務器
先使用root用戶登陸,創建新用,為新用戶創建密碼
useradd guest
passwd guest
這里的guest為演示用戶,修改為自己的用戶名,長度不短于8位長度,因為暴力破解8位已經很難了
為用戶分配sudo權限
給予sudo權限, 當權限不夠時,可以用sudo
gpasswd -a guest wheel
查詢所有帶sudo權限的用戶
lid -g wheel
如果想洗掉用戶,洗掉用戶和相應的目錄:
這一步不是必須的
userdel -r guest
用戶創建完畢,切換guest用戶登陸(因為要為當前用戶生成密鑰)
su guest
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" //生成密鑰,郵件換成自己的
生成之后 ,
私鑰是/home/guest/.ssh/id_rsa
公鑰是id_rsa.pub
可以更改私鑰名稱為id_rsa_guest.pem,公鑰為authorized_keys(因為centos默認組態檔的名字是authorized_keys )

退回到root用戶
exit
執行
chmod 700 /home/guest/.ssh/
chmod 644 /home/guest/.ssh/authorized_keys
將私鑰檔案從服務器下載到本地,然后用shell登陸,使用public key的方式登陸
確保登陸后,修改/etc/ssh/sshd_config檔案,禁止密碼登陸,啟用密鑰驗證
vim /etc/ssh/sshd_config
修改以下三項:
- PasswordAuthentication no
- RSAAuthentication yes
- PubkeyAuthentication yes
重啟ssh服務
systemctl restart sshd.service
驗證
- 打開新的shell視窗,使用root用戶名登錄,此時應該登錄失敗
- 打開新的shell視窗,使用guest用戶名登錄,此時應該登錄失敗
- 打開新的shell視窗,使用使用public key的方式登陸,此時應該登錄成功
至此,以上都驗證過了,才可以關閉shell視窗
使用跳轉機
- 如果資金允許的話,可以購買一臺或多臺配置相當的機器作為跳轉機,所有服務都關閉外網訪問能力,開通對這些跳轉機的接入接出能力,
- 這樣的話,可以將真實的服務以及服務器都隱藏在這些跳轉機后面,起到間接保護服務器作用,即使跳轉機被攻破,真正的服務也能暫時得到保護,
使用預警系統
可對以下引數監控:
- CPU
- 記憶體
- 登錄日志
- 檔案系統
這塊可自行查找,有免費的、有收費的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229428.html
標籤:其他
上一篇:輝太郎看前端(手寫深拷貝遞回)
