Linux網絡相關知識

10月25日任務html

10.11 Linux網絡相關linux

10.12 firewalld和netfiltervim

10.13 netfilter5表5鏈介紹centos

10.14 iptables語法網絡

 

Linux網絡相關命令

查看網卡信息:ifconfig

安裝:yum install -y net-toolsdom

[root@centos7 ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.65.130  netmask 255.255.255.0  broadcast 192.168.65.255
        ...

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        ...

手動啓動/關閉特定網卡

ifup/ifdown ens33ssh

設置虛擬網卡

  1. 拷貝網卡文件爲新文件
# 這裏在命令行模式下要轉義:即\:
[root@centos7 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:1
  1. 修改新的網卡文件
[root@centos7 network-scripts]# vim ifcfg-ens33:1 
# 其中只要修改IPADDR、DEVICE和NAME三列便可
# 這裏要刪除UUID(惟一性),能夠將DNS,GATEWAY行也刪掉(可選)
  1. 從新啓動ens33網卡,附帶的新建的虛擬網卡也會重啓生效
[root@centos7 network-scripts]# ifdown ens33 && ifup ens33
成功斷開設備 'ens33'。
鏈接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/3)
  1. 使用ifconfig驗證
[root@centos7 network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.65.133  netmask 255.255.255.0  broadcast 192.168.65.255
        ...

ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.65.143  netmask 255.255.255.0  broadcast 192.168.65.255
        ether 00:0c:29:94:84:1f  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        ...

在物理機測試ping可通,證實配置成功tcp

C:\Users\18367>ping 192.168.65.143

正在 Ping 192.168.65.143 具備 32 字節的數據:
來自 192.168.65.143 的回覆: 字節=32 時間<1ms TTL=64
來自 192.168.65.143 的回覆: 字節=32 時間<1ms TTL=64
來自 192.168.65.143 的回覆: 字節=32 時間<1ms TTL=64
來自 192.168.65.143 的回覆: 字節=32 時間<1ms TTL=64

192.168.65.143 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒爲單位):
    最短 = 0ms,最長 = 0ms,平均 = 0ms

查看網卡是否鏈接

mii-tool | ethtool測試

1. 可使用mii-tool命令查看
[root@centos7 network-scripts]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok

2. 也可使用ethtool命令查看
[root@centos7 network-scripts]# ethtool ens33 | tail -n 1
	Link detected: yes

更改主機名

下列命令只支持centos7.xcentos7

hostnamectl set-hostname HOST

上列的命令在當前終端下並不會當即生效,須要重啓!

在/etc/hostname文件中能夠查看系統主機的hostname。

主機host的配置文件爲/etc/hosts,修改其內容只在本機生效!

若存在多個ip指向同一個域名,只有最後一行的ip生效!即後面設置的同域名的ip將覆蓋前面的ip!

此外同一個ip能夠指向多個域名,在hosts文件內能夠寫在一行內即

192.168.1.110 www.123.com www.qq.com www.baidu.com

修改hosts文件,指定2個ip指向同一個域名
[root@centos7 network-scripts]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.25 www.baidu.com
192.168.1.35 www.baidu.com
~

上述配置以後只有後一個ip192.168.1.35生效;一樣的指向同一個域名的多個ip,只有最後一個ip生效

[root@centos7 network-scripts]# ping www.baidu.com
PING www.a.shifen.com (192.168.1.35) 56(84) bytes of data.
64 bytes from 192.168.1.35 (192.168.1.35): icmp_seq=1 ttl=128 time=29.6 ms
....

/etc/resolv.conf文件存放系統的DNS,該DNS由網卡的配置文件中的DNS列定義產生。

netfilter(6.x) / firewalld(7.x)

selinux的關閉

配置時必須關閉selinux,不然防火牆沒法正常運行

  • 臨時關閉: setenforce 0
  • 永久關閉: 修改/etc/selinux/config文件 -> SELINUX=disabled
  • 查看:getenforce

啓動iptables服務

  1. 關閉7.x版本默認的firewalld服務
disable禁止開機啓動,stop關閉服務
[root@centos7 network-scripts]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

[root@centos7 network-scripts]# systemctl stop firewalld
  1. 安裝iptables服務
[root@centos7 network-scripts]# yum install -y iptables-services
  1. 設置開機啓動iptables,並當即啓動iptables
[root@centos7 network-scripts]# systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
[root@centos7 network-scripts]# systemctl start iptables
  1. 查看當前規則
[root@centos7 network-scripts]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   28  1848 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    ...

netfilter 5表5鏈

!centos6中只有4個表(沒有security);7.x版本有5個表(及其使用的鏈),以下:

  • filter(多用於過濾包)
    • INPUT
    • FORWARD
    • OUTPUT
  • nat(用於網絡地址轉換)
    • PREROUTING
    • OUTPUT
    • POSTROUTING
  • mangle(標記數據包)
  • raw(不追蹤某些數據包)
  • security(用於MAC的網絡規則)

相關的有5個鏈

  • PREROUTING
  • INPUT
  • OUTPUT
  • FORWARD
  • POSTROUTING

數據通過本機 PREROUTING -> FORWARD -> POSTROUTING

數據不通過本機 PREROUTING -> INPUT -> OUTPUT -> POSTROUTING

工做中主要使用的是filter和nat表,後3個表使用很少

iptables詳解 http://www.cnblogs.com/metoy/p/4320813.html

iptables語法

iptables默認規則配置文件 /etc/sysconfig/iptables

  • 查看規則: iptables -nvL
  • 清空規則: iptables -F
    • 執行後默認的規則表並不會清空,須要執行service iptables save存操做
  • 指定表(默認爲filter):iptables -t nat
  • 清空計數器(清空規則記錄的數據量):iptables -Z

命令參數

  • -A 在所選鏈的最後添加一或多條規則
  • -I 在所選鏈的第一個規則前插入規則;加規則序號,在指定規則前插入
  • -D 刪除所選鏈中的規則(也能夠是規則序號)
  • -R 替換所選鏈中的規則
  • -L 列出所選鏈中的全部規則
  • -S 打印所選鏈的全部規則,默認打印全部鏈的規則
  • -F 清空所選鏈的規則
  • -p 指定規則的協議tcp/udp...
  • -s 指定源地址
  • -d 指定目標地址
  • -j 指定規則的目標 DROP/REJECT/ACCEPT
  • -i 指定網卡
  • --sport/dport 指定源/目的端口

在INPUT鏈的最後追加一條規則

[root@localhost network-scripts]# iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP

不指定目標ip,默認表明全部

# 在首行插入規則
[root@localhost network-scripts]# iptables -I INPUT -s 1.1.1.1 -j DROP
# 在末行添加規則
[root@localhost network-scripts]# iptables -A INPUT -s 1.1.1.1 -j DROP
# 刪除某條規則(對應添加時的規則)
[root@localhost network-scripts]# iptables -D INPUT -s 1.1.1.1 -j DROP

設置關於特定的網卡的規則

# -i指定網卡
[root@localhost network-scripts]# iptables -I INPUT -s 192.168.1.0/24 -i ens33 -j ACCEPT

根據規則編號刪除規則

[root@localhost network-scripts]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      184 13824 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
5        6   468 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

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

# 刪除第一條
[root@localhost network-scripts]# iptables -D INPUT 1

設置指定鏈的默認策略

# 默認INPUT的策略爲ACCEPT
[root@localhost network-scripts]# iptables -P INPUT DROP
# 這裏須要注意的是,一旦修改默認策略爲DROP,你的ssh通訊的數據包將被丟棄,沒法遠程鏈接,只能連物理機修改!因此最好不要亂修改,保持默認便可!
相關文章
相關標籤/搜索