iptables、netfilter

10.11 Linux网络相关

查看网卡ip //安装包:yum install -y net-tools
ifconfig
-a:当网卡没有IP的时候不会显示
打开网卡:
ifup ens33
关闭网卡:
ifdown ens33
关闭网卡后开启网卡(防止远程连接时关闭网卡后没法远程连接)
ifdown ens33 && ifup ens33

创建一个虚拟网卡
1、先复制网卡配置文件,后面冒号前面的反斜杠是脱意用
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33:1
2、再编辑网卡配置文件名字为ens33:1
[[email protected] network-scripts]# vi ifcfg-ens33:1

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:1
UUID=866b5f02-416f-464c-ac97-b4b57ae2d501
DEVICE=ens33:1
ONBOOT=yes
IPADDR=192.168.11.138
NETMASK=255.255.255.0
3、再重启网卡,就能看到刚配置的虚拟网卡
ifdown ens33 && ifup ens33
iptables、netfilter

mii-tool ens33 #查看网卡是否连接
[[email protected] network-scripts]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
[[email protected] network-scripts]#
ethtool ens33 #也可以查看网卡是否连接

hostnamectl set-hostname aminglinx #更改主机名,这个只是临时生效
/etc/hosename #需要永久生效需要修改hostname配置文件
/etc/resolv.conf #DNS配置文件

10.12 firewalld和netfilter
在之前的CentOS版本(比如5和6)的防火墙为netfilter,CentOS7的防火墙为firewalld。
linux防火墙
selinux临时关闭 setenforce 0
永久关闭 :vi /etc/selinux/config
SELINUX=enforcing 修改为disabled

查看防火墙状态的命令:
getenforce //显示 Enforcing就是打开,Permissive就是selinux虽然开启,但是不会真正去阻断,只会提醒。

systemctl stop firewalld #关闭firewalld服务
systemctl disable firewalld #禁止firewalld服务开机启动
yum install -y iptables-services #安装iptables-services
systemctl enable iptables #设置开机启动
systemctl start iptables #启动iptables
iptables -nvL #查看iptables默认规则
netfiler 是防火墙,firewalld和iptables是两种不同的防火墙管理工具,其底层都是iptables命令

10.13 netfilter5表5链介绍
netfilter的五个表
1、filter 这个表主要用于过滤包的,是系统预设的表,这个表也是阿铭用的最多的。内建三个链INPUT、OUTPUT以及FORWARD。INPUT作用于进入本机的包;OUTPUT作用于本机送出的包;FORWARD作用于那些跟本机无关的包。
2、nat主要用处是网络地址转换,也有三个链。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。
4、mangle 这个表主要是用于给数据包打标记,然后根据标记去操作哪些包。
4、raw表可以实现不追踪某些数据包,默认系统的数据包都会被追踪,但追踪势必消耗一定的资源,所以可以用raw表来指定某些端口的包不被追踪。
5、security表在Centos6中是没有的,它用于强制访问控制(MAC)的网络规则。
netfilter的五个链
1、PREROUTING:数据包进入路由表之前
2、INPUT:通过路由表后目的地为本机
3、FORWARDING:通过路由表后,目的地不为本机
4、OUTPUT:由本机产生,向外转发
5、POSTROUTING:发送到网卡接口之前

10.14 iptables语法
查看iptables规则,-nvL 即查看该表的规则,其中-n表示不针对IP反解析主机名;-L表示列出的意思;而-v表示列出的信息更加详细。如果不加-t指定表,则默认是filter表:
iptables -nvL
规则保存在配置文件iptables中:
/etc/sysconfig/iptables
清空规则:
iptables -F
保存规则,重启系统之后都会加载配置文件里的规则,用这个命令保存之后重启系统后就会生效,如果不这样保存,那修改的规则仅仅保存在内存中,下次启动就不会生效:
service iptables save
-t指定表:
iptables -t nat
可以把计数器清零:
iptables -Z
不加-t默认是filter表,-A是增加一条规则,针对的链是INPUT链,-s指定来源IP,-p指定协议,–sport指定来源端口,-d目标的IP,–dport目标的端口,-j后面跟动作:DROP把数据扔掉/REJECT拒绝(DROP是看都不看数据包就扔掉,但是REJECT是看完数据包再拒绝,ACCEPT表示允许包)
iptables -A INPUT -s 192.168.188.1 -p tcp –sport 1234 -d 192.168.188.128 –dport 80 -j DROP
-I是插入规则插到最前面,-A是增加规则增加到最后面。最前面的规则会优先过滤(如匹配的都是80端口的,最前面的规则已经匹配并且把数据包DROP掉,那么最后面的规则就没得匹配了),-D删除规则:
iptables -I INPUT -p tcp –dport 80 -j DROP //不指定来源IP,但要指定协议和目标端口。
iptables -I/-A/-D INPUT -s 1.1.1.1 -j DROP
-i指定网卡:
iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
把规则的编号列出来,方便按编号删除规则:
iptables -nvL –line-numbers
删除指定的规则:
iptables -D INPUT 1
-P后面跟链名,策略内容或为DROP,ACCEPT,默认是ACCEPT。注意:如果在连接远程服务器,千万不要随便执行这个命令,因为一旦执行,远程连接就会被断开:
iptables -P OUTPUT DROP