[root@localhost 桌面]# service NetworkManager stop
[root@localhost 桌面]# chkconfig NetworkManager off
[root@localhost 桌面]# setup
[root@localhost 桌面]# vim /etc/udev/rules.d/70-persistent-net.rules
[root@localhost 桌面]# modprobe -rv e1000
[root@localhost 桌面]# modprobe -v e1000
[root@localhost 桌面]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost 桌面]#service network restart
[root@localhost 桌面]# setenforce 0
[root@localhost ssh]# vim /etc/selinux/config
SELINUX=disabled
:wq
ssh -X 192.168.1.1 //加X可以在遠程的服務器上打開system-network-date圖形界面,在本地顯示出來
ssh 192.168.10.1 'useradd bob' //在ip地址後面加命令,直接執行命令,不用登陸遠程服務器
ping6 ::1 //拼ipv6本地環回
ping 127.0.0.1 //拼ipv4本地環回
netstat -tunlp | nore //查看監聽tcp的端口號有哪些
:::111 //:冒號後面111代表端口號,前面那兩冒號代表ipv6任意地址
/etc/ssh 配置文件
ssh_config 客戶端配置文件
sshd_config 服務器端軟件
vim /etc/ssh/sshd_config
Port 3389 //端口號
Protocol2 2 //版本
ListenAddress 192.168.168.174 //端聽的IP地址,0.0.0.0代表所有的IP地址
PermitRootLogin no //不允許root用戶登陸
PermitEmptyPasswords no //不允許空密碼
UseDNS no //不查找DNS,不查找IP對的名字是多少
LoginGraceTime 2m //登陸頁面兩分鐘不動,自動斷開
StrictModes yes
MaxAuthTries 6 //最大身份認證嘗試6次
:wq
man ssh //查ssh命令幫助
man 5 sshd_config //查配置文件配幫助,不要加路徑
ssh -p 3389 192.168.10.3 //通過端口號3389連接ssh
sshl黑白名單設置
配置文件 /etc/ssh/sshd_config
從上往下
1. DenyUsers USER1 USER2 ...
2. AllowUsers USER1@HOST USER2...
3. DenyGroups GROUP1 GROUP2...
4. AllowGroups GROUP1 GROUP2...
例:
vim /etc/ssh/sshd_config
AllowUsers tom [email protected] //允許tom用戶登陸,允許root用戶在192.168.10.5的主機上登陸,其他不設允許的主機,默認不允許登陸
:wq
rsync httpd-2.2.25.tar.gz [email protected]:/home/demo
scp httpd..tar.gz [email protected]:/home/demo
加密技術
一.加密方式
1.對稱加密:加解密使用相同的密鑰。算法:DES/3DES/AES。優點,加密效率高,缺點,
密鑰的傳輸和保管不方便。
2.非對稱加密:公鑰加密、私鑰解密。算法:RSA。優點,密鑰傳輸保管方便。缺點,
加密效率低
3.單向加密:加密只能向一個方向進行,不能回推。哈希算法。MD5、SHA
[root@localhost ssh]# md5sum /etc/passwd
[root@localhost ssh]# sha -> 敲tab健
sha1sum sha224sum sha256sum sha384sum sha512sum sharesec
[root@localhost ssh]# sha512sum /etc/passwd //數字越大密鑰越長
bob:$6$xA/CY //6代表sha512加密
bob:$1$xA/CY //1代表MD5加密
實現不用密碼即可連接ssh
一.生成密鑰對
# ssh-keygen ->後續全部回車->第一次回車修改密鑰名字,第二次和第三次回車修改密鑰密碼
/root/.ssh/id_rsa //密鑰對存放位置
二.上傳公鑰到服務器root用戶下
# ssh-copy-id -i root@服務器IP地址
# ssh-copy-id -i [email protected]
/root/.ssh/id_rsa 私鑰
/root/.ssh/id_pub 公鑰
/root/ known_hosts 保存的密碼信息
cd /etc/ssh
rm -rf ssh_host*
service sshd restart
ssh 192.168.1.2 //登陸不了
這時把known_hosts 刪了就可登陸
rm -rf known_hosts
ssh 192.168.1.2 //登陸成功
[root@localhost .ssh]# ls
id_rsa id_rsa.pub known_hosts
[root@localhost .ssh]# rm -f id*
[root@localhost .ssh]# ssh-keygen //重新生成密鑰
[root@localhost .ssh]# ssh-add //執行此步可以不用輸入密鑰就可以進行遠程連接
Could not open a connection to your authentication agent.
[root@localhost .ssh]#eval `ssh-agent` //如果ssh-add失敗就執行此步
Agent pid 5267
[root@localhost .ssh]# ssh-add ~/.ssh/rsa //如果ssh-add失敗就執行此步
/root/.ssh/rsa: No such file or directory
[root@localhost .ssh]# ssh-add
Enter passphrase for /root/.ssh/id_rsa:
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
[root@localhost .ssh]# ssh-keygen
yum list | grep wire //查抓包工具
yum -y install wireshark wireshark-gnome //安裝抓包工具
應用程序-Internet-wireshark //打開抓包工具
二.SSH加密、認證的驗證
1.當客戶端第一次SSH到服務器時,服務器會發送他的密鑰信息。客戶端不能確定該密
鑰就是真正的服務器發過來的,所以屏幕上會提示是否信任該密鑰。用戶輸入YES後,
可以繼續。
2.在服務器端
# rm -f /etc/ssh/ssh_host_*
# service sshd restart
3.客戶端再次連接服務器,因為服務的密鑰重新生成了,客戶端本地存儲的服務器密鑰與
本次會話服務器發過來的密鑰信息不一致,所以客戶端拒接連接
4.客戶端重新信任密鑰
# rm ~/ssh/known_hosts
# ssh 服務器
三.生成ssh密鑰,使用密碼保護私鑰
1.客戶端生成密鑰對。
# ssh-keygen ->提示輸入passphrase的時候,輸入密碼,該密碼是保護私鑰的密碼
2.上傳至公鑰服務器
# ssh-copy-id -i 服務器ip
3.連接測試
# ssh 服務器IP ->提示輸入密碼,這個密碼是保護私鑰的密碼,而不是服務器的密碼
4.把私鑰密碼托管給agent
# ssh-add
5.再次SSH服務器,就不需要輸入任何密碼。
四.證書 ->算法的載體
1.CA證書頒發機構
五.TCP WRAPPERS
1.統一的保護策略
多種TCP服務共用,提高效率
2.檢查服務是否支持被TCP WRAPPERS保護
[root@localhost 桌面]# ldd `which sshd vsftpd` | grep wrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f274758c000)
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fb676477000)
3.防護規則存放在
/etc/hosts.allow
/etc/hosts.deny
策略應用規律
先檢查hosts.allow,有匹配則允許
否則再檢查hosts.deny,有配匹則拒絕
若兩文件中均無匹配,默認為允許
4.規則的格式
服務列表:客戶機列表
關於客戶機地址
可使用通配符 ? 和 *
網段地址,如 192.168.4
或者 192.168.4.0/255.255.255.0
區域地址, 如 .wsyht.com
5.例:
僅允許以下客戶機訪問 VSFTPD
網段192.168.4.0/24
IP范圍:192.168.7.1-192.168.7.20
# rpm -ql telnet-server //查看他的服務名字
# vim /etc/hosts.allow
vsftpd : 192.168.4.*,192.168.7.?,192.168.7.1?,192.168.7.20
sshd : 192.168.1.3
in.telnetd : 192.168.1.3
# vim /etc/hosts.deny
# vsftpd:ALL
五.AAA
Authentication:身份認證 -> 你是誰
Authorization:授權 -> 你能干什麼
Audit:審計 -> 你干了什麼
六.PAM可插拔身份認證模塊
1.配置文件:/etc/pam.d/
2.配置文件的內容(栽選一行如下):
account required pam_nologin.so
第一列是認證類型,可用的選項有:
accout: 執行基於用戶管理的非認證行為操作,典型的,它可以限制用戶的登陸時間、可用的系統資源
auth:這個模塊提供了驵證用戶的兩個方面。首先它認證用戶是他聲稱的那個人(比如用密碼驗證),其次,
它賦矛用戶組成員身份或其他權限。
password:當用戶修改時,需要這個模塊
session:當賦矛用戶某些服務之前或之後,要執行哪些操作。例如用戶在訪問數據時執行寫日志操作。
第二列是控制方式,可用的選項有
required:檢查結果失敗,最終一定會失敗,但是仍然檢查後續。
sufficient: 該項檢查成功,立即通過,不再檢查後續項。如果項檢查失敗,也不意味著最終會失敗。
optional: 可選
include:包含另一個文件的內容
第三列是調用的模塊,這些模塊位於/lib64/security下
/var/log/secure 安全日志文件
3.例一:只有whell組的成員才可以切換成root用戶
# vim /etc/pam.d/su -> 打開auth required 這行的注釋
以tom身份登陸,執行su - 操作,即使輸入正確的密碼,也不能登陸
# usermod -aG wheel tom -> 把tom加入到wheel組 a,追加,G附加
再次執行su - 操作,tom可以切換成root用戶
4.例二:禁止tom從tty2登陸
# vim /etc/pam.d/login 加入下面一行
account required pam_access.so
# vim /etc/security/access.conf 尾部增加,不能追加在最後一行
- : tom : tty2 //-號代表取消的意思
5.例三:只允許tom用戶打開兩個文件
查看/etc/pam.d/system-auth中包含
session required pam_limits.so 尾部添加
# vim /etc/security/limits.conf 尾部增加
tom hard nofile 2
不管是切換成為tom,還是以tom身份登陸,都被禁止
6.例四.創建文件/etc/vsftpd/ftpgrps,該文件中的組不能訪問ftp
# groupadd denyftp
# usermod -aG denyftp tom
# echo 'denyftp' > /etc/vsftpd/ftpgrps
# vim /etc/pam.d/vsftpd 尾部增加
auth required pam_listfile.so item=group sense=deny
file=/etc/vsftpd/ftpgrps onerr=succeed
驗證,tom登陸ftp,登陸不成功,檢查/var/log/secure 日志
7.例五,設置用戶密碼最短長度為9位
# vim /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=9
dcredit=0 ucredit=0 lcredit=0 ocredit=0
本文出自 “wsyht的博客” 博客,請務必保留此出處http://wsyht2015.blog.51cto.com/9014030/1790277