2020-06-11 15:35:26
这是一篇关于iptables基础实战练习的文章,文章内容主要包括关于iptables等,请参考。
(1) 放行ssh (端口:22)
iptables -A INPUT -d 192.168.42.153 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 192.168.42.153 -p tcp --sport 22 -j ACCEPT
(2)修改默认规则链(关闭所有端口)
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
(3)放行web(80)端口 httpd nginx
iptables -I INPUT -d 192.168.42.153 -p tcp --dport 80 -j ACCEPT
iptables -I OUTPUT -s 192.168.42.153 -p tcp --sport 80 -j ACCEPT
(4)修改默认规则链后,我们发现ping不通自己,也ping不通别的主机
iptables -t filter -I INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT
iptables -t filter -I OUTPUT -s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT
(5)允许自己ping别的主机
iptables -t filter -I OUTPUT -s 192.168.42.153 -d 0/0 -p icmp --icmp-type 8 -j ACCEPT
iptables -t filter -I INPUT -s 0/0 -d 192.168.42.153 -p icmp --icmp-type 0 -j ACCEPT
(6)允许任何人来ping本机
iptables -t filter -I INPUT -s 0/0 -d 192.168.42.153 -p icmp --icmp-type 8 -j ACCEPT
iptables -t filter -I OUTPUT -s 192.168.42.153 -d 0/0 -p icmp --icmp-type 0 -j ACCEPT
(7)同时开发多个端口(多端口匹配)
iptables -I INPUT -s 0/0 -d 192.168.42.153 -p tcp -m multiport --dports 22,80,3306 -j ACCEPT
iptables -I INPUT -d 0/0 -s 192.168.42.153 -p tcp -m multiport --sports 22,80,3306 -j ACCEPT
(8)iptables -vnL –line-numbers #显示数字
iptables -vnL INPUT --line-numbers
Chain INPUT (policy DROP 1 packets, 229 bytes)
num pkts bytes target prot opt in out source destination
1 8 576 ACCEPT icmp -- * * 0.0.0.0/0 192.168.42.153 icmptype 8
2 12 1008 ACCEPT icmp -- * * 0.0.0.0/0 192.168.42.153 icmptype 0
3 16 1226 ACCEPT all -- lo * 127.0.0.1 127.0.0.1
4 88 7565 ACCEPT tcp -- * * 0.0.0.0/0 192.168.42.153 tcp dpt:80
5 2135 163K ACCEPT tcp -- * * 0.0.0.0/0 192.168.42.153 tcp dpt:22
(9) 源地址,目的地址范围匹配
iptables -I INPUT -d 192.168.42.153 -p tcp --dport 23 -m iprange --src-range 192.168.42.150-192.168.42.158 -j ACCEPT
iptables -I OUTPUT -s 192.168.42.153 -p tcp --dport 23 -m iprange --dst-range 192.168.42.150-192.168.42.158 -j ACCEPT
(10)禁止包含”old”字符的页面出来
iptables -I OUTPUT -s 192.168.42.153 -d 0/0 -p tcp --sport 80 -m string --algo bm --string "old" -j DROP
(11)基于时间限定,9点到19点,禁止访问80端口
iptables -I INPUT -s 0/0 -d 192.168.42.153 -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 --kerneltz -j DROP
(12)周一到周五9点到19点禁止访问80端口
iptables -I INPUT -d 192.168.42.153 -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 --kerneltz --weekdays 1,2,3,4,5 -j DROP
(13)端口大于2个并发连接(禁止)
iptables -I INPUT -s 0/0 -d 192.168.42.153 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j DROP
(14)端口同一个客户端小于3个并发连接
iptables -I INPUT -s 0/0 -d 192.168.42.153 -p tcp --dport 22 -m connlimit ! --connlimit-above 3 -j DROP
(15)目标地址和端口转换示例(对22端口的转换)
iptables -t nat -A PREROUTING -d 10.1.249.125 -p tcp --dport 22022 -j DNAT --to-destination 192.168.2.4:22
SNAT:源地址转换。内网主机在访问互联网的时候所有源地址都转换为防火墙的外网地址,起到隐藏内网客户机的目的。同时,也解决了IPV4公网地址不够用的需求。
iptables -t nat -A POSTROUTING -s 10.1.249.158 -j SNAT --to-source 192.168.2.3
DNAT:目的地址转换。当外网主机访问内网的某台服务器的时候,如果直接暴露服务器的IP于公网,可能会遭受各种各样的攻击,而DNAT的主要作用就是在服务器前面添加一台防火墙。将防火墙的地址公布出去,让外网客户端通过访问防火墙的地址就可以访问到本地服务器。这样就起到了保护服务器的目的;
iptables -t nat -A PREROUTING -d 10.1.249.125 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.4
有关iptables基础实战练习的文章就介绍到这儿,希望对大家有所帮助。
9个常用iptables配置实例
03-29
iptables配置只允许PHP 9000端口访问
05-08
iptables INPUT链使用实例说明
02-22
ezhttp配置防火墙iptables
05-16
iptables中DNAT、SNAT和MASQUERADE的理解
04-27
Centos7将firewall防火墙换回iptables防火墙
03-12
设置iptables之后不能正常访问ftp解决方法
07-21
配置haproxy在http请求头添加后端用户真实IP
07-05
AWK 两个文件字段合并处理实例
06-28
CentOS 7配置并更换为本地或网络yum源
07-17
Debian 7 (Wheezy)安装配置Apache mod_fastcgi PHP-FPM
07-20
Docker安装配置tomcat jdk
06-21
Jenkins运行多个步骤的配置
06-21
Linux 的系统服务及其配置
07-07
MBR与GPT分区格式(实例-创建大于2TB的分区)
03-19
Nginx HTTP2配置教程
06-23
TR260 G2服务器内存DIMM安装配置和内存插的槽分布
06-23
Ubuntu 16.04配置Nginx使用GeoIP
07-12
Ubuntu系统配置samba实现文件夹共享
06-22
centos 7 yum安装配置apache 2.4
07-15