debian iptables 学习

[不指定 2010/01/19 14:22 | by suibing ]
一.配置debian机器的双网卡IP,我设的是eth0为公网IP,eth1为内网IP,
vim /etc/network/interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 172.18.30.187
netmask 255.255.255.0
gateway 172.18.30.1

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

二、输入:echo 1 > /proc/sys/net/ipv4/ip_forward
当初学习的时候我记得是需要保存这一项的,不然重启后值会变成0。但忘了怎么保存了。再次郁闷,
后来我在/etc/sysct1.conf里添加了下面这一行:
net.ipv4.ip_forward = 1   重启后生效了。嘿嘿!!



三、输入: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 172.18.30.187



此时一个简单的路由器便成功了。

但是,一但系统重启,将不能转发。郁闷,GOOGLE了半天才找到了一个解决保存iptables的方法



四、保存iptables:iptables-save > /etc/network/iptables



五、在/etc/network/interface里的eth0配置下加入下面这一行,使系统启动时自动转入iptables



up /sbin/iptables-restore /etc/network/iptables

前两天刚把IPTABLES安装好并能工作,但是没有配置什么策略,最近学习了一些策略,特记录下来。
我做的策略方式是首先将INPUT默认设为drop,然后按需求开启;FORWARD也设成DROP;而OUTPUT呢,暂不做策略。
1、将默认策略设为drop
iptables -P INPUT DROP
2、开启ssh,我都是使用远程到服务器上去学习的,所以安装了ssh,并把ssh端口改为了6789
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -dport -j ACCEPT
TCP/IP 本身是双向的,也就是有出必有进,有进必有出。这个规则没考虑到这点问题。
-m state --state ESTABLISHED 扮演很重要角色,那就是允许连线出去后对方主机回应进来的封包。

3、现在可以使用ssh上去管理了。由于我的debian上建立了DNS还有samba还供学习用,所以为了这台服务器功能更多,我还得开启这些端口:
iptables -A INPUT -p tcp -m multiport -dport 139,445 -j ACCEPT
iptables -A INPUT -p tcp -m multiport -dport 137,138 -j ACCEPT
iptables -A INPUT -p tcp -dport 53 -j ACCEPT
iptables -A INPUT -p udp -dport 53 -j ACCEPT
iptables -A INPUT -p tcp -dport 88 -j ACCEPT(因为我的samba是与AD集成的需要krb5验证)
4、允许ping
iptables -A INPUT -p icmp -j ACCEPT
论坛转换后原先链接均失效,因此需要重新书写伪静态规则,保证原先连接正常。

url.rewrite= (

"^/archiver/((fid|tid)-[\w\-]+\.html)$" => "archiver/index.php?$1",

"^/forum-([0-9]+)-([0-9]+)\.html$" => "forumdisplay.php?fid=$1&page=$2",

"^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$" => "viewthread.php?tid=$1&extra=page=$3&page=$2",

"^/space-(username|uid)-(.+)\.html$" => "space.php?$1=$2",

"^/tag-(.+)\.html$" => "tag.php?name=$1",
"^(.*)/read-htm-tid-([0-9]+)\.html$" => "$1/viewthread.php?tid=$2",
"^(.*)/read\.php\?tid-([0-9]+)\.html$" => "$1/viewthread.php?tid=$2",
"^(.*)/thread-htm-fid-([0-9]+)\.html$" => "$1/forumdisplay.php?fid=$2",
"^(.*)/thread-htm-fid-([0-9]+)-type-([0-9]+)\.html$" => "$1/forumdisplay.php?fid=$2&filter=type&typeid=$3",
"^(.*)/thread-htm-fid-([0-9]+)-search-digest\.html$" => "$1/forumdisplay.php?fid=$2&filter=digest",
"^(.*)/profile-htm-action-show-(username|uid)-(.*)\.html$" => "$1/space.php?action=viewpro&$2=$3",
"^(.*)/thread-htm-fid-([0-9]+)([a-z\-]+)([0-9]+)\.html$" => "$1/forumdisplay.php?fid=$2&page=$4",
"^(.*)/read-htm-tid-([0-9]+)-page-([0-9]+)-fpage-([0-9]+)\.html$" => "$1/viewthread.php?tid=$2&extra=page%3D1&page=$3",
"^(.*)/read\.php\?tid=([0-9]+)$" => "$1/viewthread.php?tid=$2",
"^(.*)/thread\.php\?fid=([0-9]+)$" => "$1/forumdisplay.php?fid=$2",
"^(.*)/thread\.php\?fid=([0-9]+)&type=([0-9]+)$" => "$1/forumdisplay.php?fid=$2&filter=type&typeid=$3",
"^(.*)/thread\.php\?fid=([0-9]+)&search=digest$" => "$1/forumdisplay.php?fid=$2&filter=digest",
"^(.*)/simple/index\.php\?(t|f)([0-9]+\.html)$" => "$1/archiver/?$2id-$3",
"^(.*)/profile\.php\?action=show&(username|uid)=(.*)$" => "$1/space.php?action=viewpro&$2=$3",
"^(.*)/thread\.php\?fid=([0-9]+)([a-zA-Z=&]+)([0-9]+)$" => "$1/forumdisplay.php?fid=$2&page=$4",
"^(.*)/read\.php\?tid=([0-9]+)&page=([0-9]+)&fpage=([0-9]+)$" => "$1/viewthread.php?tid=$2&extra=page%3D1&page=$3",

)
如何在VC中创建动态数组
关键词: VC    动态数组                                          
怎样给多维数组动态分配内存
//Allocate:
int **p = new int* [m];
for(int i = 0 ; i < m ; i++)
p[i] = new int[n];
//Use:
for(int i = 0 ; i < m; i++)
for(int j = 0 ; j < n ; j++)
p[i][j] = i * j;
//Free:
for(int i = 0 ; i < m ; i++)
delete[] p[i];
delete[] p;

