如何在Linux上按国别阻止网络流量

如何在Linux上按国别阻止网络流量,第1张

作为一名维护生产环境Linux服务器系统管理员,在有些情况下,你需要根据地理位置,有选择性地阻止或允许网络流量。比如说,你遇到了拒绝服务攻击,这些攻击主要源自在某一个国家注册的IP地址。在其他情况下,出于安全方面的原因,你又想要阻止外国来历不明SSH登录请求;或者贵公司对在线视频拥有发行权,因而只可以分发给某些国家;或者由于地域限制方面的公司政策,你需要防止本地主机将文档上传到非美国远程云存储系统。

所有这些场景都需要能够安装一个防火墙,可以按国别对流量进行过滤。有几种方法可以做到这一点。举例说,你可以使用TCP包装器(TCP wrapper),针对个别应用程序(比如SSH、NFS和httpd)设置有条件的阻止。其缺点是,你想要保护的那个应用程序在开发当初必须支持TCP包装器。此外,TCP包装器并非普遍出现在不同的平台上(比如说,Arch Linux已停止对TCP包装器的支持)。另一种办法就是,利用基于国家的GeoIP信息来设置ipset,然后将它运用于iptables规则。后一种方法更有希望,因为基于iptables的过滤与应用程序无关,而且易于设置。

我在本教程中将介绍另一种基于iptables的GeoIP过滤机制,这种机制实施了xtables-addons。有些读者对它还不熟悉,所以有必要先介绍一下,xtables-addons是一套面向netfilter/iptables的扩展。xtables-addons内含了一个名为xt_geoip的模块,该模块扩展了netfilter/iptables的功能,可以根据来源/目的地国家,过滤、NAT或管理数据包。如果你想使用xt_geoip,不需要重新编译内核或iptables,只需要构建xtables-addons模块,并使用当前的内核构建环境(/lib/modules/`uname -r`/build)。也不需要重启。一旦你构建并安装好了xtables-addons,xt_geoip立即就可以与iptables结合使用。

