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的主要内容,如果未能解决你的问题,请参考以下文章