1.SNAT(Source Network Address Translation源地址转换):是Linux防火墙的一种地址转换操作
原理:根据指定条件修改数据包的源 IP地址
应用环境:局域网主机共享单个公网IP地址接入Internet
2.导出(备份)规则——iptables-save
[[email protected] ~]# iptables-save # Generated by iptables-save v1.4.7 on Thu Apr 6 20:17:56 2017 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [100:8965] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Thu Apr 6 20:17:56 2017 [[email protected] /]# iptables-save > /opt/a.txt
3.导入(还原)规则——iptables-restore
[[email protected] /]# iptables-restore < /opt/a.txt
4.自启动防火墙规则
[[email protected] /]# iptables-save > /etc/sysconfig/iptables [[email protected] /]# chkconfig --level 2345 iptables on [[email protected] /]# chkconfig --list iptables iptables 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[[email protected] /]# service iptables start
5.清空所有防火墙规则
[[email protected] /]# service iptables stop iptables:将链设置为政策 ACCEPT:filter [确定] iptables:清除防火墙规则: [确定] iptables:正在卸载模块: [确定] [[email protected] /]# service iptables status iptables:未运行防火墙。
6.防火墙脚本的构成
定义基本变量
[[email protected] /]# vi /opt/myipfw.sh #!/bin/bash INET_IF= "eth0" //外网接口 INET_IP="218.29.30.31" //外网接口地址 LAN_IF="eth1" //内网接口 LAN_IP= "192.168.1.1" //内网接口地址 LAN_NET="192.168.1.0/24" //内网网段 LAN_WWW_IP="192.168.1.6" //网站服务器的内部地址 IPT="/sbin/iptables" //iptables命令的路径 MOD="/sbin/modprobe" //modprobe命令的路径 CTL="/sbin/sysctl“ //sysct1命令的路径
加载内核模块
…… $MOD ip_tables $MOD ip_conntrack $MOD ipt_REJECT $MOD ipt_LOG $MOD ipt_iprange $MOD xt_tcpudp $MOD xt_state $MOD xt_multiport $MOD xt_mac $MOD ip_nat_ftp $MOD ip_conntrack_ftp 支持FTP访问的地址转换、连接状态跟踪
调整/proc参数
…… $CTL -w net.ipv4.ip_forward=1 $CTL -w net.ipv4.ip_default_ttl=128 $CTL -w net.ipv4.icmp_echo_ignore_all=1 $CTL -w net.ipv4.icmp_echo_ignore_broadcasts $CTL -w net.ipv4.tcp_syncookies=1 $CTL -w net.ipv4.tcp_syn_retries=3 $CTL -w net.ipv4.tcp_synack_retries=3 $CTL -w net.ipv4.tcp_fin_timeout=60 $CTL -w net.ipv4.tcp_max_syn_backlog=3200 优化TCP响应能力
具体的防火墙规则
按表、链分别设置规则,包括默认策略
…… $IPT -t filter -X $IPT -t nat -X $IPT -t filter -F //清空原有规则 $IPT -t nat -F $IPT -P INPUT DROP //设置默认策略 $IPT -P FORWARD DROP $IPT -P OUTPUT ACCEPT $IPT -t nat -A POSTROUTING -s $LAN_NET -o $INET_IF -j SNAT --to-source $INET_IP //其他具体规则 $IPT -t nat -A PREROUTING -i $INET_IF -d $INET_IP -p tcp --dport 80 -j DNAT --to-destination $LAN_WWW_IP
时间: 2024-10-16 04:47:49