iptables

iptables

概述
防火墙有:netfilter和iptables可以有效控制进出服务器的流量和流经服务器的流量。今天主要掌握墙的结构,匹配流程和编写规则。
netfilter:内核态,即不以文件和形式存在(kernal space)的防火墙。
iptables:用户态,在/sbin/iptables存在(User space)的防火。操作上二者没有区分。
linux-iptables主机型防火墙工作在2,3,4层,对TCP/IP数据包进行过滤和限制。属于包过滤型防火墙。(除非编译内核才可以使iptables支持7层)
缺点
(1)防火墙虽然可以过滤互联网的数据包,但却无法过滤内部网络的数据包。因此若有人从内部网络攻击时,防火墙没有作用。
(2)电脑本身的操作系统亦可能因一些系统漏洞,使入侵者可以利用这些漏洞绕过防火墙过滤,从而入侵电脑。
(3)防火墙无法有效阻挡病毒攻击,尤其是隐藏在数据中的病毒。
(4)正常状况下,所有互联网的数据包软件都应经过防火墙的过滤,这将造成网络交通的瓶颈。例如在攻击性数据包出现时,攻击者会不时寄出数据包,让防火墙疲于过滤数据包,而使一些合法数据包软件亦无法正常进出防火墙。
PS:没有绝对安全的操作系统,虽然防火墙有这些缺点,但还是能阻挡大多数来自于外网的攻击!
四表
filter过滤/nat装换/mangle碾压/raw生的
PREROUTING预路由,POSTROUTING已路由,INPUT入站,OUTPUT出站,FORWARD**

在这里插入图片描述
安装

yum install -y iptables

查看规则
iptables -nL
iptables-save
模板
iptables [-t表] [-AI 链] [-io 网络接口] [-p tcp,udp] [-s 来源 IP/网段] [–sport 端口范围] [-d 目标 IP/网段] [–dport 端口范围] -j [ACCEPT;DROP;REJECT]
-A 添加 -I 插入 -P 需改INPUT 后 的状态

先执行如下命令,添加规则:开放22端口

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

选项与参数:
-t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用预设的 filter
-L :列出目前的 table 的规则
-n :不进行 IP 与 HOSTNAME 的反查,显示结果的速度会快很多!
-v :列出更多的信息,包括通过该规则的数据包总位元数、相关的网路接口等

  • Chain 就是链
  • policy 就是默认的规则
  • target:代表进行的动作, ACCEPT 是放行,而 REJECT 则是拒绝,此外,还有 DROP (丢弃) 的项目!
  • prot:代表使用的数据包协议,主要有 tcp, udp 及 icmp 三种数据包格式;
  • opt:额外的选项说明
  • source :代表此规则是针对哪个『来源 IP』进行限制
  • destination :代表此规则是针对哪个『目标 IP』进行限制

[root@jenkins ~]# iptables-save

Generated by iptables-save v1.4.7 on Fri Jul 22 15:51:52 2011

*filter <==星号开头的指的是表格,这里为 filter
:INPUT ACCEPT [0:0] <==冒号开头的指的是链,三条内置的链
:FORWARD ACCEPT [0:0] <==三条内置链的政策都是 ACCEPT
:OUTPUT ACCEPT [680:100461]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT <==针对 INPUT 的规则
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT <==这条很重要!针对本机内部接口开放!
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited <==针对 FORWARD 的规则
COMMIT
Completed on Fri Jul 22 15:51:52 2011
修改
iptables [-t tables] [-FXZ]
选项与参数:
-F :清除所有的已设置的规则;
-X :杀掉所有用户 “自定义” 的 chain;
-Z :将所有的 chain 的计数与流量统计都归零

tcp udp 规则
iptables [-AI 链] [-io 网络接口] [-p tcp,udp]
[-s 来源 IP/网段] [–sport 端口范围]
[-d 目标 IP/网段] [–dport 端口范围]
-j [ACCEPT;DROP;REJECT]

关于状态的规则
iptables -A INPUT [-m state] [–state 状态]
选项与参数:
-m :一些 iptables 的外挂模块,主要常见的有:
state :TCP 状态模块
mac :网卡的 mac 地址 (hardware address)
–state :一些数据包的状态,主要有:
INVALID :无效的数据包,例如资料破损的数据包状态
ESTABLISHED:已经连线成功的连线状态;
NEW :想要新建立连线的数据包状态;
RELATED :这个最常用!表示这个数据包是与我们主机发送出去的数据包有关

转地址

首先保障其他主机能访问到本地的 80 端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

设置本地端口转发

iptables -t nat -A PREROUTING-p tcp --dport 90 -j REDIRECT --to-ports 80
iptables -t nat -A OUTPUT -p tcp --dport 90 -j REDIRECT --to-ports 80

转IP 并装IP

iptables -t nat -A PREROUTING -p tcp --dport 2525 -j DNAT --to-destination 192.168.122.94:22

删除

iptables -t nat -F

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值