iptables

一、下载配置iptables服务
 yum install iptables -y
 systemctl stop firewalld.service             
 systemctl disable firewalld.service
 systemctl mask firewalld                        #锁定服务
 systemctl start iptables.service            
 systemctl enable iptables.service        #开机自启动
相关概念:
Iptables 利用的是数据包过滤的机制,所以他会分析数据包的报头数据,根据报头数据与定义的规则来决定该数据包是否可以进入主机或者被丢弃,也就是说,根据数据包的分析资料比对预先定义的规则内容,若数据包数据与规则内容相同则进行动作,否则就继续下一条规则的比对,重点在比对与分析顺序。
iptables的3张表5条链:

Filter :主要跟进入linux本机的数据包有关,是默认的table。

INPUT:主要与想要进入linux主机的数据包有关。

OUTPUT :主要与linux主机所要送出的数据包有关。

FORWORD :与linux主机没有关系,他可以传递数据包到后台的计算机中,与NAT的table相关性较高。

NAT :是network address translation 的缩写,这个表格主要是用来进行来源与目的地的IP或port的转换,与linux本机无关,主要与linux主机后的局域网内计算机相关。

PREROUTING :在进行路由判断之前所要进行的规则(DNAT/REDIRECT)

POSTROYTING:在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)

OUTPUT :与发送出去的数据包有关。

Mangle :这个表格主要是与特殊的数据包的路由标志有关。

iptables -t filter -L     #列出目前filter表中规则


iptables -t filter  -nL   #列出目前filter表中规则,不进行与hostname的反查,列出速度更快



iptables -F               #清楚所有的已制定的规则(临时清楚,重启后又恢复)

service iptables save     #删除所有已制定的规则



iptables -A INPUT -i lo -j ACCEPT                                        #设置lo为信任设备,进出lo的数据包都接受
ipttables -A INPUT -s 172.25.254.50/24 -j ACCEPT         #只要该主机的数据包通通接受
iptables -A  INPUT -p tcp --dport 80 -j ACCEPT                 #访问80端口数据包都接受
iptables -A INPUT -j REJECT                                                #所有数据都拒绝
[root@150 zones]# iptables -A INPUT -j REJECT
[root@150 zones]# iptables -t filter  -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  172.25.254.0/24      0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination  

     

iptables -D INPUT  3                               #删除第三条链


iptables -I INPUT 3 -p tcp --dport 80 -j REJECT    #在第三行插入禁止对80端口的访问

iptables -nL

测试:由于filter 的读取规则是从上到下读取,由于第二条允许172.25.254.50主机访问所有,所以此时仍能访问80端口


iptables -R INPUT 3 -p tcp --dport 80 -j ACCEPT    #修改第3条为允许对80端口的访问
  

iptables -N westos                                #新建链


iptables -E westos linux                          #更改链名称


iptables -X linux                                 #删除链


火墙策略优化
NEW  ESTABLISHED RELATED LISTEN
netstat -anutple  ####查看服务状态
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #正在进行的和已经进行过的全部允许
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT            #新的回环全部允许
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT #新的80端口允许
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT #新的22端口允许

iptables -A INPUT -m state --state NEW -j REJECT                  #新的数据包全部拒绝


所有策略再次使用时会直接使用第一条提升速度


原地址转换与地址伪装

实验前,删除所有以前写的策略

iptables -t nat -A POSTROUTING -j SNAT --to-source 172.25.254.50 #源地址转换

iptables -nL -t nat

测试:此时,用172.25.254.150主机连接172.25.110时,结果显示的是172.25.254.50主机连接到了172.25.50.110主机




iptables -t nat  -A PREROUTING -j DNAT --to-dest 172.25.50.110   #目的地转换
iptables -nL -t nat

测试:用172.25.254.50主机连接172.25.254.150 主机时,结果连接的是172.25.50.110主机


PREROUING   路由后
POSTROUING   路由前
sysctl -a |grep ip_forward    ####开启本机两个网卡之间通信
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值