firewalld和netfilter、netfilter5表5鏈介紹、iptables語法
ifconfig命令查看網卡IP
剛接觸linux系統開始的時候我們學習到查看網卡IP方式是使用ip addr,而ifconfig命令和ip addr命令的結果是相似的,如果系統裏沒有ifconfig命令,安裝即可;
[root@Ask-02 ~]# yum install -y net-tools
在linux下修改ip需要進入到/etc/sysconfig/network-scripts/目錄下面修改相關的網卡文件即可,比如;
[root@Ask-02 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
在linux上有多個網卡,而你只想重啟某個網卡的時候,可以使用以下操作;
[root@Ask-02 ~]# ifdown ens33; ifup ens33
或者
[root@Ask-02 ~]# ifdown ens33 && ifup ens33
由於是遠程登錄的,所以在使用ifdown的時候需要謹慎,不要單獨使用ifdown。
給一個網卡設定多個ip
[root@Ask-02 ~]# cd /etc/sysconfig/network-scripts/ //先到網卡配置文件的目錄下
[root@Ask-02 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:1 //拷貝一個ens33文件名並重命名為ens33:1 這裏用到反斜杠使用脫義
然後開始編輯ens33:1文件即可,修改NAME和DEVICE 為ens33:1 設定一個IPADDR地址保存並退出,重啟網卡即可
這個時候在ifconfig查看就可以看到多了一個網卡
查看網卡連接狀態
[root@Ask-02 ~]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
這裏顯示link ok,就說明網卡為連接狀態,如果顯示no link,說明網卡存在壞了或者沒有連接網線的情況,除了這個mii-tool命令外還有一個命令也可以查看;
[root@Ask-02 ~]# ethtool ens33
Settings for ens33:Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
如果網卡沒有連接成功,最後面一行link detected顯示為no。
更改主機名
使用hostname命令可以查看主機名,hostname命令後面跟一個自定義的名字則是臨時修改主機名,重啟後無效
[root@Ask-02 ~]# hostname
Ask-02
[root@Ask-02 ~]# hostname Ask-03**
想要永久改主機名,執行以下命令修改
[root@Ask-02 ~]# hostnamectl set-hostname Ask-03
修改後重新登錄即可看到變化
設置DNS
在linux下設置DNS非常簡單,只要把DNS地址寫入配置文件即可
[root@Ask-02 ~]# cat /etc/resolv.conf
·# Generated by NetworkManager
nameserver 119.29.29.29
[root@Ask-02 ~]# vi /etc/resolv.conf
[root@Ask-02 ~]# cat /etc/resolv.conf
·# Generated by NetworkManager
nameserver 119.29.29.29
nameserver 8.8.8.8
在linux下還有一個特殊文件/etc/hosts也能解析域名
[root@Ask-02 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
使用Vim編輯該文件,增加一行192.168.135.133 www.baidu.com,保存後再ping以下www.baidu.com就會連接到192.168.135.133
[root@Ask-02 ~]# vim /etc/hosts
[root@Ask-02 ~]# ping -c 2 www.baidu.com
PING www.baidu.com (192.168.135.133) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.135.133): icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from www.baidu.com (192.168.135.133): icmp_seq=2 ttl=64 time=0.370 ms--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.045/0.207/0.370/0.163 ms
hosts文件格式很簡單,註意以下幾點;
* 一個ip後面可以跟多個域名,可以是幾十個甚至上百個;
* 每一行只能有一個ip,也就是說一個域名不能對應多個ip;
* 如果有多行中出現相同的域名(對應的ip不一樣),就會按最前面出現的記錄來解析
firewalld和netfilter
linux的防火墻
SELinux是linux系統特有的安全機制。因為這種機制的限制太多,配置也繁瑣,所以幾乎沒有人真正的應用它,安裝玩系統我們一般都把SELinux關閉,以免引起不必要的麻煩,臨時關閉的犯法;
[root@Ask-02 ~]# setenforce 0
永久關閉的方法,需要更改配置文件/etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled保存並退出即可,重啟系統後生效,此處切記不要改作地方以免照成系統無法開機。
[root@Ask-02 ~]# vi /etc/selinux/config
[root@Ask-02 ~]# getenforce //修改好重啟系統後可以使用該命令查看selinux防火墻狀態
Disabled
netfilter是在Centos7之前使用的防火墻,Centos7使用的是firewalld,由於大部分公司還是使用Centos6的情況,我們可以先通過之前版本的iptables了解和學習,firewalld和netfilter 使用的命令同樣支持的,意味這兩者兼容。
因此我們先關閉firewalld後再開啟netfilter ,操作如下;
[root@Ask-02 ~]# systemctl stop firewalld //關閉firewalld服務
[root@Ask-02 ~]# systemctl disable firewalld //禁止firewalld服務開機啟動
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@Ask-02 ~]# yum install -y iptables-services //安裝iptables-services ,使之前的版本可以使用(即netfilter )
[root@Ask-02 ~]# systemctl enable iptables //讓服務開機啟動
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
[root@Ask-02 ~]# systemctl start iptables //啟動iptables服務
到此就設置好了,可以使用之前版本的iptables了
使用以下命令可以查看規則;
[root@Ask-02 ~]# iptables -nvL
netfilter5表5鏈介紹
netfilter的5個表
filter:表主要用於過濾包,是系統預設的表,該表內建3個鏈:INPUT、OUTPUT以及FORWARD。INPUT鏈作用於進入本機的包,OUTPUT鏈作用於本機送出的包,FORWARD鏈作用於那些跟本機無關的包。
nat:表主要用於網絡地址轉換,同樣也有3個鏈,PREROUTING鏈的作用是在包剛剛到達防火墻時改變它的目的地址,OUTPUT鏈的作用是改變本地產生的包的目的地址,POSTROUTING鏈的作用是在包即將離開防火墻時改變其源地址。該表阿銘僅偶爾會用到。
mangle:表主要用於給數據包做標記,然後根據標記去操作相應的包。這個表幾乎不怎麽用
raw:表可以實現不追蹤數據包做標記,默認系統的數據包都會被追蹤,但追蹤勢必消耗一定的資源,所以可以用raw表來指定某些端口的包不被追蹤。
security:表在Centos6裏是沒有的,它用於強制訪問控制(MAC)的網絡規則。
netfilter的5個鏈
5個鏈分別為PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
PREROUTING:數據包進入路由表之前
INPUT:通過路由表後目的地為本機
FORWARD:通過路由表後,目的地不為本機
OUTPUT:由本機產生,向外轉發
POSTROUTING:發送到網卡接口之前
參考圖
iptables語法
查看iptables默認規則配置文件:
[root@Ask-02 ~]# cat /etc/sysconfig/iptables
查看iptables默認規則:
[root@Ask-02 ~]# iptables -nvL
保存iptables規則(當前規則,保存到配置文件):
[root@Ask-02 ~]# service iptables save
清空iptables規則:
[root@Ask-02 ~]# iptables -F
重啟iptables規則:
[root@Ask-02 ~]# service iptables restart
指定表:
[root@Ask-02 ~]# iptables -t nat -nvL
[root@Ask-02 ~]# iptables -t filter -nvL
把表的計數器清零:
[root@Ask-02 ~]# iptables -nvL
如果不加-t,則默認的是filter表
- -A/-D:表示增加/刪除一條規則
- -I:表示插入一條規則其實效果跟-A一樣
- -p:表示指定協議,可以是tcp、udp或者icmp
- --dport:跟-p一起使用,表示指定目標端口
- --sport:跟=p一起使用,表示指定源端口
- -s:表示指定源IP(可以是一個IP段)
- -d:表示指定目的IP(可以是一個IP段)
- -j:後面跟動作,其中ACCEPT表示允許包,DROP表示丟掉包,REJECT表示拒絕包
- -i:表示指定網卡
firewalld和netfilter、netfilter5表5鏈介紹、iptables語法