iptables

简介 iptables 是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。

虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。[1]

 

案例配置

公司有三个部门

工程部门 2.10--2.20

软件部门 2.21-2.30

经理办 2.31-2.40

上班时间 (周一---周五 08:20:00)

工程部门 上班时间登录ftp 不允许http qq 迅雷 下班后无限制

软件部门 http 不允许非法站点sina ,不允许使用迅雷 ,连接数 最多3个

不 允许聊天

不允许使用pplive ,下班后无限制

经理办公室 http qq 都可以,下班后无限制

dmz区域www服务器进行发布

clip_image002

打开数据转发功能

clip_image004

iptables �Ct nat �CA POSTROUTING �Cs 192.168.2.0/24 �Co eth2 �Cj MASQUERADE ------snat 是内网可与外网通讯

加载 ftp模块 modeprobe ip_nat_ftp

iptables -A INPUT -s 192.168.2.1 -p tcp --dport 22 -j ACCEPT

iptables -P INPUT DROP

iptables -A OUTPUT -d 192.168.2.1 -p tcp --sport 22 -j ACCEPT

[root@localhost ~]# iptables -P OUTPUT DROP

[root@localhost ~]# iptables -P FORWARD DROP

[root@localhost ~]# iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p tcp --dport 21 -j ACCEPT

[root@localhost ~]# iptables -t filter -A FORWARD -p tcp --sport 21 -j ACCEPT

[root@localhost ~]# iptables -t filter -A FORWARD -p tcp --dport 21 -j ACCEPT

[root@localhost ~]# iptables -t filter -A FORWARD -p tcp --dport 20 -j ACCEPT

[root@localhost ~]# iptables -t filter -A FORWARD -p tcp --sport 20 -j ACCEPT

下面这个语句可代替上面三句

iptables �Ct filter �CA FORWARD �Cm state �Cstate ESTABLISHED,RELATED �Cj ACCEPT

[root@localhost ~]# iptables -t filter -A FORWARD -s 192.168.2.0/24 -o eth2 -m time --timestart 20:01 --timestop 07:59 -j ACCEPT

测试结果

clip_image006

clip_image008

[root@localhost ~]# iptables -t filter -I FORWARD -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m string --string "sina" --algo kmp -j DROP

[root@localhost ~]# iptables -t filter -I FORWARD -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p tcp --dport 80 -j ACCEPT

[root@localhost ~]# iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p udp --dport 53 -j ACCEPT

[root@localhost ~]# iptables -t filter -I FORWARD 2 -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m layer7 --l7proto xunlei -j DROP

[root@localhost ~]# iptables -t filter -I FORWARD 2 -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m layer7 --l7proto qq -j DROP

[root@localhost ~]# iptables -t filter -I FORWARD 2 -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j DROP

由于没有连接外网其他功能暂没有测试

clip_image010

服务器的发布

[root@localhost ~]# iptables -t nat -A PREROUTING -d 192.168.101.1 -p tcp --dport 80 -i eth2 -j DNAT --to 192.168.1.100

[root@localhost ~]# iptables -t filter -A FORWARD -d 192.168.1.100 -p tcp --dport 80 -j ACCEPT

clip_image012

你可能感兴趣的:(linux,包,chain,因特网,的)