パソコン関係のメモと趣味のページ

PowerMac G4/PCIにDebianをインストールして、SSH、ファイアウォール、Pure-FTPdを設定します。
ここでは詳細な記載は省いていますので、他の記事も参考にしていただけると嬉しいです。

1.インストール


CDから起動して、インストールする際にyabootのパラメータを入力しておきます。PowerMac G4/PCI以外は別のパラメータの可能性があります。G3は多分一緒です。悲しい。ちなみに入れ忘れてインストールしましたがGUIがなかったせいか特に問題はありませんでした。
boot: install video=aty128fb:vmode:6

インストールしたら、apt-get update, upgradeを実施して、お好みでvimとかfbtermとか入れます。

2.プライベートIPアドレスの固定


# vim /etc/network/interfaces
DHCPになっているものをコメントアウトか削除します
#iface eth0 inet dhcp
以下を追記します。addressに固定したいIPアドレスを記載します。
auto eth0
iface eth0 inet static
  address   192.168.1.10
  network   255.255.255.0
  gateway   192.168.1.1
  network   192.168.1.0
  broadcast 192.168.1.255
設定を反映します。
# /etc/init.d/networking restart

3.sshの設定


# vim /etc/ssh/sshd_config
#rootでのログインを許可しない
PermitRootLogin no

#プロトコルバージョンを「2」のみに限定
Protocol 2

#公開鍵認証を許可
PubkeyAuthentication yes

#パスワードログインを許可(あとで許可できないようにするのがよいかも)
PasswordAuthentication yes
UsePAM no

#SSH接続できるユーザをユーザhogeに限定
AllowUsers hoge

設定したら、あとは外からSSH接続して設定します。

4.ファイアウォールの設定(ufw)


# apt-get install ufw
とりあえずは止めておきます。動いてないと思いますが。
# ufw disable
すべて拒否をデフォルトにします。
# ufw default DENY

SSHを許可します。
# ufw allow ssh

SSHで同一IPアドレスから30秒間に6回以上の接続がある場合には接続を拒否します。
# ufw limit ssh

FTP(PASVで使うポートを許可)接続を許可します。
# ufw allow ftp
# ufw allow 40000:40050/tcp
有効にします。
# ufw enable
その他、備考です。
例)ローカルネットワークからポート22でのSSHアクセスを許可
# ufw allow proto tcp from 192.168.1.0/24 to any port 22 

例)初期化
# ufw reset 

例)特定のルールを削除
# ufw status numbered
これで番号付きでリスト表示されるので、例えば7を削除する場合は、
# ufw delete 7

例)何か
[UFW BLOCK] IN=eth0 OUT= MAC=01:00:2e:00:00:01:00:33:5e:96:7b:1c:00:00 SRC=192.168.1.2 DST=224.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=128 ID=5
2566 PROTO=ICMPv6 TYPE=8 CODE=0 ID=1 SEQ=2704 
ってなログがずっと出力される

ログにずっと記載されるので、気になるなら以下を追記します。
# vim /etc/ufw/before6.rules
-A ufw6-before-input -p icmpv6 -d ff00::/8 -j ACCEPT
-A ufw6-before-output -p icmpv6 -d ff00::/8 -j ACCEPT
↓ICMPv6のログはこれでしょうか。
ITPro マルチキャストアドレッシングとは?

5.FTPサーバ(Pure-FTPd)


# apt-get install pure-ftpd
FTP over TLSで接続できるようにするため、SSLを設定します。
# mkdir -p /etc/ssl/private
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
# chmod 600 /etc/ssl/private/*.pem
Pure-FTPdが勝手に起動しないようにします。
# update-rc.d -f pure-ftpd remove
ユーザーの追加やグループを設定します。hogeや/var/ftpは1例ですので、任意に設定してください。
# groupadd ftpgroup
# useradd -g ftpgroup -d /dev/null -s /etc ftpuser
# chown -R root:ftpgroup /var/ftp
# chmod 755 /var/ftp
# pure-pw useradd hoge -m -u ftpuser -d /var/ftp
起動します。今回設定したオプションは以下の通りです
-Arootも含めchrootする
-EAnonymousは許可しない
-c接続されるクライアント数の制限
-C同一IPからのクライアント数の制限
-Hログに記載するときに名前解決(逆引き)しない。"www.toolinux.com"なら、"213.41.14.252"になる
-pパッシブモードのポート指定
-Y2:FTP over TLSと平文のFTPの両方を許可。0なら平文のみ。1ならTLSのみ。
# /usr/sbin/pure-ftpd -A -E -c 10 -C 5 -H -p 40000:40050 -Y 2 -l puredb:/etc/pure-ftpd/pureftpd.pdb 
終了する場合は以下の通りです。
pkill pure-ftpd 

6.外部からの攻撃を防御(fail2ban)


# apt-get install fail2ban
設定を編集します(jail.localを作成すると、jail.confの内容を上書きします。)
# vim /etc/fail2ban/jail.local
設定の説明
findtimeこの秒数以内に攻撃が見つからなければ、カウンターを0にします
bantime遮断する秒数
backendUbuntuの場合pollingでないとうまく動かないことがあるらしいですが未確認です
ignoreip許可IPアドレス。LAN内も許可するなら、127.0.0.1 192.168.1.0/24
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 600
maxretry = 5
findtime = 600
backend = auto

[ssh]
enabled = true
[ssh-ddos]
enabled = true
[pure-ftpd]
enabled = true

リロードして設定を反映します
# fail2ban-client reload
こっちでもいけると思います
# /etc/init.d/fail2ban restart
確認します。
# fail2ban-client status
pure-ftpdのみ確認します(攻撃があったかどうかなどを確認できます)
# fail2ban-client status pure-ftpd

7.ダイナミックDNSサービス(MyDNS)にIPアドレスを通知


fetchmailを使ってメールを受信することで通知します。
# apt-get install fetch mail
設定を編集します。
$ vi ~/.fetchmailrc
set nobouncemail
poll mail.mydns.jp
protocol pop3
user ※ここにIDを記載
password ※ここにパスワードを記載
no keep

パスワード保護のため、権限を変更します。
$ chmod 600 .fetchmailrc

確認します。
$ fetchmail &

自動実行するため、cronに登録します。以下の例だと15分ごとに実行します。
$ crontab -e
*/15 * * * * /usr/bin/fetchmail > /dev/null

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます