歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

如何實現Linux防火牆讓遠程辦公更安全

  目前,通過VPN來實現遠程辦公是比較常見的方法。該方法的不足之處主要有兩點:第一,若要保證VPN用戶隨時訪問內網,內網的計算機必須長時間保持開機狀態,造成大量資源的浪費;第二,用戶連入VPN之後,只能把遠程計算機當成網絡鄰居中的一員來互傳資料。

  利用Linux實現遠程辦公可以彌補VPN方式的以上兩點不足:可以實現按需開機;可以直接控制和監測遠程計算機,以及遠程計算機的桌面。此方法中Linux服務器必須是連接在公網上的一台機器,它“扮演”了網關和防火牆的角色,並且負責喚醒內網的計算機。

環境配置

1.安裝wakelan軟件

  wakelan是Linux下的一款遠程喚醒程序,能喚醒與Linux服務器相連的計算機,並且其網卡MAC地址為指定地址。命令格式是“wakelan MAC地址”。

  wakelan的安裝方法如下:

  #tar wakelan-1.1.tar.gz
  #cd wakelan-1.1
  #./configure
  #make
  #make install

2.添加廣播路由

  在此實際工作環境中,局域網內的機器都通過交換機連在Linux服務器的eth1網卡上。Linux服務器要對整個局域網進行廣播,需要添加以下一條路由:

  #route add -host 255.255.255.255 -dev eth1

  把上面這條路由添加到/etc/rc.local中,即使Linux服務器重新啟動,也可以自動添加該路由。

3.配置DHCP

  在DHCP的配置文件/etc/dhcpd.conf中指定內網Windows機器的IP地址、域服務器地址、域名、網關、DNS服務器等信息,使其啟動後可以自動獲取指定的IP。當然,如果每台計算機上都有固定的IP地址,則配置DHCP服務的過程可以忽略。

  /etc/dhcpd.conf中配置的內容如下:

  ddns-update-style ad-hoc;
  max-lease-time -1;
  default-lease-time -1;
  option subnet-mask 255.255.255.0;
  option broadcast-address 255.255.255.255;
  option routers 192.168.0.1;
  option domain-name-servers 192.168.0.1;
  option domain-name "home.net.cn";
  subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.11 192.168.0.100;
  host platinum {
  hardware ethernet 00:0a:e6:a9:64:a2;
  fixed-address 192.168.0.2;
  }
  }

  上面的配置中,對名為“platinum”的PC做了指定MAC的IP分配,固定platinum的IP地址為192.168.0.2,如有其它機器,也做類似設置即可。

  用命令“/etc/rc.d/init.dhcpd start”啟動DHCP服務,使DHCP可以正常運行。

4.配置iptables,設置DNAT功能

  DNAT功能可以將訪問Linux網關特定端口的所有連接請求都轉到內網指定機器的相應端口上(內網用戶的連接請求除外)。

  舉例如下:

  #iptables -A PREROUTING -t nat -p tcp -s ! 192.168.0.0/24 --dport 4899

 -j DNAT --to 192.168.0.2:4899

  上例這條命令中,把訪問Linux網關4899端口的所有連接請求都轉到IP為192.168.0.2的機器的4899端口上。4899是遠程控制程序Radmin的默認服務端口。可以把這條命令添加到文件/etc/rc.local裡,使Linux啟動就自帶這個功能。用戶也可以寫一個實現同樣功能的Firewall腳本,放在/etc/rc.local裡執行。

5.在內網Windows上安裝遠程控制軟件

  常用的遠程控制軟件有pcAnywhere、Radmin等,用戶可以根據自己的喜好安裝其中一個,本人使用的是Radmin。用來遠程辦公的計算機和受控制的計算機都必須安裝這個軟件,不同的是被控端除了安裝這個軟件以外,還需要啟動服務端程序。

6.遠程喚醒內網機器

  遠程啟動的前提是Windows機器支持網卡喚醒,並且BIOS的設置要符合網卡喚醒標准。在任何能上網的地方用SSH方式登錄到Linux機器,執行遠程喚醒命令:




  #wakelan 00:0a:e6:a9:64:a2

  如果電腦啟動了,則證明前面的配置成功。要遠程登錄,用戶還必須記住一堆難記的MAC地址,這是很麻煩的,而且不安全。我們可以通過Web服務來改進這個功能。

安全、便捷的Web啟動方式

  如果Linux中已經安裝了Apache和PHP,就可以通過配置Apache和編寫PHP腳本來實現更安全地遠程啟動。

1.編寫PHP腳本

  在Apache的DocumentRoot下面建立一個wakeup目錄,在這個目錄下建立index.php文件,內容如下:

  <?
  passthru("/usr/local/bin/wakelan 00:0a:e6:a9:64:a2");
  echo "計算機platinum正在啟動 . . .";
  ?>

  現在,只要在浏覽器中輸入一個網址(事先在Apache中設置好的),比如,http://platinum.3322.org/wakup,就可以實現遠程啟動了。這樣雖然很方便,但是任何人都可以訪問,還是不安全,需要添加Apache認證來解決這個問題。

2.添加Apache認證

  修改Apache的配置文檔/usr/local/apache2/conf/httpd.conf,添加如下代碼:

  <Directory /usr/local/apache2/htdocs/wakeup>
  AllowOverride AuthConfig
  </Directory>

  在wakeup目錄中建立.htAccess文件,並編輯:

  #vi /usr/local/apache2/htdocs/wakeup/.htaccess
  AuthName "電腦platinum啟動器"
  AuthType Basic
  AuthUserFile /usr/local/apache2/apache.users
  require user platinum

3.創建密碼文件

  接下來,就是創建一個專門用來存放密碼的文件apache.users:

  root@server# htpasswd -c /usr/local/apache2/apache.users platinum
  New passWord:
  Re-type new password:
  Adding password for user platinum

  apache.users文件內的密碼被加密,修改密碼時,還是使用htpasswd命令,不帶“-c”參數即可。

  要使配置生效,必須重啟Apache服務。這樣,再用http://platinum.3322.org/wakeup訪問,就會需要密碼認證了(見圖1)。不知道密碼的人是無法進入系統開啟指定計算機的。

圖1 啟動遠程計算機的認證畫面

開始遠程控制

  通過以上方法遠程啟動計算機後,啟動事先裝好的遠程控制軟件,輸入Linux服務器的地址,就可以操作遠程的電腦platinum了。操作完成後,如果不再需要計算機繼續工作,可以通過遠程控制軟件關閉遠程的計算機,避免了資源浪費。



圖1 啟動遠程計算機的認證畫面

開始遠程控制

  通過以上方法遠程啟動計算機後,啟動事先裝好的遠程控制軟件,輸入Linux服務器的地址,就可以操作遠程的電腦platinum了。操作完成後,如果不再需要計算機繼續工作,可以通過遠程控制軟件關閉遠程的計算機,避免了資源浪費。



Copyright © Linux教程網 All Rights Reserved