当前位置:网站首页>iptables入门

iptables入门

2022-08-11 05:33:00 macob

查看内核发行号:uname -r
查看内核版本:uname -v

清除原有规则,不改变默认策略
iptables -F -t [filter|nat|mangle]
例:
iptables -F
iptables -X
iptables -Z

添加策略:
打开管理端口(注意nat转换用外网口地址)
iptables -A INPUT -s 192.168.101.0/24 -p tcp --dport 22 -j ACCEPT
打开icmp
iptables -A INPUT -s 192.168.101.0/24 -p icmp -j ACCEPT
添加dns服务器的53端口
iptables -A INPUT -s dns-ip -p udp --sport 53 -j ACCEPT
放行本机80端口访问
iptables -A INPUT -d 192.168.101.141(本机ip) -p tcp --sport 80 -j ACCEPT
添加业务策略

删除某条规则
iptables -D INPUT ...

修改默认策略:
iptables [-t filter|nat|mangle] -P [INPUT|OUTPUT|FORWARD] [ACCEPT|DROP] 
例:iptables -P INPUT DROP

保存原配置:
iptables-save > iptables.old
还原配置
iptables-restore < iptables.old

添加启动脚本:
chmod +x /etc/rc.d/rc.local
cp iptables.old /etc/rc.d/
在rc.local脚本中添加
iptables -F
iptables -X
iptables -Z
iptables-restore < /etc/rc.d/iptables.old

设置开机启动防火墙:
systemctl start firewalld.service

系统自带规则重启时无法清除
使用cron计划执行命令:
vi /etc/crontab
* * */1 * * root   iptables-restore /etc/rc.d/iptables.old
重启cron服务
systemctl restart crond.service

删除指定规则
iptables -L -n  --line-number
iptables -D INPUT 2

添加状态监测机制

解释一下状态 
NEW:如果你的主机向远程机器发时一个连接请求,这个数据包状态是NEW. 
ESTABLISHED:当联接建立之后,远程主机和你主机通信数据状态为ESTABLISHED 
RELATED: 像ftp这样的服务,用21端口传送命令,而用20端口(port模式)或其他端口(PASV模式)传送数据。在已有21端口上建立好连接后发送命令,用20传送的数据,状态是RELATED 

TCP连接
iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT

UDP连接
iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT   
iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED -j ACCEPT   

1, 默认规则,对所以进入你机器的数据都丢弃,iptables -P INPUT DROP 
2, 禁止其他机器主动发起对你机器的连接,但你却可以主动的连接其他机器, 这条可以省去由默认规则处理,iptables -A INPUT -m state --state NEW -j DROP 
3, 当你主动连接其他机器之后,再进来的数据就是ESTABLISHED状态了,
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
4, 接下来如果你的机器提供pasv模式的ftp服务(会使用动态的端口来传送数据,这对于有状态的防火墙轻易做到,甚至不用知道它用了哪些端口,因为它会认识到这些数据是RELATED的), 
iptables -A INPUT -i ppp0 -p tcp -dport 21 -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -dport 21 -j ACCEPT 
两条命令就解决了内部用户上网收发E_mail、浏览网页、使用msn聊天等需求
#iptables –A FORWARD –i eth0 –p tcp –m multiport --dports 25,80,110,443,1863 –j ACCEPT
#iptables –A FORWARD –i eth0 –p udp --dport 53 –j ACCEPT

在子网计算机上访问外部网络:
[[email protected] ~]# echo "1" > /proc/sys/net/ipv4/ip_forward

#禁用并停止firewalld
  [[email protected] ~]# systemctl disable firewalld
  [[email protected] ~]# systemctl stop firewalld
  #安装iptables防火墙
  [[email protected] ~]# yum install -y iptables-services
  #启用并开启iptables
[[email protected] ~]# systemctl start iptables
  [[email protected] ~]# systemctl enable iptables
  #在eno16777736接口上开启地址伪装
  [[email protected] ~]# iptables -t nat -I POSTROUTING -o eno16777736 -j MASQUERADE
[[email protected] ~]# service iptables save

原网站

版权声明
本文为[macob]所创,转载请带上原文链接,感谢
https://blog.csdn.net/macob/article/details/126085658