常用UOS服务器防火墙设置常用命令

本文详细介绍了统信UOS服务器操作系统的防火墙设置,包括iptables、ufw和firewalld的区别,如何检查和安装iptables,清空及设置防火墙规则,创建重启生效的脚本,以及配置黑白名单的方法。内容适用于熟悉Debian和Ubuntu的用户。

目录

1.UOS支持的防火墙

2. 防火墙设置

3. 防火墙脚本

4. 关闭防火墙(清空所有规则,删除脚本,关闭重启)

5. 配置黑白名单


1.UOS支持的防火墙

iptables ufw firewalld Netfilter区别?

        iptables ufw firewall 都是前端管理,Netfilter是内核。

        统信的UOS服务器操作系统是基于Debian开发的,因此和Debian和Ubuntu很多命令都是相同的。在Debian和Ubuntu上面可以使用的防火墙在UOS也是可以正常使用的。

        默认情况下,Debian使用iptables,Ubuntu有iptables,也使用简单的ufw,在CentOS7 之前使用的是iptables,CentOS 7开始使用firewall,Centos 7前可以使用iptables命令也可以直接编辑文件/etc/sysconfig/iptables,在firewall一般都是使用命令。在Debian和UOS是使用iptables命令,由于不是直接编辑配置文件,需要对iptables命令比较熟悉,再就是对重启生效需要编辑文件设置。ufw也可以在UOS使用,由于是简易的命令,在本文主要讨论怎么使用iptables来设置防火墙功能。

2. 防火墙设置

1)检查iptables有没有安装

        如果之前有使用CentOS经验使用service iptables status 是检查不出来的,在CentOS中iptables是以服务形式,这里iptables只是配置的前端的命令,也不能使用yum list查看。而是使用apt list|grep iptables ;

        如果没有安装可以使用apt install iptables 或者apt-get install iptables,如果想要使用ufw安装apt install ufw,如果希望使用firewall,也可以安装后使用。

2)服务器防火墙怎么设置

  • 清空原有规则

iptables -L 可以查看现有生效的规则

iptables -P INPUT ACCEPT 清空规则前放开INPUT 否则清空以后可能导致无法远程连接

iptables -F【清空规则】

iptables -X 【删除自建链】

iptables -Z 【重置过滤包数据】

  • 新建规则配置文件

第一种方式,编辑/etc/iptables.sh然后赋予执行权限chmod +x /etc/iptables.sh。执行以后规则就生效了,如果需要修改规则每次都可以修改此文件。

第二种方式,配置文件/etc/iptables(需要使用/sbin/iptables-restore 导入规则,可以配置重启时就执行该文件)

#清空配置

iptables -F

iptables -X

iptables -Z

#配置,禁止进,允许出,允许回环网卡

iptables -P INPUT DROP

iptables -A OUTPUT -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

#允许ping

iptables -A INPUT -p icmp -j ACCEPT

#允许ssh

iptables -A INPUT -p tcp –dport 22 -j ACCEPT

#允许VNC

iptables -A INPUT -p tcp –dport 5900 -j ACCEPT

#学习felix,把smtp设成本地

iptables -A INPUT -p tcp -m tcp –dport 25 -j ACCEPT -s 127.0.0.1

iptables -A INPUT -p tcp -m tcp –dport 25 -j REJECT

#允许DNS

iptables -A INPUT -p tcp -m tcp –dport 53 -j ACCEPT

iptables -A INPUT -p udp -m udp –dport 53 -j ACCEPT

#允许http和https

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

iptables -A INPUT -p tcp –dport 443 -j ACCEPT

# 允许已建立的或相关连的通行

iptables -A INPUT -m state –state ESTABLISHED%2cRELATED -j ACCEPT

#禁止其他未允许的规则访问

iptables -A INPUT -j REJECT #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)

iptables -A FORWARD -j REJECT
  • 导入规则

iptables-save >/etc/iptables 【保存规则】

/sbin/iptables-restore </etc/iptables 【导入规则】

  • 设置重启生效脚本

1.)将iptables.sh脚本放到init.d中每次都重启【需要保障iptables脚本一致都是最新的规则,如果是后续临时修改的规则可能不在其中】

2.)编辑/etc/network/if-pre-up.d/iptables,重启会自动生效。要保障/etc/iptables中规则一致是最新的,每次修改规则可以编辑/etc/iptables 如果是使用iptables命令新增,需要增加iptables-save >/etc/iptables 保存。

#!/bin/sh

/sbin/iptables-restore < /etc/iptables

3. 防火墙脚本