1. 演示形为int[2][3]的二维动态数组
///////////////////////////////////////////////////////////////////
int n1, n2;
const int DIM1 = 2;
const int DIM2 = 3;
// 构造数组
int **ppi = new int*[DIM1];
for(n1 = 0; n1 < DIM1; n1++)
{
ppi[n1] = new int[DIM2];
}
// 填充数据
for(n1 = 0; n1 < DIM1; n1++)
{
for(n2 = 0; n2 < DIM2; n2++)
{
ppi[n1][n2] = n1 * 10 + n2;
}
}
// 输出
for(n1 = 0; n1 < DIM1; n1++)
{
for(n2 = 0; n2 < DIM2; n2++)
{
afxDump << "ppi[" << n1 << "][" << n2 << "] = "
<< ppi[n1][n2] << "\n";
}
}
// 释放数组
for(n1 = 0; n1 < DIM1; n1++)
{
delete [] ppi[n1];
}
delete [] ppi;
2. 三维动态数组(int[2][3][4])
///////////////////////////////////////////////////////////////////
int n1, n2, n3;
const int DIM1 = 2;
const int DIM2 = 3;
const int DIM3 = 4;
// 构造数组
int ***ppi = new int**[DIM1];
for(n1 = 0; n1 < DIM1; n1++)
{
ppi[n1] = new int*[DIM2];
for(n2 = 0; n2 < DIM2; n2++)
{
ppi[n1][n2] = new int[DIM3];
}
}
// 填充数据
for(n1 = 0; n1 < DIM1; n1++)
{
for(n2 = 0; n2 < DIM2; n2++)
{
for(n3 = 0; n3 < DIM3; n3++)
{
ppi[n1][n2][n3] = n1 * 100 + n2 * 10 + n3;
}
}
}
// 输出
for(n1 = 0; n1 < DIM1; n1++)
{
for(n2 = 0; n2 < DIM2; n2++)
{
for(n3 = 0; n3 < DIM3; n3++)
{
afxDump << "ppi[" << n1 << "][" << n2 << "][" << n3 << "] = "
<< ppi[n1][n2][n3] << "\n";
}
}
}
// 释放数组
for(n1 = 0; n1 < DIM1; n1++)
{
for(n2 = 0; n2 < DIM2; n2++)
{
delete [] ppi[n1][n2];
}
delete [] ppi[n1];
}
delete [] ppi;
vector arr(10);这里是构造函数。
嵌套在类里的类型,他的构造函数应该在类的构造函数的前导中完成。
改成:
#include
#include
using namespace std;

