Linux之iptables
iptables -A INPUT -p tcp -s 192.168.1.142 --dport 80 -j DROP iptables -I INPUT 4 -p tcp -s 192.168.1.142 --dport 80 -j DROP
iptables -D INPUT 4
A(append)追加到链的最后,I(insert)插入最前边 4表示插入第四行
察看iptables的规则序列号
iptables -L -n --line-numbers
一、下面记录一个企业生产环境从零开始配置iptables filter表
1.初始化iptables
iptables -F iptables -X iptables -Z
2.配置允许SSH登陆端口进入
iptables -A INPUT -p tcp -s 192.168.1.0/24 -j ACCEPT
或者:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
生产环境中用第一种配置居多
3.设置允许本机lo通信规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
4.设置防火墙默认的禁止和允许访问的规则:禁止INPUT和FORWARD链,允许OUTPUT链
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
5.开启信任的IP网段和端口
iptables -A INPUT -p all -s 202.22.22.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
6.允许icmp类型协议通过,让别人可以ping通。
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
7.允许关联的状态包通过
##允许关联的状态包通过
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
8.通过以上几个步骤就建立了一个比较安全的防火墙配置,接下来就是保存规则了
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
/etc/init.d/iptables save
二、iptables的维护
1.手工封掉一个IP
iptables -I INPUT -s 160.2.2.3 -j DROP
#iptables -I INPUT -s 160.2.2.3 --dport 80 -j DROP
三、nat表的应用
1.配置局域网共享上网
设你的机器上有两块网卡eth0和eth1,其中eth0的IP为10.0.2.68 ,eth1的IP为192.168.1.1 。eth0连接了intnet 但eth1没有连接,现在有另一台机器(192.168.1.2)和eth1是互通的,那么如何设置也能够让连接eth1的这台机器能够连接intnet(即能和10.0.2.68互通)?其中eth1的网关不要配置,本地的机器网关指向eth1的IP地址
modprobe ip_tables
modprobe ip_nat_ftp
echo "1" > /proc/sys/net/ipv4/ip_forward
方法一:适合变化的外网地址 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE 方法二:适合固定的外网地址 iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.2.68
第二个命令则是iptables对nat表做了一个IP转发的操作,-o 选项后跟设备名,表示出口的网卡,MASQUERADE表示伪装的意思。
2.外部IP地址及端口映射到内部的IP和端口
iptables -t nat -A PREROUTING -i eth0 -d 202.110.123.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:9999