至于xt_geoip和ipset之间的区别,官方来源(http://xtables-addonssourceforgenet/geoipphp)提到,xt_geoip在内存占用空间方面少于ipset。不过在匹配速度方面,基于散列的ipset可能具有优势。

在本教程其余部分,我会演示如何使用iptables/xt_geoip,根据来源/目的地国家,阻止网络流量。

将Xtables-addons安装到Linux上

下面介绍如何编译xtables-addons,并将它安装到不同的Linux平台上。

想构建xtables-addons,你就需要先安装几个依赖程序包。

·将依赖程序包安装到Debian、Ubuntu或Linux Mint上

$ sudo apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config

·将依赖程序包安装到CentOS、RHEL或Fedora上

CentOS/RHEL 6需要先安装EPEL软件库(面向perl-Text-CSV_XS)。

$ sudo yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS

编译和安装Xtables-addons

从官方网站(http://xtables-addonssourceforgenet)下载最新的xtables-addons源代码,然后构建/安装它,如下所示。

$wget http://downloadssourceforgenet/project/xtables-addons/Xtables-addons/xtables-addons

-210tarxz

$ tar xf xtables-addons-210tarxz

$ cd xtables-addons-210

$ /configure

$ make

$ sudo make install

请注意:如果是默认情况下已启用SELinux的基于红帽的系统(CentOS、RHEL、Fedora),有必要调整SELinux策略,如下所示。要不然,SELinux会阻止iptables装入xt_geoip模块。

$ sudo chcon -vR --user=system_u /lib/modules/$(uname -r)/extra/ko

$ sudo chcon -vR --type=lib_t /lib64/xtables/so

为Xtables-addons安装GeoIP数据库

下一步是安装GeoIP数据库,xt_geoip将用到该数据库,用于IP与国别映射。很方便的是,xtables-addons源程序包随带两个帮助脚本,可分别用来从MaxMind下载GeoIP数据库,并将它转换成xt_geoip可识别的二进制格式。这些脚本位于源程序包里面的geoip文件夹下面。按照下列说明,即可构建GeoIP数据库,并将它安装到你系统上。

$ cd geoip

$ /xt_geoip_dl

$ /xt_geoip_build GeoIPCountryWhoiscsv

$ sudo mkdir -p /usr/share/xt_geoip

$ sudo cp -r {BE,LE} /usr/share/xt_geoip

据MaxMind声称,其GeoIP数据库的准确性达到998%,数据库更每月都更新。为了确保本地安装的GeoIP数据库内容最新,你就需要设置每月执行的计划任务,以便每月更新一次本地GeoIP数据库。

阻止来自或发往某个国家的网络流量

一旦xt_geoip模块和GeoIP数据库都已安装好,你就可以立即使用iptables命令中的geoip匹配选项。

$ sudo iptables -m geoip --src-cc country[,country] --dst-cc country[,country]

你想要阻止的国家使用两个字母ISO3166代码来指定,比如说US(美国)、CN(中国)、IN(印度)和FR(法国)。

比如说,如果你想阻止来自也门(YE)和赞比亚(ZM)的入站流量,下面这个iptables命令就能实现。

$ sudo iptables -I INPUT -m geoip --src-cc YE,ZM -j DROP

如果你想阻止发往中国(CN)的出站流量,只要运行下面这个命令。

$ sudo iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

匹配条件也可以被“抵消”,只要将“!”放在“--src-cc”或“--dst-cc”的前面。比如说:

如果你想在服务器上阻止所有非美国的入站流量,可以运行这个命令:

$ sudo iptables -I INPUT -m geoip ! --src-cc US -j DROP

针对Firewall-cmd用户

像CentOS/RHEL 7或Fedora这一些发行版已将iptables换成firewalld,作为默认防火墙服务器。在这类系统上,你同样可以利用xt_geoip,使用firewall-cmd阻止流量。上面三个例子可以用firewall-cmd来改写,如下所示。

$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc YE,ZM -j DROP

$ sudo firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc CN -j DROP

$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip ! --src-cc US -j DROP

结束语

我在本教程中介绍了iptables/xt_geoip,这是一种简单方法,可以根据来源/目的地国家,对网络数据包进行过滤。如果需要的话,可以将这件有用的武器部署到你的防火墙系统中。最后提醒一句,我应该提到:基于GeoIP的流量过滤并不是在你服务器上阻止某些国家的万无一失的方法。GeoIP数据库天生就不准确/不完整,如果使用***、Tor或任何受到危及的中继主机,就很容易欺骗来源/目的地国家。基于地域的过滤甚至会阻止本不该被禁止的合法流量。明白这个局限性后,再决定将它部署到你的生产环境中也不迟。

您好,我就为大家解答关于服务器系统安装教程详细步骤,服务器系统相信很多小伙伴还不知道,现在让我们一起来看看吧!1、服务器操作系统

您好,我就为大家解答关于服务器系统安装教程详细步骤,服务器系统相信很多小伙伴还不知道,现在让我们一起来看看吧!

1、服务器操作系统主要分为四大流派:WINDOWS、LINUX、NETWARE、UNIX。

2、WINDOWS 服务器操作系统 重要版本WINNT 40 Server、Win2000/AdvancedServer、Win2003/AdvancedServer,WINDOWS SERVER 2008,,Windows服务器操作系统派应用,结合Net开发环境,为亲微软企业用户提供了良好的应用框架。

3、 对于这类操作系统相信用过电脑的人都不会陌生,这是全球最大的软件开发商--Microsoft(微软)公司开发的。

4、微软公司的Windows系统不仅在个人操作系统中占有绝对优势,它在网络操作系统中也是具有非常强劲的力量。

5、这类操作系统配置在整个局域网配置中是最常见的,但由于它对服务器的硬件要求较高,且稳定性能不是很高,所以微软的网络操作系统一般只是用在中低档服务器中,高端服务器通常采用UNIX、LINUX或Solairs等非Windows操作系统。

6、在局域网中,微软的网络操作系统主要有:Windows NT 40 Serve、Windows 2000 Server/Advance Server,以及最新的Windows 2003 Server/ Advance Server等,工作站系统可以采用任一Windows或非Windows操作系统,包括个人操作系统,如Windows 9x/ME/XP等。

7、 在整个Windows网络操作系统中最为成功的还是要算了Windows NT40这一套系统,它几乎成为中、小型企业局域网的标准操作系统,一则是它继承了Windows家族统一的界面,使用户学习、使用起来更加容易。

8、再则它的功能也的确比较强大,基本上能满足所有中、小型企业的各项网络求。

9、虽然相比Windows 2000/2003 Server系统来说在功能上要逊色许多,但它对服务器的硬件配置要求要低许多,可以更大程度上满足许多中、小企业的PC服务器配置需求。

10、Linux 服务器操作系统 LINUX操作系统虽然与UNIX操作系统类似,但是它不是UNIX操作系统的变种。

11、Torvald从开始编写内核代码时就仿效UNIX,几乎所有UNIX的工具与外壳都可以运行在LINUX上。

12、 这是一种新型的网络操作系统,它的最大的特点就是源代码开放,可以免费得到许多应用程序。

13、目前也有中文版本的Linux,如REDHAT(红帽子),红旗Linux等。

14、在国内得到了用户充分的肯定,主要体现在它的安全性和稳定性方面,它与Unix有许多类似之处。

15、但目前这类操作系统目前使仍主要应用于中、高档服务器中。

16、 总的来说,对特定计算环境的支持使得每一个操作系统都有适合于自己的工作场合,这就是系统对特定计算环境的支持。

17、例如,Windows 2000 Professional适用于桌面计算机,Linux目前较适用于小型的网络,而Windows 2000 Server和UNIX则适用于大型服务器应用程序。

18、因此,对于不同的网络应用,需要我们有目的有选择合适地网络操作系统。

19、NetWare 服务器操作系统 在一些特定行业和事业单位中,NetWare优秀的批处理功能和安全、稳定的系统性能也有很大的生存空间。

20、NetWare目前常用的版本主要有Novell的31312、410、50等中英文版。

21、 NetWare操作系统虽然远不如早几年那么风光,在局域网中早已失去了当年雄霸一方的气势,但是NetWare操作系统仍以对网络硬件的要求较低(工作站只要是286机就可以了)而受到一些设备比较落后的中、小型企业,特别是学校的青睐。

22、人们一时还忘不了它在无盘工作站组建方面的优势,还忘不了它那毫无过份需求的大度。

23、且因为它兼容DOS命令,其应用环境与DOS相似,经过长时间的发展,具有相当丰富的应用软件支持,技术完善、可靠。

24、目前常用的版本有31312和410 、V411,V50等中英文版本,NetWare服务器对无盘站和游戏的支持较好,常用于教学网和游戏厅。

25、目前这种操作系统有市场占有率呈下降趋势,这部分的市场主要被Windows NT/2000和Linux系统瓜分了。

26、Unix 服务器操作系统 Unix服务器操作系统由AT&T公司和SCO公司共同推出,主要支持大型的文件系统服务、数据服务等应用。

27、目前市面上流传的主要有SCOSVR、BSDUnix、SUNSolaris、IBM-AIX、HP-UX 。

28、 目前常用的UNIX系统版本主要有:Unix SUR40、HP-UX 110,SUN的Solaris80等。

29、支持网络文件系统服务,提供数据等应用,功能强大,由AT&T和SCO公司推出。

30、这种网络操作系统稳定和安全性能非常好,但由于它多数是以命令方式来进行操作的,不容易掌握,特别是初级用户。

31、正因如此,小型局域网基本不使用Unix作为网络操作系统,UNIX一般用于大型的网站或大型的企、事业局域网中。

32、UNIX网络操作系统历史悠久,其良好的网络管理功能已为广大网络 用户所接受,拥有丰富的应用软件的支持。

33、目前UNIX网络操作系统的版本 有:AT&T和SCO的UNIXSVR32、SVR40和SVR42等。

34、UNIX本是针对小型机 主机环境开发的操作系统,是一种集中式分时多用户体系结构。

35、因其体系 结构不够合理,UNIX的市场占有率呈下降趋势。

Linux远程连接及工具推荐

1、telnet:是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。

2、一款电脑远程监控的工具,IIS7远程桌面管理是一款专业的远程桌面连接软件,无需安装。操作简单方便。完美的界面设计、强大的监控功能、稳定的系统平台,满足了用户实现远程桌面连接的需求。分组功能。

3、多线程高效工作体验你值得拥有;加强版远程管理支持,上传下载文件再也不是问题;更有多套主题随心换,终端也可以美美哒。

4、如果是命令行的直接用putty就可以,如果需要远程桌面,可以考虑VNC,相关的安装过程百度也有的http://jingyanbaiducom/article/6c67b1d6f1bac92786bb1e6dhtml。

5、一般用secureCRT 和 xshell吧,都是大差不差的,自己用用就知道了,非要问出一个所有人都说好的工具你才用么?没必要,每个工具都有人喜欢也有人不喜欢。

6、第四款:SecureCRT SecureCRT是一款支持SSH的终端仿真程序,简单来说就是在Windows下登录Unix或Linux服务器主机的软件,自带文件传输工具,可以方便地上传下载文件,调整界面风格,切换多窗口等。

如何远程判断服务器的操作系统

通过应用程序来判断,如开放了80,打开其网站的程序,故意输入错误,看返回的代码可以看出是使用的什么类型的WEB服务器,可以估计。等等……。

连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。在linux命令行下输入shell指令:uname -a。最后,按下回车键执行shell指令,此时会看到当前系统是linux系统的打印。

直接通过联接端口根据其返回的信息来判操作系统 这种方法应该说是用得最多的一种方法,下面我们来看几个实例。如果机子开了80端口,我们可以telnet(当然如果有NC最好用NC,它可以不用盲打)它的80端口。

使用xshell怎么远程连接linux服务器

1、填写登录用户名在弹出的SSH用户身份验证窗口中填写密码,并点击确定。填写密码进行身份验证这样就成功连接Linux系统了,如图,可在光标处尽情的输入命令了。成功连接Linux系统最后重启该会话,这样屏幕就可以显示更多的内容。

2、xshell连接linux服务,用到的工具:xshell,步骤如下:打开xshell,点击新建。输入名称,端口号,然后点击用户身份验证,输入用户名和密码点击确定。选择已经建立的连接单击就可以登录到linux服务器。

3、步骤一:登录Linux服务器。打开Xshell,新建会话输入相应的主机名称和IP,登录Linux服务器。图1:登录Linux服务器 如果连接Linux失败的话,可以参考教程:Xshell如何远程连接Linux服务器。步骤二:查看lrzsz是否已经安装。

4、步骤一 打开Xshell软件。双击桌面上的Xshell软件快捷图标,就可以打开软件,打开的软件主界面如下图所示。图1:Xshell软件主界面 步骤二 执行新建命令。

Linux服务器是否被攻击怎么判断

很多时候我们会遇到服务器遭受 cc 或 syn 等攻击,如果发现自己的网站访问异常缓慢且流量异常。可以使用系统内置 netstat 命令 简单判断一下服务器是否被攻击。常用的 netstat 命令 该命令将显示所有活动的网络连接。

查看less /var/log/secure文件,查看ssh日志,看是否有非法用户大量尝试ssh;who命令,查看目前ssh到linux服务器的用户,是否是合法的;查看在linux服务器上部署的应用是否有漏洞,有的话很容易受到攻击。

CC攻击的ip都是真实的,分散的;CC攻击的数据包都是正常的数据包;CC攻击的请求都是有效请求,且无法拒绝;CC攻击的是网页,服务器可以连接,ping也没问题,但是网页就是访问不了。

更安全的登录服务器会大大削弱入侵者透过登录系统窜改日志 文件的能力。

Shellshock使用bash脚本来接入你的电脑。仅仅是这个,它就能在你的机器上运行程序、开启服务、以及接收文件。这个脚本主要影响到基于Unix的操作系统,所以Linux系统和Mac OS毫无疑问的中枪了。

linux查看中国卡吞吐量和中国卡流量用自带命令,iptraf查看。 1 命令行直接输入:iptraf(如果没有,使用yum install iptraf安装) 打开进入选择ip镜像。 选择监听测试的接口,所有接口。

linux下怎么判断登录到远程服务器是否登录成功

ping 的话可能会并网关屏蔽掉,ping 可以ping通就说明可以连外网;80 端口,有些需要认证的网络,比如 ChinaUnicom的 wifi,登录之前会把所有的 80 端口DNAT然后重定向到登录页面,导致误判。

服务器使用公钥对用户发来的加密字符串进行解密,得到的解密字符串如果与第一步中发送给客户端的随机字符串一样,那么判断为登录成功。

在我们日常管理与维护服务器个过程中,我们都需要使用远程连接工具,今天我们就一同来总结下Linux常用的安全远程连接工具-OpenSSH。远程登录协议telnet:是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。

ssh 用户名@IP地址 -p 端口号 如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。密钥登录 每次登录SH都需要输入密码很麻烦,而且可能不太安全。

注意:以下操作基于centos 6以下。要远程登录ssh。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在Linux上按国别阻止网络流量

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情