网络相关以及防火墙
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