Iptables
Iptables
阻止访问
阻止 IP 访问
sudo iptables -A INPUT -s 208.87.241.0/24 -j DROP
sudo iptables -A INPUT -s 146.88.43.0/24 -j DROP
sudo iptables -A INPUT -s 96.30.69.0/24 -j DROP
sudo iptables -A INPUT -s 83.118.119.0/24 -j DROP
允许特定IP地址访问所有端口,允许相关的通信状态,如已建立、相关或已关联状态的连接。
sudo iptables -A INPUT -s 192.168.50.2 -j ACCEPT
sudo iptables -A INPUT -s 192.168.50.1 -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -j DROP
指定位置插入规则
# 显示现有规则编号
iptables -L --line-numbers
# 指定位置插入
iptables -I INPUT 7 -s xx.xx.xx.xx -j ACCEPT
删除指定规则
iptables -L --line-numbers
iptables -D INPUT 6
端口转发
A 机器访问 B 机器(192.168.50.1)端口14822,B 机器将端口14822的数据转发给 C 机器(192.168.50.2)的22端口
0x01 B 机器开启 ip 转发
vi /etc/sysctl.conf
...
net.ipv4.ip_forward = 1
...
sysctl -p /etc/sysctl.conf
0x02 开启系统NAT模块
iptables -t nat -A POSTROUTING -j MASQUERADE
0x03 设置转发规则
# 1. 设置入规则
iptables -t nat -A PREROUTING -i ens18 -p tcp --dport 14822 -j DNAT --to-destination 192.168.50.2:22
# 2. 设置出规则
iptables -t nat -A POSTROUTING -o ens18 -p tcp --dport 14822 -d 192.168.50.2 -j SNAT --to-source 192.168.50.1
0x04 查看记录
sudo iptables -t nat -nvL --line-numbers
0x05 删除记录
# 删掉规则
iptables -t nat -D PREROUTING -i enp3s0 -p tcp --dport 9000 -j DNAT --to-destination 192.168.50.2:22
iptables -t nat -D POSTROUTING -o ens18 -p tcp --dport 9000 -d 192.168.50.2 -j SNAT --to-source 192.168.50.1
sudo iptables -t nat -D PREROUTING 6
sudo iptables -t nat -D POSTROUTING 6
# 清除所有记录
sudo iptables -t nat -F PREROUTING
sudo iptables -t nat -F POSTROUTING
0x06 持久化iptables
sudo apt update
sudo apt install iptables-persistent
sudo sh -c "iptables-save > /etc/iptables/rules.v4"