Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

第 40 章 Firewall

摘要

Linux Firewall 安裝與配置

目錄

40.1. TCP/IP 相關內核配置項
40.1.1. net.ipv4.ip_forward
40.1.2. net.ipv4.icmp_echo_ignore_all
40.2. iptables - administration tools for packet filtering and NAT
40.2.1. Getting Started
40.2.1.1. CentOS/Redhat TUI 工具
40.2.2. 用戶自定義規則連
40.2.2.1. Chains List
40.2.2.2. Chains Refresh
40.2.2.3. Chains Admin
40.2.2.4. 重置
40.2.3. Protocols 協議
40.2.4. Interfaces 網絡適配器介面
40.2.5. 源IP地址
40.2.6. Ports 連接埠
40.2.6.1. range
40.2.6.2. multiport
40.2.7. NAT
40.2.7.1. Redirect
40.2.7.2. Postrouting and IP Masquerading
40.2.7.3. Prerouting
40.2.7.4. DNAT and SNAT
40.2.7.5. DMZ zone
40.2.8. Module(模組)
40.2.8.1. IPTables and Connection Tracking
40.2.8.2. string
40.2.8.3. connlimit
40.2.8.4. recent
40.2.8.5. limit
40.2.8.6. nth
40.2.8.6.1. DNAT
40.2.8.6.2. SNAT
40.2.8.7. random 模組
40.2.9. IPV6
40.2.10. iptables-xml - Convert iptables-save format to XML
40.2.11. access.log IP封鎖腳本
40.2.12. Example
40.2.12.1. INPUT Rule Chains
40.2.12.1.1. OpenSSH
40.2.12.1.2. FTP
40.2.12.1.3. DNS
40.2.12.1.4. WWW
40.2.12.1.5. SOCKS5
40.2.12.1.6. Mail Server
40.2.12.1.7. MySQL
40.2.12.1.8. PostgreSQL
40.2.12.1.9. DHCP
40.2.12.1.10. Samba
40.2.12.1.11. ICMP
40.2.12.1.12. 禁止IP訪問自己
40.2.12.1.13. DENY
40.2.12.2. OUTPUT Rule Chains
40.2.12.2.1. outbound
40.2.12.2.2. ICMP
40.2.12.2.3. NFS
40.2.12.2.4. SSH
40.2.12.2.5. 禁止自己訪問某個IP
40.2.12.3. Forward
40.2.12.3.1. TCPMSS
40.2.12.4. Malicious Software and Spoofed IP Addresses
40.2.12.5. /etc/sysconfig/iptables 操作系統預設配置
40.3. ulogd - The Netfilter Userspace Logging Daemon
40.4. ufw - program for managing a netfilter firewall
40.4.1. /etc/default/ufw
40.4.2. ip_forward
40.4.3. DHCP
40.4.4. Samba
40.5. CentOS 7 Firewalld
40.5.1. 如果你不習慣使用firewalld想用回Iptables
40.5.2. 安裝 firewalld
40.5.3. firewalld 配置檔案
40.5.3.1. 規則配置檔案
40.5.3.2. 服務配置檔案
40.5.3.3. 區域配置檔案
40.5.4. firewall-cmd
40.5.4.1. 查看版本號
40.5.4.2. 查看幫助
40.5.4.3. 顯示狀態
40.5.4.4. 重新載入防火牆規則
40.5.4.5. 持久化
40.5.4.6. 檢查配置正確性
40.5.4.7. 日誌選項
40.5.4.8. 拒絶所有包
40.5.4.9. 直接模式
40.5.5. 區域
40.5.5.1. 查看區域
40.5.5.2. 查看預設區域
40.5.5.3. 設置預設區域
40.5.5.4. 查看區域對應的網絡介面
40.5.5.5. 查看指定區域的所有配置
40.5.5.6. 查看所有區域的配置信息
40.5.5.7. 刪除區域
40.5.5.8. 區域介面
40.5.5.8.1. 介面列表
40.5.5.8.2. 查詢介面所在區域
40.5.5.8.3. 設置區域介面
40.5.5.9. 更在區域介面
40.5.6. 連接埠操作
40.5.6.1. 開放連接埠
40.5.6.2. 查看連接埠狀態
40.5.6.3. 禁用連接埠
40.5.6.4. 指定連接埠協議
40.5.6.5. 連接埠轉發
40.5.6.6. IP 轉發
40.5.7. 服務
40.5.7.1. 查看可用的伺服器
40.5.7.2. 啟用服務
40.5.7.3. 禁用服務
40.5.7.4. 指定區域添加服務
40.5.7.5. 查詢服務狀態
40.5.7.6. 查看持久化服務
40.5.8. IP 偽裝
40.5.8.1. 開啟 IP 偽裝
40.5.8.2. 查看 IP 偽裝
40.5.8.3. 關閉 IP 偽裝
40.5.9. 富規則
40.6. Shorewall
40.6.1. Installation Instructions
40.6.1.1. Install using RPM
40.6.1.2. Install using apt-get
40.6.2. Configuring Shorewall
40.6.2.1. zones
40.6.2.2. policy
40.6.2.3. interfaces
40.6.2.4. masq
40.6.2.5. rules
40.6.2.6. params
40.7. Firewall GUI Tools
40.8. Endian Firewall
40.9. Smooth Firewall
40.10. Sphirewall

40.1. TCP/IP 相關內核配置項

checking status

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
		

or just checking out the value in the /proc system

$ cat /proc/sys/net/ipv4/ip_forward
0
		

enable

sysctl -w net.ipv4.ip_forward=1
		

or

		
#redhat
echo 1 > /proc/sys/net/ipv4/ip_forward
#debian/ubuntu
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward;
		
		

disable

sysctl -w net.ipv4.ip_forward=0
		

or

		
echo 0 > /proc/sys/net/ipv4/ip_forward
		
		

without rebooting the system

40.1.1. net.ipv4.ip_forward

表 40.1. net.ipv4.ip_forward

userroutewan
192.168.0.2eth0:192.168.0.1 eth1:172.16.0.1172.16.0.254

			
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
			
			

try out ping host from 192.168.0.2 to 192.168.0.1 , 172.16.0.1 and 172.16.0.254

you can access 192.168.0.1 , 172.16.0.1, but 172.16.0.254 time out

sysctl -w net.ipv4.ip_forward=1

try again ping 172.16.0.254

40.1.2. net.ipv4.icmp_echo_ignore_all

如果希望屏蔽別人 ping 你的主機,則加入以下代碼:

# Disable ping requests
net.ipv4.icmp_echo_ignore_all = 1