/etc/hosts.allow:
sshd,vsftpd: 172.16.0.0/16 EXCEPT 172.16.0.0/24 EXCEPT 172.16.0.200 :spawn echo `date` login >> /var/log/ssh.log
/etc/hosts.deny:
sshd,vsftpd:ALL
[root@localhost ~]# echo '*/5 * * * * /data/checkip.awk /var/log/secure' >> /var/spool/cron/root
[root@localhost ~]# cat /data/checkip.awk
#!/bin/awk -f
/sshd.*Failed password/{ip=$(NF-3); ips[ip]++}
END{
for (i in ips){
if(ips[i]>10){
cmd="echo sshd:"i">>/etc/hosts.deny"; system(cmd)
}
}
}
交互式加密:會彈出一個框
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、大安市網(wǎng)絡(luò)推廣、微信小程序開發(fā)、大安市網(wǎng)絡(luò)營銷、大安市企業(yè)策劃、大安市品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供大安市建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
[root@localhost ~]# gpg -c virtual_machine_reset_5.sh
交互式解密:
gpg -d virtual_machine_reset_5.sh.gpg
非交互式:
[root@localhost tmp]# echo "cX0BCoWt1+qq9ZeKYCXTtxMQeiI" | gpg -c --no-tty --batch --passphrase-fd 0 virtual_machine_reset_5.sh
[root@localhost tmp]# gpg --batch --passphrase cX0BCoWt1+qq9ZeKYCXTtxMQeiI virtual_machine_reset_5.sh.gpg
查看gpg版本:gpg -h
CentOS7的gpg是2.0.22,Ubuntu18.04的gpg是2.2.4
[root@localhost tmp]# ssh-keygen -f ~/.ssh/id_rsa -P '' -C 'admin'
1、改端口號
Port 22
2、加主機(jī)
[root@localhost tmp]# tail -5 /etc/ssh/ssh_config
Host testbox
HostName 192.168.38.146
User root
Port 2222
IdentityFile ~/.ssh/id_rsa
就可以直接連了,默認(rèn)是22端口
ProxyCommand
-q 靜默模式。大多數(shù)警告信息將不輸出。
-W host:port 請求客戶端上的標(biāo)準(zhǔn)輸入和輸出通過安全隧道轉(zhuǎn)發(fā)到host:port上,該選項隱含了"-N","-T",ExitOnForwardFailure和ClearAllForwardings選項
-T 禁止為ssh分配偽終端。
-N 明確表示不執(zhí)行遠(yuǎn)程命令。僅作端口轉(zhuǎn)發(fā)時比較有用。
# ProxyCommand ssh -q -W %h:%p gateway.example.com 當(dāng)跳板機(jī)用
ssh當(dāng)跳板機(jī):
ssh -L [local_bind_addr:]local_port:remote:remote_port middle_host
root@host3:~# ssh -L 2222:192.168.38.154:80 192.168.10.134 -fNg
通過這條神奇的命令,現(xiàn)在就可以通過訪問192.168.10.135:2222來訪問192.168.38.154:80了
其中"-L"選項表示本地端口轉(zhuǎn)發(fā),其工作方式為:host3主機(jī)監(jiān)聽2222端口;host3將192.168.38.154:80映射為本地2222;當(dāng)有人訪問192.168.10.135:2222時,本地ssh將此端口的數(shù)據(jù)包轉(zhuǎn)發(fā)給192.168.10.134;192.168.10.134將數(shù)據(jù)包轉(zhuǎn)發(fā)給192.168.38.154:80
該命令執(zhí)行后,就把本機(jī)2222端口的流量轉(zhuǎn)發(fā)給本機(jī)80端口了
可以發(fā)現(xiàn),該命令執(zhí)行后訪問的還是本地IP的某一端口,所以叫本地轉(zhuǎn)發(fā)
遠(yuǎn)程端口轉(zhuǎn)發(fā)表示的是將遠(yuǎn)程端口的數(shù)據(jù)轉(zhuǎn)發(fā)到本地。
這個就牛逼了!將遠(yuǎn)程端口轉(zhuǎn)發(fā)到本地,那我豈不是連接遠(yuǎn)程的端口就可以連接到本地服務(wù)器了!
看下面,遠(yuǎn)程端口轉(zhuǎn)發(fā)使用的是-R,注意公網(wǎng)服務(wù)器要開啟GatewayPorts
[root@hk-server ~]# sed -i '$a GatewayPorts yes' /etc/ssh/sshd_config && systemctl restart sshd #這個必須得開,不然端口監(jiān)聽在127.0.0.1上
[root@192-168-38-140 ~]# ssh -R 2222:192.168.38.154:22 47.75.136.95 -fNg
其工作方式為:192.168.38.140請求47.75.136.95上的ssh,在47.75.136.95上建立一個套接字監(jiān)聽2222端口,該端口是192.168.38.154:22的映射;當(dāng)有主機(jī)連接47.75.136.95:2222時,此連接中的數(shù)據(jù)全部通過通過安全隧道轉(zhuǎn)發(fā)給192.168.38.154:22
可以通過此方法,將內(nèi)網(wǎng)搭建的博客網(wǎng)站映射出去,然后就可以通過公網(wǎng)訪問了
再來一個:ssh -R 12345:127.0.0.1:22 47.75.136.95 -fNg
[root@192-168-38-140 ~]# ssh -R 12345:127.0.0.1:22 47.75.136.95 -fNg
將請求轉(zhuǎn)發(fā)給自己,該命令執(zhí)行后,就可以通過47.75.136.95:12345來訪問本地的192.168.38.140了
ssh -D [bind_addr:]port remote
ssh支持動態(tài)端口轉(zhuǎn)發(fā),由ssh來判斷發(fā)起請求的工具使用的是什么應(yīng)用層協(xié)議,然后根據(jù)判斷出的協(xié)議結(jié)果決定目標(biāo)端口
可以實現(xiàn):讓內(nèi)網(wǎng)不能上網(wǎng)的服務(wù)器上網(wǎng):
[root@192-168-38-140 ~]# ssh -D 1080 127.0.0.1 -fNg
然后192.168.10.135機(jī)器將火狐瀏覽器設(shè)置代理到socket代理:192.168.10.134 1080
about:config將network.proxy.socks_remote_DNS設(shè)置為true,開啟遠(yuǎn)程DNS
工作方式:我是192.168.38.140,我在本地監(jiān)聽1080,所有人都可以把數(shù)據(jù)轉(zhuǎn)發(fā)到我的1080端口,我再把數(shù)據(jù)通過ssh隧道動態(tài)轉(zhuǎn)發(fā)出去
UseDNS no #禁用DNS,解決連接慢
GSSAPIAuthentication no #不開啟GSSAPI認(rèn)證,解決連接慢
Port 9527 #修改默認(rèn)端口號
PermitRootLogin yes #不允許root登陸
PermitEmptyPasswords no #禁止空密碼登陸
ssh_config的使用,將常用主機(jī)寫到ssh_config或者~/.ssh/config里面,例如
Host testbox
HostName 192.168.38.146
User root
Port 2222
IdentityFile ~/.ssh/id_rsa
? 生產(chǎn)環(huán)境中經(jīng)常對密鑰加密,每次連接都需要輸入密碼,很麻煩,而且多個私鑰時,也不用自己去指定ssh-agent全部管理了
啟動ssh-agent
ssh-agent
添加私鑰交給ssh-agent管理
ssh-add ~/.ssh/id_rsa
列出ssh-agent管理的密鑰
ssh-add -L
注意
? 使用ssh-add失敗,提示Could not open a connection to your authentication agent.
執(zhí)行:ssh-agent bash 再試
? 還有一種情況下比如,主機(jī)A需要通過主機(jī)B才能訪問主機(jī)C的情況下,我們可能需要在B上保存私鑰才可以,但是如果使用ssh-agent的agent forwarding功能后,就可以使用主機(jī)A登陸B(tài)和C了,而不用在B上保存私鑰
比如google身份驗證就是通過pam模塊實現(xiàn)的
如何使用:epel源安裝google-authenticator
apk:https://www.lanzous.com/i5yl8ad 密碼:6666
家目錄那個隱藏文件里面放著幾個臨時密碼,防止手機(jī)丟了,可以自行在里面加幾個密碼,一次有效,
參考:http://dwz.win/j5v
以pam_limits模塊為例
先man看幫助
NAME
pam_limits - PAM module to limit resources
SYNOPSIS
pam_limits.so [conf=/path/to/limits.conf] [debug] [set_all] [utmp_early] [noaudit]
DESCRIPTION
The pam_limits PAM module sets limits on the system resources that can be obtained in a
user-session. Users of uid=0 are affected by this limits, too.
By default limits are taken from the /etc/security/limits.conf config file. Then individual
*.conf files from the /etc/security/limits.d/ directory are read. The files are parsed one
after another in the order of "C" locale. The effect of the individual files is the same as
if all the files were concatenated together in the order of parsing. If a config file is
explicitly specified with a module option then the files in the above directory are not
parsed.
? *可以看到,不管哪個用戶,哪怕root都受到此限制的影響,且默認(rèn)情況下,限制文件未/etc/security/limits.conf及/etc/security/limits.conf.d/.conf**
使用limit -a查看當(dāng)前所有資源限制情況
[root@192-168-38-140 pam.d]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1779
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1779
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
默認(rèn)文件打開數(shù)太小,不夠,生產(chǎn)中必須修改,ubuntu18.04現(xiàn)在默認(rèn)都改大了,如下:
* soft nofile 128000
* hard nofile 256000
root soft nofile 128000
root hard nofile 256000
關(guān)于fork彈的避免措施其一就是顯示每個用戶的進(jìn)程數(shù),比如
* soft nproc 1024
* hard nproc 1024
ulimit -n 2000只會臨時生效,建議寫文件
查看證書到期時間:
[root@192-168-38-140 ~]# openssl x509 -in /etc/pki/tls/cert.pem -noout -dates | sed -nr 's/notAfter=//p'
Dec 31 09:37:37 2030 GMT
[root@192-168-38-140 ~]# openssl s_client -host www.taobao.com -port 443 -showcerts /dev/null | sed -n '/BEGIN CERTIFICATE/,/END CERT/p' -n | openssl x509 -noout -text | sed -n 's/ *Not After : *//p'
Nov 13 07:36:08 2019 GMT