標籤 Linux 下的所有文章

Debain 建立防火牆規則

查看有無建立iptables

sudo iptables -L

建立一個新檔案 iptables.firewall.rules

sudo vim /etc/iptables.firewall.rules 

內容如下

*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

規則只開放 80(http), 443(https), SSH(22), ICMP 服務

啟用規則

sudo iptables-restore < /etc/iptables.firewall.rules

最後是確保每次重開機都會載入這規則

sudo vi /etc/network/if-pre-up.d/firewall

內容如下

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules

更改檔案權限

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

linode官方教學: https://www.linode.com/docs/security/securing-your-server

其他小技巧

把80port轉到5601

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 5601

清除規則

sudo iptables -F -t nat 
sudo iptables -F

 

 

linux 開機自動執行

vim /etc/rc.loca

加入想執行的系統指令

這樣在還沒登入時就會執行

自動關機

vim /etc/crontab

# m h dom mon dow user command
0   0 *       *       6       root reboot

星期六零晨0點0分重新開機

php-fpm和nginx 權限設定問題

php-fpm

修改/etc/php5/fpm/pool.d/www.conf

user = www-data 改為 user = ken

group = www-data 改為 group = user

listen.owner = www-data 改為 listen.owner = user

listen.group = www-data 改為 listen.group = user

nginx

修改/etc/nginx/nginx.conf

user www-data; 改為 user;

這樣就沒權限問題了

chmod 指令 小技巧

只改路徑以下(包含)所有資料夾的權限

chmod 777 `find 路徑 -type d`
find 路徑 -type d -exec chmod 777 {} \;

只改路徑以下(包含)所有檔案的權限

chmod 666 `find 路徑 -type f`
find 路徑 -type f -exec chmod 644 {} \;

個人比較喜歡第一種

MySql外部連結設定[MySql]

正常情況下MYSQL預設是沒辦法外連的

所以要新增一個專門用來外部連結的帳號

輸入

mysql -u root -p

後進入mysql

mysql>use mysql;
mysql>grant all privileges on 數據庫名字.* to '遠程用戶名'@'遠程IP地址' identified by '遠程用的密碼';
mysql>flush privileges; //刷新使用權限表
mysql>\q//離開MYSQL

新增完帳號之後還要在修改my.cnf

通常是

/etc/my.cnf

或是

/etc/mysql/my.cnf

用vi打開之後修改這行

bind-address = 127.0.0.1

改成你Server的ip這樣外部才找到

然後重開MYSQL

檢查是否全部IP都監聽

netstat -an|grep 3306