class a
{
    public:
    vector arr;
    a():arr(10){}
};
int main(int argc, char *argv[])
{
      
    return 0;
}
这样应该就可以了
你可以使用指针来实现,这样来做:
如果是一维的,
int *arr; //可以是其它类型 (char, float...)
arr = new int[n]; //n 必须是整型变量
二维的呢,这样来,
int **arr;
int N,M;
cin >> N >> M;
arr = new int*[N];
for(int i=0;i上面的代码就可以通过动态输入N,M来实现二维数组的定义
网易科技讯 1月13日上午消息,据国外媒体报道,谷歌在其官方博客上宣布,考虑关闭中国运营及网站Google.cn。
谷歌高级副总裁、公司发展和首席法律官David Drummond在谷歌官方博客上发表文章“A new approach to China”,谈及谷歌目前对于中国运营的看法及考虑。
美国谷歌周二表示,不再愿意继续对谷歌中国的搜索结果进行审查,这可能将不得不关闭google.cn站点和在中国的办公室。
谷歌在当天的盘后交易中股价挫跌1.3%,报583.05美元,周二收盘报590.48美元。
以下为谷歌官方博客全文(本文尚在持续更新中):
标题:中国新路径
内文:
与其他很多著名组织一样,我们经常会碰到各种各样的网络攻击。去年12月中旬,我们检测到一次来自中国的,对我们集团网络设备高度精密和有针对性的网络攻击,在此次攻击中,谷歌公司的知识产权遭到窃取。我们很快就查清这并非只是一场单纯的安全事件。
首先,此次攻击并非仅仅针对谷歌。我们在调查中发现,至少有其他20家大型公司也成为了类似的攻击目标,这些公司所在的行业分布广泛---包括互联网、金融、科技、媒体和化工行业。我们目前正在通知这些公司,并与美国有关部门携手展开调查。
第二,我们有证据表明攻击者的主要目标是入侵中国人权活动者的Gmail邮箱账户。根据我们掌握的调查数据,我们确信他们的攻击还未能达此目的。只有两个Gmail账户有被侵入过的迹象,而入侵者的活动范围也仅限于账户信息(如账户创建时的数据)和邮件主题,而不是邮件内容。
第三,我们在对谷歌案件的调查中发现,有很多拥护人权活动,注册地在美国、中国和欧洲的Gmail邮箱账户似乎经常受到第三方侵入。入侵者并非是通过Google的安全漏洞进行攻击,而极有可能是通过在用户的电脑内植入钓鱼网页或是恶意软件来达到目的。
我们已经利用从这次攻击中所获取的资料,改善基础设施及架构,提高谷歌及我们用户的安全。从个人用户来说,我们我们建议他们在自己的电脑上安装信誉好的反病毒和反间谍软件程序,给他们的操作系统安装补丁,并更新所使用的网络浏览器。在点击即时信息和电子邮件的链接时,或要求在线提供个人密码等个人资料时,要保持警惕。在这里,你能够阅读到更多我们所提出的关于电子安全方面的建议。如果希望获得更多关于这种类型攻击情况,请阅读美国政府的这份报告(PDF)。
我们已采取了非同寻常的措施来分享这些攻击信息,这不仅仅是因为我们已发现的信息涉及到网络安全和人权问题,也是因为这些信息已成为一场范围更为广泛的对于言论自由的全球辩论的焦点。在过去的二十年里,中国的经济改革计划以及中国公民的企业经营才能已帮助上亿中国人摆脱了贫困。毫无疑问,这个伟大的国家将在今天的世界里取得更为巨大的经济进步和发展。
2006年1月,虽然我们对一些搜索结果将受到审查而感到不适,但为了加强与中国用户的联系以及建立一个更为开放的互联网环境,我们还是发布了Google.cn。从发布之日起我们就有着明确的运营思路---我们将仔细审视中国的运营环境,包括新法律的发布以及对我们所服务领域的其他规定。如果我们认为我们无法取得既定目标,我们将毫不犹豫的重新考虑我们在中国的发展策略。
这些未经报道的攻击和监视,以及过去几年来政府试图进一步限制互联网上的言论自由已使我们得出结论,我们应重新审视我们在中国的业务运营。我们已决定我们将不再继续审查Google.cn上的搜索结果,且如有可能的话,未来几周内我们将与中国政府就我们是否可以依法运营一个未经过滤的搜索引擎展开讨论。我们认识到这可能意味着我们不得不关闭Google.cn,并有可能关闭我们设在中国的办公部门。
审查我们在中国的业务运营一直非常困难,我们知道这将可能导致深远的后果。我们希望解释的是,此举是由我们美国管理层推动,与我们中国雇员无关,正是由于他们的卖力工作才使得Google.cn取得今天的成功。我们愿意负责任地解决所发生的这一相当困难的问题。
发布者:高级副总裁、企业发展及首席法律官大卫·德鲁蒙德(David Drummond)
以下为分析人士观点:
SOLARIS资产管理投资总监TIM GHRISKEY:
对谷歌和消费者而言显然都不是好消息。谷歌最好能找到解决途径,即使他们不得不关闭中国业务,也会有重新恢复的一天。我希望会很快恢复,不能想象谷歌永久性关闭中国业务。
对任何业务来说,中国都是巨大的增长引擎,谷歌也能在中国市场发现巨大商机。业界一定会找到对付黑客的方式,这也是时不时困扰很多其他公司的问题,也是用户的灾难。

AutoVPN修正版--web管理

[不指定 2010/01/07 08:58 | by suibing ]
这几天没事,把AutoVPN升级了一下,因为手工加用户太麻烦,

所以采用pptpd+freeradius+mysql,通过WEB管理

大家只要把vpn目录,复制到有PHP的主机上就可以管理了,因为水平有限,

所以做的页面都很简单

此可以用于游戏VPN,和和,大家也可以修改一下网页,
记得发一份给我噢:mailto:h3ewhack@163.com

login截图



admin截图




官方地址:
http://code.google.com/p/autosetup

下载地址:
http://www.namipan.com/d/2cce800e6dcdfa5b15507c14a0ae6d69e853ed8b00206b01
分页: 7/51 第一页 上页 2 3 4 5 6 7 8 9 10 11 下页 最后页 [ 显示模式: 摘要 | 列表 ]