包过滤防火墙
iptables工具
4个功能(表)
raw
mangle
nat 网络地址转换
fliter 过滤
xp:192.168.1.1 网关:192.168.1.254
class1:192.168.1.254 打开防火墙
tomcat2:172.16.1.20 网关:172.16.1.254
防火墙未开启之前的验证:
class1:
sysctl -p
xp:
ping 192.168.1.254
ping 172.16.1.20
class1:
service httpd start
xp:ie:192.168.1.254
防火墙开启之后:
class1:setup------------Firewall Configuration---------------按空格,把空格换成“*”号--------------------YES--------------ok-----------Quit
iptables -t filter -nvL
-t指的是哪张表
n:数字替代IP
v:详细信息
L:列出所有信息
刚开始172.16.1.20回数据
xp:ping 172.16.1.20不通
现在:192.168.1.254回不通的数据
ie:192.168.1.254打开变慢,打不开
每个表都有专门写规则的地方(链)
INPUT:
FORWARD:转发规则,当源地址192.168.1.1以及目标地址172.16.1.20
OUTPUT:
sysctl -p看见过FORWARD转发规则链
iptables -t filter -nvL
pkts bytes target port opt in out source destination
pkts:收了几个包
bytes:字节
target:对于规则处理的方法拒绝
port:协议
watch -n1 iptables -t filter -nvL
-n1:一秒钟变化一次
xp:ping 172.16.1.20 -t
还是让192.168.1.254给拒绝了
FORWARD和OUTPUT都在动
OUTPUT:出站链(将数据包向外转发)
网关拒绝回复
192.168.1.254
Ctrl+C中断
xp:ie:172.16.1.20
INPUT:192.168.1.1 192.168.1.254 tcp 80
源 目标 协议 目标端口
都允许
state RELATED ,ESTABLISHED
状态允许 状态允许
还没三次握手成功,所以不允许
icmp允许,可ping本机
lp:进口必须是lo,即本机回环地址
state NEW tcp dpt:22
目标端口最后拒绝所有 ctrl+C
class1:iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
watch -n1 iptables -t filter -nvL
第一条多了数据
xp:192.168.1.254
xp:ping 172.16.1.20目标主机不可达
class1:iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j DROP
iptables -t filter -nvL
xp:ping 172.16.1.20 -t报错:Requested time out
class1:watch -n1 iptables -t filter -nvL
相同的规则写在一起上边的生效
-I可以指定位置第几条
class1:iptables -t filter -nvL --linenumbers
iptables -D FORWARD 2 #清空第2行内容
iptables -t filter -nvL
iptables -F FORWARD #清空FORWARD链所有内容
xp可ping通172.16.1.20
iptales -F #Filter中所有链全部清掉
#清除之后不会都没,因为信息都是默认保存的,只要重启iptables防火墙的服务即可
service iptables restart
iptables -nL
iptables -p FORWARD DROP #默认策略DROP
iptables -nL
iptables -F FORWARD #超时
iptables -nL
service iptables restart
yum install vsftpd
y
service vsftpd start
ss -antpl | grep 21
xp:Ctrl+C 中断
iptables -nL
xp:ftp 192.168.1.254#卡住,连不上,因为INPUT里头没有对21端口进行设定
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
xp:quit
ftp 192.168.1.254
无密码
iptables -nL
重启iptables失效,如何永久生效?
iptables-save > /root/Desktop/ipt.txt
cat /root/Desktop/ipt.txt
iptables-restore < /root/Desktop/ipt.txt
service iptables save #save后成默认规则重启之后生效
iptables -nL
nat表 网络地址转换
xp
class1:iptables -nvL iptables -t nat -nvL
tomcat2:./startup.sh(记得启动tomcat服务器)
ss -antpl | grep 8080(检查8080端口是否启动)
class1:PREROUTING 路由前配置规则
POSTROUTING 路由后配置规则
OUTPUT
iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j SNAT --to-source 12.34.56.78
SNAT:源地址转换
iptables -t nat -nvL
xp:12.34.56.79 #网页不可脱机使用
原因:防火墙FORWARD链做了转发限制
先进入FORWARD转发链,后POSTROUTING链
iptables -F FORWARD
iptables -nvL #FORWARD中数据被清空,没数据
xp:12.34.56.79:8080 #访问成功
若是公司内网转换为的外网IP发生变化,所做的SNAT转换都不能用了,怎么办?
class1:vim /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR改为80
ifdown eth1
ifup eth1
xp:12.34.56.79:8080不能访问了
iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j MASQUERADE
伪装
iptables -nvL
发现写在原有规则的下面,依照优先级还是优先12.34.56.78生效
iptables -t nat -D POSTROUTING 1 #清除以前的那个源地址转换为12.34.56.78的规则
如果交给Linux网关服务器的INPUT来处理,直接就访问不了8080,没开8080端口,PREROUTING路由前规则
12.34.56.79:80
转换192.168.1.1:8080
class1:iptables -t nat -A PREROUTING -i eth1 -d 12.34.56.80 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:8080
xp:12.34.56.80可访问
NAT实验失败了很多次,后来写了一个sysctl -p
就成功了,
sysctl -p
从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载,好像是我没有加载系统参数?