Linux基础—防火墙2
自定义链
iptables -N custom #在filter表中创建一个自定义链,链名为custom
iptables -E custom xy104 #修改自定义的链名
iptabes - I xy104 -s 192.168.213.52 -p icmp -j REJECT
只有被系统默认的粗略规则才能生效
iptables -I INPUT -p icmp -j xy104 #系统只识别五链,通过这种方式插入,系统才能识别
删除自定义链子
iptables -D INPUT 1 #删除INPUT链的规则
iptables -D XY101 1 #删除自定义链的规则
iptables -X XY101 #删除自定义链
SNAT和DNAT
SNAT:源地址转换
DNAT:目的地址转换
NAT:地址转换
内....外:内网的ip地址不能和公网ip通信,必须把内网地址转换成可以和公网ip通信的地址
外....内:外网也不能和内网直接通信,外网也需要转换成一个可以和内网通信的ip地址
test1 192.168.233.10 内网服务器 192.168.233.254
test2 192.168.233.20 网关服务器(路由) ens33 ens36
test3 192.168.233.30 外网 12.0.0.10 12.0.0.254
vim 01-network-manager-all.yaml
sysctl.conf:linux系统内核的接口文件,修改配置内核的参数(默认关闭,开启才能转发)使之永久生效
sysctl -p #立即生效
Linux系统本来就可以充当路由器,10,11,12都是它的直连路由,所以可以直接访问,多wan口或者多网卡?。
- 使用多个网络接口:可以为局域网中的每台设备配置多个网络接口,每个接口分配一个公网IP地址。这种方法适用于需要高可用性或负载均衡的场景。
- 使用NAT:通过NAT技术,可以将多个私有IP地址映射到一个或多个公网IP地址上。这样,局域网内的多台设备可以共享一个或多个公网IP地址。
iptables -t nat -A POSTROUTING -s 192.168.213.0/24 -o ens38 -j SNAT --to 10.0.0.10
iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens38 -p tcp --dport 80 -j DNAT --to 192.168.213.10:80
tail -f /var/log/nginx/access.log 查看nginx启动文件
怎么在linux系统中抓包
tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.213.0/24 -w /opt/target.cap
tcp:协议 icmp udp
-i ens33 指定设备名称 从哪个设备经过的数据包
-t 不显示时间戳
-s0 默认抓包的长度是68字节,s0就是抓取完整的数据包
-c 10:抓取10个数据包
.cap结尾是为了给抓包工具查看数据包信息
tcpdump -i ens33 -s0 -w /opt/target.cap
系统自带的防火墙
firewalld 是centos自带的,而且firewalld是默认的
ufw是ubuntu自带的,使用的是iptables
firewalld是根据区域来进行配置不同的规则,和硬件防火墙很相似
区域:
1、trusted 信任区,所有的流量可以进入
2、public 公共区域,默认区,只允许系统默认的规则(ssh和icmp协议),其他的流量传入全部拒绝
3、external 外部区域,只允许系统默认的规则,其他的流量传入全部拒绝,经过此区域的流量可以将ipv4的地址进行伪装。
4、internal 内部区域,只允许系统默认的规则(ssh和icmp协议),其他的流量传入全部拒绝
5、work 工作区域,只允许系统默认的规则(ssh和icmp协议),其他的流量传入全部拒绝
6、home 家庭区域,只允许系统默认的规则(ssh和icmp协议),其他的流量传入全部拒绝
7、block 限制区 拒绝所有流量的传入
8、drop 丢弃区域 拒绝所有流量的传入,没有回显信息
9、DMZ 非军事区域 只允许系统默认的规则
命令行的配置方法
firewall -cmd #命令行的开头
查看系统的默认区域
firewall-cmd --get-defaullt-zone
查看默认区域内的规则
firewall-cmd --list-all
切换区域(重新ping才能生效)
firewall-cmd --set-default-zone=block
把80端口放行,添加到公共区域
firewall-cmd --add-service=http --zone=public
添加多个
firewall-cmd --add-service={http,ftp} --zone=public
移除
firewall-cmd --remove-service={http,ftp} --zone=public
永久生效
firewall-cmd --add/remove-service=http --zone=public --permanent
firewall-cmd --reload
添加端口
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --remove-port=80/tcp
添加多个端口
firewall -cmd --add-port=80-3306/tcp