1. 程式人生 > >linux的安全--Selinux,tcp_wrappers,iptables使用

linux的安全--Selinux,tcp_wrappers,iptables使用

type inpu main ask 表示 accept rop vsftpd 分享圖片

一、linux安全

安全主要是端口與服務的對應配置

1.1 linux安全主要通過下面三個進行加固

  • Selinux----主要是對內核的訪問權限加以控制
  • tcp_wrappers---一定程度上限制某種服務的訪問權限
  • iptables---主要是設置軟件的防火墻

1.2 ping 的禁止

  • 臨時允許PING操作的命令為:#echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
  • 永久允許PING配置方法
/etc/sysctl.conf 中增加一行

              net.ipv4.icmp_echo_ignore_all=1
  • /etc/rc.d/rc.loacl
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
  • iptables的設置
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

二、Selinux介紹

  • 內核的強制安全訪問控制
  • 可以用getenforce獲取目前Selinux的狀態
  • vi /etc/sysconfig/selinux 設置SELINUX

三、tcp_wrappers的介紹

並不是所有的服務都是受tcp_wrappers管理的,只用采用libwrap庫的服務才受管理

3.1 服務的檢查

(1)檢查服務是否受管理

ldd $(which domainname) | grep libwrap
domainname=sshd httpd smb xinetd .........

如果有這個鏈接,說明某個服務接受tcp_wrappers管理

(2)受管理的服務

    • 進程歸xinetd管理
    • 一些獨立的進程
 sendmail
 slapd
 sshd
 stunnel
 xinetd
 gdm
 gnone-session
 vsftpd
 portmap

(3)有些進程不受tcp_wrappers管理

 httpd
 smb
 squid 等

3.2 配置管理

/etc/hosts.allow
/etc/hosts.deny

3.3 工作原理

a.當有請求從遠程到達本機的時候

首先檢查/etc/hosts.allow
如有匹配的,就默認允許訪問,跳過 /etc/hosts.deny這個文件
沒有匹配的,就去匹配/etc/hosts.deny 文件,如果有匹配的,那麽就拒絕這個訪問

b.如果在這兩個文件中,都沒有匹配到,默認是允許訪問的

c.兩個文件格式

服務列表 :地址列表 :選項

A. 服務列表格式:如果有多個服務,那麽就用逗號隔開
B. 地址列表格式:
  1. 標準IP地址:例如:192.168.0.254,192.168.0.56如果多於一個用,隔開
  2. 主機名稱:例如:www.baidu.com, .example.con匹配整個域
  3. 利用掩碼:192.168.0.0/255.255.255.0指定整個網段
   註意:tcp_wrappers的掩碼只支持長格式,不能用:192.168.0.0/24
  4. 網絡名稱:例如 @mynetwork

d.例子

hosts.allow  sshd:192.168.0.1:allow

hosts.deny     sshd:ALL 

四、iptables的介紹

4.1 簡介

iptables是由ip+tables組成,它由多個表,每個表的功能都不一樣,每個表由於多個鏈(chain)組成,我們可以對這個鏈進行設置規則與策略。

4.2 表與鏈

(1)一般由三種表

    • filter----管理本機數據的進出
    • NAT---網絡地址轉換
    • mangle---用於標記高級路由的信息包,改變不同的包和包頭

(2)filter

filter表
描述
FORWARD 將外部的數據包傳遞到內部的服務器
INPUT 主要是外部數據進入內部數據的信息過濾
OUTPUT 主要是內部數據發到外部數據的信息過濾

(3)NAT

NAT
描述
OUTPUT 改變本地產生包的目的地址
POSTROUTING 改變數據返回來源的目的地址,SNAT,屏蔽局域網內部來源主機信息
PREROUTING 改變訪問的目的地址,DNAT,也就是內部主機只能限制防火墻訪問

(3)mangle不常用

4.3 iptables 內部組成

技術分享圖片

從圖中可以看出,眾多的路由規則(Rule)和預設的規則(policy)組成了一個功能鏈(chain),多個鏈組成一個表,多個表就組成了防火墻。最常用的就是filter表,NAT表用在地址映射方面。

4.4 iptables 執行流程

iptables就是由多個路由規則的組合體,滿足一個規則,其他的規則就不在驗證,所有的規則都不滿足就執行默認的規則

設定規則需要註意順序

技術分享圖片

4.5 iptables的使用

(1)iptables [-t 表名] 選項 [鏈名] [條件] [-j 控制類型] 參數

-P 設置默認策略:iptables -P INPUT (DROP|ACCEPT)
-F 清空規則鏈
-L 查看規則鏈
-A 在規則鏈的末尾加入新規則
-I num 在規則鏈的頭部加入新規則
-D num 刪除某一條規則
-s 匹配來源地址IP/MASK,加嘆號"!"表示除這個IP外。
-d 匹配目標地址
-i 網卡名稱 匹配從這塊網卡流入的數據
-o 網卡名稱 匹配從這塊網卡流出的數據
-p 匹配協議,如tcp,udp,icmp
--dport num 匹配目標端口號
--sport num 匹配來源端口號

  (2)預設規則

iptables  [-t  tables] -P[input output  FORWARD]  [ACCEPT  DROP]

  (3)針對IP網絡、網絡接口的過濾規則

iptables  [-t  tables] [-AI 鏈]  [-io  網絡接口][-p tcp|UDP|ICMP] [-s  來源網絡] [-d 目標網絡] [-j ACCEPT |DROP]

  (4)針對TCP 和UDP的過濾規則

iptables  [-t  tables] [-AI 鏈]  [-io  網絡接口][-p tcp,udp] [-s  來源網絡][--sport 端口範圍 ] [-d 目標網絡] [--dport 端口範圍][-j ACCEPT |DROP]

  

linux的安全--Selinux,tcp_wrappers,iptables使用