防火墙和系统安全防护和优化

丶灬走出姿态 提交于 2019-12-21 05:11:53

防火墙和系统安全防护和优化

1、查看firewall服务状态

systemctl status firewalld

2、查看firewall的状态

firewall-cmd --state

3、开启、重启、关闭、firewall.service服务

service firewalld start  #开启
service firewalld restart   #重启
service firewalld stop  #关闭

4、查看防火墙规则

firewall-cmd --list-all 

5、查询、开放、关闭端口
查询端口是否开放

firewall-cmd --query-port=8080/tcp

开放80端口

firewall-cmd --permanent --add-port=80/tcp

移除端口

firewall-cmd --permanent --remove-port=8080/tcp

重启防火墙(修改配置后要重启防火墙)

firewall-cmd --relo

参数解释 :
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、–permanent:表示设置为持久;
3、–add-port:标识添加的端口;

**

centos安全防护和优化

1、修改ssh端口号

vi /etc/ssh/sshd_config

找到# port 22
去掉前面的#号,在下面添加一行port 10066
22那一行是用于以防万一的,为了避免,我们设置的另外一个端口万一登录不上,我们还可以使用22端口登录上去改,不然没有预留22端口,自己新添加的那个也登录不上去,那就没有用了
这样配置后,一般是不能用的,因为还没有配置防火墙规则,输入下面的命令

vi /etc/sysconfig/iptables

在原来的22端口下,添加6666端口的防火墙规则,输入service iptables restart,重置防火墙

2、禁止root用户登录
使用自己创建的用户登陆系统

用命令 su 切换到root用户

输入vi /etc/ssh/sshd_config

找到 #PermitRootLogin yes

修改为 PermitRootLogin no
执行 service sshd restart(centso7以上命令: systemctl restart sshd)

然后,root用户就不能SSH登陆了

3、使用ssh密钥登录
在通过SSH访问服务器时,使用SSH密钥进行认证是尤其重要的。这样做为服务器增加了额外的保护,确保只有那些拥有密钥的人才能访问服务器。

在本地机器上运行下面命令以生成SSH密钥:

ssh-keygen -t rsa

你会看到下面的输出,询问要将密钥写到哪一个文件里,并且设置一个密码,会得到两个文件
my_key和my_key.pub

接下来把my_key.pub拷贝到~/.ssh/authorized_key中

cp my_key.pub ~/.ssh/authorized_keys

然后使用下面命令将密钥上传到服务器:

scp -P16543 authorized_keys user@yourserver-ip:/home/user/.ssh/

至此,你就可以从这台本地机器上无密码地访问服务器了。

4、关闭ssh密码认证
既然已经有了SSH密钥,那么关闭SSH的密码认证就会更安全了。再次打开并编辑sshd_config,按如下设置:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

5、锁住账户
如果某个账户在很长一段时间内都不会被使用了,那么可以将其锁住以防止其它人访问。使用如下命令:

passwd -l accountName

当然,这个账户依然可以被root用户使用(LCTT 译注:可用 su 切换为该账号)。

6、禁用IPv6
禁止加载IPv6模块:
让系统不加载ipv6相关模块,这需要修改modprobe相关设定文件,为了管理方便,我们新建设定文件/etc/modprobe.d/ipv6off.conf,内容如下

alias net-pf-10 off
options ipv6 disable=1

禁用基于IPv6网络,使之不会被触发启动:

 vi /etc/sysconfig/network
NETWORKING_IPV6=no

禁用网卡IPv6设置,使之仅在IPv4模式下运行:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

关闭ip6tables:

# chkconfig ip6tables off

重启系统,验证是否生效:

# lsmod | grep ipv6
# ifconfig | grep -i inet6

7、其他设置

HOSTS_DENY = /etc/hosts.deny
#将阻止IP写入到hosts.deny

PURGE_DENY = 1d
#过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟

BLOCK_SERVICE = ALL
#阻止服务名

DENY_THRESHOLD_INVALID = 5
#允许无效用户(在/etc/passwd未列出)登录失败次数,允许无效用户登录失败的次数.

DENY_THRESHOLD_VALID = 5
#允许普通用户登录失败的次数

DENY_THRESHOLD_ROOT = 5
#允许root登录失败的次数

DENY_THRESHOLD_RESTRICTED = 1
#设定 deny host 写入到该资料夹

WORK_DIR = /usr/share/denyhosts/data
#将deny的host或ip纪录到Work_dir中

LOCK_FILE = /var/lock/subsys/denyhosts
#将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。

ADMIN_EMAIL = michaelkang@ptmind.com
#设置管理员邮件地址

SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID = 1d
#有效用户登录失败计数归零的时间

AGE_RESET_ROOT = 1d
#root用户登录失败计数归零的时间

AGE_RESET_RESTRICTED = 5d
#用户的失败登录计数重置为0的时间

安装DDOS防护防火墙:

wget http://www.inetbase.com/scripts/ddos/install.sh
 chmod 0700 install.sh
 ./install.sh

增强系统安全,修改系统,设置通过history查看历史命令只显示10条;;

sed -i "s/HISTSIZE=1000/HISTSIZE=10/" /etc/profile

参考:https://www.cnblogs.com/xxoome/p/7115614.htm
https://blog.csdn.net/qq_24038207/article/details/80621771
https://www.cnblogs.com/seanpan/p/11670910.html
https://www.php1.cn/detail/linux-67ade13a2c.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!