linux-iptables

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-iptables相关的知识,希望对你有一定的参考价值。


################## iptables ###################


*)安装服务并启用##########################


[[email protected] ~]# yum install iptables-services.x86_64  -y   安装服务

[[email protected] ~]# systemctl stop firewalld               关闭火墙
[[email protected] ~]# systemctl disable firewalld           开机不启动
[[email protected] ~]# systemctl mask firewalld               锁住火墙
[[email protected] ~]# systemctl start iptables.service   开启服务
[[email protected] ~]# systemctl enable iptables.service  开机开启


*)iptables 相关命令#######################################


[[email protected] ~]# iptables -t filter -L  列出

技术分享图片


[[email protected] ~]# iptables -t filter -nL   不做解析

技术分享图片


查看/etc/sysconfig/iptables 文件


技术分享图片

iptables -F 刷新策略

service iptables save  保存 

技术分享图片


再次查看,策略被刷掉




[[email protected] ~]# iptables -A INPUT -i lo -j ACCEPT  添加策略  (回环接口)

[[email protected] ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT 添加80端口

[[email protected] ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        


[[email protected] ~]# iptables -A INPUT -j REJECT  此设置后   拒绝所有连接


[[email protected] ~]# iptables -D INPUT 4  删除第4条策略

技术分享图片

[[email protected] ~]# iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT 在指定位置加入策略


技术分享图片


[[email protected] ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]  保存

技术分享图片

[[email protected] ~]# cat /etc/sysconfig/iptables




[[email protected] ~]# iptables -A INPUT -i lo -j ACCEPT
[@top ~]# iptables -A INPUT -s 172.25.12.250 -p tcp --dport 22 -j ACCEPT 匹配来自172.25.12.250的数据包
[[email protected] ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT  匹配来自80端口的数据包
[[email protected] ~]# iptables -A INPUT -j REJECT     拒绝所有包


[[email protected] ~]# iptables -nL | cat -b  加入行号



[[email protected] ~]# iptables -nL | grep 80 -n  查看80端口

技术分享图片




[[email protected] ~]# iptables -nL | grep -E "INPUT|target"

[[email protected] ~]# iptables -nL | grep -E "INPUT|target" -n


技术分享图片


[[email protected] ~]# iptables -nL | grep -E "INPUT|target" -v | cat -b


技术分享图片

*)新建链

[[email protected] ~]# iptables -N westos  新建链


技术分享图片


*)更改链名称

[[email protected] ~]# iptables -E westos lh;


技术分享图片


*)删除链

[[email protected] ~]# iptables -X lh 删除链


*)更改策略

[[email protected] ~]# iptables -P INPUT DROP  更改策略


技术分享图片


*)基于状态的匹配扩展 (连接跟踪)################


环境:

[[email protected] ~]# iptables -F  刷新策略

[[email protected] ~]# service iptables save


技术分享图片


命令格式如下:

iptables -m state --state

?NEW: 该包想要开始一个新的连接(重新连接或连接重定 向)
?RELATED:该 包是属于某个已建立的连接所建立的新连接。举例:FTP的
数据传输连接和控制连 接之间就是RELATED关系。
?ESTABLISHED:该包属于某个已建立的连接。
?INVALID:该 包不匹配于任何连接,通常这些包被DROP。

例如:
(1)在INPUT链添加一条规则,匹配已建立的连接或由已建立的连接所建
立的新连接。即匹配任何的TCP回应包。
   #iptables -A INPUT -m state --state RELATED,ESTABLISHED
(2)在INPUT链链添加一条规则,匹配任何从非eth0接口来的连接请求
包。
#iptables -A INPUT -m state --state NEW -i !eth0


[[email protected] ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

在INPUT链添加一条规则,匹配已建立的连接或由已建立的连接所建立的新连接。

[[email protected] ~]# iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
[[email protected] ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
[[email protected] ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
[[email protected] ~]# iptables -A INPUT -j REJECT 


技术分享图片


*)NAT中的SNAT和DNAT#######################


NAT 是将局域网的内部地址转换成公网上合法的ip地址,使内部地址能像有公网地址的主机一样上网。


SNAT是指在数据从网卡发送出去的时候,把数据包中的源地址部分替换为指定的ip,这样,

接受方就认为数据包的来源是被替换的那个ip的主机。


DNAT是指数据包从网卡发送出去的时候,修改数据包中的目的ip,表现为如果你想访问A,可是

因为网关做了DNAT,把所有访问A的数据包的目的ip全部修改为B,那么你实际访问的是B。


因为路由是按照目的地址来选择的,因此,DNAT是在PREROUTING链上来进行的

而SNAT是在数据包发送出去的时候才进行的,因此,是在POSTROUTING链上进行的。


SNAT就是改变转发数据包的源地址 --to-source:

DNAT就是改变转发数据包的目的地址 --to-dest:


实验环境:

1)双网卡主机


技术分享图片


2)另外一台主机,注意ip和网管配置


技术分享图片

3)做转换

[[email protected] ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.12.10   (出去先变成此ip)

[[email protected] ~]# iptables -t nat -A PREROUTING -i eth0 -d 172.25.12.10 -j DNAT --to-dest 172.25.254.1(进来)



[[email protected] ~]# sysctl -a | grep ip_forward

net.ipv4.ip_forward = 0
[[email protected] ~]# vim /etc/sysctl.conf  修改文件
[[email protected] ~]# sysctl -p  执行
net.ipv4.ip_forward = 1
[[email protected] ~]# iptables -F  刷新策略


技术分享图片


技术分享图片

测试:

1)出去的


技术分享图片


2)进来的

技术分享图片


技术分享图片

以上是关于linux-iptables的主要内容,如果未能解决你的问题,请参考以下文章