歡迎您光臨本站 註冊首頁

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

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

  目前,通過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,添加如下代碼:

  
  AllowOverride AuthConfig
  


  在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了。操作完成後,如果不再需要計算機繼續工作,可以通過遠程控制軟體關閉遠程的計算機,避免了資源浪費。

[火星人 ] 實現Linux防火牆讓遠程辦公更安全已經有714次圍觀

http://coctec.com/docs/linux/show-post-204617.html