http://bbs.hikemobile.com/thread-1644-1-1.html
http://5e76.net/show-2409.html
http://www.myexception.cn/open-source/429531.html
http://www.eoeandroid.com/thread-245052-1-1.html
http://blog.csdn.net/Zengyangtech/article/details/5579311
https://code.google.com/p/droidwall/
http://www.oschina.net/p/droidwall/similar_projects?lang=0&sort=view&p=16
http://smallnopoint.iteye.com/blog/1465138
private static boolean applyIptablesRulesImpl(Context ctx, List<Integer> uidsWifi, List<Integer> uids3g, boolean showErrors) { if (ctx == null) { return false; } assertBinaries(ctx, showErrors); final String ITFS_WIFI[] = { "tiwlan+", "wlan+", "eth+", "ra+", "mlan+" }; final String ITFS_3G[] = { "rmnet+", "pdp+", "ppp+", "uwbr+", "wimax+", "vsnet+", "ccmni+", "usb+", "qmi+", "ccinet+" }; final StringBuilder script = new StringBuilder(); try { int code; script.append(String.format("export LD_LIBRARY_PATH=%s\n", System .getenv("LD_LIBRARY_PATH"))); script.append(scriptHeader(ctx)); script.append("" + "$IPTABLES --version\n" + "# Create the DROIDWALL chains if necessary\n" + "$IPTABLES --new DROIDWALL\n" + "$IPTABLES --new DROIDWALL_MOBILE\n" + "$IPTABLES --new DROIDWALL_WIFI\n" + "$IPTABLES --new DROIDWALL_REJECT\n" + "# Add DROIDWALL chain to OUTPUT chain if necessary\n" + "$IPTABLES -D OUTPUT -j DROIDWALL\n" + "$IPTABLES -I OUTPUT -j DROIDWALL\n" + "$IPTABLES -F DROIDWALL || exit 7\n" + "$IPTABLES -F DROIDWALL_MOBILE || exit 8\n" + "$IPTABLES -F DROIDWALL_WIFI || exit 9\n" + "$IPTABLES -F DROIDWALL_REJECT || exit 10\n" + ""); script.append("" + "# Create the reject rule (log disabled)\n" + "$IPTABLES -A DROIDWALL_REJECT -j REJECT || exit 11\n" + ""); script.append("# Main rules (per interface)\n"); for (final String itf : ITFS_3G) { script.append("$IPTABLES -A DROIDWALL -o ").append(itf).append( " -j DROIDWALL_MOBILE || exit\n"); } for (final String itf : ITFS_WIFI) { script.append("$IPTABLES -A DROIDWALL -o ").append(itf).append( " -j DROIDWALL_WIFI || exit\n"); } script.append("# Filtering rules\n"); final String targetRule = "DROIDWALL_REJECT"; // final boolean any_3g = uids3g.indexOf(SPECIAL_UID_ANY) >= 0; // final boolean any_wifi = uidsWifi.indexOf(SPECIAL_UID_ANY) >= 0; if (any_3g) { script.append("$IPTABLES -A DROIDWALL_MOBILE -j ").append( targetRule).append(" || exit\n"); } else { /* release/block individual applications on this interface */ for (final Integer uid : uids3g) { if (uid >= 0) script .append( "$IPTABLES -A DROIDWALL_MOBILE -m owner --uid-owner ") .append(uid).append(" -j ").append(targetRule) .append(" || exit\n"); } } if (any_wifi) { script.append("$IPTABLES -A DROIDWALL_WIFI -j ").append( targetRule).append(" || exit\n"); } else { /* release/block individual applications on this interface */ for (final Integer uid : uidsWifi) { if (uid >= 0) script .append( "$IPTABLES -A DROIDWALL_WIFI -m owner --uid-owner ") .append(uid).append(" -j ").append(targetRule) .append(" || exit\n"); } } if (uids3g.indexOf(SPECIAL_UID_KERNEL) >= 0) { script.append("# hack to BLOCK kernel packets on black-list\n"); script .append("$IPTABLES -A DROIDWALL_MOBILE -m owner --uid-owner 0:999999999 -j RETURN || exit\n"); script .append("$IPTABLES -A DROIDWALL_MOBILE -j DROIDWALL_REJECT || exit\n"); } if (uidsWifi.indexOf(SPECIAL_UID_KERNEL) >= 0) { script.append("# hack to BLOCK kernel packets on black-list\n"); script .append("$IPTABLES -A DROIDWALL_WIFI -m owner --uid-owner 0:999999999 -j RETURN || exit\n"); script .append("$IPTABLES -A DROIDWALL_WIFI -j DROIDWALL_REJECT || exit\n"); } final StringBuilder res = new StringBuilder(); code = runScriptAsRoot(ctx, script.toString(), res); if (showErrors && code != 0) { // String msg = res.toString(); // Log.e("DroidWall", msg); // Remove unnecessary help message from output // if // (msg.indexOf("\nTry `iptables -h' or 'iptables --help' for more information.") // != -1) { // msg = // msg.replace("\nTry `iptables -h' or 'iptables --help' for more information.", // ""); // } // alert(ctx, "Error applying iptables rules. Exit code: " + // code + "\n\n" + msg.trim()); Toast.makeText(ctx, ctx.getString(R.string.kn_traffic_item_info_no_root), 300).show(); System.out.println("applyIptablesRulesImpl"); } else { return true; } } catch (Exception e) { if (showErrors) Toast.makeText(ctx, ctx.getString(R.string.kn_traffic_item_info_no_root), 300).show(); System.out.println("applyIptablesRulesImpl"); } return false; }
相关推荐
在现代的家庭和企业网络环境中,UPnP(Universal Plug and Play)技术已经成为一种重要的设备联网方式。它允许智能设备自动发现并连接到网络,无需用户进行复杂的网络配置。UPnP规范基于TCP/IP协议和其他互联网协议...
2. 防火墙设置:使用`ufw`或`iptables`配置防火墙规则,保护系统免受非法访问。 3. 安全审计:定期运行`last`、`logwatch`检查登录记录,使用`aide`或`tripwire`进行文件完整性检查。 六、备份与恢复 1. 数据备份...
- **端口转发与NAT**:`iptables`是Linux内建的防火墙工具,可用于设置端口转发和NAT规则。 7. **远程访问与SSH** - **SSH服务**:安装`openssh-server`,然后使用`sudo systemctl start ssh`启动SSH服务,允许...
关闭和开启防火墙可以通过`chkconfig iptables off/on`实现,但请注意这需要管理员权限。 文件管理是日常工作中的基础,`cp`命令用于复制文件,支持同时复制多个文件到一个目录。Linux系统还提供了查看和编辑文件的...
2. 用户统一:用户的主目录可以放在NFS服务器上,用户在任何联网的机器上都能访问自己的个人文件,无需在每台机器上创建独立的home目录。 3. 设备共享:NFS还支持网络上其他设备的共享,例如软盘驱动器、CD-ROM和ZIP...
4. **网络配置**:如果需要联网安装,此时可以配置网络连接,以便从服务器上获取更新和软件包。 5. **分区**:在安装过程中,你需要规划磁盘分区。可以选择自动分区,也可以手动创建/挂载点,如根目录`/`、用户目录...
netfilter是Linux内核中的联网子系统,提供了有状态或无状态的分组过滤功能,以及NAT和IP伪装服务。NAT技术允许私有网络通过一个公用IP地址访问外部网络,使得内部网络的多台主机共享该IP地址上网成为可能。在典型...
Docker 安装及配置指南 Docker 是 dotcloud 公司开源的一款产品,主要基于 ...安装完成后,需要启用 iptables 并清空 iptables,以便更好地管理网络安全。最后,需要 shutdown 系统并保存快照,以便更好地管理系统。
下面将详细解释如何在 CentOS 中设置和管理 NTP 服务器。 ### 1. 安装 NTP 服务 首先,我们需要安装 NTP 服务。在 CentOS 中,可以通过执行以下命令来安装: ```bash sudo yum install ntp -y ``` ### 2. 更新 ...
边缘计算的应用场景广泛,包括但不限于智能工厂、智慧城市、车联网、智能家居等。 ### Kube-OVN的选择理由 在边缘计算领域,选择Kube-OVN的理由多方面体现。相较于其他网络插件如flannel和Calico,Kube-OVN提供了...
5. **安全设置**: 更新防火墙规则(iptables),安装防病毒软件(ClamAV)和安全更新。 6. **系统优化**: 调整内核参数,优化启动脚本,确保系统性能和稳定性。 7. **备份策略**: 设定定期备份策略,保护重要数据...
3. **网络配置**:确保服务器能正常联网,这有助于后续安装Oracle数据库时获取所需的依赖库。 4. **系统参数调整**:根据服务器的实际需求调整系统参数,如内存管理、文件句柄数量等。 #### 第二部分:Oracle 10g ...
如果无法联网,可以使用安装光盘作为yum源。 2. **卸载系统预装组件**:在开始安装LAMP环境前,可能需要卸载系统自带的Apache、MySQL和PHP,以避免版本冲突。这可以通过`yum remove`命令完成。如果遇到依赖问题,...
为了确保虚拟机能够正常联网,需要进行如下配置: - **网络模式**: 设置虚拟机为Host-only模式,并开启共享网卡。 - **具体步骤**: - 在宿主机中,选择本地连接的属性,进入共享选项卡,设置Internet连接共享,...
`rpm`管理软件包,`date`显示或设置日期,`uptime`显示系统运行时间,`setup`系统配置,`service`管理服务,以及网络相关指令如`ifconfig`、`route`、`ping`、`telnet`、`netstat`、`tcpdump`、`iptables`等。...
5. **网络配置**:安装时需配置网络参数,如IP地址、子网掩码、网关和DNS,确保系统安装后能正常联网。 6. **软件选择**:根据需求选择要安装的软件包,如办公软件、开发工具、服务器软件等。 7. **用户和组管理**...
* 在单用户模式下,Cloudera Manager Agent 和所有由 Cloudera Manager 管理的进程都将以配置的用户和组启动。 3. JDK 安装 * JDK 安装是 Cloudera Manager 安装的前提条件 * export JAVA_HOME=/usr/jdk 4. MySQL...
2. 能够全天候联网,最好是拥有独立Global IP地址的接入方式。 3. 一个局域网环境,便于通过其他设备对服务器进行配置。 4. 若条件受限,也可以使用虚拟机软件如VMware在Windows上安装CentOS,但请注意虚拟环境下的...
**LAMP**是一个开源软件堆栈,由四个主要部分组成:**Linux**操作系统、**Apache** Web服务器、**MySQL**数据库管理系统以及**PHP**编程语言。这套组合被广泛用于运行动态网站或Web应用程序。本文将详细介绍如何在...