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