1. 程式人生 > >七周三次課

七周三次課

ifconfig iptables

10.11 Linux網絡相

ifconfig命令用於顯示或設置網絡設備。

ifconfig可設置網絡設備的狀態,或是顯示目前的設置。

ifconfig [網絡設備][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<網絡設備類型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<網絡媒介類型>][mem_start<內存地址>][metric<數目>][mtu<字節>][netmask<子網掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

參數說明:
add<地址> 設置網絡設備IPv6的IP地址。
del<地址> 刪除網絡設備IPv6的IP地址。
down 關閉指定的網絡設備。
<hw<網絡設備類型><硬件地址> 設置網絡設備的類型與硬件地址。
io_addr<I/O地址> 設置網絡設備的I/O地址。
irq<IRQ地址> 設置網絡設備的IRQ。
media<網絡媒介類型> 設置網絡設備的媒介類型。
mem_start<內存地址> 設置網絡設備在主內存所占用的起始地址。
metric<數目> 指定在計算數據包的轉送次數時,所要加上的數目。

mtu<字節> 設置網絡設備的MTU。
netmask<子網掩碼> 設置網絡設備的子網掩碼。
tunnel<地址> 建立IPv4與IPv6之間的隧道通信地址。
up 啟動指定的網絡設備。
-broadcast<地址> 將要送往指定地址的數據包當成廣播數據包來處理。
-pointopoint<地址> 與指定地址的網絡設備建立直接連線,此模式具有保密功能。
-promisc 關閉或啟動指定網絡設備的promiscuous模式。
[IP地址] 指定網絡設備的IP地址。
[網絡設備] 指定網絡設備的名稱。

ifconfig默認沒有安裝,centos默認網卡查看ip addr

ifconfig安裝命令:

yum install net-tools -y

[root@aiker02 ~]# ifconfig    ### 顯示網絡設備信息
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.111.154  netmask 255.255.240.0  broadcast 172.18.111.255
        ether 00:16:3e:0e:61:05  txqueuelen 1000  (Ethernet)
        RX packets 6164832  bytes 2387103480 (2.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4474811  bytes 976439547 (931.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 1140931  bytes 62396734 (59.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1140931  bytes 62396734 (59.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@aiker02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##編輯網卡eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.18.111.154
NETMASK=255.255.240.0
[root@aiker02 ~]# cd /etc/sysconfig/network-scripts/
[root@aiker02 network-scripts]# cp ifcfg-eth0 ifcfg-eth0\:0

[root@aiker02 network-scripts]# vim ifcfg-eth0\:0       ## eth0:0為eth0子網卡
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.18.111.155
NETMASK=255.255.240.0
[root@aiker02 network-scripts]# ll
total 240
-rw-r--r--  1 root root    84 Apr 11 13:51 ifcfg-eth0
-rw-r--r--  1 root root    84 Apr 27 22:23 ifcfg-eth0:0
[root@aiker02 network-scripts]# cat ifcfg-eth0\:0  
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.18.111.155
NETMASK=255.255.240.0
[root@aiker02 network-scripts]# ifconfig  ### 顯示網絡設備信息
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.111.154  netmask 255.255.240.0  broadcast 172.18.111.255
        ether 00:16:3e:0e:61:05  txqueuelen 1000  (Ethernet)
        RX packets 6167731  bytes 2387643326 (2.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4477165  bytes 976955839 (931.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.111.155  netmask 255.255.240.0  broadcast 172.18.111.255
        ether 00:16:3e:0e:61:05  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 1141450  bytes 62425055 (59.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1141450  bytes 62425055 (59.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
啟動關閉指定網卡

# ifconfig eth0 down
# ifconfig eth0 up
為網卡配置和刪除IPv6地址

# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //為網卡誒之IPv6地址

# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //為網卡刪除IPv6地址
用ifconfig修改MAC地址

# ifconfig eth0 down //關閉網卡
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
# ifconfig eth0 up //啟動網卡
# ifconfig eth1 hw ether 00:1D:1C:1D:1E //關閉網卡並修改MAC地址
# ifconfig eth1 up //啟動網卡
配置IP地址

# ifconfig eth0 192.168.1.56
//給eth0網卡配置IP地址
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0
// 給eth0網卡配置IP地址,並加上子掩碼
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
// 給eth0網卡配置IP地址,加上子掩碼,加上個廣播地址
啟用和關閉ARP協議

# ifconfig eth0 arp  //開啟
# ifconfig eth0 -arp  //關閉
設置最大傳輸單元

# ifconfig eth0 mtu 1500
//設置能通過的最大數據包大小為 1500 bytes
[root@aiker02 ~]# ethtool eth0
Settings for eth0:
        Link detected: yes
[root@aiker02 ~]# hostnamectl set-hostname aiker
[root@aiker02 ~]# cat /etc/resolv.conf 
nameserver 100.100.2.138
nameserver 100.100.2.136
options timeout:2 attempts:3 rotate single-request-reopen
[root@aiker02 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
nmtui  ##命令行下的圖形設置IP,主機名界面,如果沒有需要安裝network-manager

10.12 firewalld和netfilter

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 永久關閉selinux,需要重啟
setenforcing 0 臨時關閉,不用重啟
getenforce 獲取selinux的狀態
? systemctl disable firewalled
? systemctl stop firewalld
? yum install -y iptables-services
? systemctl enable iptables
? systemctl start iptables
?
?

#! /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  

技術分享圖片

iptables -I INPUT -p icmp --icmp-type 8 -j DROP   ##禁ping

10.13 netfilter5表5鏈介紹

netfilter的5個表
? filter表用於過濾包,最常用的表,有INPUT、FORWARD、OUTPUT三個鏈
? nat表用於網絡地址轉換,有PREROUTING(進來的時候)、OUTPUT、POSTROUTING(出去時候)三個鏈
? managle表用於給數據包做標記,幾乎用不到
? raw表可以實現不追蹤某些數據包,
? security表在centos6中並沒有,用於強制訪問控制(MAC)的網絡規則
? 數據包流向與netfilter的5個鏈
? PREROUTING:數據包進入路由表之前
? INPUT:通過路由表後目的地為本機
? FORWARD:通過路由表後,目的地不為本機
? OUTPUT:由本機產生,向外發出
? POSTROUTING:發送到網卡接口之前
技術分享圖片

10.14 iptables語法

iptables -nvL查看iptables規則

[root@aiker02 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination  

iptables -F 清空規則

[root@aiker02 ~]# 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
iptables -I/-A/-D INPUT -s 1.1.1.1 -j DROP
iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
iptables -nvL --line-numbers
iptables -D INPUT 1
iptables -P INPUT DROP

七周三次課