更改端口
- 使用命令進(jìn)入ssh配置文件
vi /etc/ssh/sshd_config
- 找到#port 22属拾,將前面的#去掉,然后修改端口 port 123(自己設(shè)定)
- 重啟ssh服務(wù)
systemctl restart sshd
使用密鑰登錄
- 參照ssh免密碼登錄的配置將自己的公鑰發(fā)送到遠(yuǎn)程主機(jī)上
- 同樣進(jìn)入ssh配置文件修改
vi /etc/ssh/sshd_config
RSAAuthentication yes
#RSA認(rèn)證
PubkeyAuthentication yes
#開(kāi)啟公鑰驗(yàn)證
AuthorizedKeysFile .ssh/authorized_keys
#驗(yàn)證文件路徑
PasswordAuthentication no
#禁止密碼認(rèn)證
PermitEmptyPasswords no
#禁止空密碼
UsePAM no
#禁用PAM
- 修改后重啟ssh服務(wù)
禁用Root賬號(hào)登錄
- 如果你已經(jīng)設(shè)置SSH密鑰登錄的方式冷溶,就可以禁用Root賬號(hào)了渐白,或者你可以新建一個(gè)VPS賬號(hào)。執(zhí)行以下命令
adduser username # 添加用戶名
passwd username # 修改密碼
- 然后編輯進(jìn)入配置:vim /etc/ssh/sshd_config逞频,找到PermitRootLogin yes纯衍,然后后面的Yes改no,如果沒(méi)有這一行命令苗胀,直接將:PermitRootLogin no 加進(jìn)去襟诸。
- 修改后同樣重啟ssh服務(wù)
DenyHosts防暴力攻擊
DenyHosts簡(jiǎn)介
DenyHosts是Python寫(xiě)的一個(gè)程序軟件,運(yùn)行于Linux上預(yù)防SSH暴力破解的基协,它會(huì)分析sshd的日志文件(/var/log/secure)歌亲,當(dāng)發(fā)現(xiàn)重復(fù)的攻擊時(shí)就會(huì)記錄IP到/etc/hosts.deny文件,從而達(dá)到自動(dòng)屏IP的功能澜驮。
項(xiàng)目主頁(yè) DenyHosts安裝包下載地址
安裝
tar zxvf DenyHosts-2.6.tar.gz #解壓源碼包
cd DenyHosts-2.6 #進(jìn)入安裝解壓目錄
python setup.py install #安裝DenyHosts
cd /usr/share/denyhosts/ #默認(rèn)安裝路徑
cp denyhosts.cfg-dist denyhosts.cfg #denyhosts.cfg為配置文件
cp daemon-control-dist daemon-control #daemon-control為啟動(dòng)程序
chown root daemon-control #添加root權(quán)限
chmod 700 daemon-control #修改為可執(zhí)行文件
ln -s /usr/share/denyhosts/daemon-control /etc/init.d #對(duì)daemon-control進(jìn)行軟連接陷揪,方便管理
安裝到這一步就完成了。
/etc/init.d/daemon-control start #啟動(dòng)denyhosts
chkconfig daemon-control on #將denghosts設(shè)成開(kāi)機(jī)啟動(dòng)
- 如果你要自定義Denyhosts的相關(guān)配置,執(zhí)行:vim /etc/denyhosts.conf悍缠,以下是相關(guān)參數(shù)的說(shuō)明:
SECURE_LOG = /var/log/auth.log #ssh 日志文件卦绣,它是根據(jù)這個(gè)文件來(lái)判斷的。
HOSTS_DENY = /etc/hosts.deny #控制用戶登陸的文件
PURGE_DENY = #過(guò)多久后清除已經(jīng)禁止的飞蚓,空表示永遠(yuǎn)不解禁
BLOCK_SERVICE = sshd #禁止的服務(wù)名滤港,如還要添加其他服務(wù),只需添加逗號(hào)跟上相應(yīng)的服務(wù)即可
DENY_THRESHOLD_INVALID = 5 #允許無(wú)效用戶失敗的次數(shù)
DENY_THRESHOLD_VALID = 10 #允許普通用戶登陸失敗的次數(shù)
DENY_THRESHOLD_ROOT = 1 #允許root登陸失敗的次數(shù)
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts #運(yùn)行目錄
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES #是否進(jìn)行域名反解析
LOCK_FILE = /var/run/denyhosts.pid #程序的進(jìn)程ID
ADMIN_EMAIL = root@localhost #管理員郵件地址,它會(huì)給管理員發(fā)郵件
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=5d #用戶的登錄失敗計(jì)數(shù)會(huì)在多久以后重置為0玷坠,(h表示小時(shí)蜗搔,d表示天,m表示月八堡,w表示周樟凄,y表示年)
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes #如果一個(gè)ip登陸成功后,失敗的登陸計(jì)數(shù)是否重置為0