經常使用的服務
服務名 軟件包 功能
sshd openssh—server 用來遠程鏈接的服務
vsftpd vsftpd 文件名服務器,提供文件共享,用於存儲
nfs nfs—utils 文件服務器
smb samba 文件服務器
tftp tftp-servser 迷你的ftp文件服務器
rsyslog rsyslog 日誌服務
dhcpd dhcp 動態分配IP 地址
pxe dhcp+tftp+kickstat+vsftpd/http 自動化部署(系統,初始化)
Apache httpd web服務器即網站服務器
bind named DNS 域名解析服務node
cat /e tc/services (記錄各個服務所對應的端口號)
例如:grep -w ftp /etc/serviceslinux
常見的網絡服務協議,名稱級端口號
網絡端口的做用:區分不一樣的服務或應用軟件。
查當前電腦的21端口的網絡進程:netstat -atulp | grep :21 或者 ss -atnlp
註釋:a顯示全部進程 t顯示tcp協議進程 u顯示udp協議進程 n以數字顯示端口號
p顯示pid號 l顯示狀態爲listen監聽的進程 r顯示路由表
ftp:文件傳輸協議。21(控制端口)被動,20(數據端口)主動
http:超文本傳輸協議。用於web網站服務器。端口80
dns:域名系統。端口53。
dhcp:動態主機配置協議。服務器端67,客戶端68
ssh:安全的shell。用於遠程管理服務器的協議。端口 22
smtp:簡單郵件傳輸協議。用於發送郵件。端口:25
pop3:郵局協議。端口110
snmp:簡單網絡管理協議。端口161web
查看全部的網絡進程狀態:netstat -atunlp | moreshell
proto :協議
Recv-Q:接收
Send-Q:發送
Local Address :外來地址
Foreign Address:外來地址
State:狀態
PID/Program name :進程pid號/程序號vim
ssh
做用:提供遠程鏈接 遠程拷貝 數據加密 雙機互信
確保已完成如下工做:
1.已關閉防火牆
2.已關閉selinux
3.已關閉NetworkManager
4.已配置固定的ip地址
5.yum配置好
實施:
systemctl status firewalld
systemctl stop firewalld 臨時關閉防火牆
systemctl disable firewalld
getenforce 查selinux狀態
setenforce 0 臨時設置selinux狀態爲permissive寬容模式(當即生效)
sed -i 's/=enforcing/=disabled/' /etc/selinux/config 修改配置文件(reboot重啓生效)centos
systemctl restart network 重啓網絡服務
ifconfig 或 ip a 查IP地址
ifconfig ens33:0 192.168.10.8 給ens33網卡臨時添加一個新IP地址,:0爲虛擬接口
ifconfig ens33:1 192.168.10.9api
測試yum源是否可用:
yum clean all
yum repolist安全
附加練習:修改虛擬機的主機名(計算機名)。操做以下。
hostname server.up.com 臨時修改主機名爲server.up.com(當即生效)
bash 開啓新的命令行解釋器(命令界面)
vim /etc/hostname 修改後的內容以下(永久生效,但必須reboot重啓纔會生效)
server.up.com 新主機名。
環境:
服務器(虛擬機) ip:192.168.10.7 主機名:server.up.com
客戶端(物理機) ip:192.168.10.1 主機名:client.up.combash
ssh客戶端遠程鏈接ssh服務器:ssh 用戶名@主機IP
例:ssh root@192.168.10.7 回車後輸入root密碼便可服務器
服務器:
查看軟件包是否安裝
openssh-clients-5.3p1-94.el6.x86_64 客戶端
openssh-server-5.3p1-94.el6.x86_64 服務器端
openssh-5.3p1-94.el6.x86_64 軟件包套件
工做模式:c/s架構 即C客戶端---》S服務器
端口:22 查:netstat -atnlp | grep :22 或 lsof -i :22
1.安裝軟件包
yum install openssh-server -y
查看軟件包安裝產生的文件
rpm -ql openssh-server
/etc/pam.d/sshd pam認證(登陸的身份驗證規則)
/etc/rc.d/init.d/sshd 啓動腳本(centos6)
/usr/lib/systemd/system/sshd.service 啓動腳本(centos7)
/etc/ssh/sshd_config 主配置文件
/etc/sysconfig/sshd 腳本的配置文件
/usr/sbin/sshd 守護進程
/usr/sbin/sshd-keygen 服務器端的密鑰生成器
/usr/libexec/openssh/sftp-server sftp服務端(ssh的文件共享服務)
/usr/share/doc/openssh-server-5.3p1 幫助文檔
2.配置服務
rpm -qc openssh-server 查軟件的配置文件
cat -n /etc/ssh/sshd_config
#Port 22 // 默認的端口22,行號17
#AddressFamily any //支持任意地址簇(ipv4/ipv6),行號18
#ListenAddress 0.0.0.0 //監聽在任何ipv4地址上(即指定提供服務的IP地址),行號19
#ListenAddress :: //監聽在任何ipv6地址上
Protocol 2 //協議版本
SyslogFacility AUTHPRIV //定義日誌的對象。日誌文件是/var/log/secure
#LogLevel INFO //日誌的級別
#LoginGraceTime 2m //2分鐘不輸入密碼就禁止的登錄
#PermitRootLogin yes //容許管理員登錄(行號49)
#StrictModes yes //請用嚴格模式
#MaxAuthTries 6 //最多能夠嘗試6次(行號51),建議設置爲1或2。防止暴力破解。
#MaxSessions 10 //容許最大會話10個(行號52)。建設設置小一點。防止太多用戶遠程鏈接。
#RSAAuthentication yes //啓用RSA認證(行號54)。是採用密鑰文件認證。
#PubkeyAuthentication yes //啓用公鑰認證(行號55)。是採用密鑰文件認證。
#PasswordAuthentication yes //採用密碼認證
#PermitEmptyPasswords no //密碼爲空不能登錄
PasswordAuthentication yes
#UseDNS yes //是否採用dns解析,建議設置成no,不然遠程鏈接時會卡好久
#PidFile /var/run/sshd.pid //pid文件位置
GSSAPIAuthentication yes //啓用GSSAPI接口認證,建議設置爲no,不然遠程鏈接時可會卡好久。API是應用程序接口的縮寫。
X11Forwarding yes 啓用X11轉發功能(行號115)。即支持在ssh客戶端調用xwindow桌面程序。
Subsystem sftp /usr/libexec/openssh/sftp-server 子系統,啓用sftp文件共享功能(行號146)
3.啓動服務
centos6的操做:
/etc/rc.d/init.d/sshd start /etc/init.d 是/etc/rc.d/init.d的軟鏈接
/etc/init.d/sshd start
service sshd restart
開機啓動:chkconfig sshd on
centos7的操做:
systemctl restart sshd.service
開機啓動:systemctl enable sshd.service
經過端口排錯
netstat -tulnp | grep sshd
-t tcp協議
-u udp協議
-l listening
-n 以數字方式顯示 不把端口翻譯爲協議
-p 進程名
lsof -i:22 //有返回值表示服務處於監聽狀態
客戶端:
1.安裝軟件包
rpm -qa | grep openssh 查
yum install openssh-clients -y 裝
查看軟件包安裝產生的文件
rpm -ql openssh-clients
/etc/ssh/ssh_config //配置文件
/usr/bin/scp //遠程拷貝
/usr/bin/sftp //sftp客戶端
/usr/bin/ssh //遠程鏈接
/usr/bin/ssh-add //密鑰傳遞失敗用此命令
/usr/bin/ssh-copy-id //傳遞密鑰
/usr/bin/ssh-keyscan //密鑰掃描
rpm -ql openssh
/usr/bin/ssh-keygen //客戶端的密鑰生成器
客戶端進行管理
遠程管理
查幫助:man ssh
usage: ssh [-l login_name] hostname | user@hostname [command]
-l login_name
指定登陸遠程主機的用戶.
ssh -l tom 192.168.1.252 //以tom用戶的登錄
ssh tom@192.168.1.252 //以tom用戶的登錄
-v 顯示鏈接過程
臨時在服務器上作指定的操做(遠程執行命令)
ssh 192.168.10.7 ip a
ssh 192.168.1.252 useradd jim
-p port (publickey,gssapi-keyex,gssapi-with-mic,password).
指定遠程主機的端口.
ssh 192.168.1.250 -p 2250 注:此測試,要先將ssh服務器的sshd_config配置文件設置Port 2250,重啓sshd服務後再遠程鏈接
能夠在遠程系統上使用本地圖形化的配置
服務端須要開啓相關的功能
X11Forwarding yes (publickey,gssapi-keyex,gssapi-with-mic,password).
開啓X11轉發協議
遠程複製
用法:scp -r 來源 目標
把服務器上的/opt目錄拷貝到本地的/tmp目錄 下載
把本地文件/etc/*.conf上傳到服務器/tmp/
#驗證:ssh root@192.168.10.7 ls /tmp
遠程清空tmp目錄:ssh root@192.168.10.7 'rm -rf /tmp/*' 注:命令必須用引號括起來
-r 遞歸執行,用於複製目錄
-v 顯示過程
-p 保留源文件屬性
安全無密碼鏈接
密鑰(雙機互信)
若是客戶端鏈接服務器無需密碼。客戶端上須要生成一對密鑰(公鑰、私鑰),公鑰傳給服務器,那麼服務器收到公鑰,客戶端鏈接服務器就不須要密碼。
客戶端配置(192.168.10.1或192.168.8.?):
1.生成密鑰
ssh-keygen
root用戶的密鑰位置
cd /root/.ssh
id_rsa 私鑰(本身 (publickey,gssapi-keyex,gssapi-with-mic,password).
用)
id_rsa.pub 公鑰 (給別人的)
known_hosts 指紋(ssh服務器自動傳過來的公鑰)
2.把公鑰發給服務器上的node1用戶:
ssh-copy-id node1@192.168.10.7 回車後輸入node1用戶的密碼
ssh-copy-id -i id_rsa.pub 192.168.1.252
公鑰信息保存在ssh服務器的/home/node1/.ssh/authorized_keys
3.測試客戶端鏈接服務端不須要密碼
ssh node1@192.168.10.7
常見錯誤:
1.
ssh: connect to host 192.168.1.252 port 22: No route to host
1.檢測是否有ip地址
2.檢測服務器和客戶端是否能ping通
3.檢測網卡鏈接方式
2.作雙擊互信。鏈接任然還要密碼
遠程鏈接時報以下錯誤,請在客戶機上執行ssh-add後再連。
ssh-add 密鑰傳送失敗選者此命令
3.網絡服務正常沒法鏈接
rm -rf ~/.ssh/known_hosts
登錄的歷史記錄:last lastlog