分享
 
 
 

防火墙之基础篇(iptable)

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

我们知道网上的访问通过tcp/ip封包来进入主机系统的。在linux中它一般要同过ip过滤机制来实现第一层防护,如果通过了这层防护还的通过下一关的检查 那就是TCP_Wrappers 的功能。

封包过滤( IP Filter ):

封包过滤是 linux 提供的第一道防火墙呦!但是不同的核心版本会有不一样的封包过滤机制!以 2.2.xx 为核心的 Linux 主要以 ipchains 作为过滤机制,至于目前新版的 2.4.xx 则以 iptables 为机制!OK!既然我们的 Red Hat 7.1, 7.2, 7.3 为 kernel 2.4.xx ,所以用 iptables 来进行 IP 抵挡的工作啦!那么由于 TCP 封包里头有 IP 及 port ,所以要抵挡来源 IP 或者是自身的 port ,自然就很容易来进行啦!您目前只要知道 iptables 可以经由 TCP 的封包表投资料来进行分析的工作例如:和附规则的就通过,否则就把它丢弃 这样就防止不符合规则的人进入你的电脑。

至于抵挡封包的工作则可以让 TCP_Wrappers 来进行

要常常去看 /var/log/messages 与 /var/log/secure 这两个个档案!都是登陆登录记录等。

要做好主机的防护,第一步就是要建立完善的密码规则啦!因为这个咚咚常常是 cracker 尝试入侵的第一步!你必须要建立好主机的密码规则,可以尝试以 chattr 来将 /etc/passwd 及 /etc/shadow 做成不可变更的档案!较为安全啦!

做好安全的几个常见的工作

1.升级与修补套件漏洞、及移除危险套件:

2.每项系统服务的安全设定项目

3.TCP_Wrappers 的基础防火设定

4.iptables 的防火规则设定

5.主机资源侦测系统( MRTG )

6.登录档案分析系统:

iptables:

iptables 是 linux Kernel 2.4.xx 版本以上的主要 IP 过滤机制!他最大的功能就是可以过滤掉不要的 TCP 封包啦!当然功能还不止于此,他还可以用来进行 IP 伪装,以达成 NAT 的主机功能呢! iptables 的工作方向,必须要依规则的顺序来分析,底下我们简单的谈一谈 iptables 的几个概念吧:

有几个 tables :

跟之前版本的 ipchains 不同的地方是, iptables 可以自行定义一些 tables 的新规定!将可以让防火墙规则变的更为便于管理呢!基本上,原本的 iptable 至少有两个 table ,一个是 filter ( 预设的,没有填写 tables 时,就是 filter 这个 table 啦 ),一个则是相当重要的 nat table 。其中, filter 可以用来管理主机的安全,至于 nat 则是用来处理 NAT 的功能啦!

清除规则:

iptables 的订定方法其实很简单,就是使用指令列的方式来订定而已,他的基础语法在清除规则时,是这样的:

[root @test /root]# /sbin/iptables [-FXZ]

参数说明:

-F :清除所有的已订定的规则;

-X :杀掉所有使用者建立的 chain (应该说的是 tables )啰;

-Z :将所有的 chain 的计数与流量统计都归零

范例:

[root @test /root]# /sbin/iptables -F

[root @test /root]# /sbin/iptables -X

[root @test /root]# /sbin/iptables -Z

请注意,如果在远程联机的时候,『这三个指令必须要用 scripts 来连续执行』,不然肯定『会让你自己被主机挡在门外!』

定义政策( Policy ):

清除规则之后,再接下来就是要设定规则的政策啦!这个所谓的政策指的是『当你的封包不在你的规则之内时,则该封包的通过与否,以 Policy 的设定为准』,例如:你设定了十条规则,但有一个封包来的时候,这十条规则都不适用,这个时候此一封包就会依据 Policy 的规定为准,来决定是否可以通过防火墙啰。通常这个政策在 INPUT 方面可以定义的比较严格一点,而 FORWARD 与 OUTPUT 则可以订定的松一些!

[root @test /root]# /sbin/iptables [-t tables] [-P] [INPUT,OUTPUT,FORWARD| PREROUTING,OUTPUT,POSTROUTING] [ACCEPT,DROP]

参数说明:

-t

:定义 table !

tables :table 的名称,例如 nat 啰!

-P

:定义政策( Policy )。

INPUT

:封包为输入主机的方向;

OUTPUT :封包为输出主机的方向;

FORWARD:封包为不进入主机而向外再传输出去的方向;

