天天看點

Linux網絡相關、firewalld和netfilter、netfilter5表5鍊介紹、iptables文法

Linux網絡相關

1、yum install net-tools

2、重新開機網卡

[root@centos7 ~]# ifdown eno16777736 && ifup eno16777736

3、新增虛拟IP

cp ifcfg-eno16777736 ifcfg-eno16777736\:0

vi ifcfg-eno16777736:0

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

NAME=eno16777736:0

UUID=bb3b3feb-b209-4e36-ba0f-6022977c84d0

DEVICE=eno16777736:0

ONBOOT=yes

IPADDR=192.168.100.105

NETWORK=255.255.255.0

GATEWAY=192.168.100.1

DNS1=114.114.114.114

ifdown eno16777736 && ifup eno16777736

再次檢視ifconfig -a;多了一個虛拟網卡

4、mii-tool檢視是否連接配接網線

[root@centos7 ~]# mii-tool eno16777736

eno16777736: negotiated 1000baseT-FD flow-control, link ok

5、更改主機名

[root@centos7 ~]# hostnamectl set-hostname test-7

[root@centos7 ~]# bash

[root@test-7 ~]# hostname

test-7

配置檔案:

[root@test-7 ~]# cat  /etc/hostname 

firewalld和netfilter

1、永久關閉selinux

[root@test-7 ~]# vi /etc/selinux/config 

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

臨時關閉

[root@test-7 ~]# setenforce 0

setenforce: SELinux is disabled

檢視是否關閉

[root@test-7 ~]# getenforce 

Disabled

開機不啟動

[root@test-7 ~]# systemctl disable firewalld

關閉防火牆

[root@test-7 ~]# systemctl stop firewalld

安裝iptables工具,名稱是netfil

[root@test-7 ~]# yum install -y iptables-services

iptables和netfilter的關系:

Iptables和netfilter的關系是一個很容易讓人搞不清的問題。很多的知道iptables卻不知道 netfilter。其實iptables隻是Linux防火牆的管理工具而已,位于/sbin/iptables。真正實作防火牆功能的是 netfilter,它是Linux核心中實作包過濾的内部結構。

iptables傳輸資料包的過程

① 當一個資料包進入網卡時,它首先進入PREROUTING鍊,核心根據資料包目的IP判斷是否需要轉送出去。 

② 如果資料包就是進入本機的,它就會沿着圖向下移動,到達INPUT鍊。資料包到了INPUT鍊後,任何程序都會收到它。本機上運作的程式可以發送資料包,這些資料包會經過OUTPUT鍊,然後到達POSTROUTING鍊輸出。 

③ 如果資料包是要轉發出去的,且核心允許轉發,資料包就會如圖所示向右移動,經過FORWARD鍊,然後到達POSTROUTING鍊輸出。

<a href="https://s4.51cto.com/oss/201710/30/8edfc7fefc6608c725a8175312efa372.png-wh_500x0-wm_3-wmp_4-s_2177466130.png" target="_blank"></a>

規則表:

1.filter表——三個鍊:INPUT、FORWARD、OUTPUT

作用:過濾資料包  核心子產品:iptables_filter.

2.Nat表——三個鍊:PREROUTING、POSTROUTING、OUTPUT

作用:用于網絡位址轉換(IP、端口) 核心子產品:iptable_nat

3、Mangle表  4、Raw表 5、security用的不多,暫時不考慮

資料包流向與netfilter的5個鍊

 PREROUTING:資料包進入路由表之前

 INPUT:通過路由表後目的地為本機

 FORWARD:通過路由表後,目的地不為本機

 OUTPUT:由本機産生,向外發出

 POSTROUTING:發送到網卡接口之前

iptables文法

檢視規則

[root@test-7 ~]# iptables -nvL

配置檔案儲存:

[root@test-7 ~]# cat /etc/sysconfig/iptables

清空規則(需要儲存配置檔案資訊才清空)

[root@test-7 ~]# iptables -F

[root@test-7 ~]# service iptables save

可以把計數器清零:

[root@test-7 ~]# iptables -Z

-A:add 增加一個input鍊

-s:源端口

-p:指導tcp/udp

--sport:

-d:目标IP

--dport: 目标端口

-j DROP拒絕  ACCEPT:接受 

iptables -A INPUT -s 192.168.100.102 -p tcp --sport 1234 -d 192.168.100.100 --dport 80 -j DROP

-I:會在iptables的配置檔案中第一個寫入,即優先第一個排序執行

iptables -I INPUT -p tcp --dport 9889 -j DROP

産生一個序号,可以根據這個序号删除對應的規則

[root@test-7 ~]# iptables -nvL --line-numbers

Chain INPUT (policy ACCEPT 119 packets, 9078 bytes)

num   pkts bytes target     prot opt in     out     source               destination         

1        0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 81 packets, 8932 bytes)

num   pkts bytes target     prot opt in     out     source               destination  

删除規則:

[root@test-7 ~]# iptables -D INPUT 1

全部禁用端口,不能用以下指令

[root@test-7 ~]# iptables -P INPUT DROP

本文轉自 iekegz 51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/1977640,如需轉載請自行聯系原作者

繼續閱讀