码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux之iptables及firewall超详解


    目录

    一.搭建web服务,设置任何人能够通过80端口访问

     1.设置任何人都可以通过80端口访问web服务器

     2.查看配置表确保已经成功配置

     3.访问服务器可以看到成功访问

     4.删除策略

     5.发现不能访问

    二.禁止所有人ssh远程登录该服务器

     1.默认开放ssh服务,先在客户测试端远程登录

     2.添加策略,禁止所有人ssh远程登录

     3.在客户端上测试发现远程登陆失效

     4.由于使用的Xshell也是使用ssh远程登陆的,所以会断开,只能在VMware上删除策略

    三.禁止某个主机地址ssh远程登录该服务器,允许该主机访问服务器的web服务

     1.禁止客户端远程登录服务器

     2.在客户端测试

     3.添加策略允许客户端访问web服务

     4.客户端上测试成功访问到web服务

    四.禁止某个ip地址进行ssh访问

    在指定ip的机器上不能远程登录 

    五.配置端口转发(在192.168.40.0网段的主机访问该服务器的5423端口将被转发到80端口)

    1. 添加富规则进行端口转发

     2.重新加载配置

    3.访问5423端口 

    ​六.此规则将本机80端口转发到192.168.40.131的8080端口上


    一.搭建web服务,设置任何人能够通过80端口访问

     1.设置任何人都可以通过80端口访问web服务器

    [root@rhcsa ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

     2.查看配置表确保已经成功配置

    1. [root@rhcsa ~]# iptables -L --line-numbers
    2. Chain INPUT (policy ACCEPT)
    3. num target prot opt source destination
    4. 1 ACCEPT tcp -- anywhere anywhere tcp dpt:http
    5. 2 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
    6. 3 ACCEPT icmp -- anywhere anywhere
    7. 4 ACCEPT all -- anywhere anywhere
    8. 5 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
    9. 6 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
    10. Chain FORWARD (policy ACCEPT)
    11. num target prot opt source destination
    12. 1 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
    13. Chain OUTPUT (policy ACCEPT)
    14. num target prot opt source destination

     3.访问服务器可以看到成功访问

     4.删除策略

    [root@rhcsa ~]# iptables -D INPUT 1
    

     5.发现不能访问

    二.禁止所有人ssh远程登录该服务器

     1.默认开放ssh服务,先在客户测试端远程登录

    1. [root@rhce ~]# ssh root@192.168.40.129
    2. The authenticity of host '192.168.40.129 (192.168.40.129)' can't be established.
    3. ECDSA key fingerprint is SHA256:70V58bQzrfUci7EE23sAS/cd7Zjc3zbRhTx15uN1PVY.
    4. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    5. Warning: Permanently added '192.168.40.129' (ECDSA) to the list of known hosts.
    6. root@192.168.40.129's password:
    7. Activate the web console with: systemctl enable --now cockpit.socket
    8. This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
    9. To register this system, run: insights-client --register
    10. Last login: Sun Jul 31 08:16:08 2022 from 192.168.40.1

     2.添加策略,禁止所有人ssh远程登录

    iptables -I INPUT -p tcp --dport 22 -j REJECT

     3.在客户端上测试发现远程登陆失效

    1. [root@rhce ~]# ssh root@192.168.40.129
    2. ssh: connect to host 192.168.40.129 port 22: Connection refused

     4.由于使用的Xshell也是使用ssh远程登陆的,所以会断开,只能在VMware上删除策略

    三.禁止某个主机地址ssh远程登录该服务器,允许该主机访问服务器的web服务

     1.禁止客户端远程登录服务器

    [root@rhcsa ~]#  iptables -I INPUT -p tcp -s 192.168.40.131 --dport 22 -j REJECT

     2.在客户端测试

    1. [root@rhce ~]# ssh root@192.168.40.129
    2. ssh: connect to host 192.168.40.129 port 22: Connection refused

     3.添加策略允许客户端访问web服务

    [root@rhcsa ~]# iptables -I INPUT -p tcp -s 192.168.40.131 --dport 80 -j ACCEPT

     4.客户端上测试成功访问到web服务

    1. [root@rhce ~]# curl 192.168.40.120
    2. this is 8888

    四.禁止某个ip地址进行ssh访问

    1. #移除允许所有人通过ssh远程连接的配置
    2. [root@rhcsa ~]# firewall-cmd --permanent --remove-service=ssh
    3. success
    4. #添加富规则禁止特定的ip通过ssh远程连接
    5. [root@rhcsa ~]# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.40.131" service name="ssh" reject'
    6. success
    7. #重新加载当前配置
    8. [root@rhcsa ~]# firewall-cmd --reload
    9. success
    1. [root@rhcsa ~]# firewall-cmd --list-all
    2. public (active)
    3. target: default
    4. icmp-block-inversion: no
    5. interfaces: ens160 ens224
    6. sources:
    7. services: cockpit dhcpv6-client http
    8. ports: 2222/tcp 8888/tcp
    9. protocols:
    10. forward: no
    11. masquerade: no
    12. forward-ports:
    13. source-ports:
    14. icmp-blocks:
    15. rich rules:
    16. rule family="ipv4" source address="192.168.40.131" service name="ssh" reject

    在指定ip的机器上不能远程登录 

    1. [root@rhce ~]# ssh root@192.168.40.129
    2. ssh: connect to host 192.168.40.129 port 22: Connection refused

    五.配置端口转发(在192.168.40.0网段的主机访问该服务器的5423端口将被转发到80端口)

    1. 添加富规则进行端口转发

    1. [root@rhcsa ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.40.0/24" forward-port port="5423" protocol="tcp" to-port="80"'
    2. success

     2.重新加载配置

    1. [root@rhcsa ~]# firewall-cmd --reload
    2. success

    3.访问5423端口 


    六.此规则将本机80端口转发到192.168.40.131的8080端口上

    1. [root@rhcsa ~]# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.40.131 --permanent
    2. success
    3. [root@rhcsa ~]# firewall-cmd --reload
    4. success

     

  • 相关阅读:
    苹果vision pro 通讯
    作为一个初学者该如何学习kali linux?
    推荐搜索中各类排序算法综述
    2022年9月电子学会Python等级考试试卷(三级)答案解析
    2022年技术胖私藏工具分享
    页面滚动组件
    ARP协议;DHCP协议;ICMP协议
    初见 monorepo
    【云原生】Docker镜像、容器、仓库、配置等常见问题汇总(面试必看)
    Kibana:创建你的第一个仪表板
  • 原文地址:https://blog.csdn.net/weixin_64051859/article/details/126087657
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号