编辑如下脚本【第一次执行】,后续编辑/etc/iptables,使用/sbin/iptables-restore < /etc/iptables重新导入,或者直接iptables命令新增,iptables-save>/etc/iptables 保存,防止机器重启无效

#!/bin/sh

#防火墙脚本

echo “#!/bin/sh

/sbin/iptables-restore < /etc/iptables” >/etc/network/if-pre-up.d/iptables

echo “#清空配置

iptables -F

iptables -X

iptables -Z

#配置,禁止进,允许出,允许回环网卡

iptables -P INPUT DROP

iptables -A OUTPUT -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

#允许ping

iptables -A INPUT -p icmp -j ACCEPT

#允许ssh

iptables -A INPUT -p tcp –dport 22 -j ACCEPT

#允许VNC

iptables -A INPUT -p tcp –dport 5900 -j ACCEPT

#学习felix,把smtp设成本地

iptables -A INPUT -p tcp -m tcp –dport 25 -j ACCEPT -s 127.0.0.1

iptables -A INPUT -p tcp -m tcp –dport 25 -j REJECT

#允许DNS

iptables -A INPUT -p tcp -m tcp –dport 53 -j ACCEPT

iptables -A INPUT -p udp -m udp –dport 53 -j ACCEPT

#允许http和https

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

iptables -A INPUT -p tcp –dport 443 -j ACCEPT

# 允许已建立的或相关连的通行

iptables -A INPUT -m state –state ESTABLISHED%2cRELATED -j ACCEPT

#禁止其他未允许的规则访问

iptables -A INPUT -j REJECT #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)

iptables -A FORWARD -j REJECT” > /etc/iptables.sh

chmod +x /etc/iptables.sh

chmod +x /etc/network/if-pre-up.d/iptables

/etc/iptables.sh

iptables-save > /etc/iptables

/sbin/iptables-restore < /etc/iptables

4. 关闭防火墙(清空所有规则,删除脚本,关闭重启)

iptables -P INPUT ACCEPT

iptables -F

iptables -X

iptables -Z

rm /etc/iptables*

rm /etc/network/if-pre-up.d/iptables

5. 配置黑白名单

#黑白名单

####当只有部分人可以访问使用白名单,当只有部分人不能访问使用黑名单

##设置链名

iptables -N whitelist

iptables -N blacklist

##设置自定义链规则

iptables -A whitelist -s xxxx ACCEPT

iptables -A blacklist -s xxxx DROP

##设置INPUT规则

iptables -A INPUT -p tcp –dport 22 -j whitelist

iptables -A INPUT -p tcp –dport 22 -j blacklist

#删除规则

iptables -D INPUT 数字(iptables -L INPUT –line-numbers 查看对应链的规则序号)

iptables -D INPUT -p tcp –dport 22 -j whitelist (也可以使用设置规则时相同的命令把A改成D)

#删除自定义链

iptables -X 链名(注意内置链不可删除)

iptables -Z 置零

iptables -F 清空规则

参考原文地址:服务器防火墙怎么设置(常用UOS服务器防火墙设置教程) (yqfml.com)

