防火墙和系统安全防护和优化
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
来源:CSDN
作者:dudu1998
链接:https://blog.csdn.net/dudu1998/article/details/103591735