1. 程式人生 > >購買 Linux VPS 服務器後簡單的安全設置

購買 Linux VPS 服務器後簡單的安全設置

init.d mms 破解 str net 獲取 vim -a CP

我們在購買了 Linux 系統的 VPS 或服務器後,一般的商家都會給你一個 root 權限的賬號,並且默認的密碼不會太長,這是很不安全的。經常有客戶因為弱口令而被黑客暴力破解密碼導致 VPS 服務器被入侵,並用來幹壞事。
所以,在開通了 Linux 系統的 VPS 或服務器後,我們有必要做一些基本的安全設置。

一、關閉 SSH 密碼登陸
首先,你需要有自己的 SSH Key,如果你使用 Windows 系統,可以用 Putty 下的
PUTTYGEN.EXE
生成私匙和公匙。
第一步,運行
PUTTYGEN.EXE
一般,我們選擇默認的 RSA 加密即可,默認的 1024 位加密足夠用,如果要保險點,可以選擇 2048 或 4096 位加密,如圖紅圈處:

第二步,點擊 Generate ,然後鼠標隨意在空白處移動
等進度條滿了,就生成好你的 SSH Key 了:

如果要更安全一點,可以設置
Key Passphrase
,也就是密碼,這個密碼和 root 密碼不同,一旦別人獲取了你的 Key ,沒有這個密碼他也加載不了你的 Key。
第三步,點擊
Save Public Key
保存你的公匙,整個文件如下

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "showfom-rsa-key-20130701"
AAAAB3NzaC1yc2EAAAABJQAAAQEAna/D52fTZ1YNjxnwAJAUhxRdPCwar8ZfWLdw
HEmT64Zqtxrz65KRxesHFRVND8Xn1GKtuQIQMu
/d5fFhEajFbjoSw/n+Mz58irzU XDbE34Y/nxy1/iWc6aJz6lX6wT7nnDcVoqX8Be8j/8sjS7cMFarn3Iy+0bSQNON3 681+hEFM7mpoYyqrCVBpARfiiEZb8tNkfzrKJFrciZ87yaKkncPeDCIbYKjuJY2h ciK+Y+IptLdoMj5kQkSXStJFQUfFg+s3FQJ9Istu4C7BF3ZafD4mEupA7P90RRUj Lj95mUW/P/ebWGsMVbnxz/Xmq3OL/TOuo85umbSN44DmSB3NEQ== ---- END SSH2 PUBLIC KEY ----

其中中間那麽長長的一串,就是你的公匙了,可以放在服務器的
~/.ssh/authorized_keys
,我們應采取以下的格式:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAna
/D52fTZ1YNjxnwAJAUhxRdPCwar8ZfWLdwHEmT64Zqtxrz65KRxesHFRVND8Xn1GKtuQIQMu/d5fFhEajFbjoSw/n
+Mz58irzUXDbE34Y
/nxy1/iWc6aJz6lX6wT7nnDcVoqX8Be8j/8sjS7cMFarn3Iy
+0bSQNON3681+hEFM7mpoYyqrCVBpARfiiEZb8tNkfzrKJFrciZ87yaKkncPeDCIbYKjuJY2hciK+Y+IptLdoMj5kQkSXStJFQUfFg+s3FQJ9Istu4C7BF3ZafD4mEupA7P90RRUjLj95mUW
/P/ebWGsMVbnxz/Xmq3OL/TOuo85umbSN44DmSB3NEQ
== showfom-rsa-key-20130701

其中 ssh-rsa 為加密類型, showfom-rsa-key-20130701 為說明,可以是任意文本,如 showfom-notebook
第四步,點擊
Save Private Key
生成用於 Putty 的私匙,這裏我們保存為
showfom.ppk
,整個文件如下

PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: Showfom
Public-Lines: 4
AAAAB3NzaC1yc2EAAAABJQAAAIBTILl54rOaEEkv95VKR6IEZ9Y0d1IpNNQeyk+e
yHPtc7jVTmfL0oiho9s2UqquaNGmLmzLjhXRj3cPZ1VZInPFqVtgWYKWPEpGckGI
7/iTpNUuz6tKguEi5RYaEtfgKWF13qC5S8dWlk2FGv7dY5GbSoZMHZtc+zTL9Jpn
NCa5nw==
Private-Lines: 8
AAAAgEWly9TSsiciZtUpYWe/eegD+Kh/pbPSUNuG6MNOAEN8ocd5Ctsz2kI9LUkw
gSpX0j8f+kmuZU62eIKHAlGZZ+nVyklcHE7qFO2AyMCuniUYm0mgdN5gjXUBFduV
VTjIaYwd282Yo0xtjPWN0DJF3jmmsrw6pwMwaa6r6pAlKANtAAAAQQClYrYCu3eu
0GcGw9G2MVLIZoHoKYPL2e6HjfPQhvsze6AKUzpTF/DGMkBFY6dH//0zSoHue2jn
gNsaLQygBvT/AAAAQQCArGNL76eXHtR28TRY2PONg8ij3YN9mCzYG3sDsV8feGAk
RyZ8T5b6xZuf9UyvZ1lIA10i7ULZ63s2hvCZUxthAAAAQD+auXN8fUAylROh8zTM
14FyY7GRwdN7y7+EtZ8NuVDLvZP9Svpd4V5Ti9LpqjtiUcp0eELCd5i7zxyV2oHe
U78=
Private-MAC: ce0968aff198e2c2550704625b23ba7575e6b260

