Centos 7ファイアウォール(firewalld)とSelinuxの簡単な操作コマンド

4270 ワード

CentOS 7ではデフォルトでfirewalldが採用されていますが、iptablesをインストールしてサポートすることはできますが、新しいものにフォローしたほうがいいです!実はiptablesも使ったことがありません.ハハハ!
ファイアウォールは強力ですが、日常的に最も多く行うのはオープンポートで、いつでもcopyできるように記録しておきます.
1、オープン8080ポート
1.        
	sudo systemctl status firewalld
	
	sudo firewall-cmd --state
		running
2.        
	#   
	service firewalld start
	#   
	service firewalld restart
	#   
	sudo service firewalld stop
	
	#        
	sudo firewall-cmd --list-all 
	sudo firewall-cmd --state
3.    8080   
	sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
	
	     
	sudo systemctl restart firewalld.service
	
	sudo firewall-cmd --reload

4.       ,          ssh       !
	sudo firewall-cmd --list-all 
		public (active)
		  target: default
		  icmp-block-inversion: no
		  interfaces: enp0s3
		  sources: 
		  services: ssh dhcpv6-client
		  ports: 
		  protocols: 
		  masquerade: no
		  forward-ports: 
		  source-ports: 
		  icmp-blocks: 
		  rich rules: 
	**     ,ports      !	  
	**            ,    20,22   
	sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
	sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
	sudo firewall-cmd --zone=public --add-port=21/tcp --permanent
	sudo firewall-cmd --zone=public --add-port=20/tcp --permanent
	sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
	sudo firewall-cmd --zone=public --add-port=4433/tcp --permanent

     
	sudo systemctl restart firewalld.service
         
	sudo firewall-cmd --list-all 
		public (active)
		  target: default
		  icmp-block-inversion: no
		  interfaces: enp0s3
		  sources: 
		  services: ssh dhcpv6-client
		  ports: 80/tcp 22/tcp 21/tcp 20/tcp 8080/tcp 4433/tcp
		  protocols: 
		  masquerade: no
		  forward-ports: 
		  source-ports: 
		  icmp-blocks: 
		  rich rules: 
**          、   ssh  !

2、他のポートを追加(例:4433)エラー
	1.   :    chuangke.conf       4433 
		sudo systemctl restart nginx
		    !
			Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

2.    nginx     OK!
	sudo nginx -t
		nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
		nginx: configuration file /etc/nginx/nginx.conf test is successful
	
3.       
		sudo systemctl status nginx.service
			......
		3  29 15:07:26 centos7-71 nginx[18289]: nginx: [emerg] bind() to 0.0.0.0:4433 failed (13: Permission denied)
			......
			3  29 15:07:26 centos7-71 systemd[1]: Unit nginx.service entered failed state.
			3  29 15:07:26 centos7-71 systemd[1]: nginx.service failed.

**4433ポートは許可されていません.
3、semanage解決httpポートアクセス構成(Selinux)
リファレンスhttps://blog.csdn.net/runsnail2018/article/details/81185138 https://zhb1208.iteye.com/blog/1432957
1.      semanage    :   semanage
	sudo yum update
	sudo yum install semanage 
		     :fastestmirror
		Loading mirror speeds from cached hostfile
		 * base: mirrors.aliyun.com
		 * extras: mirrors.aliyun.com
		 * updates: mirrors.aliyun.com
		        semanage。
		  :      

2.       ,           
	1). yum provides /usr/sbin/semanage
	2). yum -y install policycoreutils-python
	3).         semanage    
3.    http        
	sudo semanage port -l | grep http_port_t
			http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
		pegasus_http_port_t            tcp      5988
	**        4433   !	
4.    4433   http     
	sudo semanage port -a -t http_port_t  -p tcp 4433
5.      http    
sudo semanage port -l | grep http_port_t
		http_port_t                    tcp      4433, 80, 81, 443, 488, 8008, 8009, 8443, 9000
		pegasus_http_port_t            tcp      5988
**        4433  
	sudo systemctl restart nginx
	sudo systemctl status nginx.service
	OK!

ずっとSELinuxが何をしているのか分からなかった!今は少し分かりました.
単にファイアウォールからポートを1つ開ければいいのではなく、特定のサービス(今回はHTTP)で使用できるポートを構成します.
4、rootディレクトリの切り替えは403エラー
リファレンスhttps://blog.csdn.net/a690392431/article/details/85914076
**このブログは正しいはず!しかし、私は操作を照らして、やはりだめです!
       !
      SELinux !     !

sudo vim /etc/selinux/config
		# by wzh 20190329 disable SELINUX
		SELINUX=disabled
		# SELINUX=enforcing

      !

   SELinux
sestatus
	SELinux status:                 disabled