PREROUTING :在进入路由之前进行的工作;

OUTPUT

:封包为输出主机的方向;

POSTROUTING:在进入路由之后进行的工作。

范例:

[root @test /root]# /sbin/iptables -P INPUT ACCEPT

[root @test /root]# /sbin/iptables -P OUTPUT ACCEPT

[root @test /root]# /sbin/iptables -P FORWARD ACCEPT

[root @test /root]# /sbin/iptables -t nat -P PREROUTING ACCEPT

[root @test /root]# /sbin/iptables -t nat -P OUTPUT ACCEPT

[root @test /root]# /sbin/iptables -t nat -P POSTROUTING ACCEPT

将预设的政策都定义为接受啰!

增加、插入规则:

接下来则要定义规则啦!我们底下先完全以主机的角度来观察!可以这样来设定啦!

[root @test /root]# /sbin/iptables [-AI] [INPUT,OUTPUT,FORWARD] [-io interface] [-p TCP,UDP] [-s IP/network] [--sport ports] [-d IP/network] [--dport ports] -j [ACCEPT,DROP]

参数说明:

-A

:新增加一条规则,该规则增加在最后面一行;

-I

:在第一条规则加入;

INPUT

:封包为输入主机的方向;

OUTPUT :封包为输出主机的方向;

FORWARD:封包为不进入主机而向外再传输出去的方向;

-i

:流入的网卡接口

-o

:流出的网卡接口

interface :网络卡接口,例如 ppp0, eth0, eth1....

-p :请注意,这是小写呦!封包的协议啦!

TCP :封包为 TCP 协议的封包;

UDP :封包为 UDP 协议的封包;

-s :来源封包的 IP 或者是 Network ( 网域 );

--sport:来源封包的 port 号码;

-d :目标主机的 IP 或者是 Network ( 网域 );

--dport:目标主机的 port 号码;

-j

:动作,可以接底下的动作;

ACCEPT :接受该封包

DROP

:丢弃封包

范例:

[root @test /root]# /sbin/iptables -A INPUT -i lo -j ACCEPT

所有的来自 lo 这个接口的封包,都予以接受

[root @test /root]# /sbin/iptables -A INPUT -i eth0 -p TCP -s 192.168.0.1 -j ACCEPT

来自 192.168.0.1 这个 IP 的封包都予以接受

[root @test /root]# /sbin/iptables -A INPUT -i eth0 -p TCP -s 192.168.1.0/24 -j ACCEPT

来自 192.168.1.0 这个 C Class 的网域的任何一部计算机,就予以接受!

[root @test /root]# /sbin/iptables -A INPUT -i eth0 -p TCP -s 192.168.1.25 -j DROP

来自 192.168.1.25 的 IP 的封包,就直接全部给他丢弃!

[root @test /root]# /sbin/iptables -A INPUT -i eth0 -p TCP --dport 21 -j DROP

只要想要进来 21 这个 port 的封包,就把他丢弃!

[root @test /root]# /sbin/iptables -A INPUT -i eth0 -p TCP -s 192.168.0.24 --dport 22 -j ACCEPT

来自 192.168.0.24 的主机,想要到我的 port 22 时,就予以接受!

请注意:防火墙的规则是『一行一行依序来检查的,若符合任何一条规则,则予以动作(接受或丢弃),否则继续往下检查到最后一条』上

TCP_Wrappers:

这个 TCP_Wrappers 实在是很简单的一个设定工作,因为他只要设定 /etc/hosts.allow 及 /etc/hosts.deny 就可以啦!基本上,他是经由 /usr/sbin/tcpd 这个程序来进行 TCP 的检验工作!而检验的方式则是以 /etc/hosts.allow 及 /etc/hosts.deny 来设定的啦!检验的流程是先以 /etc/hosts.allow 这个档案,检验完之后,在到 /etc/hosts.deny 去搜寻!好了,那么 hosts.allow 要怎样设定呢?

<服务名称> : <IP/network> : <action>

特别注意, network 可以使用 192.168.0.0/255.255.255.0 ,但不可使用 192.168.0.0/24 !

[root @test /root]# vi /etc/hosts.allow

in.telnetd: 127.0.0.1 : allow

in.ftpd: 127.0.0.1 : allow

本机的 127.0.0.1 开放 telnet 及 ftp 哩!

[root @test /root]# vi /etc/hosts.deny

in.telnetd: 192.168.2.3 : deny

将 192.168.2.3 的 telnet 服务关掉!

__________________

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有