<think>我们正在处理用户的问题:用户想在UOS系统中使用命令行从FTP服务器下载文件,询问UOS系统下FTP下载文件的命令示例。根据引用[1]和引用[3]:引用[1]提供了一个使用Python的ftplib模块从FTP服务器下载文件的脚本示例,引用[3]提到在统信UOS服务器操作系统1060上安装和启动vsftpd服务(FTP服务器)。但用户的需求是作为客户端下载文件,因此我们需要提供命令行工具。在Linux系统中(包括UOS),常用的命令行FTP客户端有:1.ftp:传统的FTP交互式客户端2.lftp:功能更强大的FTP客户端,支持断点续传等3.wget:支持HTTP、HTTPS、FTP等多种协议的非交互式下载工具4.curl:类似wget,支持多种协议因此,我们可以提供以下几种方法:方法一:使用ftp命令(交互式)步骤:1.在终端输入`ftp`进入交互模式2.使用`open服务器地址`连接FTP服务器3.输入用户名和密码登录4.使用`cd`切换远程目录(如果需要)5.使用`lcd`切换本地目录6.使用`get`下载单个文件,或`mget`下载多个文件7.使用`bye`退出示例:$ftpftp>openftp.example.comConnectedtoftp.example.com.220(vsFTPd3.0.3)Name(ftp.example.com:user):username331Pleasespecifythepassword.Password:230Loginsuccessful.ftp>cd/remote/path250Directorysuccessfullychanged.ftp>lcd/local/pathLocaldirectorynow/local/pathftp>getfilename200PORTcommandsuccessful.ConsiderusingPASV.150OpeningBINARYmodedataconnectionforfilename(12345bytes).226Transfercomplete.ftp>bye方法二:使用lftp命令(交互式或非交互式)lftp功能更强大,支持书签、队列、断点续传等。交互式示例:$lftpftp://username:password@ftp.example.comlftpusername@ftp.example.com:~>cd/remote/pathlftpusername@ftp.example.com:/remote/path>lcd/local/pathlftpusername@ftp.example.com:/remote/path>getfilenamelftpusername@ftp.example.com:/remote/path>exit非交互式示例(一行命令):$lftp-e"get/remote/path/filename-o/local/path/filename;quit"ftp://username:password@ftp.example.com方法三:使用wget(非交互式)示例:$wgetftp://username:password@ftp.example.com/remote/path/filename-O/local/path/filename注意:密码在命令行中可见,不安全。可以使用.netrc文件来避免密码暴露。方法四:使用curl(非交互式)示例:$curl-uusername:password-o/local/path/filenameftp://ftp.example.com/remote/path/filename安全性提示:在命令行中直接输入密码可能会被其他用户通过历史命令看到,建议使用.netrc文件或者使用交互式方式输入密码。另外,根据引用[2],UOS(基于Linux)也可以使用网络文件系统挂载的方式,但用户明确要求命令行下载,所以这里不展开。因此,我们可以总结出几种方法,并给出示例命令。考虑到用户可能需要在脚本中使用,非交互式方式(wget、curl、lftp非交互模式)可能更合适。注意:UOS系统默认可能没有安装lftp、wget或curl,需要先安装。安装命令(需要root权限):安装wget:`sudoaptinstallwget`安装curl:`sudoaptinstallcurl`安装lftp:`sudoaptinstalllftp`根据引用[3],UOS使用apt作为包管理器。因此,回答结构如下:1.介绍几种方法,并给出示例2.说明安装方法(如果需要)3.安全性提示相关问题生成:1.如何避免在命令行中暴露FTP密码?2.在UOS中如何安装lftp?3.如何用脚本实现FTP自动下载?4.下载大文件时如何支持断点续传?注意:引用[1]提供的Python脚本方法也是一种选择,但用户要求命令行,所以我们可以提一下,但不作为主要答案。回答:</think>### UOS系统使用命令行从FTP服务器下载文件的方法 在统信UOS(基于Linux)系统中,可通过以下命令行工具实现FTP文件下载: #### 方法一:使用 `ftp` 命令(交互式) ```bash ftp ftp.example.com # 连接服务器 用户名:your_username 密码:your_password ftp> cd /remote/path # 进入远程目录 ftp> lcd /local/path # 设置本地保存目录 ftp> get filename # 下载单个文件 ftp> mget *.txt # 批量下载(按通配符) ftp> binary # 切换二进制模式(适合非文本文件) ftp> quit # 退出 ``` #### 方法二:使用 `wget`(非交互式) ```bash wget --ftp-user=用户名 --ftp-password=密码 ftp://ftp.example.com/路径/文件名 # 示例:下载文件到当前目录 wget --ftp-user=admin --ftp-password=pass123 ftp://ftp.example.com/data/file.zip ``` #### 方法三:使用 `lftp`(推荐,支持断点续传) ```bash lftp -u 用户名,密码 ftp.example.com lftp> get -O /本地保存路径/ 远程文件路径 lftp> mirror /远程目录/ /本地目录/ # 同步整个目录 lftp> exit ``` #### 方法四:使用 `curl`(适合脚本集成) ```bash curl -u 用户名:密码 -o 本地文件名 ftp://ftp.example.com/远程文件路径 # 示例:下载并重命名文件 curl -u admin:pass123 -o backup.tar.gz ftp://ftp.example.com/backups/data.tar ``` --- ### 注意事项 1. **安全提示**:命令行中直接暴露密码存在风险,建议: - 使用 `$ lftp -u 用户名,` 省略密码(会交互式提示输入) - 通过 `.netrc` 文件存储凭据(路径:`~/.netrc`): ``` machine ftp.example.com login your_username password your_password ``` 2. **工具安装**:若系统未预装工具: ```bash sudo apt install lftp wget curl # UOS/Debian系安装命令[^3][^5] ``` 3. **防火墙与权限**:确保UOS防火墙允许FTP流量(默认端口21): ```bash sudo ufw allow 21/tcp ``` --- ### 操作示例:下载 `/reports/2024.pdf` 到 `~/Downloads` ```bash lftp -u john,secret123 ftp.company.com lftp> get -O ~/Downloads /reports/2024.pdf lftp> exit ``` ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等到鸡吃完米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值