這個
showfom.ppk
你需要通過 Putty 目錄下的
PAGEANT.EXE
導入,這樣你就可以不需要輸入 root 密碼即可登錄你的 VPS。

PS: WinSCP 和 Putty 的 SSH Key 是通用的,只需要導入一次即可。

但是 Putty 的 Private Key 是不標準的,只能用於 Putty 或 WinSCP ,如果你使用 Xshell 4 ,則需要轉換成 rsa 文件,可以在
PUTTYGEN.EXE
上方菜單裏的
Conversions
>
Export OpenSSH Key
方式轉換。
第五步,導入你的 Linux VPS 或服務器

如果你本地是 Linux 桌面環境,可以很簡單的一條命令搞定:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

但是大多數用戶還是 Windows 用戶,所以我建議兩種比較簡單的方法

1、把自己的公匙放在 https://launchpad.net/ 網站,並得到類似 https://launchpad.net/~showfom/+sshkeys 這樣的地址,然後通過以下命令導入你的 Key

curl https://launchpad.net/~showfom/+sshkeys > ~/.ssh/authorized_keys

如果沒有 .ssh 目錄,可以新建立一個

mkdir .ssh


2、也可以直接寫入 authorized_keys 文件

cat >>/root/.ssh/authorized_keys<< EOF
ssh
-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAna
/D52fTZ1YNjxnwAJAUhxRdPCwar8ZfWLdwHEmT64Zqtxrz65KRxesHFRVND8Xn1GKtuQIQMu/d5fFhEajFbjoSw/n
+Mz58irzUXDbE34Y
/nxy1/iWc6aJz6lX6wT7nnDcVoqX8Be8j/8sjS7cMFarn3Iy
+0bSQNON3681+hEFM7mpoYyqrCVBpARfiiEZb8tNkfzrKJFrciZ87yaKkncPeDCIbYKjuJY2hciK+Y+IptLdoMj5kQkSXStJFQUfFg+s3FQJ9Istu4C7BF3ZafD4mEupA7P90RRUjLj95mUW
/P/ebWGsMVbnxz/Xmq3OL/TOuo85umbSN44DmSB3NEQ
== showfom-rsa-key-20130701
EOF


在某些服務商的 CentOS 系統裏,由於開啟了SELinux,默認是禁止了 .ssh 目錄的權限的,可以用下面的命令解除限制:

restorecon -R -v /root/.ssh

如果遇到

authorized_keys

權限問題,可用如下命令解決:

chattr -i authorized_keys

然後你可以重啟開啟一個 SSH 窗口,測試是否不需要輸入密碼即可用 root 登陸。
第六步,關閉 SSH 密碼登陸

編輯 SSH 配置文件:

vim /etc/ssh/sshd_config

找到
#PasswordAuthentication yes
並改為
PasswordAuthentication no
保存,退出,重啟 SSH 服務

Ubuntu 下:

/etc/init.d/ssh restart

CentOS 下:

service sshd restart

好了,這樣禁止 SSH 密碼登陸就大功告成,這一步就拒絕了 90% 的入侵危險,當然,你自己的私匙一定要保存好,否則被別人偷走可是不需要密碼就能進你的服務器哦。


二、安裝 CSF 防火墻屏蔽嘗試入侵服務器的 IP

CSF 防火墻安裝略簡單,幾個命令即可搞定:

rm -fv csf.tgz
wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

然後運行

perl /usr/local/csf/bin/csftest.pl

檢測是否安裝成功

為了防止系統誤屏蔽本地 IP,可以修改/etc/csf/csf.allow 和 /etc/csf/csf.ignore
文件加入你需要的白名單 IP ,然後用csf -r 命令重啟讀取配置文件即可。

三、用 iptables 只開啟常規端口
一般我們只需要開啟 22, 53, 80, 443 這三個常見的對外開放端口,可以使用如下命令
清空 iptables 默認規則

iptables -F

允許 22 端口進入和返回

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

允許 53 端口,一般作為 DNS 服務使用

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

允許本機訪問本機

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

允許所有 IP 訪問 80 和 443 端口,一般作為 http 和 https 用途

iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

保存配置

iptables-save > /etc/sysconfig/iptables

重新加載 iptables

iptables -L


四、安裝 fail2ban 屏蔽並舉報掃描 SSH 端口的 IP

有很多精力旺盛的家夥會整天掃描 SSH 密碼,當然直接關閉 SSH 密碼登陸即可防止,但是為了給他們一點教訓,可以安裝 fail2ban ,屏蔽之余,還能自動寫舉報信給 IP 所在的 ISP。

CentOS 下安裝:
導入 epel 源:

#CentOS 6.x 32 位:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
#CentOS 6.x 64 位:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

#安裝 fail2ban

yum -y install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
service fail2ban start


Ubuntu / Debian 下安裝:

apt-get install fail2ban -y

通過查看
/var/log/fail2ban.log
文件即可知道有哪些精力過剩的家夥在整天掃描你的 SSH 了。

後記
因為近期不少客戶的 VPS 或服務器被黑客入侵,原因都是用了很簡單的 root 密碼,所以考慮以後賣無管理型的 VPS 時,直接做個屏蔽密碼的系統,用戶購買的時候提交自己的 SSH Key ,或者系統分配你一個 SSH Key ,這樣就會安全多。國外的 Amazon EC2、 DigitalOcean 和 HPCloud 均有導入自己 SSH Key 並默認屏蔽密碼的方式,大大增加了安全性。

轉載請註明:通天塔 ? 購買 Linux VPS 服務器後簡單的安全設置

購買 Linux VPS 服務器後簡單的安全設置