9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦 > 學習電腦 > 電腦安全 > 防火墻知識 >

利用Iptables實現網絡黑白名單防火墻怎么設置

時間: 加城1195 分享

  防火墻主要由服務訪問規則、驗證工具、包過濾和應用網關4個部分組成,防火墻就是一個位于計算機和它所連接的網絡之間的軟件或硬件。這篇文章主要介紹了詳解Android 利用Iptables實現網絡黑白名單(防火墻),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

  具體步驟

  二、Iptables網絡黑白名單(防火墻)實現細節

  因為考慮到一些權限的問題所以在實現方法上采用的是創建一個systemserver來運行這些方法。并提供出manager到三方應用,這樣在調用時可以排除一些權限的限制。同時本文只是做一個簡單的參考概述,所以在后文中只提供了增加黑白名單的方法和iptables規則,并沒有提供相應的刪除規則等,原理類似大家可自行補充添加。

  2.1、創建systemserver

  2.1.1、 在/system/sepolicy/service.te中添加

  type fxjnet_service, system_api_service, system_server_service, service_manager_type;

  2.2.2、在/system/sepolicy/service_contexts中添加如下,

  fxjnet u:object_r:fxjnet_service:s0

  2.2.3、在frameworks/base/core/java/android/content/Context.java中添加

  也可以不添加這個,只不過為了后面調用方便所以添加了。如果跳過此步,那么后面出現Context.FXJNET_SERVICE的地方都用字串代替即可。

  public static final String FXJNET_SERVICE="fxjnet";

  2.2.4、在/frameworks/base/core/java/android/app/SystemServiceRegistry.java的靜態代碼塊中添加如下代碼注冊service。

  registerService(Context.FXJNET_SERVICE, FXJNETManager.class,

  new CachedServiceFetcher() {

  @Override

  public FXJNETManager createService(ContextImpl ctx) {

  IBinder b = ServiceManager.getService(Context.FXJNET_SERVICE);

  IFXJNETService service = IFXJNETService.Stub.asInterface(b);

  return new FXJNETManager(ctx, service);

  }});

  2.2.5、在frameworks/base/services/java/com/android/server/SystemServer.java中添加如下代碼,將service加入systemserver中。

  ServiceManager.addService(Context.FXJNET_SERVICE, new FXJNETService());

  2.2.6 、AIDL文件

  package android.os;

  interface IFXJNETService{

  void addNetworkRestriction(List ipName,int type);

  }

  2.2.7、提供給外部的FXJNETManager

  package android.app;

  import android.os.IFXJNETService;

  import android.os.RemoteException;

  import android.content.Context;

  public class FXJNETManager{

  IFXJNETService mService;

  public FXJNETManager(Context ctx,IFXJNETService service){

  mService=service;

  }

  public void addNetworkRestriction(List ipName,int type) {

  try{

  mService.addNetworkRestriction(ipName,type);

  }catch (RemoteException e){

  }

  }//end addNetworkRestriction

  }

  2.2.8、系統服務即AIDL的實現server

  package com.android.server;

  import android.os.IFXJNETService;

  import java.io.File;

  import java.io.FileOutputStream;

  import java.io.IOException;

  public class FXJNETService extends IFXJNETService.Stub {

  final File file = new File("/data/fxj/", "firewall.sh");

  /**

  * 增加{網絡IP訪問}黑白名單數據

  */

  public void addNetworkRestriction(List ipName,int type) {

  String str= getIPlist(type,ipName);

  setiptablesRestriction();

  }

  //構建Iptables的規則,1-黑名單 ;2-白名單

  private String getIPlist(int type,List iplist){

  StringBuilder sb = new StringBuilder();

  sb.append("echo runscript start\n");

  sb.append("iptables -F OUTPUT\n");

  if (type == 1){

  if (iplist != null && iplist.size() > 0){

  for (int i = 0 ; i < iplist.size() ;i++){

  String ipname = iplist.get(i);

  sb.append("echo blacklist mode\n");

  sb.append("iptables -I OUTPUT -d ");

  sb.append(ipname);

  sb.append(" -j DROP\n");

  }

  }

  }else if (type == 2){

  if (iplist != null && iplist.size() > 0){

  for (int i = 0 ; i < iplist.size() ; i++){

  String ipname =iplist.get(i);

  sb.append("echo whitelist mode\n");

  sb.append("iptabless -P OUTPUT DROP\n");

  sb.append("iptables -I OUTPUT -d ");

  sb.append(ipname);

  sb.append(" -j ACCEPT\n");

  }

  }

  }

  sb.append("run script end\n");

  return sb.toString();

  }

  private void setiptablesRestriction(String ipName){

  final FXJScriptRunner runner = new FXJScriptRunner(file,ipName,new StringBuilder());

  new Thread(new Runnable() {

  @Override

  public void run() {

  runner.run();

  }

  }).start();

  }

  }

  2.2.9、運行IPTABLES腳本命令的工具類

  package com.android.server;

  import java.io.File;

  import java.io.FileOutputStream;

  import java.io.IOException;

  import java.io.InputStream;

  import java.io.OutputStreamWriter;

  import android.os.FileUtils;

  import android.os.SystemProperties;

  import android.util.Log;

  public class FXJScriptRunner extends Thread{

  private final File file;

  private final String script;

  private final StringBuilder res;

  public int exitcode = -1;

  private final String TAG = "ScriptRunner" ;

  public ScriptRunner(File file, String script, StringBuilder res,

  boolean asroot) {

  this.file = file;

  this.script = script;

  this.res = res;

  }

  @Override

  public void run() {

  // TODO Auto-generated method stub

  try {

  file.delete();

  file.createNewFile();

  final String abspath = file.getAbsolutePath();

  // make sure we have execution permission on the script file

  FileUtils.setPermissions(abspath, 00700, -1, -1);

  Runtime.getRuntime().exec("chmod 777 " + abspath).waitFor();//給創建的sh文件設置權限

  // Write the script to be executed

  final OutputStreamWriter out = new OutputStreamWriter(

  new FileOutputStream(file));

  if (new File("/system/bin/sh").exists()) {

  out.write("#!/system/bin/sh\n");

  }

  out.write(script);

  if (!script.endsWith("\n"))

  out.write("\n");

  out.write("exit 0\n");

  out.flush();

  out.close();

  //通過 SystemProperties.set("ctl.start", "fxjmotnitor")執行service,來運行腳本,

  //fxjmotnitor為service名稱,可以根據自己的愛好隨便叫

  SystemProperties.set("ctl.start", "fxjmotnitor");

  } catch (Exception ex) {

  if (res != null)

  res.append("\n" + ex);

  } finally {

  //destroy();

  }

  }

  }

  補充閱讀:防火墻主要使用技巧

  一、所有的防火墻文件規則必須更改。

  盡管這種方法聽起來很容易,但是由于防火墻沒有內置的變動管理流程,因此文件更改對于許多企業來說都不是最佳的實踐方法。如果防火墻管理員因為突發情況或者一些其他形式的業務中斷做出更改,那么他撞到槍口上的可能性就會比較大。但是如果這種更改抵消了之前的協議更改,會導致宕機嗎?這是一個相當高發的狀況。

  防火墻管理產品的中央控制臺能全面可視所有的防火墻規則基礎,因此團隊的所有成員都必須達成共識,觀察誰進行了何種更改。這樣就能及時發現并修理故障,讓整個協議管理更加簡單和高效。

  二、以最小的權限安裝所有的訪問規則。

  另一個常見的安全問題是權限過度的規則設置。防火墻規則是由三個域構成的:即源(IP地址),目的地(網絡/子網絡)和服務(應用軟件或者其他目的地)。為了確保每個用戶都有足夠的端口來訪問他們所需的系統,常用方法是在一個或者更多域內指定打來那個的目標對象。當你出于業務持續性的需要允許大范圍的IP地址來訪問大型企業的網絡,這些規則就會變得權限過度釋放,因此就會增加不安全因素。服務域的規則是開放65535個TCP端口的ANY。防火墻管理員真的就意味著為黑客開放了65535個攻擊矢量?

  三、根據法規協議和更改需求來校驗每項防火墻的更改。

  在防火墻操作中,日常工作都是以尋找問題,修正問題和安裝新系統為中心的。在安裝最新防火墻規則來解決問題,應用新產品和業務部門的過程中,我們經常會遺忘防火墻也是企業安全協議的物理執行者。每項規則都應該重新審核來確保它能符合安全協議和任何法規協議的內容和精神,而不僅是一篇法律條文。

  四、當服務過期后從防火墻規則中刪除無用的規則。

  規則膨脹是防火墻經常會出現的安全問題,因為多數運作團隊都沒有刪除規則的流程。業務部門擅長讓你知道他們了解這些新規則,卻從來不會讓防火墻團隊知道他們不再使用某些服務了。了解退役的服務器和網絡以及應用軟件更新周期對于達成規則共識是個好的開始。運行無用規則的報表是另外一步。黑客喜歡從來不刪除規則的防火墻團隊。


