centos7关闭firewall开启iptables防火墙,设置ftp服务器许可

最近需要搭建ftp服务器,找了许多篇文章缺这缺那的,后面发现一篇比较完整的好文章,故记录下来,

一:端口占用查看进程,终止进程

Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令:
lsof -i tcp:80

列出所有使用中的端口
netstat -ntlp

检查端口被哪个进程占用
netstat -lnp|grep 8080   #8080为端口号
SSH执行以上命令,可以查看到8080端口正在被哪个进程使用。假设进程号为 8888。

查看进程的详细信息
ps 8888
SSH执行以上命令。查看相应进程号的程序详细路径

需要手动结束进程方法(杀掉进程):
kill -9 888        #杀掉编号为1777的进程(请根据实际情况输入)

二:Cenots7默认防火墙firewalld关闭,并开启iptables

如果是CentOS7.x系统查看默认防火墙firewalld是否开启:
firewall-cmd --state
running 状态即防火墙已经开启 没开启就显示norunning

停止并屏蔽Centos7自带的防火墙firewalld:

   systemctl status firewalld //查看状态
   systemctl stop firewalld
   systemctl mask firewalld  //屏蔽FirewallD服务,如果需要取消屏蔽呢就是用systemctl unmask firewalld
   systemctl disable firewalld //删除开机启动


安装iptables-services软件包:
    yum install iptables-services
在引导时启用iptables服务:
    systemctl enable iptables
启动iptables服务:
   systemctl start iptables
增加防火墙规则(这里的20300是我们后面要修改的SSH的新端口)方法一例:
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 20300 -j ACCEPT
保存防火墙规则:
service iptables save

/usr/libexec/iptables/iptables.init save
查看iptables开放的端口:
iptables -nL --line-number
或查看iptables列表:
iptables -L
管理iptables服务命令:
systemctl stop|start|restart iptables
修改或查看防火墙配置文件方法:
vi /etc/sysconfig/iptables

三:防火墙iptables规则深入教程

打开iptables防火墙:
chkconfig iptables on
关闭iptables防火墙:
chkconfig iptables off

如果没安装防火墙,就安装防火墙

CentOS系统安装防火墙:

yum install iptables

Debian/Ubuntu系统安装防火墙:

apt-get install iptables

 

查看现有规则:

iptables -L -n
或iptables -nL --line-number

清除所有规则:

iptables -F

iptables -X

iptables -Z

增加规则(端口可以根据自己的需要增减):

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -j ACCEPT

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

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

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 20 -j ACCEPT

iptables -A INPUT -p tcp --dport 20000:30000 -j ACCEPT  #这个是增加ftp被动端口命令

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT  #本机解析域名

iptables -A INPUT -p udp --sport 53 -j ACCEPT

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

iptables -A OUTPUT -p udp --sport 53 -j ACCEPT

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
注意:开放端口要加到reject-with icmp-port-unreachable这个规则前面


管理iptables服务命令:
systemctl stop iptables 、  systemctl start iptables 、 systemctl restart iptables
修改或查看防火墙配置文件:
vi /etc/sysconfig/iptables

 

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

iptables -A INPUT -j REJECT

iptables -A FORWARD -j REJECT

 

/etc/rc.d/init.d/iptables save      #写入规则

service iptables save               #CentOS也可以用这个写入规则,和上面的语句是一样的

chkconfig --level 345 iptables on   #将规则加入开机启动

service iptables restart        #重启防火墙生效,使得所有规则生效

设置以上的发现服务器无法ping通外网可以这样处理:

echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all    #临时允许PING

永久允许PING配置方法:

vi /etc/sysctl.conf

输入o在下一行插入:

net.ipv4.icmp_echo_ignore_all=1

按esc键,然后输入命令:

:wq   #保存并退出 (:q!不保存退出)

sysctl -p  #使新配置生效

如果已经有net.ipv4.icmp_echo_ignore_all这一行了,直接修改=号后面的值即可的(0表示允许,1表示禁止)

 

 

四:设置DNS的方法

1:网卡配置文件中加入DNS信息

vi /etc/sysconfig/network-scripts/ifcfg-eth1  #可能是ifcfg-eth0,可以用ifconfig -a查看

输入o在下一行插入:

DNS1=8.8.8.8

DNS2=8.8.4.4

按esc键,然后输入命令:

:wq   #保存并退出 (:q!不保存退出)

 

2:或在默认的DNS服务器地址配置文件中写入服务器默认DNS

vi /etc/resolv.conf

输入o在下一行插入:

nameserver 8.8.8.8

nameserver 114.114.114.114

nameserver 8.8.4.4

按esc键,然后输入命令:

:wq   #保存并退出 (:q!不保存退出)

 

3:hosts主机表文件中直接指定域名的解析IP

跟Windows系统一样,Linux系统也有主机表文件。同样可以通过设置主机表地址进行特定主机的解析,优先DNS服务器地址。

配置文件,在/etc/hosts

vi /etc/hosts

 

五:修改FTP端口的方法(如果服务器装了FTP的情况下)

vsftpd来修改演示,其他ftp我不知道哪里修改,大家可以找找资料。

vi /etc/vsftpd/vsftpd.conf

在配置文件的最下面 加入

pasv_min_port=30001

pasv_max_port=31000

然后保存退出。

这两句话的意思告诉vsftpd, 要传输数据的端口范围就在30001到31000 这个范围内传送。

这样我们使用 iptables 就好办多了,我们就打开 30001到31000 这些端口

六:修改SSH端口(默认端口是22,为了安全修改下)

vi /etc/ssh/sshd_config
#Port 22
去掉#,改成
Port 20300
保存
重启sshd服务(重启前要将20300端口加到防火墙中开放):
 systemctl restart sshd.service
会报错:
Job for sshd.service failed because the control process exited with error code. See “systemctl status sshd.service” and “journalctl-xe” for details.
原因:
selinux不允许自定义sshd服务设置端口放行
但我们不能把selinux关闭了,会造成服务器安全性能下降
查看selinux状态:
  getenforce
如果是Enforcing就是启用,否则请启用selinux:
  setenforce 1
查看selinux中sshd服务放行的端口号:
semanage port -l | grep ssh
先安装SELinux的管理工具semanage和依赖包policycoreutils-python:
yum provides semanage
yum install policycoreutils-python
查看selinux中sshd服务放行的端口号:
semanage port -l | grep ssh
添加自定义sshd服务端口至selinux中:
semanage port -a -t ssh_port_t -p tcp 20300
再次查看selinux中sshd服务放行的端口号:
semanage port -l | grep ssh
重启sshd服务:
systemctl restart sshd.service
这样就可以使用新的SSH端口20300

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值