# 遠程管理
一、Linux下連接windows遠程桌面
在linux下yum -y install rdesktop linux下遠程桌面
rdesktop -f -u 用戶名 -p 密碼 ip地址 (-f 全屏)
Ctrl+Alt+Enter 退出全屏
在VMWare中快捷鍵會衝突,不要加-f選項開全屏,要不只能切到別的終端,kill殺死進程
telnet ip地址 端口號
安裝VNC服務器端:
windows服務器端的VNC是 tightvnc官網上下載 .msi的文件
Linux上VNC安裝使用 yum -y install tigernvc tigernvc-server
配置
nvcpasswd 設置密碼
nvcserver 回車 就啓動了VNC
注:在windows上使用VNC工具連接 如果拒絕,則在ip後使用:5901指定端口(默認使用5900端口,但多個人向linux的VNC發起連接的話,每人要使用獨立的端口,不能重複)
新服務器的操作流程:
1.配置硬RAID
2.安裝系統
3.配置IP
4.設置防火牆策略
5.部署服務
6.打開22端口
二、SSH
1、基礎:
sshd 服務名
tcp 22 端口號
服務端主程序:/usr/sbin/sshd
客戶端主程序:/usr/bin/ssh
服務端配置文件:/etc/ssh/sshd_config 主配置文件
客戶端配置文件:/etc/ssh/ssh_config (一般客戶端使用默認配置)
2、驗證方式:
密碼驗證:覈對用戶名、密碼是否用戶名匹配(服務器端的用戶名密碼)
密鑰對驗證:覈對客戶的私鑰、服務端公鑰是否匹配(在客戶端生成一對密鑰,將公鑰傳給服務器)
兩個驗證都打開 密鑰對生效
/etc/ssh/sshd_config裏的內容
PasswordAuthentication yes 是否開啓密碼驗證
#PubkeyAuthentication yes 是否開啓密鑰對驗證
#AuthorizedKeysFile.ssh/authorized_keys 保存位置
#PermitRootLogin yes 是否允許管理員登錄
在生產環境裏,不要讓root通過網絡來登錄某臺主機,有可能被別人截獲,在內網無所謂,在公網上用root使用ssh來登錄危險性是比較大的。
3、密碼驗證
ssh 用戶名@目標主機 使用默認22端口連接
ssh 目標主機地址 默認使用root連接
ssh -p 端口號 用戶名@目標主機
4、功能模塊
ssh 遠程連接 (-p 指定端口號)
scp 遠程文件傳輸 (-P 指定端口號)
要注意權限問題
使用scp上傳:
scp 本地文件 用戶名@目標主機地址:/tmp
例:scp ./1.txt [email protected]:/tmp
使用scp下載:
scp 用戶名@目標主機地址:/路徑/文件名 本地目錄
例:scp [email protected]:/tmp/2.txt ./
sftp 安全的FTP服務
sftp 用戶名@ip地址 (-oPort=端口號)
不需要指定目錄,會上傳到登錄用戶的家目錄
例:sftp [email protected]
sftp>put 文件名 上傳文件
sftp>get 文件名 下載文件
5、密鑰對驗證:(用於腳本)
a、普通用戶在客戶端生成密鑰對 id_rsa id_rsa.pub
ssh-keygen -t rsa
-t 指定生成密鑰對的算法 (rsa或dsa)
b、將公鑰id_rsa.pub上傳給服務器
scp /home/client/.ssh/id_rsa.pub [email protected]:/tmp
c、服務器端,用root用戶將公鑰內容導入到
/home/用戶名/.ssh/authorized_keys,並開啓密鑰對驗證方式
cat id_rsa.pub >> /home/server/.ssh/authorized_keys
d、用客戶端測試
ssh 服務器端用戶@服務器端IP
@font-face { font-family: "Times New Roman";}@font-face { font-family: "宋體";}@font-face { font-family: "SimSun";}p.MsoNormal { margin: 0 0 0; text-align: justify; font-family: "Times New Roman"; font-size: 14px; }h1 { margin-top: 23px; margin-bottom: 22px; page-break-after: avoid; text-align: center; font-family: "Times New Roman"; font-weight: bold; font-size: 29px; }span.msoIns { text-decoration: underline; color: blue; }span.msoDel { text-decoration: line-through; color: red; }div.Section0 { page: Section0; }
SSH隧道
假設內網用戶A現在想通過網關B去訪問外網的一個網站服務器C,但是因爲網關B上的策略(路由器上設置禁止員工做與工作無關的信息,比如禁止QQ,上班時間不許看優酷等),使得用戶A不能夠訪問想要訪問的內容,如果用戶A想要訪問優酷的網站,那應該怎麼辦?
由於LAN----GW----WLAN的這條線路斷了,用戶A是不能夠訪問C的。此時,假如用戶A在外網還有一臺自己的雲主機D,而主機D不會被網關限制訪問(D在公網上),它能夠訪問網站服務器C;A----B----D這條鏈路是沒有問題的,並且D---C這條鏈路也是沒有問題的,那我們可以讓主機D作爲跳板機,讓我們的訪問由A---B---C變爲A---B---D----C,這樣的話防火牆不會拒絕我們內網用戶A訪問主機D,那我們可以成功的把請求發送到主機D,然後再由主機D,作爲我們的跳板機,將我們的請求發送給網站服務器C。這樣我們在我們的主機A和主機D之間建立了一條SSH隧道。我們網關做設置時,一般設置的是拒絕內網向外網發送的請求,而外網給我們內網回的數據不會被拒絕。
一、建立SSH隧道的必須條件:
1.要知道訪問的主機C是誰
2.在公網上要有一臺可以和主機C直連的跳板機
3.跳板機上必須開啓SSH服務
有了這三個才能建立SSH隧道,實現訪問的中轉
二、SSH隧道實驗環境的搭建:
1.需要4臺虛擬機
一臺內網A IP 192.168.1.1
一臺網關服務器B(網關服務器需要兩塊網卡,網卡1的IP地址爲192.168.1.2網卡2的IP地址爲200.200.200.2;它既要跟左邊通信,又要跟右邊通信,跨網段的)
一臺想要訪問的網頁服務器C IP地址爲200.200.200.200
一臺外網D IP地址爲200.200.200.1
2.在網關B上ping 內網A 192.168.1.1 和外網D 200.200.200.1都可以通信,在外網D 200.200.200.1上設置網關
route add default gw 200.200.200.2
3.在外網的200.200.200.200網站服務器上把網站架設起來
a)在網站服務器上進行本地測試,可以訪問
b)在內網用戶A上訪問網站是不能訪問的(因爲在中間的網關上沒有做任何策略)
4.在網關B上,編輯/etc/sysctl.conf,把路由轉發打開,將net.ipv4.ip_forward的值改爲1(表示支持ipv4的數據包轉發),然後保存退出,執行sysctl -p命令刷新。此時,內網用戶訪問外網網站服務器是不能夠通的。
真實情況下內網用戶是沒有權限對網關做任何操作的,網關沒有權限修改,路由器沒有權限登錄
5.只要保證內網的用戶能夠登錄自己外網的主機就可以。在內網用戶A上SSH登錄外網的主機D。在內網用戶A上執行命令
ssh -N -f -L 自己定義的端口:要訪問的主機的地址:要訪問的端口 跳板機地址
-N 表示這臺主機不是要ssh登錄,而只是要做一個轉發
-f 表示要把這條策略放在後臺運行、
-L 表示指定要轉發的策略(如何去做這個轉發)
(ssh -N -f -L 8080:200.200.200.200:80我要訪問這臺主機的80端口,我要通過200.200.200.1的這臺主機做跳轉)
例:ssh -N -f -L 8080:200.200.200.200:80 200.200.200.1
我要ssh連接到200.200.200.1,連接到這臺主機以後,做跳轉,跳轉到200.200.200.200的80端口,通過8080端口去做跳轉
6.配置完成之後,在內網主機上直接訪問200.200.200.200是不通的(因爲網關路由器上沒有允許我們訪問的策略),但是通過訪問http://localhost:8080訪問本地的8080端口(當我們的用戶去訪問本地的8080端口時,它會將請求連接到遠程的200.200.200.1上,通過這臺主機發起一條200.200.200.200:80的請求,然後結果就顯示給了我們)
在實驗環境下,只需要上面的一條命令,但在生產環境裏,有很多的網絡因素,要調整很多的東西(比如要用客戶端的代理程序等)