2021年11月5日 星期五

在 Fedora 設定 SSH Server 的 port

1. 前言

因為 Fedora 有一些安全設定,導致要更動 SSH 的 port 比較麻煩,在不關閉原有的安全設定下,這裡提示一些必要的安全設定操作指令。



2. 相關設定

2.1. sshd_config

/etc/ssh/sshd_config

2.1.1. 安全性設定

# What ports, IPs and protocols we listen for
Port 12345

SSH 預設使用 port 22,建議更改,特別在面向網路網路使用時,幾乎只要一上網就會被攻擊。埠號可自定,不要與使用中的埠號即可。

PermitRootLogin prohibit-password

建議不要使用 root 登入 SSH,所以可將 PermitRootLogin 設為 no。但讓 root 能登入有時候滿方便的,特別是有時需要傳一些需要 root 權限的檔案時,可以省掉一些操作上的麻煩。所以這裡使用 prohibit-password,再加上使用免密碼登入方式,就可以讓 root 能登入 SSH,且能保持一定程度的安全性。

#AllowUsers cy # NOTE! this will disable root login

可限定只有某些使用者登入,值得注意的是,若沒有加入 root,將會使 root 不能登入,即使 PermitRootLogin 為 yes 或 prohibit-password 亦然。在我的 Server 並未實作此項,所以前面加 #。

2.1.2. 效能性設定

UseDNS no

加了這個據說能加速登入速度。

2.2. 變更 systemd socket

systemctl edit sshd.socket

將前面的#符號去掉,修改以下設定:

[Socket]
ListenStream=
ListenStream=12345

2.2. 變更 SELinux

增加新修改的port號如下,但是要去掉原先的22埠似乎有問題,暫且不管它。

semanage port -a -t ssh_port_t -p tcp 12345

用以下的指令可觀察是否變更。

semanage port -l | grep ssh_port_t

以下為執行結果,僅供參考。

ssh_port_t                     tcp      12345, 22

2.2. 變更防火牆

打開新修改的port:

firewall-cmd --permanent --service="ssh" --add-port "12345/tcp"

開閉原來的port22:

firewall-cmd --permanent --service="ssh" --remove-port "22/tcp"

重啟防火牆:

firewall-cmd --reload


5. 服務管理

安裝完會自動啟動服務,其餘服務常用操作指令如下所列。

systemctl status sshd.service
systemctl restart sshd.service
systemctl enable sshd.service


2021年11月4日 星期四

在 Fedora 上安裝 Samba Server

1. 安裝相關套件

sudo dnf upgrade
sudo dnf install samba
其中,libnss-winbind 可讓 Linux 解析 Windows 的主機名。

2. 相關設定檔

2.1. smb.conf

/etc/samba/smb.conf

2.1.1. 一般使用者「家」目錄設定

[global]
    workgroup = WORKGROUP
    server string = Samba Server Version %v
    netbios name = CY
    security = user
    passdb backend = tdbsam

[homes]
    comment = Home Directories
    valid users = %S, %D%w%S
    browseable = Yes
    read only  = No
    inherit acls = Yes


3. 資源管理

3.1. 新增使用者

sudo pdbedit -a -u user_name
其中,user_name為你要給定的使用者帳號名稱。
實作範例:
cy@cy:~$ sudo pdbedit -a -u cy
retype new password:
Unix username:        cy
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-3922602909-3884501703-394166850-1000
Primary Group SID:    S-1-5-21-3922602909-3884501703-394166850-513
Full Name:            CY
Home Directory:       \\CY\cy
HomeDir Drive:
Logon Script:
Profile Path:         \\CY\cykuo\profile
Domain:               CY
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          三, 06  2月 2036 23:06:39 CST
Kickoff time:         三, 06  2月 2036 23:06:39 CST
Password last set:    三, 03 11月 2021 20:14:20 CST
Password can change:  三, 03 11月 2021 20:14:20 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF


4. 測試

4.1. 測試 smb.conf 設定是否正確

testparm
實作範例:
cy@cy:~$ testparm
Load smb config files from /etc/samba/smb.conf
lpcfg_do_global_parameter: WARNING: The "encrypt passwords" option is deprecated
Loaded services file OK.
Weak crypto is allowed

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
        security = USER
        server string = Samba Server Version %v
        idmap config * : backend = tdb


[homes]
        comment = Home Directories
        inherit acls = Yes
        read only = No
        valid users = %S %D%w%S


5. 安全設定

5.1. 防火牆

firewall-cmd --get-active-zones
sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-service=samba
sudo firewall-cmd --reload

5.2. Selinux

setsebool -P samba_enable_home_dirs=1


6. 服務管理

systemctl status smb.service nmb.service
systemctl restart smb.service nmb.service
systemctl enable smb.service nmb.service