1. 程式人生 > >72.liunx網絡相關和防火墻

72.liunx網絡相關和防火墻

記錄 mls misc red ots 輸出 ora rem collision

ifconfig命令

命令描述

ifconfig命令被用於配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟後機器重啟後,配置就不存在。要想將上述的配置信息永遠的存的電腦裏,那就要修改網卡的配置文件了。

命令語法

ifconfig 【參數】

參數

up 啟動指定網絡設備/網卡
down 關閉指定網絡設備/網卡
-arp 設置指定網卡是否支持ARP協議
-promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包
-allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包
-a 顯示全部接口信息

-s 顯示摘要信息(類似於 netstat -i)
add 給指定網卡配置IPv6地址
del 刪除指定網卡的IPv6地址
<硬件地址> 配置網卡最大的傳輸單元
mtu<字節數> 設置網卡的最大傳輸單元 (bytes)
netmask<子網掩碼> 設置網卡的子網掩碼
tunel 建立隧道
dstaddr 設定一個遠端地址,建立點對點通信
-broadcast<地址> 為指定網卡設置廣播協議
-pointtopoint<地址> 為網卡設置點對點通訊協議
multicast 為網卡設置組播標誌
為網卡設置IPv4地址
txqueuelen<長度> 為網卡設置傳輸列隊的長度

案例

查看網卡信息
[root@localhost /]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.168 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fe1f:2eab prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1f:2e:ab txqueuelen 1000 (Ethernet)
RX packets 2630 bytes 246226 (240.4 KiB)

RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1543 bytes 178989 (174.7 KiB)
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
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@localhost /]#

liunx防火墻

1.SElinux

Selinux是Redhat/CentOS系統特有的安全機制。不過因為這個東西限制太多,配置也特別繁瑣所以幾乎沒有人去真正應用它。所以裝完系統,我們一般都要把selinux關閉,以免引起不必要的麻煩。臨時關閉selinux的方法為:
[root@localhost /]#  getenforce          //獲取當前SELinux狀態
Enforcing                                       //開啟狀態
[root@localhost /]#  setenforce 0       //臨時關閉SELinux
[root@localhost /]#  getenforce
Permissive                                    //臨時關閉狀態
這個僅僅是臨時關閉,如果要永久關閉則需要修改配置文件/etc/selinux/config, 把SELINUX=Enforce,改為disabled,修改好之後重啟:

[root@localhost /]#  vim /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                //修改為disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

重啟之後查看SELinux狀態:
[root@localhost /]# getenforce
Disabled

netfilter

cenots7之前是使用netfilter cenots7後 是使用 firewalld
[root@localhost ~]# systemctl stop firewalld //關閉firewalld服務
[root@localhost ~]# 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@localhost ~]# yum install -y iptables-services //安裝iptables-services,以便使用iptables
[root@localhost ~]# systemctl enable iptables //開機啟動iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
[root@localhost ~]#systemctl start iptables //啟動iptables

netfilter的5個表
filter:這個表主要用於過濾包的,是系統預設的表,這個表也是阿銘用的最多的。內建三個鏈INPUT、OUTPUT以及FORWARD。INPUT作用於進入本機的包;OUTPUT作用於本機送出的包;FORWARD作用於那些跟本機無關的包。
nat:主要用處是網絡地址轉換,也有三個鏈。PREROUTING 鏈的作用是在包剛剛到達防火墻時改變它的目的地址,如果需要的話。OUTPUT鏈改變本地產生的包的目的地址。POSTROUTING鏈在包就要離開防火墻之前改變其源地址。該表用的不多,但有時候會用到。
mangleL:這個表主要是用於給數據包打標記,然後根據標記去操作哪些包。這個表幾乎不怎麽用。除非你想成為一個高級網絡工程師,否則你就沒有必要花費很多心思在它上面。
raw:一般是為了不再讓iptables對數據包進行跟蹤,提高性能。
security:這個表用於強制訪問控制(MAC)網絡規則。
netfilter的5個鏈
PRERPUTING鏈:數據包進去路由之前,作用是在包剛剛到達防火墻時改變它的目的地址,如果需要的話。
INPUT鏈:通過路由後目的地為本機,作用於輸入本機的數據包。
FORWARD鏈:通過路由表後,目的地部位本機。作用於與本機無關的包。
OUTPUT鏈:由本機產生,向外轉發。作用與本機輸出的數據包。
POSTROUTING鏈:發送到網卡接口之前。在包離開防火墻之前改變其源地址。

iptables

iptables命令是Linux上常用的防火墻軟件,是netfilter項目的一部分。可以直接配置,也可以通過許多前端和圖形界面配置。

命令語法

iptables [選項]【參數】

選項

-t<表>:指定要操縱的表;
-A:向規則鏈中添加條目;
-D:從規則鏈中刪除條目;
-i:向規則鏈中插入條目;
-R:替換規則鏈中的條目;
-L:顯示規則鏈中已有的條目;
-F:清楚規則鏈中已有的條目;
-Z:清空規則鏈中的數據包計算器和字節計數器;
-N:創建新的用戶自定義規則鏈;
-P:定義規則鏈中的默認目標;
-h:顯示幫助信息;
-p:指定要匹配的數據包協議類型;
-s:指定要匹配的數據包源ip地址;
-j<目標>:指定要跳轉的目標;
-i<網絡接口>:指定數據包進入本機的網絡接口;
-o<網絡接口>:指定數據包要離開本機所使用的網絡接口。

iptables命令選項輸入順序:

iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> --sport 源端口 <-d 目標IP/目標子網> --dport 目標端口 -j 動作

表名包括:

raw:高級功能,如:網址過濾。
mangle:數據包修改(QOS),用於實現服務質量。
net:地址轉換,用於網關路由器。
filter:包過濾,用於防火墻規則。

規則鏈名包括:

INPUT鏈:處理輸入數據包。
OUTPUT鏈:處理輸出數據包。
PORWARD鏈:處理轉發數據包。
PREROUTING鏈:用於目標地址轉換(DNAT)。
POSTOUTING鏈:用於源地址轉換(SNAT)。

動作包括:

accept:接收數據包。
DROP:丟棄數據包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址轉換。
DNAT:目標地址轉換。
MASQUERADE:IP偽裝(NAT),用於ADSL。
LOG:日誌記錄。

案例

清除已有iptables規則

iptables -F
iptables -X
iptables -Z

查看已添加的iptables規則
iptables -NVL

將所有iptables以序號標記顯示,執行:

iptables -L -n --line-numbers
比如要刪除INPUT裏序號為8的規則,執行:

iptables -D INPUT 8

72.liunx網絡相關和防火墻