千家信息网

网络相关以及防火墙

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,Linux网络相关ifconfig查看网卡ip(yum install net-tools)关闭启动网卡: ifup ens33/ifdown ens33设定虚拟网卡eth0:0[root@mingm
千家信息网最后更新 2024年11月18日网络相关以及防火墙

Linux网络相关

ifconfig查看网卡ip(yum install net-tools)

关闭启动网卡: ifup ens33/ifdown ens33

设定虚拟网卡eth0:0

[root@mingming ~]# cd /etc/sysconfig/network-scripts/[root@mingming network-scripts]# lsifcfg-eth0   ifdown-post    ifup-eth    ifup-routesifcfg-lo     ifdown-ppp     ifup-ippp   ifup-sitifdown       ifdown-routes  ifup-ipv6   ifup-tunnelifdown-bnep  ifdown-sit     ifup-isdn   ifup-wirelessifdown-eth   ifdown-tunnel  ifup-plip   init.ipv6-globalifdown-ippp  ifup           ifup-plusb  net.hotplugifdown-ipv6  ifup-aliases   ifup-post   network-functionsifdown-isdn  ifup-bnep      ifup-ppp    network-functions-ipv6[root@mingming network-scripts]# cp ifcfg-eth0 ifcfg-eth0\:0[root@mingming network-scripts]# vim ifcfg-eth0:0DEVICE=eth0:0HWADDR=00:0C:29:0F:AD:09TYPE=EthernetUUID=aa6b2038-bad7-4480-87ee-e462f8c6db6bONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.23.133NETMASK=255.255.255.0GATEWAY=192.168.23.2

DEVICE=eth0:0
IPADDR=192.168.23.133 将这两行修改再 关闭启动网卡: ifup eth0 && ifdown eth0

mii-tool ens33 查看网卡是否连接

ethtool ens33 也可以查看网卡是否连接

更改主机名 hostnamectl set-hostname aminglinux

DNS配置文件/etc/resolv.conf

/etc/hosts文件

firewalld和netfilter

Linux防火墙-netfilter

  • selinux临时关闭 setenforce 0

  • selinux永久关闭 vi /etc/selinux/config

  • centos7之前使用netfilter防火墙

  • centos7开始使用firewalld防火墙

  • 关闭firewalld开启netfilter方法

  • systemctl stop firewalld

  • systemctl disable firewalled

  • yum install -y iptables-services

  • systemctl enable iptables

  • systemctl start iptables

Linux防火墙-netfilter

netfilter的5个表

  • filter表用于过滤包,最常用的表,有INPUT、FORWARD、OUTPUT三个链

INPUT :数据包进来经过的链

FORWARD:到了机器但是不进去内核,转发出去

OUTPUT:本机包出去经过的链

  • nat表用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链

PREROUTING:进来的时候更改数据包

POSTROUTING:出去的时候更改数据包

数据包流向与netfilter的5个链 PREROUTING:数据包进入路由表之前

INPUT:通过路由表后目的地为本机

FORWARD:通过路由表后,目的地不为本机

OUTPUT:由本机产生,向外发出

POSTROUTING:发送到网卡接口之前

  • managle表用于给数据包做标记,几乎用不到

  • raw表可以实现不追踪某些数据包,阿铭从来不用

  • security表在centos6中并没有,用于强制访问控制(MAC)的网络规则,阿铭没用过

  • 参考文章 http://www.cnblogs.com/metoy/p/4320813.html

Linux防火墙-netfilter

默认规则在/etc/sysconfig/iptables

  • 查看iptables规则:iptables -nvL

  • iptables -F 清空规则

  • service iptables save 保存规则

  • iptables -t nat //-t指定表

  • iptables -Z 可以把计数器清零

  • iptables -A INPUT -s 192.168.188.1 -p tcp - --sport 1234 -d 192.168.188.128 --dport 80 -j DROP

-A 增加规则

INPUT :INPUT链

-s 来源ip

-p :指定协议

--sport :指定来源端口

-d 指定目标ip

--dport 目标端口

-j 处理方式 DROP:扔掉 REJECT:拒绝 ACCEPT:接受

  • iptables -I/-A/-D INPUT -s 1.1.1.1 -j DROP

-I 插入规则

-D 删除规则

  • iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

-i 指定网卡

  • iptables -nvL --line-numbers

打印规则的序列号

  • iptables -D INPUT 1

删除序列1的规则

  • iptables -P INPUT DROP

-P 改变默认没有匹配规则的

Linux防火墙-netfilter



iptables小案例


vi /usr/local/sbin/iptables.sh //加入如下内容


#! /bin/bash

ipt="/usr/sbin/iptables"

$ipt -F

$ipt -P INPUT DROP

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT

$ipt -A INPUT -p tcp --dport 80 -j ACCEPT

$ipt -A INPUT -p tcp --dport 21 -j ACCEPT


icmp示例



iptables -I INPUT -p icmp --icmp-type 8 -j DROP



Linux防火墙-netfilter



nat表应用



A机器两块网卡eth0(192.168.23.135)、eth2(192.168.100.1),eth0可以上外网,eth2仅仅是内部网络,B机器只有eth2(192.168.100.100),和A机器eth2可以通信互联。


增加内网 1 增加网卡

2 设置ip : ifconfig eth2 192.168.100.1



需求1:可以让B机器连接外网

A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward

A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE



B上设置网关为192.168.100.1


route add default gw 192.168.100.1


route -n 查看



需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口

上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward



A上执行iptables -t nat -A PREROUTING -d 192.168.23.135 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22


A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.23.135


B上设置网关为192.168.100.1

保存和备份iptables规则



service iptables save //会把规则保存到/etc/sysconfig/iptables

把iptables规则备份到my.ipt文件中

iptables-save > my.ipt

恢复刚才备份的规则

iptables-restore < my.ipt




Linux防火墙-firewalled



firewalld的9个zone


打开firewalld



systemctl disable iptables

systemctl stop iptables

systemctl enable firewalld

systemctl start firewalld

firewalld默认有9个zone

drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复,仅能有发送出去的网络



连接。


block(限制):任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的


icmp6-adm-prohibited信息所拒绝。


public(公共):在公共区域内使用,不能相信网络内其他计算机不会对您的计算机造成


危害,只能接收经过选择的连接。


external(外部):特别是为路由器启用了伪装功能的外部网,您不能信任来自网络的其


他计算机,不能想他他们不会对你的计算机造成危害,只能接收经过选择的连接。


dmz(非军事区):用于您的非军事区内的电脑,此区域内可公开访问,可以有限的进入


你的内部网络,仅仅接收经过选择的连接。


work(工作):用于工作区,你可以基本相信网络内的其他电脑不会危害你的电脑,仅仅


接收经过选择的连接。


home(家庭):用于家庭网络,你可以基本相信网络内的其他计算机不会危害你的计算机


,仅仅接收经过选择的连接。


internal(内部):用于内部网络,你可以基本相信网络内的其他计算机不会危害你的计


算机,仅仅接收经过选择的连接。


trusted(信任):可接受所有的网络连接。



默认zone为public

firewall-cmd --get-zones //查看所有zone

firewall-cmd --get-default-zone//查看默认zone




firewalld关于zone的操作



firewall-cmd --set-default-zone=work //设定默认zone

firewall-cmd --get-zone-of-interface=ens33 //查指定网卡

firewall-cmd --zone=public --add-interface=lo //给指定网卡设置zone

firewall-cmd --zone=dmz --change-interface=lo //针对网卡更改zone

firewall-cmd --zone=dmz --remove-interface=lo //针对网卡删除zone

firewall-cmd --get-active-zones //查看系统所有网卡所在的zone




firewalld关于service的操作



firewall-cmd --get-services 查看所有的servies

firewall-cmd --list-services //查看当前zone下有哪些service

firewall-cmd --zone=public --add-service=http //把http增加到public zone下面

firewall-cmd --zone=public --remove-service=http

ls /usr/lib/firewalld/zones/ //zone的配置文件模板

firewall-cmd --zone=public --add-service=http --permanent //更改配置文件,之后会在/etc/firewalld/zones目录下面生成配置文件

需求:ftp服务自定义端口1121,需要在work zone下面放行ftp

cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services

vi /etc/firewalld/services/ftp.xml //把21改为1121

cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/

vi /etc/firewalld/zones/work.xml //增加一行






firewall-cmd --reload //重新加载

firewall-cmd --zone=work --list-services


0