利用Iptables實現網絡黑白名單防火墻怎么設置相關文章:

1.vmware 防火墻如何設置

2.linux怎么關閉iptables linux如何關閉防火墻

3.阿里云防火墻如何設置

4.linux如何關閉防火墻

5.suse linux 防火墻如何設置

4042548 主站蜘蛛池模板: 风韵丰满熟妇啪啪区老熟熟女| 亚洲一区二区偷拍精品| 国产免费网站看v片元遮挡| 国产精品18久久久久久麻辣 | 性饥渴少妇AV无码毛片| 国产亚洲国产精品二区| 国产精品大片中文字幕| 亚洲av中文乱码一区二| 国产精品久久久久久亚洲色| 亚洲春色在线视频| 久久久久久久一线毛片| 色吊丝av熟女中文字幕| 在线天堂中文新版www| 好吊视频一区二区三区在线| 日韩AV无码精品一二三区| 另类 专区 欧美 制服| 国99久9在线 | 免费| 亚洲区一区二区三区精品| 国产乱弄免费视频观看| 男女啪啪高潮激烈免费版| 国产99久久亚洲综合精品西瓜tv| 中文字幕精品无码一区二区| 最新偷拍一区二区三区| 欧美日韩国产va在线观看免费| 国产乱码精品一区二三区| 欧洲人与动牲交α欧美精品| 国产午夜福利小视频在线| 丁香婷婷色综合激情五月| 2021av在线| 国产精品护士| 日韩精品亚洲精品第一页| 精品国产品香蕉在线| 亚洲精品麻豆一二三区| 国产精品爆乳奶水无码视频免费 | 免费看视频的网站| 日韩一区二区三区东京热| 国产片AV国语在线观看手机版| 波多野无码中文字幕av专区| 无码精品人妻一区二区三区中| 国产熟女丝袜av一二区| 福利一区二区在线视频|