Linux笔记-iptables模拟公司环境配置

Posted IT1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux笔记-iptables模拟公司环境配置相关的知识,希望对你有一定的参考价值。

需求有3点:

①员工在公司内部(10.10.155.0/24,10.10.188.0/24)能访问服务器上的任何服务。

②出差员工在上海,通过VPN连接到公司,外网(员工)拨号到VPN服务器,就可以使用内网的FTP、SAMBA、NFS、SSH。

③公司有一个门户网站需要允许公网访问。

允许外网访问服务:

http80/tcp
https443/tcp
smtp25/tcp
smtps465/tcp
pop3110/tcp
pop3s995/tcp
imap143/tcp

配置思路:

①允许本地访问。

②允许已监听状态数据包通过。

③允许规则中允许通过的数据包通过(要开放ssh远程管理端口)。

④拒绝未被允许的数据包。

⑤iptables规则保存成配置文件。

服务器上的配置:

允许公式内部网段访问任何服务

iptables -A INPUT -s 10.10.155.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.188.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.140.0/24 -j ACCEPT

对所有外网开放服务,vpn的服务端口一般是1723

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

允许ICMP并拒绝其他的数据流入

iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT

本地网卡开放所有,允许所有数据流出

iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

查看目前所有配置:

[root@bogon ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  10.10.155.0/24       0.0.0.0/0           
ACCEPT     all  --  10.10.188.0/24       0.0.0.0/0           
ACCEPT     all  --  10.10.140.0/24       0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1723
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@bogon ~]# 

下面是保存规则,这里有两种方式,一种是使用iptables自带的功能,去做

service iptables save

[root@bogon ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  确定  ]
[root@bogon ~]# 
 Generated by iptables-save v1.4.21 on Tue Mar  1 10:56:19 2022
*mangle
:PREROUTING ACCEPT [664:135581]
:INPUT ACCEPT [662:134905]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [547:110192]
:POSTROUTING ACCEPT [631:123541]
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Tue Mar  1 10:56:19 2022
# Generated by iptables-save v1.4.21 on Tue Mar  1 10:56:19 2022
*nat
:PREROUTING ACCEPT [211:28435]
:INPUT ACCEPT [36:4197]
:OUTPUT ACCEPT [188:15080]
:POSTROUTING ACCEPT [188:15080]
-A POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
# Completed on Tue Mar  1 10:56:19 2022
# Generated by iptables-save v1.4.21 on Tue Mar  1 10:56:19 2022
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Mar  1 10:56:19 2022

就可以了。

[root@bogon ~]# systemctl enable iptables.service
[root@bogon ~]# 

一种是写个sh,然后放到开机自启里面。

vim /opt/iptables_ssh.sh

内容如下:

#!/bin/sh

iptables -A INPUT -s 10.10.155.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.188.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.140.0/24 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT

iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

修改开机自启,文件

vim /etc/rc.local

修改内容如下;

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/bin/sh /opt/iptable_ssh.sh

以上是关于Linux笔记-iptables模拟公司环境配置的主要内容,如果未能解决你的问题,请参考以下文章

Linux服务器iptables生产环境配置

Linux笔记-解决iptables配置后,本机无法访问本机,本机无法访问其他主机问题

Linux笔记-ftp主动和被动模式下iptables的规则配置

Linux的iptables常用配置范例

IPTABLES学习笔记

linux 虚拟机模拟配置网络路由环境-简版